Add Ventoy support and refactor wallpaper handling

Introduce a `ventoy.enable` option (default false) and import the new
`modules/core/ventoy.nix` in the core module list. All host
`system-modules.nix` files now disable Ventoy explicitly.

Make the boot wallpaper configurable by importing `stylixImage` from the
host’s `variables.nix` and using it in `modules/core/boot.nix`.

Update each host’s `variables.nix` to set a default wallpaper and keep
many alternatives commented out.

Remove the obsolete `restart.noctalia` and `screenshootin` scripts,
their Nix wrappers, and the related Hyprland keybinding.

Add a collection of new wallpaper files and delete the old, unused
images.
This commit is contained in:
2026-05-14 01:57:29 +02:00
parent 616adf696b
commit b9b932e990
41 changed files with 83 additions and 130 deletions
+1 -1
View File
@@ -42,7 +42,7 @@
"SUPER SHIFT, N, exec, nextcloud #\"Nextcloud desktop sync client\""
"SUPER SHIFT, O, exec, obs #\"Open Broadcaster Software\""
"SUPER SHIFT, P, exec, noctalia-shell ipc call volume togglePanel #\"Toggle volume control panel\""
"SUPER SHIFT, R, exec, restart.noctalia #\"Restart Noctalia shell\""
# "SUPER SHIFT, R, exec, restart.noctalia #\"Restart Noctalia shell\""
"SUPER SHIFT, Return, exec, noctalia-shell ipc call launcher toggle #\"Toggle application launcher\""
"SUPER SHIFT, S, exec, screenshootin #\"Take screenshot\""
"SUPER SHIFT, T, exec, tutanota-desktop #\"Tutanota encrypted email client\""
-2
View File
@@ -1,7 +1,5 @@
{pkgs, ...}: {
home.packages = [
(import ./nvidia-offload.nix {inherit pkgs;})
(import ./restart.noctalia.nix {inherit pkgs;})
(import ./screenshootin.nix {inherit pkgs;})
];
}
-54
View File
@@ -1,54 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
# Restart the Noctalia QuickShell session by terminating only the noctalia-shell
# processes, avoiding any signals to unrelated process groups (e.g. Hyprland).
log() { printf "[restart.noctalia] %s\n" "$*"; }
list_target_pids() {
# Collect only PIDs whose command explicitly runs noctalia-shell
# - direct wrapper: ".../noctalia-shell"
# - quickshell/qs with "-c noctalia-shell"
ps -eo pid=,cmd= \
| ${GREP:-grep} -E "(^|/)(noctalia-shell)( |$)|(^| )((qs|quickshell))( | ).*-c( |=)?noctalia-shell( |$)" \
| awk '{print $1}'
}
terminate_targets() {
local pids left tries
mapfile -t pids < <(list_target_pids || true)
if ((${#pids[@]} > 0)); then
kill -TERM "${pids[@]}" 2>/dev/null || true
fi
# Wait up to ~3s for clean exit
for tries in {1..15}; do
mapfile -t left < <(list_target_pids || true)
((${#left[@]} == 0)) && break
sleep 0.2
done
# Force kill leftovers only (do not touch anything else)
if ((${#left[@]} > 0)); then
kill -KILL "${left[@]}" 2>/dev/null || true
fi
}
start_noctalia() {
# Prefer the noctalia-shell wrapper to ensure proper env and runtime flags
if command -v noctalia-shell >/dev/null 2>&1; then
nohup setsid noctalia-shell >/dev/null 2>&1 &
elif command -v quickshell >/dev/null 2>&1; then
nohup setsid quickshell -c noctalia-shell >/dev/null 2>&1 &
elif command -v qs >/dev/null 2>&1; then
nohup setsid qs -c noctalia-shell >/dev/null 2>&1 &
else
echo "Error: noctalia-shell/quickshell/qs not found in PATH" >&2
exit 1
fi
}
terminate_targets
start_noctalia
-24
View File
@@ -1,24 +0,0 @@
{pkgs, ...}: let
binPath = pkgs.lib.makeBinPath [
pkgs.coreutils
pkgs.procps
pkgs.psmisc
pkgs.gnugrep
pkgs.findutils
pkgs.util-linux
pkgs.bash
];
script = builtins.readFile ./restart.noctalia;
in
pkgs.writeShellScriptBin "restart.noctalia" ''
set -euo pipefail
export PATH=${binPath}:$PATH
tmp_script=$(mktemp)
trap 'rm -f "$tmp_script"' EXIT
cat > "$tmp_script" <<'BASH_EOF'
${script}
BASH_EOF
chmod +x "$tmp_script"
exec ${pkgs.bash}/bin/bash "$tmp_script" "$@"
''
-4
View File
@@ -1,4 +0,0 @@
{pkgs}:
pkgs.writeShellScriptBin "screenshootin" ''
grim -g "$(slurp)" - | swappy -f -
''