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:
@@ -1,7 +1,5 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = [
|
||||
(import ./nvidia-offload.nix {inherit pkgs;})
|
||||
(import ./restart.noctalia.nix {inherit pkgs;})
|
||||
(import ./screenshootin.nix {inherit pkgs;})
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -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" "$@"
|
||||
''
|
||||
@@ -1,4 +0,0 @@
|
||||
{pkgs}:
|
||||
pkgs.writeShellScriptBin "screenshootin" ''
|
||||
grim -g "$(slurp)" - | swappy -f -
|
||||
''
|
||||
Reference in New Issue
Block a user