Skip to content

Releases: pvsr/qbpm

2.2: configurable XDG application name

03 Oct 03:55

Choose a tag to compare

config.toml supports application_name for generated XDG desktop files

  • defaults to {profile_name} (qutebrowser profile), you may want just {profile_name}
  • qbpm desktop can be used to replace existing desktop files

There's no release 2.1 because I pushed that tag prematurely and decided to tag a new release.

2.0: config

24 Aug 00:25

Choose a tag to compare

Config file support

qbpm now reads configuration options from a config file at $XDG_CONFIG_HOME/qbpm/config.toml. The default config can be viewed with qbpm config default and installed with qbpm config default > "$(qbpm config path)".

Supported options

Several options support interpolation of variables like the profile name, which are documented in the default config file.

config_py_template

Controls the contents of config.py in new profiles.

symlink_autoconfig

Symlink qutebrowser's autoconfig.yml in new profiles.

profile_directory and qutebrowser_config_directory

Equivalent to --profile-dir and --qutebrowser-config-dir .

generate_desktop_file and desktop_file_directory

Whether to generate XDG desktop entries for the profiles and where to put them.

menu and menu_prompt

Equivalent to qbpm choose's --menu, and the text of prompt that is shown in most menus.

Other changes

  • support for symlinking autoconfig.yml in addition to or instead of sourcing config.py
  • qbpm new --overwrite: back up existing config files by moving to e.g. config.py.bak
  • qbpm new now supports --desktop-file in addition to --no-desktop-file to support overriding the value from config
  • contrib/qbpm.desktop: add MimeType and Keywords, fix incorrect formatting of Categories
  • macOS: fix detection of qutebrowser binary in /Applications
  • tests for config, which means more tests for most parts of the codebase

And last but not least, the --help text is slightly wider to avoid awkward line breaks. Before:

Usage: qbpm new [OPTIONS] PROFILE_NAME [HOME_PAGE]

  Create a new profile.

Options:
  -C, --qutebrowser-config-dir DIRECTORY
                                  Location of the qutebrowser config to
                                  inherit from.
  -l, --launch                    Launch the profile.
  -f, --foreground                If --launch is set, run qutebrowser in the
                                  foreground.
  --no-desktop-file               Do not generate an XDG desktop entry for the
                                  profile.
  --overwrite                     Replace the current profile configuration if
                                  it exists.
  -h, --help                      Show this message and exit.

After:

Usage: qbpm new [OPTIONS] PROFILE_NAME [HOME_PAGE]

  Create a new profile.

Options:
  -C, --qutebrowser-config-dir DIRECTORY
                                  Location of the qutebrowser config to source.
  -l, --launch                    Launch the profile.
  -f, --foreground                If --launch is set, run qutebrowser in the foreground.
  --desktop-file / --no-desktop-file
                                  Generate an XDG desktop entry for the profile.
  --overwrite                     Replace the current profile configuration if it exists.
  -h, --help                      Show this message and exit.

Much better, right?

Full Changelog: 1.0...2.0

qbpm v1.0

26 Jul 01:00

Choose a tag to compare

1.0!

Over the last three and a half years I've been going back and forth on whether I should implement a config system and/or icon support before officially releasing qbpm 1.0. In the meantime though there have been a lot of smaller improvements to qbpm, particularly in error handling, documentation, and testing, so I decided to finally put an end to the scope creep and cut a 1.0 release without any headline features. Instead this should considered a long-overdue polish and stabilization release, with the new stuff coming in future releases, hopefully in the not-too-distant future!

Highlights

qbpm is on PyPI now, so running qbpm can be as simple as uvx qbpm!

Features

  • qbpm edit PROFILE_NAME: open the profile's config.py in your default editor ($VISUAL/$EDITOR)
  • new/from-session: add -C/--qutebrowser-config-dir to source config files from arbitrary locations
  • choose: built in support for many more menus
    • notably it's now possible to use fzf
    • check $DISPLAY and $WAYLAND_DISPLAY to decide which menu to use by default
  • choose: include a qutebrowser entry to launch qutebrowser without any profiles

Improvements

  • new/from-session: check for qutebrowser config in more locations (improves macOS support)
  • generated .desktop files more closely match qutebrowser's
  • improve shell completions for fish
  • add generated shell completions for bash and zsh

Internal

  • the codebase is almost entirely statically typed
  • more tests, especially for choose
  • adopt pyproject.toml
  • automatically publish releases to PyPI using gh-action-pypi-publish
  • switch to click for command line parsing
  • replace pyxdg with xdg-base-dirs and custom .desktop file generation

Other

  • wrote a man page
  • qbpm might work on windows now, but I can't test for myself. Bug reports are welcome if you try it out and run into problems
    • qbpm choose probably won't be able to find a menu though
  • better handling of edge cases, errors, and bad inputs in general

See the changelog for more.

Roadmap

v2.0

Support for a config file (~/.config/qbpm/config.toml) to configure the template used to generate config.py, default menu for choose, and other settings.

v3.0

Support downloading website favicons to use as application icons and in qbpm choose (for menus that support rofi's extended dmenu spec).

v1.0-rc3

10 Jun 00:32

Choose a tag to compare

v1.0-rc3 Pre-release
Pre-release

Mostly refactors.

Changelog:

  • breaking: stop sourcing files from ~/.config/qutebrowser/conf.d/
    • this was undocumented, nonstandard, and didn't work as well as it could
  • switch to pyproject.toml
  • hopefully use the right qutebrowser dirs on Windows
  • choose: add qutebrowser menu item for the main qutebrowser profile
  • added -C argument to support referencing qutebrowser configs other than the one in ~/.config
  • added click-generated completions for bash and zsh
  • added option support to fish completions
  • removed --create from qbpm launch
  • make generated .desktop files match qutebrowser's more closely

Full Changelog: 1.0-rc2...1.0-rc3

v1.0-rc2

06 Mar 03:54

Choose a tag to compare

v1.0-rc2 Pre-release
Pre-release
  • moved argument handling to click
  • qbpm launch's -n/--new renamed to -c/--create
  • choose: try fzf if no graphical launchers are available

Full Changelog: 1.0-rc1...1.0-rc2

v1.0-rc1

30 Dec 04:52

Choose a tag to compare

v1.0-rc1 Pre-release
Pre-release

Full Changelog: 0.6...1.0-rc1