Add Noctalia shell with Quickshell overview

- Add `noctalia` input to flake and lock it in `flake.lock`.
- Include `noctalia` and `quickshell` modules in `flake.nix`.
- Extend core packages to accept `inputs` and `system`; add
  `quickshell.nix`
  with required Qt6 packages and environment variables.
- Enable `upower` service for battery handling.
- Add home modules `noctalia.nix` and `overview.nix` (QML UI, README,
  assets, widgets, services) to provide a workspace overview.
- Comment out unused rofi and web‑search binds; update `exec‑once` to
  start
  the overview daemon and `noctalia-shell`.
- Provide `restart.noctalia` script and its Nix wrapper.
- Enable `noctalia-shell` in `stylix` configuration.
This commit is contained in:
2026-02-02 01:57:56 +01:00
parent 51ad90dc9c
commit 8ccb9205bf
35 changed files with 1524 additions and 10 deletions

28
modules/home/noctalia.nix Normal file
View File

@@ -0,0 +1,28 @@
{
pkgs,
inputs,
system,
lib,
...
}: let
noctalia = inputs.noctalia.packages.${system}.default;
configDir = "${noctalia}/share/noctalia-shell";
in {
home = {
packages = with pkgs; [
noctalia
quickshell # Ensure quickshell is available for the service
];
activation.seedNoctaliaShellCode = lib.hm.dag.entryAfter ["writeBoundary"] ''
set -eu
DEST="$HOME/.config/quickshell/noctalia-shell"
SRC="${configDir}"
if [ ! -d "$DEST" ]; then
$DRY_RUN_CMD mkdir -p "$HOME/.config/quickshell"
$DRY_RUN_CMD cp -R "$SRC" "$DEST"
$DRY_RUN_CMD chmod -R u+rwX "$DEST"
fi
'';
};
}