diff --git a/flake.lock b/flake.lock index 84810d1..c41ab98 100644 --- a/flake.lock +++ b/flake.lock @@ -134,11 +134,11 @@ ] }, "locked": { - "lastModified": 1756245065, - "narHash": "sha256-aAZNbGcWrVRZgWgkQbkabSGcDVRDMgON4BipMy69gvI=", + "lastModified": 1758463745, + "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", "owner": "nix-community", "repo": "home-manager", - "rev": "54b2879ce622d44415e727905925e21b8f833a98", + "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", "type": "github" }, "original": { @@ -449,11 +449,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1756469547, - "narHash": "sha256-YvtD2E7MYsQ3r7K9K2G7nCslCKMPShoSEAtbjHLtH0k=", + "lastModified": 1760139962, + "narHash": "sha256-4xggC56Rub3WInz5eD7EZWXuLXpNvJiUPahGtMkwtuc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "41d292bfc37309790f70f4c120b79280ce40af16", + "rev": "7e297ddff44a3cc93673bb38d0374df8d0ad73e4", "type": "github" }, "original": { @@ -479,11 +479,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1756542300, - "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", + "lastModified": 1760284886, + "narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa", + "rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43", "type": "github" }, "original": { @@ -612,11 +612,11 @@ ] }, "locked": { - "lastModified": 1754988908, - "narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=", + "lastModified": 1760393368, + "narHash": "sha256-8mN3kqyqa2PKY0wwZ2UmMEYMcxvNTwLaOrrDsw6Qi4E=", "owner": "Mic92", "repo": "sops-nix", - "rev": "3223c7a92724b5d804e9988c6b447a0d09017d48", + "rev": "ab8d56e85b8be14cff9d93735951e30c3e86a437", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 30236c5..2e5c05a 100644 --- a/flake.nix +++ b/flake.nix @@ -19,6 +19,7 @@ "github:xremap/nix-flake?rev=8001f37b1ffe86e76b62f36afadee2f4acf90e70"; # One commit behind head }; + # Understand what everything does outputs = { self, nixpkgs, nixpkgs-unstable, sops-nix, home-manager, ... }@inputs: let diff --git a/hosts/minoxy-workstation/configuration.nix b/hosts/minoxy-workstation/configuration.nix index 8c3ccf5..3189ae8 100644 --- a/hosts/minoxy-workstation/configuration.nix +++ b/hosts/minoxy-workstation/configuration.nix @@ -9,12 +9,6 @@ ./../../modules/essential.nix ./../../modules/common/sops.nix - # This is buggy right now - #./../../modules/services/webdav.nix - # Not working right now due to nvidia problems - # It worked fine on another machine thats why I am wondering - #./../../modules/services/ai.nix - ./../../modules/graphics/workstation.nix ./../../modules/hardware/nvidia.nix @@ -23,26 +17,6 @@ ]; networking.hostName = "minoxy"; - enableCuda = false; - - systemd.targets.sleep.enable = true; - systemd.targets.suspend.enable = true; - - programs.ydotool.enable = true; - services.input-remapper.enable = true; - - fileSystems."/shared" = { - device = "/dev/disk/by-uuid/8CEA-13E3"; # use lsblk -f - fsType = "exfat"; - options = [ "defaults" "uid=1000" "gid=100" "umask=000" ]; - }; - - # Testing - #environment.etc."mnt/jousb".source = "/mnt/jousb"; # ensures directory exists - #services.udev.extraRules = '' - # ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_LABEL}=="JOUSB", RUN+="${pkgs.mount}/bin/mount /dev/disk/by-label/JOUSB /mnt/jousb" - # ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_LABEL}=="JOUSB", RUN+="${pkgs.umount}/bin/umount /mnt/jousb" - #''; virtualisation.docker.enable = true; virtualisation.docker.storageDriver = "btrfs"; diff --git a/hosts/minoxy-workstation/hardware-configuration.nix b/hosts/minoxy-workstation/hardware-configuration.nix index 2426d09..7d4f17d 100644 --- a/hosts/minoxy-workstation/hardware-configuration.nix +++ b/hosts/minoxy-workstation/hardware-configuration.nix @@ -4,41 +4,45 @@ { 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" "usb_storage" "usbhid" "sd_mod" "sr_mod" ]; + boot.initrd.availableKernelModules = + [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" "sr_mod" ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; - # FUll btrfs config - fileSystems."/" = - { device = "/dev/disk/by-uuid/e52b1440-66f3-4129-b3c0-fba3491e2bbc"; - fsType = "btrfs"; - options = [ "subvol=root" ]; - }; - fileSystems."/home" = - { device = "/dev/disk/by-uuid/e52b1440-66f3-4129-b3c0-fba3491e2bbc"; - fsType = "btrfs"; - options = [ "subvol=home" ]; - }; - fileSystems."/nix" = - { device = "/dev/disk/by-uuid/e52b1440-66f3-4129-b3c0-fba3491e2bbc"; - fsType = "btrfs"; - options = [ "subvol=nix" ]; - }; + fileSystems."/shared" = { + device = "/dev/disk/by-uuid/8CEA-13E3"; # use lsblk -f + fsType = "exfat"; + options = [ "defaults" "uid=1000" "gid=100" "umask=000" ]; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/3091-F0BF"; - fsType = "vfat"; - options = [ "fmask=0022" "dmask=0022" ]; - }; + # FUll btrfs config + fileSystems."/" = { + device = "/dev/disk/by-uuid/e52b1440-66f3-4129-b3c0-fba3491e2bbc"; + fsType = "btrfs"; + options = [ "subvol=root" ]; + }; + fileSystems."/home" = { + device = "/dev/disk/by-uuid/e52b1440-66f3-4129-b3c0-fba3491e2bbc"; + fsType = "btrfs"; + options = [ "subvol=home" ]; + }; + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/e52b1440-66f3-4129-b3c0-fba3491e2bbc"; + fsType = "btrfs"; + options = [ "subvol=nix" ]; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/3091-F0BF"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; swapDevices = - [ { device = "/dev/disk/by-uuid/3e591e27-c6c5-4e28-900b-f899bc3d5e70"; } - ]; + [{ device = "/dev/disk/by-uuid/3e591e27-c6c5-4e28-900b-f899bc3d5e70"; }]; # 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 @@ -49,5 +53,6 @@ # networking.interfaces.wlp112s0.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.intel.updateMicrocode = + lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/hosts/nixyos-asus/configuration.nix b/hosts/nixyos-asus/configuration.nix index 61706df..8155ae7 100644 --- a/hosts/nixyos-asus/configuration.nix +++ b/hosts/nixyos-asus/configuration.nix @@ -16,9 +16,7 @@ ./../../modules/laptop/battery.nix ./../../modules/graphics/workstation.nix - - #./../../modules/services/webdav.nix - ./../../modules/services/scanning.nix + ./../../modules/services/printer.nix ]; networking.hostName = "nixyos"; diff --git a/hosts/thinix-thinkpad/configuration.nix b/hosts/thinix-thinkpad/configuration.nix index 3cb3243..c2aef17 100644 --- a/hosts/thinix-thinkpad/configuration.nix +++ b/hosts/thinix-thinkpad/configuration.nix @@ -11,31 +11,19 @@ ./../../modules/hardware/xremap.nix ./../../modules/hardware/boot.nix - ./../../modules/graphics/workstation.nix - ./../../modules/laptop/powersave.nix ./../../modules/laptop/battery.nix - - #./../../modules/services/webdav.nix - ./../../modules/services/scanning.nix + ./../../modules/services/printer.nix ]; networking.hostName = "thinix"; batMode = "double"; - # Cannot have this and tlp - #services.power-profiles-daemon.enable = true; - - programs.gnupg.agent = { - enable = true; - pinentryPackage = with pkgs; pinentry-all; - enableSSHSupport = true; - }; swapDevices = [{ device = "/swapfile"; size = 4096; }]; - system.stateVersion = "24.11"; + system.stateVersion = "24.11"; # Dont change this } diff --git a/modules/essential.nix b/modules/essential.nix index bf76805..fafa006 100644 --- a/modules/essential.nix +++ b/modules/essential.nix @@ -5,10 +5,18 @@ services.locate.enable = true; services.openssh.enable = true; + hardware.enableAllFirmware = true; + # Nix fun nixpkgs.config.allowUnfree = true; nix.settings.experimental-features = [ "flakes" "nix-command" ]; + programs.gnupg.agent = { + enable = true; + pinentryPackage = with pkgs; pinentry-all; + enableSSHSupport = true; + }; + time.timeZone = "Europe/Berlin"; programs.nix-ld.enable = true; # Linking support @@ -16,14 +24,16 @@ services.avahi.enable = true; services.avahi.nssmdns4 = true; - environment = { systemPackages = with pkgs; [ xorg.xrandr git starship zoxide rsync ]; }; + environment = { + systemPackages = with pkgs; [ yazi tmux git starship zoxide rsync ]; + }; nix.optimise.automatic = true; nix.gc = { automatic = true; dates = "weekly"; - options = "--delete-older-than 14d"; # Two weeks cache then forget + options = "--delete-older-than 7d"; # Two weeks cache then forget }; networking = { networkmanager = { enable = true; }; }; diff --git a/modules/hardware/nvidia.nix b/modules/hardware/nvidia.nix index 323112b..032695d 100644 --- a/modules/hardware/nvidia.nix +++ b/modules/hardware/nvidia.nix @@ -6,10 +6,6 @@ in { enableCuda = mkOption { type = types.bool; default = false; - description = '' - Enable CUDA support for Blender and other packages. - Warning: This can cause very long build times. - ''; }; nvidiaOpen = mkOption { type = types.bool; @@ -29,16 +25,5 @@ in { nvidiaSettings = true; package = config.boot.kernelPackages.nvidiaPackages.stable; }; - - # Apply CUDA-specific settings if enabled - nixpkgs.config.cudaSupport = config.enableCuda; - hardware.enableAllFirmware = true; - - environment.systemPackages = (if config.enableCuda then - [ - (pkgs.blender.override { cudaSupport = true; }) - ] - else - [ ]); }; } diff --git a/modules/services/ai.nix b/modules/services/ai.nix deleted file mode 100644 index 07dae7a..0000000 --- a/modules/services/ai.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: - -{ - imports = [ ../hardware/nvidia.nix ]; - - services.ollama = { - enable = true; - acceleration = "cuda"; - }; -} diff --git a/modules/services/scanning.nix b/modules/services/printer.nix similarity index 87% rename from modules/services/scanning.nix rename to modules/services/printer.nix index 1185c10..6a286a8 100644 --- a/modules/services/scanning.nix +++ b/modules/services/printer.nix @@ -6,4 +6,6 @@ hardware.sane.extraBackends = [ pkgs.sane-airscan ]; hardware.sane.disabledDefaultBackends = [ "escl" ]; services.udev.packages = [ pkgs.sane-airscan ]; + + services.printing.enable = true; } diff --git a/modules/services/printing.nix b/modules/services/printing.nix deleted file mode 100644 index 4610bde..0000000 --- a/modules/services/printing.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ ... }: - -{ - services.printing.enable = true; -} diff --git a/modules/services/webdav.nix b/modules/services/webdav.nix deleted file mode 100644 index 6f7d34f..0000000 --- a/modules/services/webdav.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ ... }: - -{ - # For web mounting - services.davfs2.enable = true; - - # Load the secret - sops = { - secrets = { - webdav_authstring = { - mode = "0600"; - path = "/etc/davfs2/secrets"; - }; - }; - }; - - systemd.mounts = [{ - description = "Webdav mount point"; - after = [ "network-online.target" ]; - wants = [ "network-online.target" ]; - what = "https://dav.hahn1.one"; - where = "/webdav"; - type = "davfs"; - options = "uid=1000,gid=1000,file_mode=0664,dir_mode=2775,_netdev"; - mountConfig.TimeoutSec = "5s"; - }]; - - systemd.automounts = [{ - description = "Webdav automount"; - where = "/webdav"; - wantedBy = [ "multi-user.target" ]; - automountConfig = { TimeoutIdleSec = "2m"; }; - }]; -} diff --git a/user/home.nix b/user/home.nix index 53dfeb5..8544096 100644 --- a/user/home.nix +++ b/user/home.nix @@ -20,6 +20,18 @@ }; }; + services.udiskie = { + enable = true; + settings = { + # workaround for + # https://github.com/nix-community/home-manager/issues/632 + program_options = { + # replace with your favorite file manager + file_manager = "${pkgs.nemo-with-extensions}/bin/nemo"; + }; + }; + }; + xdg.desktopEntries.fehcustom = { name = "FehCustom"; terminal = false; @@ -83,5 +95,5 @@ # Let Home Manager install and manage itself. programs.home-manager.enable = true; - home.stateVersion = "24.11"; + home.stateVersion = "24.11"; # Dont change } diff --git a/user/packages.nix b/user/packages.nix index 8a730f6..1e7314d 100644 --- a/user/packages.nix +++ b/user/packages.nix @@ -2,185 +2,127 @@ { home.packages = with pkgs; [ - weechat - clang - libcxx - just - deno + ######################################## + # GUI # + ######################################## + + # --- Core GUI --- alacritty - ffmpeg - - pavucontrol - iamb - sdkmanager - air - nmap - wakeonlan - wiki-tui - ansible - terraform - android-tools - vscode + libreoffice + unstable.sioyek + zathura + qalculate-qt + # --- Communication & Internet --- + discord + thunderbird + tor-browser + unstable.signal-desktop + qbittorrent + ausweisapp + + # --- Media & Desktop Tools --- simple-scan - obsidian - rclone - - sops gimp audio-recorder cheese - age - git-lfs - - tor - torsocks - w3m - timer - qbittorrent - discord - blender - audacity - zoom-us - vlc - thunderbird + mpv obsidian - obs-studio - prismlauncher - inkscape - - shotcut - - todo-txt-cli - systemctl-tui - acpi - feh - - watson - slides - - imagemagick - xdragon - - luarocks - - gradle - openjdk - - findutils.locate - ethtool - qalculate-qt - wl-clip-persist - btop - fastfetch - zathura - eza - fuzzel - - networkmanagerapplet - gdu - hyprpaper - tokei - fzf - glibc - gnumake - ninja - cmake - meson - lld - - vscode-langservers-extracted - - clang - clang-tools # Provides clangd - go - bitwarden-desktop - libinput - cudaPackages.cudatoolkit - ydotool - input-remapper - ausweisapp - spotify - pgadmin4 - dig - lazydocker - libtool - love - lua - zig - cargo - tor-browser - bitwarden-cli - rpi-imager - cppcheck - lazygit - nodejs - ripgrep - signal-desktop - unison - php - intelephense - trash-cli - - # Full haskell development environment - haskellPackages.ghc - haskellPackages.cabal-install - haskellPackages.stack - haskellPackages.hoogle - haskellPackages.haskell-language-server - - python3 - - fd - ttyper - zoxide - vim - tofi - bat - dunst - killall - libreoffice - perl - pipx - waybar - stow - brightnessctl anki - unstable.typst - mediainfo - powertop - exiftool - curl - sioyek - - xournalpp - rnote - emacs hyprshot hyprpicker hyprsunset + waybar + dunst + networkmanagerapplet + hyprpaper + pavucontrol + feh + xdragon + tofi + fuzzel - wl-clipboard + ######################################## + # CLI # + ######################################## - mpv - gitui - keepassxc - kitty - unstable.yazi + # --- Essentials & Navigation --- + ripgrep + fd + fzf + eza + bat + vim neovim - htop - alpine - wget - tmux - + stow + wl-clipboard + wl-clip-persist + killall + trash-cli + file zip xz unzip - file - gnupg + # --- System & Network --- + btop + fastfetch + acpi + brightnessctl + ethtool + findutils + nmap + wakeonlan + tor + torsocks + w3m + curl + wget + timer - nix-output-monitor + # --- Productivity & Misc --- + just + todo-txt-cli + systemctl-tui + wiki-tui + watson + slides + imagemagick + bitwarden-cli + lazydocker + lazygit + gitui + unstable.yazi + + # --- Languages & Package Managers --- + python3 + nodejs + go + lua + luarocks + deno + pipx + gradle + openjdk + + # --- Build Tools --- + clang + clang-tools + gnumake + cmake + ninja + meson + lld + + # --- DevOps & Versioning --- + git-lfs + sops + age + ansible + android-tools + sdkmanager + air + vscode-langservers-extracted ]; }