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.
@@ -36,6 +36,11 @@ _: {
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Container & Packaging
|
||||
@@ -70,7 +75,7 @@ _: {
|
||||
signal.enable = true; # Signal: secure messaging app
|
||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
||||
ferdium.enable = false; # Ferdium: All your services in one place built by the community
|
||||
notify.enable = true; # notify-client: Ntfy client application to receive everyday's notifications
|
||||
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
|
||||
@@ -42,20 +42,21 @@
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
# stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
||||
#stylixImage = "DW_Pacts.jpg";
|
||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
||||
#stylixImage = "fire-nation.jpg";
|
||||
#stylixImage = "four-elements.jpg";
|
||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
||||
#stylixImage = "jablon.jpg";
|
||||
#stylixImage = "rammstein-log-two.jpg";
|
||||
#stylixImage = "rammstein-logo-one.jpg";
|
||||
#stylixImage = "rammstein-logo-three.jpg";
|
||||
#stylixImage = "rammstein-one.jpg";
|
||||
#stylixImage = "1346530.jpeg";
|
||||
stylixImage = "The-Southern-Raiders.jpg";
|
||||
stylixImage = "Attack-on-Titan-1.jpg";
|
||||
# stylixImage = "Attack-on-Titan-2.jpg";
|
||||
# stylixImage = "Attack-on-Titan-3.jpg";
|
||||
# stylixImage = "Avatar-1.jpg";
|
||||
# stylixImage = "Avatar-2.jpg";
|
||||
# stylixImage = "Avatar-3.png";
|
||||
# stylixImage = "Avatar-4.jpg";
|
||||
# stylixImage = "Edge-of-Tomorrow-1.jpg";
|
||||
# stylixImage = "Friren-1.jpg";
|
||||
# stylixImage = "Friren-2.jpg";
|
||||
# stylixImage = "Friren-3.jpg";
|
||||
# stylixImage = "Jablon.png";
|
||||
# stylixImage = "Song-of-the-Sea-1.jpg";
|
||||
# stylixImage = "Wolfwalkers-1.jpg";
|
||||
# stylixImage = "Wolfwalkers-2.jpg";
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
|
||||
@@ -36,6 +36,11 @@ _: {
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Container & Packaging
|
||||
|
||||
@@ -39,20 +39,21 @@
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
# stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
||||
#stylixImage = "DW_Pacts.jpg";
|
||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
||||
#stylixImage = "fire-nation.jpg";
|
||||
#stylixImage = "four-elements.jpg";
|
||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
||||
#stylixImage = "jablon.jpg";
|
||||
#stylixImage = "rammstein-log-two.jpg";
|
||||
#stylixImage = "rammstein-logo-one.jpg";
|
||||
#stylixImage = "rammstein-logo-three.jpg";
|
||||
#stylixImage = "rammstein-one.jpg";
|
||||
#stylixImage = "1346530.jpeg";
|
||||
stylixImage = "The-Southern-Raiders.jpg";
|
||||
stylixImage = "Attack-on-Titan-1.jpg";
|
||||
# stylixImage = "Attack-on-Titan-2.jpg";
|
||||
# stylixImage = "Attack-on-Titan-3.jpg";
|
||||
# stylixImage = "Avatar-1.jpg";
|
||||
# stylixImage = "Avatar-2.jpg";
|
||||
# stylixImage = "Avatar-3.png";
|
||||
# stylixImage = "Avatar-4.jpg";
|
||||
# stylixImage = "Edge-of-Tomorrow-1.jpg";
|
||||
# stylixImage = "Friren-1.jpg";
|
||||
# stylixImage = "Friren-2.jpg";
|
||||
# stylixImage = "Friren-3.jpg";
|
||||
# stylixImage = "Jablon.png";
|
||||
# stylixImage = "Song-of-the-Sea-1.jpg";
|
||||
# stylixImage = "Wolfwalkers-1.jpg";
|
||||
# stylixImage = "Wolfwalkers-2.jpg";
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
|
||||
@@ -36,6 +36,11 @@ _: {
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Container & Packaging
|
||||
|
||||
@@ -48,20 +48,21 @@
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
||||
#stylixImage = "DW_Pacts.jpg";
|
||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
||||
#stylixImage = "fire-nation.jpg";
|
||||
#stylixImage = "four-elements.jpg";
|
||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
||||
#stylixImage = "jablon.jpg";
|
||||
#stylixImage = "rammstein-log-two.jpg";
|
||||
#stylixImage = "rammstein-logo-one.jpg";
|
||||
#stylixImage = "rammstein-logo-three.jpg";
|
||||
#stylixImage = "rammstein-one.jpg";
|
||||
#stylixImage = "1346530.jpeg";
|
||||
#stylixImage = "The-Southern-Raiders.jpg";
|
||||
stylixImage = "Attack-on-Titan-1.jpg";
|
||||
# stylixImage = "Attack-on-Titan-2.jpg";
|
||||
# stylixImage = "Attack-on-Titan-3.jpg";
|
||||
# stylixImage = "Avatar-1.jpg";
|
||||
# stylixImage = "Avatar-2.jpg";
|
||||
# stylixImage = "Avatar-3.png";
|
||||
# stylixImage = "Avatar-4.jpg";
|
||||
# stylixImage = "Edge-of-Tomorrow-1.jpg";
|
||||
# stylixImage = "Friren-1.jpg";
|
||||
# stylixImage = "Friren-2.jpg";
|
||||
# stylixImage = "Friren-3.jpg";
|
||||
# stylixImage = "Jablon.png";
|
||||
# stylixImage = "Song-of-the-Sea-1.jpg";
|
||||
# stylixImage = "Wolfwalkers-1.jpg";
|
||||
# stylixImage = "Wolfwalkers-2.jpg";
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
{
|
||||
pkgs,
|
||||
host,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) stylixImage;
|
||||
in {
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
kernelModules = ["v4l2loopback"];
|
||||
@@ -17,7 +20,7 @@
|
||||
enable = true;
|
||||
style = {
|
||||
wallpapers = [
|
||||
./../../wallpapers/attack-on-titan-mikasa-ackerman.jpg
|
||||
./../../wallpapers/${stylixImage}
|
||||
];
|
||||
wallpaperStyle = lib.mkForce "centered";
|
||||
backdrop = "${config.stylix.base16Scheme.base00}";
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
./tailscale.nix
|
||||
./thunar.nix
|
||||
./user.nix
|
||||
./ventoy.nix
|
||||
./virtualbox.nix
|
||||
./xdg.nix
|
||||
./xserver.nix
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.ventoy.enable = lib.mkEnableOption "Enable Ventoy";
|
||||
|
||||
config = lib.mkIf config.ventoy.enable {
|
||||
environment.systemPackages = with pkgs; [ventoy-full-gtk];
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"ventoy-gtk3-1.1.12"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -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\""
|
||||
|
||||
@@ -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 -
|
||||
''
|
||||
|
Before Width: | Height: | Size: 2.8 MiB |
|
Before Width: | Height: | Size: 3.4 MiB After Width: | Height: | Size: 3.4 MiB |
|
After Width: | Height: | Size: 644 KiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 514 KiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 2.7 MiB |
|
After Width: | Height: | Size: 2.1 MiB |
|
After Width: | Height: | Size: 832 KiB |
|
After Width: | Height: | Size: 1.8 MiB |
|
After Width: | Height: | Size: 6.2 MiB |
|
Before Width: | Height: | Size: 7.4 MiB |
|
After Width: | Height: | Size: 8.9 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 3.3 MiB |
|
After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 868 KiB |
|
Before Width: | Height: | Size: 396 KiB |
|
Before Width: | Height: | Size: 208 KiB |
|
Before Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 809 KiB |
|
Before Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 269 KiB |
|
Before Width: | Height: | Size: 430 KiB |