diff --git a/.config/i3/config b/.config/i3/config index 6d8ab25..e83980e 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -3,7 +3,6 @@ set $mod Mod4 set $LeftMonitor HDMI-A-0 set $RightMonitor DisplayPort-0 - # Font for window titles. Will also be used by the bar unless a different font # is used in the bar {} block below. font pango:monospace 8 @@ -70,6 +69,7 @@ bindsym $mod+period exec --no-startup-id rofimoji # -config ~/.config/rofi/rofidmenu.rasi +set $warpmouse exec eval $(xdotool getwindowfocus getwindowgeometry --shell) && xdotool mousemove --window $(xdotool getwindowfocus) $((WIDTH/2)) $((HEIGHT/2)) # change focus bindsym $mod+h focus left bindsym $mod+j focus down @@ -77,10 +77,10 @@ bindsym $mod+k focus up bindsym $mod+l focus right # alternatively, you can use the cursor keys: -bindsym $mod+Left focus left -bindsym $mod+Down focus down -bindsym $mod+Up focus up -bindsym $mod+Right focus right +bindsym $mod+Left focus left; $warpmouse +bindsym $mod+Down focus down; $warpmouse +bindsym $mod+Up focus up; $warpmouse +bindsym $mod+Right focus right; $warpmouse # switch between windows with alt tab bindsym Mod1+Tab focus next diff --git a/flake.lock b/flake.lock index ca07ec7..ccf0ce3 100644 --- a/flake.lock +++ b/flake.lock @@ -122,11 +122,11 @@ ] }, "locked": { - "lastModified": 1768913864, - "narHash": "sha256-NYh/M3mnVZ0XouM98BJvcpKTarjgBSYqH8bDvkG1cDE=", + "lastModified": 1768923567, + "narHash": "sha256-GVJ0jKsyXLuBzRMXCDY6D5J8wVdwP1DuQmmvYL/Vw/Q=", "owner": "nix-community", "repo": "disko", - "rev": "e0bbbb8886d0630402e1a5882134a1a772c91fed", + "rev": "00395d188e3594a1507f214a2f15d4ce5c07cb28", "type": "github" }, "original": { @@ -309,11 +309,11 @@ ] }, "locked": { - "lastModified": 1768603898, - "narHash": "sha256-vRV1dWJOCpCal3PRr86wE2WTOMfAhTu6G7bSvOsryUo=", + "lastModified": 1768949235, + "narHash": "sha256-TtjKgXyg1lMfh374w5uxutd6Vx2P/hU81aEhTxrO2cg=", "owner": "nix-community", "repo": "home-manager", - "rev": "2a63d0e9d2c72ac4d4150ebb242cf8d86f488c8c", + "rev": "75ed713570ca17427119e7e204ab3590cc3bf2a5", "type": "github" }, "original": { @@ -330,11 +330,11 @@ ] }, "locked": { - "lastModified": 1768912518, - "narHash": "sha256-FJlof1jnbLIT5RbKxef/NV6RzcOj1GoMzXE4FcBFg5Y=", + "lastModified": 1768984719, + "narHash": "sha256-O6nXCW9FN39qw204e5Nl3qgaxKFcSvdpx0bULqfwyTA=", "owner": "nix-community", "repo": "home-manager", - "rev": "9c5f8aceb6ef620e881f50fe65cb4a2c6b1e8527", + "rev": "d6e3935ec6e43c8f54cd0132276c82d951e1453e", "type": "github" }, "original": { @@ -344,6 +344,25 @@ "type": "github" } }, + "matugen": { + "inputs": { + "nixpkgs": "nixpkgs_3", + "systems": "systems_5" + }, + "locked": { + "lastModified": 1769341810, + "narHash": "sha256-5AYLcqR45alSB0C4nsU3EMOLvnMEr9slDH2evoi+M88=", + "owner": "InioX", + "repo": "Matugen", + "rev": "b2b28bf9d92851fde8c737af49984daba3f86226", + "type": "github" + }, + "original": { + "owner": "InioX", + "repo": "Matugen", + "type": "github" + } + }, "nixos-hardware": { "locked": { "lastModified": 1768736227, @@ -378,11 +397,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1768564909, - "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", + "lastModified": 1770841267, + "narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=", "owner": "nixos", "repo": "nixpkgs", - "rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", + "rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae", "type": "github" }, "original": { @@ -418,11 +437,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1768873557, - "narHash": "sha256-gbH6l4liUkBtfZjL26iMBkw4MtZSzi8vVed02OLP1RY=", + "lastModified": 1768960140, + "narHash": "sha256-iy2UleY4gdaz7AOKCVoWSBxuFaLZMPh2QVZJbZw+7gA=", "owner": "nix-community", "repo": "nixpkgs-xr", - "rev": "77bd9e44e5a0842f1d2583edfc103d0576f97403", + "rev": "17ca156becd777c9698ef45dbeca80223dbec87e", "type": "github" }, "original": { @@ -447,6 +466,22 @@ "type": "github" } }, + "nixpkgs_3": { + "locked": { + "lastModified": 1724479785, + "narHash": "sha256-pP3Azj5d6M5nmG68Fu4JqZmdGt4S4vqI5f8te+E/FTw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "d0e1602ddde669d5beb01aec49d71a51937ed7be", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixvim": { "inputs": { "flake-parts": "flake-parts", @@ -477,11 +512,11 @@ ] }, "locked": { - "lastModified": 1768914561, - "narHash": "sha256-O0XJuaGyuYDUrr/qjtQ5IjdxbaV9PNzCMvyP5SgxaX0=", + "lastModified": 1768987531, + "narHash": "sha256-OUuPCbbpt2TScCThL4xPByL5U7gOXQ83aJvXbtcnV9Y=", "owner": "nix-community", "repo": "NUR", - "rev": "d1b81205dfc1b37b093c272089d15c608a5d0b62", + "rev": "8e6425272de3f758a3b7103b49d6b7edbfb01b40", "type": "github" }, "original": { @@ -571,11 +606,12 @@ "firefox-gnome-theme": "firefox-gnome-theme", "flake-parts": "flake-parts_3", "gnome-shell": "gnome-shell", + "matugen": "matugen", "nixpkgs": [ "nixpkgs-unstable" ], "nur": "nur_2", - "systems": "systems_5", + "systems": "systems_6", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -583,15 +619,16 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1768744881, - "narHash": "sha256-3+h7OxqfrPIB/tRsiZXWE9sCbTm7NQN5Ie428p+S6BA=", - "owner": "danth", + "lastModified": 1769348032, + "narHash": "sha256-Fy5dre1KS7xxGX2v5HxZSe++S4I0XXd7qCRUImEnrRM=", + "owner": "make-42", "repo": "stylix", - "rev": "06684f00cfbee14da96fd4307b966884de272d3a", + "rev": "89d5e0bffe49c3fa285e93556159be5e27fd600a", "type": "github" }, "original": { - "owner": "danth", + "owner": "make-42", + "ref": "matugen", "repo": "stylix", "type": "github" } @@ -657,6 +694,21 @@ } }, "systems_5": { + "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_6": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", diff --git a/flake.nix b/flake.nix index 618ef98..cde57e9 100644 --- a/flake.nix +++ b/flake.nix @@ -40,7 +40,8 @@ }; # styling stylix = { - url = "github:danth/stylix"; + #url = "github:danth/stylix"; + url = "github:make-42/stylix/matugen"; inputs.nixpkgs.follows = "nixpkgs-unstable"; inputs.home-manager.follows = "home-manager-unstable"; }; @@ -123,7 +124,7 @@ ( { outputs, ... }: { - stylix.image = ./tsukasa.jpg; + stylix.image = ./wallpaper/tsukasa.jpg; } ) ]; @@ -173,6 +174,12 @@ ./systems/pc/configuration.nix ]; }; + "test-pc" = mkHost { + modules = [ + ./users/kopatz + ./systems/test-pc/configuration.nix + ]; + }; "framework" = mkHost { modules = [ ### User specific ### diff --git a/home-manager/easyeffects/default.nix b/home-manager/easyeffects/default.nix index b78a568..2cf829e 100644 --- a/home-manager/easyeffects/default.nix +++ b/home-manager/easyeffects/default.nix @@ -1,11 +1,19 @@ -{ pkgs, config, ... }: { - services.easyeffects = { - enable = true; - preset = "mic"; - extraPresets = { - mic = builtins.fromJSON (builtins.readFile ./mic.json); - other_mic = builtins.fromJSON (builtins.readFile ./other_mic.json); + pkgs, + config, + osConfig, + lib, + ... +}: +{ + config = lib.mkIf osConfig.custom.graphical.noise-supression.enable { + services.easyeffects = { + enable = true; + preset = "mic"; + extraPresets = { + mic = builtins.fromJSON (builtins.readFile ./mic.json); + other_mic = builtins.fromJSON (builtins.readFile ./other_mic.json); + }; }; }; } diff --git a/home-manager/firefox/default.nix b/home-manager/firefox/default.nix index 0fac538..2aaf7fd 100644 --- a/home-manager/firefox/default.nix +++ b/home-manager/firefox/default.nix @@ -337,7 +337,7 @@ in colorTheme.enable = true; }; }; - programs.firefox = { + programs.firefox = lib.mkIf osConfig.custom.graphical.firefox-custom.enable { enable = true; policies = { DisableTelemetry = true; diff --git a/home-manager/hyprland/hyprland-settings.nix b/home-manager/hyprland/hyprland-settings.nix index 947e3d2..11f2da0 100644 --- a/home-manager/hyprland/hyprland-settings.nix +++ b/home-manager/hyprland/hyprland-settings.nix @@ -226,7 +226,7 @@ in # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 - # float,class:^(kitty)$,title:^(kitty)$ + # float,match:class ^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Keywords/ for more @@ -244,16 +244,17 @@ in wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste"; grimblast = "${pkgs.grimblast}/bin/grimblast"; saved-screenshot-cmd = '' - ${grimblast} --freeze save area $OUT && notify-send "Saved screenshot to $OUT" -h string:image-path:$OUT && echo "file://$(realpath $OUT)" | wl-copy -t text/uri-list + ${hyprshot} -z -s -m region -o $OUT -f $FILE && notify-send "Saved screenshot to $OUT/$FILE" -h string:image-path:$OUT/$FILE && echo "file://$(realpath $OUT/$FILE)" | wl-copy -t text/uri-list ''; saved-screenshot-cmd-output = '' - ${grimblast} --freeze save output $OUT && notify-send "Saved screenshot to $OUT" -h string:image-path:$OUT && echo "file://$(realpath $OUT)" | wl-copy -t text/uri-list + ${hyprshot} -z -s -m output -o $OUT -f $FILE && notify-send "Saved screenshot to $OUT/$FILE" -h string:image-path:$OUT/$FILE && echo "file://$(realpath $OUT/$FILE)" | wl-copy -t text/uri-list ''; pdfgrep = "${pkgs.pdfgrep}/bin/pdfgrep"; brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl"; #swaylock = "${pkgs.swaylock}/bin/swaylock"; hyprlock = "${pkgs.hyprlock}/bin/hyprlock"; hyprpicker = "${pkgs.hyprpicker}/bin/hyprpicker"; + hyprshot = "${pkgs.hyprshot}/bin/hyprshot"; playerctl = "${pkgs.playerctl}/bin/playerctl"; peek = "${pkgs.peek}/bin/peek"; zenity = "${pkgs.zenity}/bin/zenity"; @@ -277,10 +278,10 @@ in ''$mainMod, S, exec, echo "skip" | nc kopatz.dev 8888'' ''$mainMod SHIFT, R, exec, hyprctl hyprpaper reload ,"$(ls -d ~/synced/default/dinge/Bg/* | shuf -n 1)"'' "$mainMod SHIFT, W, exec, hyprctl hyprpaper reload ,${config.stylix.image}" - " , Print, exec, ${grimblast} --freeze copy area" - ''$mainMod, Print, exec, export OUT=/tmp/$(date +'%s_grim.png') && ${saved-screenshot-cmd}'' - ''Shift_L, Print, exec, export OUT=~/Pictures/$(date +'%s_grim.png') && ${saved-screenshot-cmd}'' - ''$mainMod Shift_L, Print, exec, export OUT=~/Pictures/$(date +'%s_grim.png') && ${saved-screenshot-cmd-output}'' + " , Print, exec, ${hyprshot} -s -z -m region --clipboard-only" + ''$mainMod, Print, exec, export OUT=/tmp && FILE=$(date +'%s_screenshot.png') && ${saved-screenshot-cmd}'' + ''Shift_L, Print, exec, export OUT=~/Pictures && FILE=$(date +'%s_screenshot.png') && ${saved-screenshot-cmd}'' + ''$mainMod Shift_L, Print, exec, export OUT=~/Pictures && FILE=$(date +'%s_screenshot.png') && ${saved-screenshot-cmd-output}'' #"$mainMod, G, exec, ${peek}" # record gif "$mainMod, SPACE, exec, ${rofi} -modi drun -show drun -config ~/.config/rofi/rofidmenu.rasi" " , XF86AudioPlay, exec, ${playerctl} play-pause" @@ -367,50 +368,51 @@ in "float on, match:class zenity" "center on, match:class zenity" "workspace 1, match:class steam_app_.*" + "allows_input on, match:title Trove" + #"stay_focused on, match:title Trove" # Fix splash screen showing in weird places and prevent annoying focus takeovers - #"tag +jetbrains-splash, class:^(jetbrains-.*)$, title:^(splash)$, floating:1" + #"tag +jetbrains-splash, match:class ^(jetbrains-.*)$, title:^(splash)$, floating:1" #"center, tag:jetbrains-splash" #"nofocus, tag:jetbrains-splash" #"noborder, tag:jetbrains-splash" ## Center popups/find windows - #"tag +jetbrains, class:^(jetbrains-.*), title:^()$, floating:1" + #"tag +jetbrains, match:class ^(jetbrains-.*), title:^()$, floating:1" #"center, tag:jetbrains" ## Enabling this makes it possible to provide input in popup dialogs (search window, new file, etc.) #"stayfocused, tag:jetbrains" #"noborder, tag:jetbrains" ## For some reason tag:jetbrains does not work for size rule - #"size >50% >50%, class:^(jetbrains-.*), title:^()$, floating:1" + #"size >50% >50%, match:class ^(jetbrains-.*), title:^()$, floating:1" ## Disable window flicker when autocomplete or tooltips appear - #"noinitialfocus, class:^(jetbrains-.*)$, title:^(win.*)$, floating:1" + #"noinitialfocus, match:class ^(jetbrains-.*)$, title:^(win.*)$, floating:1" ## Disable mouse focus - #"nofollowmouse, class:^(jetbrains-.*)$" - ]; - windowrulev2 = [ - #"center, class:jetbrains-idea" - #"noinitialfocus,class:^jetbrains-(?!toolbox),floating:1" + #"nofollowmouse, match:class ^(jetbrains-.*)$" + + #"center, match:class jetbrains-idea" + #"noinitialfocus,match:class ^jetbrains-(?!toolbox),floating:1" ## -- Fix odd behaviors in IntelliJ IDEs -- ##! Fix focus issues when dialogs are opened or closed - #"windowdance,class:^(jetbrains-.*)$,floating:1" + #"windowdance,match:class ^(jetbrains-.*)$,floating:1" ##! Fix splash screen showing in weird places and prevent annoying focus takeovers - #"center,class:^(jetbrains-.*)$,title:^(splash)$,floating:1" - #"nofocus,class:^(jetbrains-.*)$,title:^(splash)$,floating:1" - #"noborder,class:^(jetbrains-.*)$,title:^(splash)$,floating:1" + #"center,match:class ^(jetbrains-.*)$,title:^(splash)$,floating:1" + #"nofocus,match:class ^(jetbrains-.*)$,title:^(splash)$,floating:1" + #"noborder,match:class ^(jetbrains-.*)$,title:^(splash)$,floating:1" ##! Center popups/find windows - #"center,class:^(jetbrains-.*)$,title:^( )$,floating:1" - #"stayfocused,class:^(jetbrains-.*)$,title:^( )$,floating:1" - #"noborder,class:^(jetbrains-.*)$,title:^( )$,floating:1" + #"center,match:class ^(jetbrains-.*)$,title:^( )$,floating:1" + #"stayfocused,match:class ^(jetbrains-.*)$,title:^( )$,floating:1" + #"noborder,match:class ^(jetbrains-.*)$,title:^( )$,floating:1" ##! Disable window flicker when autocomplete or tooltips appear - #"nofocus,class:^(jetbrains-.*)$,title:^(win.*)$,floating:1" - ##"immediate, class:^(Risk.*)$" - "stayfocused,class:(steam_app_107410)" - "immediate, class:^tetrio-desktop$" - "opacity 0.9, class:thunar" - "opacity 0.9, class:discord, fullscreen:0" - "opacity 0.1, title:cava" - "float, title:Picture-in-Picture" - "suppressevent maximize, title:Picture-in-Picture" + #"nofocus,match:class ^(jetbrains-.*)$,title:^(win.*)$,floating:1" + ##"immediate, match:class ^(Risk.*)$" + "stay_focused on, match:class (steam_app_107410)" + "immediate on, match:class ^tetrio-desktop$" + "opacity 0.9, match:class thunar" + "opacity 0.9, match:class discord, match:fullscreen 0" + "opacity 0.1, match:title cava" + "float on, match:title Picture-in-Picture" + "suppress_event maximize, match:title Picture-in-Picture" ]; exec-once = [ diff --git a/modules/graphical/basics.nix b/modules/graphical/basics.nix index bcf07bd..f914936 100644 --- a/modules/graphical/basics.nix +++ b/modules/graphical/basics.nix @@ -42,7 +42,6 @@ in logseq # notes ani-cli brave - wayvnc ]; }; } diff --git a/modules/graphical/code.nix b/modules/graphical/code.nix index 059278b..becf746 100644 --- a/modules/graphical/code.nix +++ b/modules/graphical/code.nix @@ -22,7 +22,7 @@ in with pkgs; [ man-pages - stable.jetbrains.idea-ultimate + jetbrains.idea typescript bruno nodejs_22 # needed for tabby extension diff --git a/modules/graphical/default.nix b/modules/graphical/default.nix index c8c06ba..10fe085 100644 --- a/modules/graphical/default.nix +++ b/modules/graphical/default.nix @@ -36,4 +36,8 @@ ./niri.nix ./wayvnc.nix ]; + + options.custom.graphical.firefox-custom = { + enable = lib.mkEnableOption "Enables custom firefox"; + }; } diff --git a/modules/graphical/hyprland.nix b/modules/graphical/hyprland.nix index dd17944..203e885 100644 --- a/modules/graphical/hyprland.nix +++ b/modules/graphical/hyprland.nix @@ -22,7 +22,7 @@ in xkb.variant = config.mainUser.variant; enable = true; }; - services.displayManager.sddm.enable = !config.services.xserver.displayManager.gdm.enable; + #services.displayManager.sddm.enable = !config.services.xserver.displayManager.gdm.enable; #nix.settings = { # substituters = [ "https://hyprland.cachix.org" ]; @@ -71,6 +71,7 @@ in wl-clipboard cava dex # starts applications according to .desktop files + ydotool # simulates keyboard and mouse input on wayland #hyprshade #waybar #qt5.qtwayland diff --git a/modules/graphical/i3.nix b/modules/graphical/i3.nix index 508b8a5..25e56c6 100644 --- a/modules/graphical/i3.nix +++ b/modules/graphical/i3.nix @@ -91,6 +91,7 @@ in feh # sets the wallpaper networkmanagerapplet caffeine-ng # prevent the system from going to sleep + xdotool ]; }; } diff --git a/modules/graphical/stylix.nix b/modules/graphical/stylix.nix index 7c397ff..8a68221 100644 --- a/modules/graphical/stylix.nix +++ b/modules/graphical/stylix.nix @@ -12,7 +12,7 @@ in enable = mkEnableOption "Enables stylix"; image = mkOption { type = types.path; - default = ../../tsukasa.jpg; + default = ../../wallpaper/tsukasa.jpg; description = '' The wallpaper to use. ''; @@ -65,6 +65,10 @@ in polarity = "dark"; image = lib.mkForce cfg.image; base16Scheme = lib.mkIf (cfg.base16Scheme != null) cfg.base16Scheme; + colorGeneration = { + polarity = "dark"; + scheme = "fruit-salad"; + }; override = cfg.override; #base16Scheme = ../../home-manager/themes/yorha/scheme.yml; #base16Scheme = diff --git a/modules/hardware/nvidia.nix b/modules/hardware/nvidia.nix index 4b848c6..a5acb8f 100644 --- a/modules/hardware/nvidia.nix +++ b/modules/hardware/nvidia.nix @@ -91,7 +91,8 @@ in # accessible via `nvidia-settings`. nvidiaSettings = true; # Optionally, you may need to select the appropriate driver version for your specific GPU. - package = config.boot.kernelPackages.nvidiaPackages.beta; + #package = config.boot.kernelPackages.nvidiaPackages.beta; + package = config.boot.kernelPackages.nvidiaPackages.stable; #package = config.boot.kernelPackages.nvidiaPackages.mkDriver { # version = "570.124.04"; # sha256_64bit = "sha256-G3hqS3Ei18QhbFiuQAdoik93jBlsFI2RkWOBXuENU8Q="; @@ -103,7 +104,7 @@ in }; environment.systemPackages = with pkgs; [ - vaapiVdpau + libva-vdpau-driver libvdpau-va-gl libva libva-utils diff --git a/modules/misc/backup.nix b/modules/misc/backup.nix index a7e5f6e..ffea266 100644 --- a/modules/misc/backup.nix +++ b/modules/misc/backup.nix @@ -90,7 +90,7 @@ in if [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then set -a; source ${config.age.secrets.restic-internxt.path}; set +a fi - ${cli} login --non-interactive -e "$USERNAME" -p "$PASSWORD" + ${cli} login-legacy --non-interactive -e "$USERNAME" -p "$PASSWORD" LOGGED_IN=$(${cli} whoami | grep "You are logged in") if [ -z "$LOGGED_IN" ]; then echo "Internxt CLI login failed. Aborting backup." diff --git a/modules/misc/faster-boot-time.nix b/modules/misc/faster-boot-time.nix index bd2aa81..7551ff6 100644 --- a/modules/misc/faster-boot-time.nix +++ b/modules/misc/faster-boot-time.nix @@ -12,7 +12,7 @@ services.NetworkManager-wait-online.wantedBy = lib.mkForce [ ]; # Normally ["network-online.target"] }; # mash spacebar to still be able to select a different boot option - boot.loader.timeout = 1; + boot.loader.timeout = lib.mkDefault 1; virtualisation.docker.enableOnBoot = false; } diff --git a/modules/nix/settings.nix b/modules/nix/settings.nix index 352cc8f..06ff531 100644 --- a/modules/nix/settings.nix +++ b/modules/nix/settings.nix @@ -25,7 +25,7 @@ in nix = { optimise.automatic = cfg.optimise; - settings.allowed-users = [ "root" "@wheel" ]; + settings.allowed-users = [ "root" "@wheel" "anon" "minecraftserver" ]; settings.experimental-features = [ "nix-command" "flakes" diff --git a/modules/package-collections/perf.nix b/modules/package-collections/perf.nix index 5540ea4..871b2cb 100644 --- a/modules/package-collections/perf.nix +++ b/modules/package-collections/perf.nix @@ -1,4 +1,4 @@ -{ pkgs }: +{ pkgs, ... }: { environment.systemPackages = with pkgs; [ perf diff --git a/modules/themes/ina-matugen.nix b/modules/themes/ina-matugen.nix new file mode 100644 index 0000000..1112de3 --- /dev/null +++ b/modules/themes/ina-matugen.nix @@ -0,0 +1,21 @@ +{ + "base00" = "041011"; + "base01" = "152222"; + "base02" = "2a3737"; + "base03" = "7b9696"; + "base04" = "b0cccc"; + "base05" = "d7e5e5"; + "base06" = "b9f0b8"; + "base07" = "89d88f"; + "base08" = "ed8796"; + "base09" = "f5a97f"; + "base0A" = "eed49f"; + "base0B" = "a6da95"; + "base0C" = "8bd5ca"; + "base0D" = "8aadf4"; + "base0E" = "c6a0f6"; + "base0F" = "f0c6c6"; + "author" = "untitled"; + "scheme" = "untitled"; + "slug" = "untitled"; +} diff --git a/overlays.nix b/overlays.nix index 7e144aa..eece0b9 100644 --- a/overlays.nix +++ b/overlays.nix @@ -39,6 +39,15 @@ in # You can change versions, add patches, set compilation flags, anything really. # https://nixos.wiki/wiki/Overlays modifications = final: prev: { + vencord = prev.vencord.overrideAttrs { + version = "1.14.1"; + src = prev.fetchFromGitHub { + owner = "Vendicated"; + repo = "Vencord"; + tag = "v1.14.1"; + hash = "sha256-g+zyq4KvLhn1aeziTwh3xSYvzzB8FwoxxR13mbivyh4="; + }; + }; discord-canary = prev.discord-canary.override { withVencord = true; }; discord = prev.discord.override { withVencord = true; }; #tetrio-desktop = prev.tetrio-desktop.override { withTetrioPlus = true; }; @@ -71,6 +80,26 @@ in hash = "sha256-NnKhIgDAOKOdEqgHzgLq1MSHG3FDT2AVXJZ53Ozzioc="; }; }; + yt-dlp = prev.yt-dlp.overrideAttrs { + version = "2026.02.04"; + src = prev.fetchFromGitHub { + owner = "yt-dlp"; + repo = "yt-dlp"; + tag = "2026.02.04"; + hash = "sha256-KXnz/ocHBftenDUkCiFoBRBxi6yWt0fNuRX+vKFWDQw="; + }; + postPatch = '' + substituteInPlace yt_dlp/version.py \ + --replace-fail "UPDATE_HINT = None" 'UPDATE_HINT = "Nixpkgs/NixOS likely already contain an updated version.\n To get it run nix-channel --update or nix flake update in your config directory."' + ${prev.lib.optionalString true '' + # deno is required for full YouTube support (since 2025.11.12). + # This makes yt-dlp find deno even if it is used as a python dependency, i.e. in kodiPackages.sendtokodi. + # Crafted so people can replace deno with one of the other JS runtimes. + substituteInPlace yt_dlp/utils/_jsruntime.py \ + --replace-fail "path = _determine_runtime_path(self._path, '${prev.deno.meta.mainProgram}')" "path = '${prev.lib.getExe prev.deno}'" + ''} + ''; + }; monado = prev.monado.overrideAttrs (old: { cmakeFlags = old.cmakeFlags ++ [ "-DBUILD_WITH_OPENCV=OFF" diff --git a/pkgs/internxt-cli/default.nix b/pkgs/internxt-cli/default.nix index 8fecf36..4fc2a52 100644 --- a/pkgs/internxt-cli/default.nix +++ b/pkgs/internxt-cli/default.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "internex-cli"; - version = "1.5.7"; + version = "1.6.2"; src = fetchFromGitHub { owner = "internxt"; repo = "cli"; rev = "v${finalAttrs.version}"; - hash = "sha256-fkn16ielYg4mMwWdqKLFYyIl0JDrktsq0PADOM8gi7g="; + hash = "sha256-52mriM6rHpGX5yTAUnRW5n8dTEz62s3zneZyJco66lA="; }; # Tip: use diff -ur to create patches @@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: { yarnOfflineCache = fetchYarnDeps { yarnLock = finalAttrs.src + "/yarn.lock"; - hash = "sha256-cgIvT/OSlj3MCCMO1MKGECH6R0y+Zp2qhoe3lzWXG2c="; + hash = "sha256-YeQ2vmPL8YfrZKDynIlpI5kb1Srpy13JFc+29Vc//EY="; }; nativeBuildInputs = [ @@ -70,7 +70,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { description = "Internxt CLI - Manage your Internxt account from the command line"; homepage = "https://internxt.com/"; - license = lib.licenses.unfree; + license = lib.licenses.mit; maintainers = with lib.maintainers; [ ]; platforms = lib.platforms.all; }; diff --git a/systems/amd-server-vm/configuration.nix b/systems/amd-server-vm/configuration.nix index 5a6de31..46bd195 100644 --- a/systems/amd-server-vm/configuration.nix +++ b/systems/amd-server-vm/configuration.nix @@ -49,11 +49,6 @@ interface = "eth0"; dns = "127.0.0.1"; }; - user = { - name = "anon"; - layout = "de"; - variant = "us"; - }; hardware = { ssd.enable = true; }; diff --git a/systems/amd-server-vm/mail.nix b/systems/amd-server-vm/mail.nix index ae19a90..af63c5b 100644 --- a/systems/amd-server-vm/mail.nix +++ b/systems/amd-server-vm/mail.nix @@ -147,6 +147,11 @@ in abuse@${email-domain} lukas@${email-domain} dmarcreports@${email-domain} lukas@${email-domain} rat@${email-domain} spam@${email-domain} + acc1@${email-domain} spam@${email-domain} + acc2@${email-domain} spam@${email-domain} + acc3@${email-domain} spam@${email-domain} + acc4@${email-domain} spam@${email-domain} + acc5@${email-domain} spam@${email-domain} ''; mapFiles = { "virtual-map" = pkgs.writeText "postfix-virtual" '' diff --git a/systems/amd-server-vpn-vm/configuration.nix b/systems/amd-server-vpn-vm/configuration.nix index ce364ed..9754302 100644 --- a/systems/amd-server-vpn-vm/configuration.nix +++ b/systems/amd-server-vpn-vm/configuration.nix @@ -45,11 +45,6 @@ mainUser.layout = "de"; mainUser.variant = "us"; custom = { - user = { - name = "anon"; - layout = "de"; - variant = "us"; - }; hardware = { firmware.enable = true; ssd.enable = true; diff --git a/systems/amd-server/configuration.nix b/systems/amd-server/configuration.nix index 7a6ee50..4c70ec3 100644 --- a/systems/amd-server/configuration.nix +++ b/systems/amd-server/configuration.nix @@ -54,6 +54,7 @@ #sddm.enable = true; #nightlight.enable = true; #i3.enable = true; + firefox-custom.enable = true; xfce.enable = true; #plasma.enable = true; #lxqt.enable = true; diff --git a/systems/laptop/configuration.nix b/systems/laptop/configuration.nix index 0a18b48..ea6bacd 100644 --- a/systems/laptop/configuration.nix +++ b/systems/laptop/configuration.nix @@ -95,6 +95,7 @@ in enable = true; #android.enable = true; }; + firefox-custom.enable = true; #emulators.enable = true; hyprland.enable = true; games.enable = true; diff --git a/systems/pc/configuration.nix b/systems/pc/configuration.nix index 3bc2521..d012d5d 100644 --- a/systems/pc/configuration.nix +++ b/systems/pc/configuration.nix @@ -25,6 +25,7 @@ ../../modules/misc/faster-boot-time.nix ../../modules/misc/zram.nix #../../modules/hardware/ryzenmonitor.nix + ../../modules/package-collections/perf.nix ../../modules/networkmanager.nix #./tailscale-client.nix ]; @@ -101,6 +102,7 @@ niri.enable = false; #openrgb.enable = true; sddm.enable = true; + firefox-custom.enable = true; #plasma.enable = true; #i3.enable = true; #sway.enable = true; @@ -111,13 +113,19 @@ basics.enable = true; stylix = { enable = true; - base16Scheme = import ../../modules/themes/ina.nix; + base16Scheme = import ../../modules/themes/ina-matugen.nix; image = ../../wallpaper/ina.jpg; }; wayvnc.enable = true; }; }; + services.earlyoom = { + enable = true; + freeMemThreshold = 2; + freeSwapThreshold = 2; + }; + services.logind.settings.Login = { HandlePowerKey = "suspend"; }; diff --git a/systems/test-pc/configuration.nix b/systems/test-pc/configuration.nix new file mode 100644 index 0000000..4b6b1cf --- /dev/null +++ b/systems/test-pc/configuration.nix @@ -0,0 +1,146 @@ +{ + config, + pkgs, + lib, + inputs, + ... +}: +{ + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + ../../modules/misc/kernel.nix + ../../modules/misc/faster-boot-time.nix + ../../modules/misc/zram.nix + ../../modules/networkmanager.nix + ../../modules/services/ssh.nix + ]; + + custom = { + tmpfs.enable = true; + nftables.enable = true; + cli-tools.enable = true; + nix = { + useLatest = true; + #index.enable = true; + #ld.enable = true; + settings.enable = true; + }; + static-ip = { + enable = false; + interface = "enp42s0"; + ip = "192.168.0.13"; + dns = "192.168.0.10"; + }; + hardware = { + nvidia = { + enable = true; + }; + ssd.enable = true; + }; + graphical = { + audio.enable = true; + games = { + enable = true; + }; + #sddm.enable = true; + hyprland.enable = true; + shared.enable = true; + i3.enable = true; + stylix = { + enable = true; + base16Scheme = import ../../modules/themes/ina-matugen.nix; + image = ../../wallpaper/ina.jpg; + }; + wayvnc.enable = true; + }; + }; + + programs.firefox.enable = true; + services.xserver.displayManager.lightdm.enable = true; + services.xserver.windowManager.openbox.enable = true; + # == start section sunshine == + services.sunshine = { + enable = true; + autoStart = true; + capSysAdmin = true; + openFirewall = true; + package = (pkgs.sunshine.override { cudaSupport = true; }); + }; + services.avahi.publish.enable = true; + services.avahi.publish.userServices = true; + + services.displayManager.autoLogin = { + enable = true; + user = "kopatz"; + }; + # == end section sunshine == + + #services.logind.settings.Login = { + # HandlePowerKey = "suspend"; + #}; + nix.gc.automatic = lib.mkForce false; + + environment.systemPackages = with pkgs; [ + #inputs.quickshell.packages.x86_64-linux.default + #kdePackages.qtdeclarative + #libimobiledevice + #ifuse # optional, to mount using 'ifuse' + (wl-clicker.overrideAttrs (old: { + # wayland autoclicker + src = pkgs.fetchFromGitHub { + owner = "phonetic112"; + repo = "wl-clicker"; + rev = "f0241c374241d6cf74ba3abffb74a3fdcefa6f88"; + hash = "sha256-QwFT9e2FuczC+ew/lDrDnYYccrrfVJi3Rlrurhwk8ZU="; + }; + })) + ]; + + mainUser.layout = "de"; + mainUser.variant = "us"; + + # Bootloader. + boot.loader = { + efi = { + canTouchEfiVariables = true; + }; + systemd-boot.enable = true; + }; + + networking.hostName = "test-pc"; # Define your hostname. + + # Configure console keymap + console.keyMap = "de"; + + # Enable automatic login for the user. + #services.xserver.displayManager.autoLogin.enable = true; + #services.xserver.displayManager.autoLogin.user = "kopatz"; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + security.pki.certificates = [ + '' + -----BEGIN CERTIFICATE----- + MIIBjTCCATKgAwIBAgIRAMVH2+JHZ3wm2fLUlKjTYDswCgYIKoZIzj0EAwIwJDEM + MAoGA1UEChMDS29wMRQwEgYDVQQDEwtLb3AgUm9vdCBDQTAeFw0yMzEyMDgxNDUx + MTZaFw0zMzEyMDUxNDUxMTZaMCQxDDAKBgNVBAoTA0tvcDEUMBIGA1UEAxMLS29w + IFJvb3QgQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATdZBOkNynShXipzhuX + f6dUByD3chNupNWsagYC5AlPRJT9fAeHEIK/bxWkFwRtLBDopWvBu9lHahBgpHc7 + y7rTo0UwQzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBATAdBgNV + HQ4EFgQU9AVtwipW5HDBLfZRH1KZCnIKCfowCgYIKoZIzj0EAwIDSQAwRgIhAMHj + AipNdhQKIYPvMt/h1uW4xP3NTkitnmshM09+rIasAiEAlSalGddXDkqJBHhPD+Fr + gpuVkfVkA8gQCXNs5F9TnxA= + -----END CERTIFICATE----- + '' + ]; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "25.11"; # Did you read the comment? +} diff --git a/systems/test-pc/hardware-configuration.nix b/systems/test-pc/hardware-configuration.nix new file mode 100644 index 0000000..a9c2474 --- /dev/null +++ b/systems/test-pc/hardware-configuration.nix @@ -0,0 +1,64 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ + config, + lib, + pkgs, + modulesPath, + ... +}: + +{ + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ahci" + "ehci_pci" + "nvme" + "usbhid" + "usb_storage" + "sd_mod" + "sd_mod" + "rtsx_pci_sdmmc" + "uas" + "usbcore" + "ehci_hcd" + "uhci_hcd" + "ohci_hcd" + "scsi_mod" + ]; + boot.initrd.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + + fileSystems."/" = { + device = "/dev/disk/by-label/nixos-ssd"; + fsType = "ext4"; + options = [ + "defaults" + "noatime" + ]; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-label/nixssd-boot"; + fsType = "vfat"; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp42s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + #hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/systems/vm/configuration.nix b/systems/vm/configuration.nix index bdd55a0..329a4b1 100644 --- a/systems/vm/configuration.nix +++ b/systems/vm/configuration.nix @@ -11,17 +11,13 @@ ./vm-common.nix (modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/profiles/qemu-guest.nix") + (modulesPath + "/virtualisation/qemu-vm.nix") #(modulesPath + "/profiles/minimal.nix") ]; age.identityPaths = [ /home/kopatz/.ssh/id_rsa ]; mainUser.layout = "de"; mainUser.variant = "us"; custom = { - user = { - name = "vm"; - layout = "de"; - variant = "us"; - }; nix = { settings.enable = true; settings.optimise = false; @@ -31,7 +27,7 @@ #hyprland.enable = true; #lightdm.enable = true; #sddm.enable = true; - plasma.enable = true; + #plasma.enable = true; #cosmic.enable = true; }; }; @@ -44,6 +40,15 @@ # displayManager.defaultSession = "xfce"; #}; + services.xserver.enable = true; + + services.xserver.displayManager.gdm.enable = true; + programs.sway.enable = true; + + virtualisation.qemu.options = [ + "-device virtio-vga" + ]; + programs.firefox.enable = true; virtualisation.vmVariant = {