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
|
affinity.enable = false; # Affinity: professional graphics suite
|
||||||
|
|
||||||
|
/*
|
||||||
|
Utilities / Misc
|
||||||
|
*/
|
||||||
|
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
|
||||||
|
|
||||||
packages = {
|
packages = {
|
||||||
/*
|
/*
|
||||||
Container & Packaging
|
Container & Packaging
|
||||||
@@ -70,7 +75,7 @@ _: {
|
|||||||
signal.enable = true; # Signal: secure messaging app
|
signal.enable = true; # Signal: secure messaging app
|
||||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
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
|
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
|
Productivity / Knowledge Management
|
||||||
|
|||||||
@@ -42,20 +42,21 @@
|
|||||||
# This will set your color palette
|
# This will set your color palette
|
||||||
# Default background
|
# Default background
|
||||||
# Add new images to ~/garandos/wallpapers
|
# Add new images to ~/garandos/wallpapers
|
||||||
# stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
stylixImage = "Attack-on-Titan-1.jpg";
|
||||||
#stylixImage = "DW_Pacts.jpg";
|
# stylixImage = "Attack-on-Titan-2.jpg";
|
||||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
# stylixImage = "Attack-on-Titan-3.jpg";
|
||||||
#stylixImage = "fire-nation.jpg";
|
# stylixImage = "Avatar-1.jpg";
|
||||||
#stylixImage = "four-elements.jpg";
|
# stylixImage = "Avatar-2.jpg";
|
||||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
# stylixImage = "Avatar-3.png";
|
||||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
# stylixImage = "Avatar-4.jpg";
|
||||||
#stylixImage = "jablon.jpg";
|
# stylixImage = "Edge-of-Tomorrow-1.jpg";
|
||||||
#stylixImage = "rammstein-log-two.jpg";
|
# stylixImage = "Friren-1.jpg";
|
||||||
#stylixImage = "rammstein-logo-one.jpg";
|
# stylixImage = "Friren-2.jpg";
|
||||||
#stylixImage = "rammstein-logo-three.jpg";
|
# stylixImage = "Friren-3.jpg";
|
||||||
#stylixImage = "rammstein-one.jpg";
|
# stylixImage = "Jablon.png";
|
||||||
#stylixImage = "1346530.jpeg";
|
# stylixImage = "Song-of-the-Sea-1.jpg";
|
||||||
stylixImage = "The-Southern-Raiders.jpg";
|
# stylixImage = "Wolfwalkers-1.jpg";
|
||||||
|
# stylixImage = "Wolfwalkers-2.jpg";
|
||||||
|
|
||||||
# Set network hostId if required (needed for zfs)
|
# Set network hostId if required (needed for zfs)
|
||||||
# Otherwise leave as-is
|
# Otherwise leave as-is
|
||||||
|
|||||||
@@ -36,6 +36,11 @@ _: {
|
|||||||
*/
|
*/
|
||||||
affinity.enable = false; # Affinity: professional graphics suite
|
affinity.enable = false; # Affinity: professional graphics suite
|
||||||
|
|
||||||
|
/*
|
||||||
|
Utilities / Misc
|
||||||
|
*/
|
||||||
|
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
|
||||||
|
|
||||||
packages = {
|
packages = {
|
||||||
/*
|
/*
|
||||||
Container & Packaging
|
Container & Packaging
|
||||||
|
|||||||
@@ -39,20 +39,21 @@
|
|||||||
# This will set your color palette
|
# This will set your color palette
|
||||||
# Default background
|
# Default background
|
||||||
# Add new images to ~/garandos/wallpapers
|
# Add new images to ~/garandos/wallpapers
|
||||||
# stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
stylixImage = "Attack-on-Titan-1.jpg";
|
||||||
#stylixImage = "DW_Pacts.jpg";
|
# stylixImage = "Attack-on-Titan-2.jpg";
|
||||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
# stylixImage = "Attack-on-Titan-3.jpg";
|
||||||
#stylixImage = "fire-nation.jpg";
|
# stylixImage = "Avatar-1.jpg";
|
||||||
#stylixImage = "four-elements.jpg";
|
# stylixImage = "Avatar-2.jpg";
|
||||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
# stylixImage = "Avatar-3.png";
|
||||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
# stylixImage = "Avatar-4.jpg";
|
||||||
#stylixImage = "jablon.jpg";
|
# stylixImage = "Edge-of-Tomorrow-1.jpg";
|
||||||
#stylixImage = "rammstein-log-two.jpg";
|
# stylixImage = "Friren-1.jpg";
|
||||||
#stylixImage = "rammstein-logo-one.jpg";
|
# stylixImage = "Friren-2.jpg";
|
||||||
#stylixImage = "rammstein-logo-three.jpg";
|
# stylixImage = "Friren-3.jpg";
|
||||||
#stylixImage = "rammstein-one.jpg";
|
# stylixImage = "Jablon.png";
|
||||||
#stylixImage = "1346530.jpeg";
|
# stylixImage = "Song-of-the-Sea-1.jpg";
|
||||||
stylixImage = "The-Southern-Raiders.jpg";
|
# stylixImage = "Wolfwalkers-1.jpg";
|
||||||
|
# stylixImage = "Wolfwalkers-2.jpg";
|
||||||
|
|
||||||
# Set network hostId if required (needed for zfs)
|
# Set network hostId if required (needed for zfs)
|
||||||
# Otherwise leave as-is
|
# Otherwise leave as-is
|
||||||
|
|||||||
@@ -36,6 +36,11 @@ _: {
|
|||||||
*/
|
*/
|
||||||
affinity.enable = false; # Affinity: professional graphics suite
|
affinity.enable = false; # Affinity: professional graphics suite
|
||||||
|
|
||||||
|
/*
|
||||||
|
Utilities / Misc
|
||||||
|
*/
|
||||||
|
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
|
||||||
|
|
||||||
packages = {
|
packages = {
|
||||||
/*
|
/*
|
||||||
Container & Packaging
|
Container & Packaging
|
||||||
|
|||||||
@@ -48,20 +48,21 @@
|
|||||||
# This will set your color palette
|
# This will set your color palette
|
||||||
# Default background
|
# Default background
|
||||||
# Add new images to ~/garandos/wallpapers
|
# Add new images to ~/garandos/wallpapers
|
||||||
stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
stylixImage = "Attack-on-Titan-1.jpg";
|
||||||
#stylixImage = "DW_Pacts.jpg";
|
# stylixImage = "Attack-on-Titan-2.jpg";
|
||||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
# stylixImage = "Attack-on-Titan-3.jpg";
|
||||||
#stylixImage = "fire-nation.jpg";
|
# stylixImage = "Avatar-1.jpg";
|
||||||
#stylixImage = "four-elements.jpg";
|
# stylixImage = "Avatar-2.jpg";
|
||||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
# stylixImage = "Avatar-3.png";
|
||||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
# stylixImage = "Avatar-4.jpg";
|
||||||
#stylixImage = "jablon.jpg";
|
# stylixImage = "Edge-of-Tomorrow-1.jpg";
|
||||||
#stylixImage = "rammstein-log-two.jpg";
|
# stylixImage = "Friren-1.jpg";
|
||||||
#stylixImage = "rammstein-logo-one.jpg";
|
# stylixImage = "Friren-2.jpg";
|
||||||
#stylixImage = "rammstein-logo-three.jpg";
|
# stylixImage = "Friren-3.jpg";
|
||||||
#stylixImage = "rammstein-one.jpg";
|
# stylixImage = "Jablon.png";
|
||||||
#stylixImage = "1346530.jpeg";
|
# stylixImage = "Song-of-the-Sea-1.jpg";
|
||||||
#stylixImage = "The-Southern-Raiders.jpg";
|
# stylixImage = "Wolfwalkers-1.jpg";
|
||||||
|
# stylixImage = "Wolfwalkers-2.jpg";
|
||||||
|
|
||||||
# Set network hostId if required (needed for zfs)
|
# Set network hostId if required (needed for zfs)
|
||||||
# Otherwise leave as-is
|
# Otherwise leave as-is
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
|
host,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: let
|
||||||
|
inherit (import ../../hosts/${host}/variables.nix) stylixImage;
|
||||||
|
in {
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = pkgs.linuxPackages_zen;
|
kernelPackages = pkgs.linuxPackages_zen;
|
||||||
kernelModules = ["v4l2loopback"];
|
kernelModules = ["v4l2loopback"];
|
||||||
@@ -17,7 +20,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
style = {
|
style = {
|
||||||
wallpapers = [
|
wallpapers = [
|
||||||
./../../wallpapers/attack-on-titan-mikasa-ackerman.jpg
|
./../../wallpapers/${stylixImage}
|
||||||
];
|
];
|
||||||
wallpaperStyle = lib.mkForce "centered";
|
wallpaperStyle = lib.mkForce "centered";
|
||||||
backdrop = "${config.stylix.base16Scheme.base00}";
|
backdrop = "${config.stylix.base16Scheme.base00}";
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
./tailscale.nix
|
./tailscale.nix
|
||||||
./thunar.nix
|
./thunar.nix
|
||||||
./user.nix
|
./user.nix
|
||||||
|
./ventoy.nix
|
||||||
./virtualbox.nix
|
./virtualbox.nix
|
||||||
./xdg.nix
|
./xdg.nix
|
||||||
./xserver.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, N, exec, nextcloud #\"Nextcloud desktop sync client\""
|
||||||
"SUPER SHIFT, O, exec, obs #\"Open Broadcaster Software\""
|
"SUPER SHIFT, O, exec, obs #\"Open Broadcaster Software\""
|
||||||
"SUPER SHIFT, P, exec, noctalia-shell ipc call volume togglePanel #\"Toggle volume control panel\""
|
"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, Return, exec, noctalia-shell ipc call launcher toggle #\"Toggle application launcher\""
|
||||||
"SUPER SHIFT, S, exec, screenshootin #\"Take screenshot\""
|
"SUPER SHIFT, S, exec, screenshootin #\"Take screenshot\""
|
||||||
"SUPER SHIFT, T, exec, tutanota-desktop #\"Tutanota encrypted email client\""
|
"SUPER SHIFT, T, exec, tutanota-desktop #\"Tutanota encrypted email client\""
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
(import ./nvidia-offload.nix {inherit pkgs;})
|
(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 |