diff --git a/config/common.nix b/config/common.nix index ca4cc5c..3e0eb8e 100644 --- a/config/common.nix +++ b/config/common.nix @@ -78,6 +78,7 @@ wget zsh bc + android-tools # media yt-dlp diff --git a/config/desktop.nix b/config/desktop.nix index a217b2b..a97ebe3 100644 --- a/config/desktop.nix +++ b/config/desktop.nix @@ -12,14 +12,15 @@ qt.platformTheme = "gnome"; #hyprland - services.displayManager.gdm.enable = true; # use sddm until gnome 50 due to https://github.com/systemd/systemd/issues/39259 + services.displayManager.sddm.enable = true; # use sddm until gnome 50 due to https://github.com/systemd/systemd/issues/39259 + services.displayManager.sddm.wayland.enable = true; hardware.bluetooth.enable = true; hardware.bluetooth.powerOnBoot = true; services.libinput.enable = true; # hyprland and trackpad # Enable CUPS to print documents. - services.printing.enable = true; # x86 only + services.printing.enable = true; services.avahi = { enable = true; nssmdns4 = true; @@ -41,17 +42,15 @@ # "--config=/mnt/services/emulators/retroarch/retroarch.cfg" #]; - #x86 only - #services.ollama = { - # enable = true; - # acceleration = "cuda"; - # openFirewall = true; - # host = "0.0.0.0"; - # # Optional: preload models, see https://ollama.com/library - # loadModels = [ "gemma4" ]; - # package = pkgs.unstable.ollama; + services.ollama = { + enable = true; + openFirewall = true; + host = "0.0.0.0"; + # Optional: preload models, see https://ollama.com/library + loadModels = [ "gemma4" ]; + package = pkgs.ollama-cuda; - #}; + }; programs.chromium = { enable = true; @@ -183,7 +182,6 @@ #services.hardware.openrgb.package = pkgs.openrgb-with-all-plugins; programs = { - adb.enable = true; localsend = { enable = true; @@ -194,11 +192,10 @@ # enable = true; #}; - #gamescope = { - # enable = true; - # capSysNice = true; - #}; - + gamescope = { + enable = true; + #capSysNice = true; + }; #steam = { #x86 only # enable = true; # gamescopeSession.enable = true; @@ -244,13 +241,13 @@ [ "${automount_opts},credentials=/etc/nixos/smb-credentials,uid=1000,gid=1000" ]; }; - programs.virt-manager.enable = true; - users.groups.libvirtd.members = [ "admin" ]; - virtualisation.libvirtd = { - enable = true; - qemu.swtpm.enable = true; - }; - virtualisation.spiceUSBRedirection.enable = true; + #programs.virt-manager.enable = true; + #users.groups.libvirtd.members = [ "admin" ]; + #virtualisation.libvirtd = { + # enable = true; + # qemu.swtpm.enable = true; + #}; + #virtualisation.spiceUSBRedirection.enable = true; imports = [ inputs.nix-flatpak.nixosModules.nix-flatpak ]; diff --git a/flake.lock b/flake.lock index e032cab..dad3a38 100644 --- a/flake.lock +++ b/flake.lock @@ -61,16 +61,16 @@ ] }, "locked": { - "lastModified": 1775425411, - "narHash": "sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo=", + "lastModified": 1779726825, + "narHash": "sha256-RUkMrREjKDQrA+dA9+xZviGAxM5W1aVdyOr/bSYpHrE=", "owner": "nix-community", "repo": "home-manager", - "rev": "0d02ec1d0a05f88ef9e74b516842900c41f0f2fe", + "rev": "b179bde238977f7d4454fc770b1a727eaf55111c", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-25.11", + "ref": "release-26.05", "repo": "home-manager", "type": "github" } @@ -122,16 +122,16 @@ ] }, "locked": { - "lastModified": 1772129556, - "narHash": "sha256-Utk0zd8STPsUJPyjabhzPc5BpPodLTXrwkpXBHYnpeg=", + "lastModified": 1779036909, + "narHash": "sha256-zXcwYQGCT6pzinK+1dBB2ekTVtfxGZAapb3Evdcu4fY=", "owner": "nix-darwin", "repo": "nix-darwin", - "rev": "ebec37af18215214173c98cf6356d0aca24a2585", + "rev": "56c666e108467d87d13508936aade6d567f2a501", "type": "github" }, "original": { "owner": "nix-darwin", - "ref": "nix-darwin-25.11", + "ref": "nix-darwin-26.05", "repo": "nix-darwin", "type": "github" } @@ -201,16 +201,16 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1777428379, - "narHash": "sha256-ypxFOeDz+CqADEQNL72haqGjvZQdBR5Vc7pyx2JDttI=", + "lastModified": 1780203844, + "narHash": "sha256-K5sT4jTpGs15ADhviMKNBH38REpPf5Q6mM1+N6cArVE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "755f5aa91337890c432639c60b6064bb7fe67769", + "rev": "b51242d7d43689db2f3be91bd05d5b24fbb469c4", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-25.11", + "ref": "nixos-26.05", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index c988143..c0db888 100644 --- a/flake.nix +++ b/flake.nix @@ -2,14 +2,14 @@ description = "A very basic flake"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable"; nixos-hardware.url = "github:nixos/nixos-hardware/master"; - home-manager.url = "github:nix-community/home-manager/release-25.11"; + home-manager.url = "github:nix-community/home-manager/release-26.05"; home-manager-unstable.url = "github:nix-community/home-manager/master"; home-manager-unstable.inputs.nixpkgs.follows = "nixpkgs-unstable"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; - nix-darwin.url = "github:nix-darwin/nix-darwin/nix-darwin-25.11"; + nix-darwin.url = "github:nix-darwin/nix-darwin/nix-darwin-26.05"; nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; lazyvim.url = "github:pfassina/lazyvim-nix"; nix-flatpak.url = "github:gmodena/nix-flatpak"; @@ -77,6 +77,11 @@ { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = { + inherit lazyvim; + inherit inputs; + hostname = "nixos-server"; + }; home-manager.users.admin = { imports = [ ./home/common.nix diff --git a/home/hyprland.nix b/home/hyprland.nix index 300f0f5..28feab4 100644 --- a/home/hyprland.nix +++ b/home/hyprland.nix @@ -1089,8 +1089,8 @@ in group = { "col.border_active" = "rgb(4385be)"; "col.border_inactive" = "rgb(403e3c)"; - "col.border_locked_active" = -1; - "col.border_locked_inactive" = -1; + #"col.border_locked_active" = -1; + #"col.border_locked_inactive" = -1; groupbar = { font_size = 12; @@ -1138,11 +1138,11 @@ in }; layerrule = [ - "blur, notifications" - "ignorezero, notifications" + #"blur, notifications" + #"ignorezero, notifications" - # turn off anim for rofi - "noanim, rofi" + # turn off anim for walker + #"noanim, rofi" ]; # add blur to notifications @@ -1181,7 +1181,7 @@ in # See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more dwindle = { - pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + #pseudo = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true; # You probably want this force_split = 2; # Always split on the right }; @@ -1270,8 +1270,8 @@ in "$mainMod, space, exec, $menu" #"$mainMod, P, pseudo," # dwindle - "$mainMod, T, togglesplit," # dwindle #"$mainMod SHIFT, L, exec, hyprlock& systemctl suspend" #idk + #"$mainMod, T, togglesplit," # dwindle "$mainMod SHIFT, F, workspaceopt, allfloat" #"$mainMod SHIFT, H, exec, for i in {1..10}; do dunstctl history-pop; done; sleep 5 && dunstctl close-all" # show last 10 notifications for 5 seconds "$mainMod, G, togglegroup," @@ -1366,76 +1366,84 @@ in # See https://wiki.hypr.land/Configuring/Window-Rules/ for more # See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules - windowrule = [ - # Example windowrule - # "float,class:^(kitty)$,title:^(kitty)$" - # Ignore maximize requests from apps. You'll probably like this. - "suppressevent maximize, class:.*" + #windowrule = [ + # # Example windowrule + # # "float,class:^(kitty)$,title:^(kitty)$" + # # Ignore maximize requests from apps. You'll probably like this. + # "suppressevent maximize, class:.*" - # Fix some dragging issues with XWayland - "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0" + # # Fix some dragging issues with XWayland + # "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0" - # make tuis accessed from waybar float in center - "tag +floating-window, title:(bluetui|impala|wiremix|Signal.*|.*WebCord.*|Weather|Calendar)" - "tag +floating-window, title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*)" - "tag +floating-window, class:(org.gnome.NautilusPreviewer)" - "float, class:(org.gnome.Calculator)" + # # make tuis accessed from waybar float in center + # "tag +floating-window, title:(bluetui|impala|wiremix|Signal.*|.*WebCord.*|Weather|Calendar)" + # "tag +floating-window, title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*)" + # "tag +floating-window, class:(org.gnome.NautilusPreviewer)" + # "float, class:(org.gnome.Calculator)" - # fix scrolling speed in chromium based apps - "tag +chromium-based, class:(chrom.*|brave-browser|signal|WebCord|obsidian|electron)" - "scrolltouchpad 0.15, tag:chromium-based" + # # fix scrolling speed in chromium based apps + # "tag +chromium-based, class:(chrom.*|brave-browser|signal|WebCord|obsidian|electron)" + # "scrolltouchpad 0.15, tag:chromium-based" - # send games to specific workspace - "workspace name:games silent, class:$games" - "noanim, class:$games" - "noblur, class:$games" - "noshadow, class:$games" - "noborder, class:$games" - "rounding 0, class:$games" - "fullscreen, class:$games" - "immediate, class:$games" + # # send games to specific workspace + # "workspace name:games silent, class:$games" + # "noanim, class:$games" + # "noblur, class:$games" + # "noshadow, class:$games" + # "noborder, class:$games" + # "rounding 0, class:$games" + # "fullscreen, class:$games" + # "immediate, class:$games" - # pip - "tag +pip, title:(Picture.?in.?[Pp]icture)" - "tag -default-opacity, tag:pip" - "float, tag:pip" - "pin, tag:pip" - "size 600 338, tag:pip" - "keepaspectratio, tag:pip" - "bordersize 0, tag:pip" - "opacity 1 1, tag:pip" - "move (monitor_w-window_w-40) (monitor_h*0.04), tag:pip" + # # pip + # "tag +pip, title:(Picture.?in.?[Pp]icture)" + # "tag -default-opacity, tag:pip" + # "float, tag:pip" + # "pin, tag:pip" + # "size 600 338, tag:pip" + # "keepaspectratio, tag:pip" + # "bordersize 0, tag:pip" + # "opacity 1 1, tag:pip" + # "move (monitor_w-window_w-40) (monitor_h*0.04), tag:pip" - # steam - "float, class:^(steam)$" - "center, class:^(steam)$, title:^(Steam)$" - "tag -default-opacity, class:^(steam.*)$" - "opacity 1 1, class:^(steam.*)$" - "size 1100 700, class:^(steam)$, title:^(Steam)$" - "size 460 800, class:^(steam)$, title:^(Friends List)$" - "idleinhibit fullscreen, class:^(steam)$" + # # steam + # "float, class:^(steam)$" + # "center, class:^(steam)$, title:^(Steam)$" + # "tag -default-opacity, class:^(steam.*)$" + # "opacity 1 1, class:^(steam.*)$" + # "size 1100 700, class:^(steam)$, title:^(Steam)$" + # "size 460 800, class:^(steam)$, title:^(Friends List)$" + # "idleinhibit fullscreen, class:^(steam)$" - # bitwarden - "noscreenshare, class:^(Bitwarden)$" - "tag +floating-window, class:^(Bitwarden)$" + # # bitwarden + # "noscreenshare, class:^(Bitwarden)$" + # "tag +floating-window, class:^(Bitwarden)$" - # Bitwarden Chrome Extension - "noscreenshare, class:^(brave-nngceckbapebfimnlniiiahkandclblb-Default)$" - "tag +floating-window, class:^(brave-nngceckbapebfimnlniiiahkandclblb-Default)$" + # # Bitwarden Chrome Extension + # "noscreenshare, class:^(brave-nngceckbapebfimnlniiiahkandclblb-Default)$" + # "tag +floating-window, class:^(brave-nngceckbapebfimnlniiiahkandclblb-Default)$" - # floating tag - "float, tag:floating-window" - "center, tag:floating-window" - "size 875 600, tag:floating-window" + # # floating tag + # "float, tag:floating-window" + # "center, tag:floating-window" + # "size 875 600, tag:floating-window" ]; + # # floating tag + # "float, tag:floating-window" + # "center, tag:floating-window" + # "size 875 600, tag:floating-window" - "$games" = - "^(steam_app_.*|lutris_game_class|minigalaxy|playnite_game_class|gamescope|chiaki|moonlight|com\.moonlight_stream\.Moonlight|.*[Ww]ine.*)$"; - workspace = [ - "name:1,monitor:DP-2" - "name:games,monitor:DP-2" - "name:4,monitor:HDMI-A-1" - ]; + # # hyprbar + # "plugin:hyprbars:nobar, tag:^(?!floating-window$).*$" + #]; + + #"$games" = + # "^(steam_app_.*|lutris_game_class|minigalaxy|playnite_game_class|gamescope|chiaki|moonlight|com\.moonlight_stream\.Moonlight|.*[Ww]ine.*)$"; + #workspace = [ + # "name:1,monitor:DP-2" + # "name:games,monitor:DP-2" + # "name:4,monitor:HDMI-A-1" + #]; }; }; diff --git a/home/podman.nix b/home/podman.nix index 28f1c0d..8947341 100644 --- a/home/podman.nix +++ b/home/podman.nix @@ -520,65 +520,6 @@ }; }; - jellyseerr = { - image = "ghcr.io/fallenbagel/jellyseerr"; - autoStart = true; - autoUpdate = "registry"; - network = "internal_net"; - environmentFile = [ - "/pool/services/secrets/default" - ]; - volumes = [ - "/pool/services/podman/jellyseerr:/app/config" - ]; - extraConfig = { - Service = { - TimeoutStartSec = 900; - }; - }; - }; - - # joplin = { - # image = "docker.io/joplin/server:latest"; - # autoStart = true; - # autoUpdate = "registry"; - # network = "internal_net"; - # environmentFile = [ - # "/pool/services/secrets/default" - # "/pool/services/secrets/joplin" - # ]; - # ports = [ - # "22300:22300" - # ]; - # extraConfig = { - # Service = { - # TimeoutStartSec = 900; - # }; - # }; - # }; - # - # joplin-db = { - # image = "docker.io/postgres:15"; - # autoStart = true; - # autoUpdate = "registry"; - # network = "internal_net"; - # environmentFile = [ - # "/pool/services/secrets/default" - # "/pool/services/secrets/joplin" - # ]; - # volumes = [ - # "/pool/services/podman/joplin-db:/var/lib/postgresql/data" - # ]; - # ports = [ - # "5432:5432" - # ]; - # extraConfig = { - # Service = { - # TimeoutStartSec = 900; - # }; - # }; - # }; - kiwix = { image = "ghcr.io/kiwix/kiwix-serve:latest"; autoStart = true; @@ -931,7 +872,7 @@ "/pool/services/podman/paperless-ngx/data:/usr/src/paperless/data" "/pool/services/podman/paperless-ngx/media:/usr/src/paperless/media" "/pool/services/podman/paperless-ngx/export:/usr/src/paperless/export" - "/pool/data/scans:/usr/src/paperless/consume" + "/pool/services/scans:/usr/src/paperless/consume" ]; extraConfig = { Service = { @@ -1079,6 +1020,24 @@ }; }; + seerr = { + image = "ghcr.io/seerr-team/seerr:latest"; + autoStart = true; + autoUpdate = "registry"; + network = "internal_net"; + environmentFile = [ + "/pool/services/secrets/default" + ]; + volumes = [ + "/pool/services/podman/seerr:/app/config" + ]; + extraConfig = { + Service = { + TimeoutStartSec = 900; + }; + }; + }; + searxng = { image = "docker.io/searxng/searxng:latest"; autoStart = true; @@ -1180,24 +1139,6 @@ }; }; - tinyauth = { - image = "ghcr.io/steveiliop56/tinyauth:v5"; - autoStart = true; - autoUpdate = "registry"; - network = "internal_net"; - environmentFile = [ - "/pool/services/secrets/default" - "/pool/services/secrets/tinyauth" - ]; - volumes = [ - "/pool/services/podman/tinyauth/:/data" - ]; - extraConfig = { - Service = { - TimeoutStartSec = 900; - }; - }; - }; tubearchivist = { image = "docker.io/bbilly1/tubearchivist"; diff --git a/hosts/desktop/hardware.nix b/hosts/desktop/hardware.nix index b80939d..9e8e162 100644 --- a/hosts/desktop/hardware.nix +++ b/hosts/desktop/hardware.nix @@ -1,57 +1,34 @@ # 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, - ... -}: +{ config, lib, pkgs, modulesPath, ... }: { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ - "xhci_pci" - "ahci" - "nvme" - "usbhid" - "usb_storage" - "sd_mod" - "nvidia-uvm" - ]; + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; - fileSystems."/" = { - device = "/dev/disk/by-uuid/bd28421d-7ec4-4b23-964d-c07a6f351e1f"; - fsType = "ext4"; - }; + fileSystems."/" = + { device = "/dev/disk/by-uuid/c4d42c06-25fa-45cb-9341-76bb895140fb"; + fsType = "ext4"; + }; - boot.initrd.luks.devices."luks-e3a81f8e-3ae9-494b-a329-a6f860b10e34".device = - "/dev/disk/by-uuid/e3a81f8e-3ae9-494b-a329-a6f860b10e34"; + boot.initrd.luks.devices."luks-4b9e90fd-5bb4-4647-89b1-0d42d5f05a1e".device = "/dev/disk/by-uuid/4b9e90fd-5bb4-4647-89b1-0d42d5f05a1e"; - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/D47C-5FCE"; - fsType = "vfat"; - options = [ - "fmask=0077" - "dmask=0077" + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/81A0-0593"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/e0f10fbd-4f23-4f71-87bf-04a672ae3170"; } ]; - }; - - swapDevices = [ - { device = "/dev/disk/by-uuid/be22d9db-283a-4dd9-93d5-1006e392724b"; } - ]; - - fileSystems."/run/media/admin/08cabc7a-9a6e-4c21-8a07-6663af77b705" = { - device = "/dev/disk/by-uuid/08cabc7a-9a6e-4c21-8a07-6663af77b705"; - fsType = "ext4"; - }; # 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 diff --git a/hosts/desktop/settings.nix b/hosts/desktop/settings.nix index db56771..bac00ba 100644 --- a/hosts/desktop/settings.nix +++ b/hosts/desktop/settings.nix @@ -19,8 +19,7 @@ }; boot = { - initrd.luks.devices."luks-cbf20b12-90f7-4fbb-95d3-1320eece4d89".device = - "/dev/disk/by-uuid/cbf20b12-90f7-4fbb-95d3-1320eece4d89"; + initrd.luks.devices."luks-d5e2e9e2-9ffb-4e4c-9728-61209ac4dc2c".device = "/dev/disk/by-uuid/d5e2e9e2-9ffb-4e4c-9728-61209ac4dc2c"; kernelParams = [ "nvidia_drm.modeset=1" "nvidia_drm.fbdev=1" @@ -31,16 +30,16 @@ networking = { hostName = "nixos-desktop"; - interfaces.enp42s0 = { - wakeOnLan.enable = true; - ipv4.addresses = [ - { - address = "192.168.30.40"; - prefixLength = 24; - } - ]; - }; - defaultGateway = "192.168.30.1"; + # interfaces.enp42s0 = { + # wakeOnLan.enable = true; + # ipv4.addresses = [ + # { + # address = "192.168.30.40"; + # prefixLength = 24; + # } + # ]; + # }; + # defaultGateway = "192.168.30.1"; nameservers = [ "192.168.0.1" "1.1.1.1"