desktop: remove noctalia and caelestia shells
This commit is contained in:
@@ -6,9 +6,6 @@ default_shell_ui="${IM_HYPRLAND_SHELL_UI:-taffybar}"
|
|||||||
|
|
||||||
normalize_shell_ui() {
|
normalize_shell_ui() {
|
||||||
case "${1:-}" in
|
case "${1:-}" in
|
||||||
noctalia)
|
|
||||||
printf '%s\n' "noctalia"
|
|
||||||
;;
|
|
||||||
taffybar|rofi)
|
taffybar|rofi)
|
||||||
printf '%s\n' "taffybar"
|
printf '%s\n' "taffybar"
|
||||||
;;
|
;;
|
||||||
@@ -43,14 +40,7 @@ apply_shell_ui() {
|
|||||||
systemctl --user import-environment IM_HYPRLAND_SHELL_UI 2>/dev/null || true
|
systemctl --user import-environment IM_HYPRLAND_SHELL_UI 2>/dev/null || true
|
||||||
|
|
||||||
case "$shell_ui" in
|
case "$shell_ui" in
|
||||||
noctalia)
|
|
||||||
systemctl --user stop taffybar.service 2>/dev/null || true
|
|
||||||
systemctl --user reset-failed taffybar.service 2>/dev/null || true
|
|
||||||
systemctl --user start noctalia-shell.service
|
|
||||||
;;
|
|
||||||
taffybar)
|
taffybar)
|
||||||
systemctl --user stop noctalia-shell.service 2>/dev/null || true
|
|
||||||
systemctl --user reset-failed noctalia-shell.service 2>/dev/null || true
|
|
||||||
systemctl --user start taffybar.service
|
systemctl --user start taffybar.service
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -59,7 +49,7 @@ apply_shell_ui() {
|
|||||||
set_shell_ui() {
|
set_shell_ui() {
|
||||||
local shell_ui
|
local shell_ui
|
||||||
shell_ui="$(normalize_shell_ui "${1:-}")" || {
|
shell_ui="$(normalize_shell_ui "${1:-}")" || {
|
||||||
echo "usage: desktop_shell_ui set {taffybar|noctalia}" >&2
|
echo "usage: desktop_shell_ui set taffybar" >&2
|
||||||
exit 2
|
exit 2
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,10 +65,7 @@ case "${1:-current}" in
|
|||||||
set_shell_ui "${2:-}"
|
set_shell_ui "${2:-}"
|
||||||
;;
|
;;
|
||||||
toggle)
|
toggle)
|
||||||
case "$(current_shell_ui)" in
|
set_shell_ui taffybar
|
||||||
noctalia) set_shell_ui taffybar ;;
|
|
||||||
*) set_shell_ui noctalia ;;
|
|
||||||
esac
|
|
||||||
;;
|
;;
|
||||||
apply)
|
apply)
|
||||||
apply_shell_ui "$(current_shell_ui)"
|
apply_shell_ui "$(current_shell_ui)"
|
||||||
|
|||||||
@@ -9,15 +9,8 @@ fi
|
|||||||
|
|
||||||
shell_ui="${shell_ui:-${IM_HYPRLAND_SHELL_UI:-taffybar}}"
|
shell_ui="${shell_ui:-${IM_HYPRLAND_SHELL_UI:-taffybar}}"
|
||||||
|
|
||||||
run_noctalia() {
|
|
||||||
noctalia-shell ipc --any-display call "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
run_launcher() {
|
run_launcher() {
|
||||||
case "$shell_ui" in
|
case "$shell_ui" in
|
||||||
noctalia)
|
|
||||||
run_noctalia launcher toggle
|
|
||||||
;;
|
|
||||||
taffybar|rofi)
|
taffybar|rofi)
|
||||||
exec rofi -show drun -show-icons
|
exec rofi -show drun -show-icons
|
||||||
;;
|
;;
|
||||||
@@ -39,12 +32,6 @@ run_window_picker() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [[ "$shell_ui" == "noctalia" && "${IM_HYPRLAND_NOCTALIA_WINDOW_PICKER:-0}" == "1" ]]; then
|
|
||||||
# Future Noctalia launcher-provider hook. Until that plugin exists or if it
|
|
||||||
# fails to load, keep the existing rofi picker as the working path.
|
|
||||||
run_noctalia "plugin:hypr-window-picker" "$mode" 2>/dev/null && exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec hypr_rofi_window "$mode"
|
exec hypr_rofi_window "$mode"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,15 +43,9 @@ case "${1:-}" in
|
|||||||
exec rofi -show run
|
exec rofi -show run
|
||||||
;;
|
;;
|
||||||
control-center)
|
control-center)
|
||||||
if [[ "$shell_ui" == "noctalia" ]]; then
|
|
||||||
run_noctalia controlCenter toggle || true
|
|
||||||
fi
|
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
settings)
|
settings)
|
||||||
if [[ "$shell_ui" == "noctalia" ]]; then
|
|
||||||
run_noctalia settings toggle || true
|
|
||||||
fi
|
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
window)
|
window)
|
||||||
|
|||||||
@@ -35,13 +35,11 @@
|
|||||||
./laptop.nix
|
./laptop.nix
|
||||||
./nix.nix
|
./nix.nix
|
||||||
./notifications-tray-icon.nix
|
./notifications-tray-icon.nix
|
||||||
./noctalia.nix
|
|
||||||
./nvidia.nix
|
./nvidia.nix
|
||||||
./options.nix
|
./options.nix
|
||||||
./plasma.nix
|
./plasma.nix
|
||||||
./postgres.nix
|
./postgres.nix
|
||||||
./rabbitmq.nix
|
./rabbitmq.nix
|
||||||
./quickshell.nix
|
|
||||||
./remote-hyprland.nix
|
./remote-hyprland.nix
|
||||||
./river-xmonad.nix
|
./river-xmonad.nix
|
||||||
./secrets.nix
|
./secrets.nix
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ in
|
|||||||
// {
|
// {
|
||||||
options = lib.recursiveUpdate enabledModule.options {
|
options = lib.recursiveUpdate enabledModule.options {
|
||||||
myModules.desktop.shellUi = lib.mkOption {
|
myModules.desktop.shellUi = lib.mkOption {
|
||||||
type = lib.types.enum ["noctalia" "taffybar"];
|
type = lib.types.enum ["taffybar"];
|
||||||
default = "taffybar";
|
default = "taffybar";
|
||||||
description = ''
|
description = ''
|
||||||
Desktop shell UI used by Hyprland-oriented bindings. This controls
|
Desktop shell UI used by Hyprland-oriented bindings. This controls
|
||||||
|
|||||||
152
nixos/flake.lock
generated
152
nixos/flake.lock
generated
@@ -60,52 +60,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"caelestia-cli": {
|
|
||||||
"inputs": {
|
|
||||||
"caelestia-shell": [
|
|
||||||
"caelestia-shell"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"caelestia-shell",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1777470967,
|
|
||||||
"narHash": "sha256-u8QP1TYolV6BR0qsK2NHY1qZ/PdNAgrVxUcSDZdl35Q=",
|
|
||||||
"owner": "caelestia-dots",
|
|
||||||
"repo": "cli",
|
|
||||||
"rev": "5c9ce66c031788df50bbfbea195bf773ddbf92bc",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "caelestia-dots",
|
|
||||||
"repo": "cli",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"caelestia-shell": {
|
|
||||||
"inputs": {
|
|
||||||
"caelestia-cli": "caelestia-cli",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"quickshell": "quickshell"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1777688289,
|
|
||||||
"narHash": "sha256-2EaEVkT1oUpjLLp7uEY/hDYDOa2k5R1YgcJpHei+lUM=",
|
|
||||||
"owner": "caelestia-dots",
|
|
||||||
"repo": "shell",
|
|
||||||
"rev": "4e9e1f4b723f7e3a87cb280d67a25ee92c87fbff",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "caelestia-dots",
|
|
||||||
"repo": "shell",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"claude-code-nix": {
|
"claude-code-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": [
|
"flake-utils": [
|
||||||
@@ -1523,50 +1477,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"noctalia": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"noctalia-qs": "noctalia-qs"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1777427472,
|
|
||||||
"narHash": "sha256-kqcfLdxb+CqTroMErCScvx6YQcZYJcf6X+z5I8kBJK8=",
|
|
||||||
"owner": "noctalia-dev",
|
|
||||||
"repo": "noctalia-shell",
|
|
||||||
"rev": "9f8dd48c8df5ab1f7f87ddf9842627e1e5682186",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "noctalia-dev",
|
|
||||||
"repo": "noctalia-shell",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"noctalia-qs": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"noctalia",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": "systems_2",
|
|
||||||
"treefmt-nix": "treefmt-nix"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1777380063,
|
|
||||||
"narHash": "sha256-q5mWOEICcZzr+KnjIwDHV9EXiBxOC9cnBpxZbDAViU8=",
|
|
||||||
"owner": "noctalia-dev",
|
|
||||||
"repo": "noctalia-qs",
|
|
||||||
"rev": "8742a7a748c43bf44eb6862a8ebd3591ed71502d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "noctalia-dev",
|
|
||||||
"repo": "noctalia-qs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notifications-tray-icon": {
|
"notifications-tray-icon": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": [
|
"flake-utils": [
|
||||||
@@ -1731,27 +1641,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"quickshell": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"caelestia-shell",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1777341401,
|
|
||||||
"narHash": "sha256-QEAVYeXxvTamsYJVBq8+qSJV9ml2MxqRaZvkobfuPWA=",
|
|
||||||
"ref": "refs/heads/master",
|
|
||||||
"rev": "0baa81aa03559ca315668e5a306364cddf1a6f49",
|
|
||||||
"revCount": 812,
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"railbird-secrets": {
|
"railbird-secrets": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": [
|
"agenix": [
|
||||||
@@ -1781,7 +1670,6 @@
|
|||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
"caelestia-shell": "caelestia-shell",
|
|
||||||
"claude-code-nix": "claude-code-nix",
|
"claude-code-nix": "claude-code-nix",
|
||||||
"codex-cli-nix": "codex-cli-nix",
|
"codex-cli-nix": "codex-cli-nix",
|
||||||
"codex-desktop-linux": "codex-desktop-linux",
|
"codex-desktop-linux": "codex-desktop-linux",
|
||||||
@@ -1806,11 +1694,10 @@
|
|||||||
"nixos-wsl": "nixos-wsl",
|
"nixos-wsl": "nixos-wsl",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"nixtheplanet": "nixtheplanet",
|
"nixtheplanet": "nixtheplanet",
|
||||||
"noctalia": "noctalia",
|
|
||||||
"notifications-tray-icon": "notifications-tray-icon",
|
"notifications-tray-icon": "notifications-tray-icon",
|
||||||
"org-agenda-api": "org-agenda-api",
|
"org-agenda-api": "org-agenda-api",
|
||||||
"railbird-secrets": "railbird-secrets",
|
"railbird-secrets": "railbird-secrets",
|
||||||
"systems": "systems_3",
|
"systems": "systems_2",
|
||||||
"taffybar": "taffybar",
|
"taffybar": "taffybar",
|
||||||
"vscode-server": "vscode-server",
|
"vscode-server": "vscode-server",
|
||||||
"xmonad": "xmonad",
|
"xmonad": "xmonad",
|
||||||
@@ -1888,21 +1775,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_2": {
|
"systems_2": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1689347949,
|
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default-linux",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_3": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
@@ -1944,28 +1816,6 @@
|
|||||||
"type": "path"
|
"type": "path"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"noctalia",
|
|
||||||
"noctalia-qs",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1775636079,
|
|
||||||
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"vscode-server": {
|
"vscode-server": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": [
|
"flake-utils": [
|
||||||
|
|||||||
@@ -236,15 +236,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
caelestia-shell = {
|
|
||||||
url = "github:caelestia-dots/shell";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
noctalia = {
|
|
||||||
url = "github:noctalia-dev/noctalia-shell";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ {
|
outputs = inputs @ {
|
||||||
@@ -459,7 +450,6 @@
|
|||||||
"https://colonelpanic8-dotfiles.cachix.org"
|
"https://colonelpanic8-dotfiles.cachix.org"
|
||||||
"https://codex-cli.cachix.org"
|
"https://codex-cli.cachix.org"
|
||||||
"https://claude-code.cachix.org"
|
"https://claude-code.cachix.org"
|
||||||
"https://noctalia.cachix.org"
|
|
||||||
];
|
];
|
||||||
extra-trusted-substituters = [
|
extra-trusted-substituters = [
|
||||||
"https://ai.cachix.org"
|
"https://ai.cachix.org"
|
||||||
@@ -481,7 +471,6 @@
|
|||||||
"colonelpanic8-dotfiles.cachix.org-1:O6GF3nptpeMFapX29okzO92eSWXR36zqW6ZF2C8P0eQ="
|
"colonelpanic8-dotfiles.cachix.org-1:O6GF3nptpeMFapX29okzO92eSWXR36zqW6ZF2C8P0eQ="
|
||||||
"codex-cli.cachix.org-1:1Br3H1hHoRYG22n//cGKJOk3cQXgYobUel6O8DgSing="
|
"codex-cli.cachix.org-1:1Br3H1hHoRYG22n//cGKJOk3cQXgYobUel6O8DgSing="
|
||||||
"claude-code.cachix.org-1:YeXf2aNu7UTX8Vwrze0za1WEDS+4DuI2kVeWEE4fsRk="
|
"claude-code.cachix.org-1:YeXf2aNu7UTX8Vwrze0za1WEDS+4DuI2kVeWEE4fsRk="
|
||||||
"noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4="
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
nixosConfigurations =
|
nixosConfigurations =
|
||||||
|
|||||||
@@ -111,7 +111,6 @@
|
|||||||
runtimeInputs = [
|
runtimeInputs = [
|
||||||
pkgs.rofi
|
pkgs.rofi
|
||||||
hyprRofiWindow
|
hyprRofiWindow
|
||||||
inputs.noctalia.packages.${system}.default
|
|
||||||
];
|
];
|
||||||
text = ''
|
text = ''
|
||||||
exec ${../dotfiles/lib/bin/hypr_shell_ui} "$@"
|
exec ${../dotfiles/lib/bin/hypr_shell_ui} "$@"
|
||||||
@@ -160,9 +159,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
enabledModule = makeEnable config "myModules.hyprland" true {
|
enabledModule = makeEnable config "myModules.hyprland" true {
|
||||||
# Install both shell service units so `desktop_shell_ui set ...` can switch
|
|
||||||
# between them at runtime without a NixOS rebuild.
|
|
||||||
myModules.noctalia.enable = lib.mkDefault true;
|
|
||||||
myModules.taffybar.enable = lib.mkDefault true;
|
myModules.taffybar.enable = lib.mkDefault true;
|
||||||
|
|
||||||
# Needed for hyprlock authentication without PAM fallback warnings.
|
# Needed for hyprlock authentication without PAM fallback warnings.
|
||||||
|
|||||||
@@ -22,7 +22,6 @@
|
|||||||
myModules.gitea-runner.enable = false;
|
myModules.gitea-runner.enable = false;
|
||||||
myModules.nvidia.enable = true;
|
myModules.nvidia.enable = true;
|
||||||
myModules.electron.enable = true;
|
myModules.electron.enable = true;
|
||||||
myModules.quickshell.enable = true;
|
|
||||||
myModules.wyoming.enable = false;
|
myModules.wyoming.enable = false;
|
||||||
myModules.tts.enable = true;
|
myModules.tts.enable = true;
|
||||||
myModules."keepbook-sync".enable = true;
|
myModules."keepbook-sync".enable = true;
|
||||||
|
|||||||
@@ -1,85 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
makeEnable,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
system = pkgs.stdenv.hostPlatform.system;
|
|
||||||
noctaliaPackage = inputs.noctalia.packages.${system}.default;
|
|
||||||
waitForWayland = pkgs.writeShellScript "noctalia-wait-for-wayland" ''
|
|
||||||
runtime_dir="''${XDG_RUNTIME_DIR:-/run/user/$(${pkgs.coreutils}/bin/id -u)}"
|
|
||||||
|
|
||||||
for _ in $(${pkgs.coreutils}/bin/seq 1 50); do
|
|
||||||
if [ -n "''${WAYLAND_DISPLAY:-}" ] && [ -S "$runtime_dir/$WAYLAND_DISPLAY" ]; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
${pkgs.coreutils}/bin/sleep 0.1
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Wayland socket not ready: WAYLAND_DISPLAY=''${WAYLAND_DISPLAY:-<unset>} XDG_RUNTIME_DIR=$runtime_dir" >&2
|
|
||||||
exit 1
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
makeEnable config "myModules.noctalia" false {
|
|
||||||
environment.systemPackages = [
|
|
||||||
noctaliaPackage
|
|
||||||
];
|
|
||||||
|
|
||||||
# Noctalia's battery widget talks to UPower. Hosts that deliberately do not
|
|
||||||
# have batteries can still override this back to false.
|
|
||||||
services.upower.enable = lib.mkDefault true;
|
|
||||||
|
|
||||||
home-manager.sharedModules = [
|
|
||||||
inputs.noctalia.homeModules.default
|
|
||||||
({lib, ...}: {
|
|
||||||
programs.noctalia-shell = {
|
|
||||||
enable = true;
|
|
||||||
# This module provides the Hyprland-scoped service below.
|
|
||||||
systemd.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.activation.noctaliaLauncherOverviewLayer = lib.hm.dag.entryAfter ["writeBoundary"] ''
|
|
||||||
settings_file="$HOME/.config/noctalia/settings.json"
|
|
||||||
settings_tmp="$(${pkgs.coreutils}/bin/mktemp)"
|
|
||||||
|
|
||||||
${pkgs.coreutils}/bin/mkdir -p "$(${pkgs.coreutils}/bin/dirname "$settings_file")"
|
|
||||||
|
|
||||||
if [ -e "$settings_file" ] && ${lib.getExe pkgs.jq} -e . "$settings_file" >/dev/null 2>&1; then
|
|
||||||
${lib.getExe pkgs.jq} \
|
|
||||||
'.appLauncher = (.appLauncher // {}) | .appLauncher.overviewLayer = true' \
|
|
||||||
"$settings_file" > "$settings_tmp"
|
|
||||||
${pkgs.coreutils}/bin/mv "$settings_tmp" "$settings_file"
|
|
||||||
else
|
|
||||||
${pkgs.coreutils}/bin/printf '%s\n' \
|
|
||||||
'{' \
|
|
||||||
' "appLauncher": {' \
|
|
||||||
' "overviewLayer": true' \
|
|
||||||
' }' \
|
|
||||||
'}' > "$settings_file"
|
|
||||||
${pkgs.coreutils}/bin/rm -f "$settings_tmp"
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
|
|
||||||
systemd.user.services.noctalia-shell = {
|
|
||||||
Unit = {
|
|
||||||
Description = "Noctalia Shell";
|
|
||||||
Documentation = "https://docs.noctalia.dev";
|
|
||||||
PartOf = ["hyprland-session.target"];
|
|
||||||
After = ["hyprland-session.target"];
|
|
||||||
};
|
|
||||||
|
|
||||||
Service = {
|
|
||||||
ExecCondition = "/run/current-system/sw/bin/desktop_shell_ui exec-condition noctalia";
|
|
||||||
ExecStartPre = "${waitForWayland}";
|
|
||||||
ExecStart = "${lib.getExe noctaliaPackage} --no-duplicate";
|
|
||||||
Restart = "on-failure";
|
|
||||||
RestartSec = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
Install.WantedBy = ["hyprland-session.target"];
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
makeEnable,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
makeEnable config "myModules.quickshell" false {
|
|
||||||
home-manager.sharedModules = [
|
|
||||||
inputs.caelestia-shell.homeManagerModules.default
|
|
||||||
({
|
|
||||||
lib,
|
|
||||||
nixos,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
hyprlandEnabled = lib.attrByPath ["myModules" "hyprland" "enable"] false nixos.config;
|
|
||||||
system = pkgs.stdenv.hostPlatform.system;
|
|
||||||
quickshellBase = inputs.caelestia-shell.inputs.quickshell.packages.${system}.default.override {
|
|
||||||
# GCC 15.2 ICEs on generated NetworkManager DBus sources in
|
|
||||||
# quickshell 0.2.1. Quickshell's own dev shell uses clangStdenv.
|
|
||||||
stdenv = pkgs.clangStdenv;
|
|
||||||
withX11 = false;
|
|
||||||
withI3 = false;
|
|
||||||
};
|
|
||||||
quickshellUnwrapped = quickshellBase.unwrapped.overrideAttrs (old: {
|
|
||||||
# Clang then needs PCH disabled because quickshell's PipeWire target
|
|
||||||
# adds compile flags that do not match the shared PCH target.
|
|
||||||
cmakeFlags = (old.cmakeFlags or []) ++ [(lib.cmakeBool "NO_PCH" true)];
|
|
||||||
});
|
|
||||||
quickshellPackage = quickshellUnwrapped.stdenv.mkDerivation {
|
|
||||||
inherit (quickshellUnwrapped) version meta buildInputs;
|
|
||||||
pname = "${quickshellUnwrapped.pname}-wrapped";
|
|
||||||
nativeBuildInputs = quickshellUnwrapped.nativeBuildInputs ++ [pkgs.qt6.wrapQtAppsHook];
|
|
||||||
dontUnpack = true;
|
|
||||||
dontConfigure = true;
|
|
||||||
dontBuild = true;
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out
|
|
||||||
cp -r ${quickshellUnwrapped}/* $out
|
|
||||||
'';
|
|
||||||
passthru.unwrapped = quickshellUnwrapped;
|
|
||||||
};
|
|
||||||
caelestiaPackage = inputs.caelestia-shell.packages.${system}.with-cli.override {
|
|
||||||
# Caelestia pins app2unit 1.0.3, which no longer builds on this nixpkgs snapshot.
|
|
||||||
app2unit = pkgs.app2unit;
|
|
||||||
quickshell = quickshellPackage;
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
programs.caelestia = {
|
|
||||||
enable = true;
|
|
||||||
package = caelestiaPackage;
|
|
||||||
cli.enable = true;
|
|
||||||
systemd.target = lib.mkDefault (
|
|
||||||
if hyprlandEnabled
|
|
||||||
then "wayland-session@Hyprland.target"
|
|
||||||
else "graphical-session.target"
|
|
||||||
);
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user