No description
  • QML 95.4%
  • Nix 4.6%
Find a file
2026-04-23 19:24:04 +02:00
nix Add theming support 2026-04-23 19:24:04 +02:00
src Add theming support 2026-04-23 19:24:04 +02:00
themes Add theming support 2026-04-23 19:24:04 +02:00
.gitignore Move to own repo 2026-04-22 21:00:03 +02:00
flake.lock Move to own repo 2026-04-22 21:00:03 +02:00
flake.nix Move to own repo 2026-04-22 21:00:03 +02:00
README.md Add theming support 2026-04-23 19:24:04 +02:00
sample-config.json Add theming support 2026-04-23 19:24:04 +02:00

KShell

Name to be decided. Who are we kidding. Its staying this forever.

Running

To start the shell create a configuration file following the format of sample-config.json and place its full path in the KSHELL_CONFIG environment variable. Then launch quickshell, optionally with -p path/to/src if its not stored in $HOME/.config/quickshell.

To customize the theme you can copy and modify one of the provided example themes in themes and provide its full path in the KSHELL_THEME environment variable.

Nix flake

Add the following input to your flake.nix:

kshell.url = "git+https://git.kallestruik.nl/kalle/kshell";
kshell.inputs.nixpkgs.follows = "nixpkgs";

The package is available at kshell.packages.<system>.default.

Development

File structure

Widgets/ - All widgets that can be used in panels Widgets/BaseWidget.qml - Basic implementation of a widget. All other widgets should use this Widgets/WidgetByName.qml - Loader to load a widget by its name. New widgets need to be added here Singletons/ - Shared singletons Singletons/Theme.qml - Global theming constants Singletons/Settings.qml - Singleton responsible for loading the config file Components/ - Shared UI components assets/ - Non-code assets like fonts Bar.qml - General bar implementation Notifications.qml - Notification popup shell.qml - Entrypoint

Useful information

  • Directories can be imported relative to the project root using import qs.<path>, for example import qs.Widgets for the Widgets directory.
  • Environment variables can be accessed by using Quickshell.env("ENV_NAME_HERE").