Quickshell 0.1 has been released
"Releasing 0.1 in two weeks" - Me, June 2024
Up until this point I’ve been putting off tagging a Quickshell release, as there’s always been just one more thing to get merged; however Soramane’s excellent rice has led to a huge surge in attention for the project. For the sake of easy migration in the future, and the ability to make more breaking changes, the tag has been made.
With the tag, we can finally start the work to get upstream distro packages, and provide useful migration guides into the future. The distro package is especially important for Arch Linux as it is impossible to make a reliable AUR package1.
Note that future tagged updates will have API breaks. If you intend to distribute a configuration to many users you should read the relevant section of the guide.
Migrating to 0.1
Good news! You’re already on it if you’ve updated recently, and no changes are required.
At this point you should decide if you want to follow Quickshell’s master branch or stick to the tag. Quickshell’s API surface is still very much not stable, so if you stay on master, you should expect the occasional breaking change when you update. Anyone comfortable with that is encouraged to keep following the master branch and test the latest changes early.
Packaging changes
Nix
The Nix in-tree package will track its commit on the master branch as usual.
To use the tagged relese, add ?ref=v0.1.0
to the end of the url, e.g. git+https://git.outfoxxed.me/outfoxxed/quickshell?ref=v0.1.0
.
Arch
The quickshell
aur package previously tracked the master branch. It now tracks the latest tag, while the new quickshell-git
package tracks the master branch.
Fedora
The COPR now contains both quickshell
and quickshell-git
packages. As with arch, quickshell
now tracks the latest tag while the new quickshell-git
tracks the master branch.
Looking forward
A great number of changes are planned for 0.2 and beyond!
Future plans include, in no particular order:
- Unifying the window system interfaces, such as the Toplevel interface and window manager IPC interfaces. Following the unification, configurations should work much more easily on more than one WM at once.
- Getting Shell Protocols implemented in a couple compositors and Quickshell itself, hopefully becoming a standard.
- Replacing Qt’s Image type to reduce memory usage and remove some footguns, as well as add native support for corner radius and such.
- Builtin modules for Bluetooth and Networking backed by Bluez, NetworkManager, and potentially IWD.
- Builtin module for system stats such as CPU and RAM usage.
- Builtin module for display brightness control.
- Point and click dev tools similar to those found in a browser.
- Replacing root:// URIs with something the QML LSP can understand.
- Improving launch and hot-reload times by supporting QML disk caches.
- Support for automatic shader compilation and reloading (no more running
qsb
). - Support for implementing various system UI like Polkit agents and Clipboard Managers.
As well as fleshing out the documentation and examples, which are currently rather lacking.
Footnotes
Unfortunately, it isn’t possible to indicate that a rebuild of a dependency should trigger a rebuild of a package in the AUR. Quickshell depends on private Qt interfaces and Google Breakpad, both of which have ABI breaks. We’ve had to resort to pacman hooks that ask users to rebuild, and even those can’t be triggered reliably. ↩