Nix wrapper for Quickshell configurations.
Warning
This is early in development; the API is subject to change.
Add the input to your flake
mqsw.url = "github:RANKSHANK/mqsw";Note
Flakes are not required. However this example assumes they are being used.
MQSW can then be used to package your configure your package. See the minimal example flake.
Note that the quckshell and sources.local values need to be populated.
DevMode uses by a temporary unionfs-fuse combining the sources.local.impure directory with sources.packaged sources in the nix store. Changes to any file in the sources.local.impure directory will automatically restart1 the launched Quickshell instance.
Devmode can be accessed as an attribute of your wrapped package, for example:
(inputs)Note
DevMode requires the programs.fuse.enable option to be set to true. This is the default value and will not require user intervention unless it has been manually disabled by your user configuration.
Warning
Crashes may result in dangling fuse mounts. These are directories located in the /tmp/mqsw directory and are trivial to clean up with the commands fusermount -uz /tmp/mqsw/unionfs-XXXXXXXX ; rmdir /tmp/mqsw/unionfs-XXXXXXXX where XXXXXXXX is a unique directory hash. For those skimming, fuse mounts are only present in devMode.
Tip
The /tmp/mqsw/unionfs-XXXXXXXX directory can be directly viewed while devMode is running to see the structure of the Quickshell configuration.
- Docs
- Examples
- Controls to override source placement
- NixOS (SystemD service) module
- Home-Manager?2
- Remove hard requirement for
sources.local
Contributions welcome. Code to be formatted with Alejandra, made easily available via flake the using nix fmt ..
MQSW is a shamelessly mutilated adaptation of Gerg-L/mnw.
Footnotes
-
inotifywait is used to watch the
sources.local.impuredirectory to force restart Quickshell, since watching the unionfs directory doesn't trigger watches. ↩ -
Likely as a systemd unit. This packages the configuration in the nix store meaning it is a contradictory strategy to linking to the home directory. ↩