- QML 95.4%
- Nix 4.6%
| nix | ||
| src | ||
| themes | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
| sample-config.json | ||
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 exampleimport qs.Widgetsfor theWidgetsdirectory. - Environment variables can be accessed by using
Quickshell.env("ENV_NAME_HERE").