From bfe2094a5fa2ccaa77762fdf9a15862e4a322eab Mon Sep 17 00:00:00 2001 From: Roman Lubij Date: Tue, 17 Feb 2026 20:02:25 +0100 Subject: [PATCH] WIP: Laptop config --- configuration.nix => common/default.nix | 47 +--------- .../flakes}/czkawka-master/flake.nix | 3 +- {flakes => common/flakes}/fet/flake.nix | 6 +- .../flakes}/solaar-master/flake.nix | 0 common/hardware-configuration.nix | 1 + common/modules/default.nix | 11 +++ {modules => common/modules}/flatpak.nix | 0 {modules => common/modules}/gnome.nix | 2 - {modules => common/modules}/packages.nix | 18 +--- common/modules/programs.nix | 53 +++++++++++ {modules => common/modules}/services.nix | 47 ---------- desktop/default.nix | 70 ++++++++++++++ .../hardware-configuration.nix | 5 +- desktop/modules/default.nix | 10 ++ {modules => desktop/modules}/gdm-monitors.nix | 1 - desktop/modules/packages.nix | 41 ++++++++ {modules => desktop/modules}/programs.nix | 40 +------- desktop/modules/services.nix | 57 ++++++++++++ flake.lock | 42 ++++----- flake.nix | 35 ++++--- laptop/default.nix | 32 +++++++ laptop/hardware-configuration.nix | 93 +++++++++++++++++++ laptop/modules/attic.nix | 15 +++ laptop/modules/default.nix | 10 ++ laptop/modules/packages.nix | 6 ++ laptop/modules/programs.nix | 6 ++ laptop/modules/services.nix | 6 ++ 27 files changed, 467 insertions(+), 190 deletions(-) rename configuration.nix => common/default.nix (68%) rename {flakes => common/flakes}/czkawka-master/flake.nix (91%) rename {flakes => common/flakes}/fet/flake.nix (87%) rename {flakes => common/flakes}/solaar-master/flake.nix (100%) create mode 100644 common/hardware-configuration.nix create mode 100644 common/modules/default.nix rename {modules => common/modules}/flatpak.nix (100%) rename {modules => common/modules}/gnome.nix (94%) rename {modules => common/modules}/packages.nix (89%) create mode 100644 common/modules/programs.nix rename {modules => common/modules}/services.nix (57%) create mode 100644 desktop/default.nix rename hardware-configuration.nix => desktop/hardware-configuration.nix (99%) create mode 100644 desktop/modules/default.nix rename {modules => desktop/modules}/gdm-monitors.nix (98%) create mode 100644 desktop/modules/packages.nix rename {modules => desktop/modules}/programs.nix (60%) create mode 100644 desktop/modules/services.nix create mode 100644 laptop/default.nix create mode 100644 laptop/hardware-configuration.nix create mode 100644 laptop/modules/attic.nix create mode 100644 laptop/modules/default.nix create mode 100644 laptop/modules/packages.nix create mode 100644 laptop/modules/programs.nix create mode 100644 laptop/modules/services.nix diff --git a/configuration.nix b/common/default.nix similarity index 68% rename from configuration.nix rename to common/default.nix index 905b563..99efd27 100644 --- a/configuration.nix +++ b/common/default.nix @@ -1,7 +1,3 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). - { config, pkgs, @@ -11,13 +7,8 @@ { imports = [ + ./modules ./hardware-configuration.nix - ./modules/flatpak.nix - ./modules/gdm-monitors.nix - ./modules/gnome.nix - ./modules/packages.nix - ./modules/programs.nix - ./modules/services.nix ]; boot = { @@ -25,12 +16,6 @@ efi.canTouchEfiVariables = true; systemd-boot = { enable = true; - windows = { - "w" = { - title = "Windows"; - efiDeviceHandle = "HD3b"; - }; - }; }; }; consoleLogLevel = 3; @@ -38,20 +23,12 @@ }; networking = { - hostName = "epiquev2"; networkmanager.enable = true; - # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; - # Or disable the firewall altogether. firewall.enable = false; }; - # Set your time zone. time.timeZone = "Europe/Prague"; - # Select internationalisation properties. - i18n = { defaultLocale = "en_US.UTF-8"; @@ -68,7 +45,6 @@ }; }; - # Configure console keymap console.keyMap = "cz-lat2"; xdg.portal.enable = true; @@ -97,18 +73,15 @@ }; libvirtd = { enable = true; - qemu = { - swtpm.enable = true; - }; extraConfig = '' unix_sock_group = "qemu-libvirtd" ''; + onBoot = "ignore"; }; spiceUSBRedirection.enable = true; }; - # Define a user account. Don't forget to set a password with ‘passwd’. users.users.jax = { isNormalUser = true; description = "Roman Lubij"; @@ -139,10 +112,6 @@ }; hardware = { - amdgpu = { - initrd.enable = true; - overdrive.enable = true; - }; bluetooth = { enable = true; package = pkgs.bluez.overrideAttrs (old: { @@ -150,35 +119,29 @@ "--enable-sixaxis" ]; }); + powerOnBoot = true; input.General.ClassicBondedOnly = false; settings = { General = { - # FastConnectable = true; - Name = "epiquev2"; Experimental = true; }; }; }; + i2c.enable = true; graphics = { enable = true; enable32Bit = true; package = pkgs.mesa; - extraPackages = with pkgs; [ - rocmPackages.clr.icd # The ROCm OpenCL ICD - rocmPackages.rocminfo # The utility you want to run - rocmPackages.rocm-smi # Useful for general GPU health checks - ]; }; - amdgpu.opencl.enable = true; # ROCM + logitech.wireless = { enable = true; enableGraphical = true; }; }; - # QT stuff qt = { platformTheme = "qt5ct"; style = "adwaita-dark"; diff --git a/flakes/czkawka-master/flake.nix b/common/flakes/czkawka-master/flake.nix similarity index 91% rename from flakes/czkawka-master/flake.nix rename to common/flakes/czkawka-master/flake.nix index 3973007..c661b3c 100644 --- a/flakes/czkawka-master/flake.nix +++ b/common/flakes/czkawka-master/flake.nix @@ -76,8 +76,7 @@ install -Dm444 -t $out/share/applications data/io.github.qarmin.krokiet.desktop - install -Dm444 data/icons/io.github.qarmin.czkawka.krokiet.svg \ - $out/share/icons/hicolor/scalable/apps/io.github.qarmin.krokiet.svg + install -Dm444 -t $out/share/icons/hicolor/scalable/apps data/icons/io.github.qarmin.krokiet.svg \ install -Dm444 -t $out/share/metainfo data/io.github.qarmin.krokiet.metainfo.xml ''; diff --git a/flakes/fet/flake.nix b/common/flakes/fet/flake.nix similarity index 87% rename from flakes/fet/flake.nix rename to common/flakes/fet/flake.nix index d13e00c..8097d5d 100644 --- a/flakes/fet/flake.nix +++ b/common/flakes/fet/flake.nix @@ -20,11 +20,11 @@ { packages.default = pkgs.stdenv.mkDerivation rec { pname = "fet"; - version = "7.7.5"; # Current stable version as of Feb 2026 + version = "7.7.6"; src = pkgs.fetchurl { url = "https://lalescu.ro/liviu/fet/download/fet-${version}.tar.xz"; - sha256 = "0ajvpqjxswjxk3mjjh9mc0ks96f07d26pl8vashqs8jfc1isxrd0"; + sha256 = "06vvxxl5kza3a2v0fkw6bylavpickk8a5ybgabbhylmi59c1q1ns"; }; enableParallelBuilding = true; @@ -43,7 +43,6 @@ qmake fet.pro ''; - # This creates the .desktop file automatically desktopItems = [ (pkgs.makeDesktopItem { name = "fet"; @@ -64,7 +63,6 @@ mkdir -p $out/bin cp fet $out/bin/ - # Install the icon (FET usually provides icons in the source) mkdir -p $out/share/icons/hicolor/128x128/apps cp icons/fet.png $out/share/icons/hicolor/128x128/apps/fet.png diff --git a/flakes/solaar-master/flake.nix b/common/flakes/solaar-master/flake.nix similarity index 100% rename from flakes/solaar-master/flake.nix rename to common/flakes/solaar-master/flake.nix diff --git a/common/hardware-configuration.nix b/common/hardware-configuration.nix new file mode 100644 index 0000000..c915eb0 --- /dev/null +++ b/common/hardware-configuration.nix @@ -0,0 +1 @@ +{ ... }: { } diff --git a/common/modules/default.nix b/common/modules/default.nix new file mode 100644 index 0000000..ed55473 --- /dev/null +++ b/common/modules/default.nix @@ -0,0 +1,11 @@ +{ ... }: + +{ + imports = [ + ./flatpak.nix + ./gnome.nix + ./packages.nix + ./programs.nix + ./services.nix + ]; +} diff --git a/modules/flatpak.nix b/common/modules/flatpak.nix similarity index 100% rename from modules/flatpak.nix rename to common/modules/flatpak.nix diff --git a/modules/gnome.nix b/common/modules/gnome.nix similarity index 94% rename from modules/gnome.nix rename to common/modules/gnome.nix index 7d3996c..f2e8d68 100644 --- a/modules/gnome.nix +++ b/common/modules/gnome.nix @@ -24,7 +24,6 @@ ]; systemPackages = with pkgs.gnomeExtensions; [ - # thanatophobia alphabetical-app-grid appindicator blur-my-shell @@ -32,7 +31,6 @@ bubblemail color-picker dash-to-dock - # Not for G49 yet # favorites-to-applications-grid middle-click-to-close-in-overview undecorate diff --git a/modules/packages.nix b/common/modules/packages.nix similarity index 89% rename from modules/packages.nix rename to common/modules/packages.nix index 48859cd..b304fb8 100644 --- a/modules/packages.nix +++ b/common/modules/packages.nix @@ -9,7 +9,6 @@ }: { - # Allow unfree packages nixpkgs = { config = { allowUnfree = true; @@ -42,15 +41,14 @@ environment.systemPackages = with pkgs; [ abootimg - amdgpu_top android-tools anki appstream - arch-install-scripts aspell aspellDicts.cs aspellDicts.en aspellDicts.es + attic-client bibata-cursors binwalk brscan4 @@ -58,20 +56,16 @@ btrfs-progs bubblemail bzip2 - ccache curl - # czkawka - czkawka-master.packages.${pkgs.stdenv.hostPlatform.system}.default fet.packages.${pkgs.stdenv.hostPlatform.system}.default - # czkawka-git.packages.${pkgs.stdenv.hostPlatform.system}.czkawka-gui-wayland ddcutil discord distrobox docker-buildx docker-compose dog + element-desktop eza - fahclient ffmpeg-full ffmpegthumbnailer file @@ -108,7 +102,6 @@ killall kooha krita - lact libgsf libnotify libreoffice @@ -128,7 +121,6 @@ nixfmt ntfs3g nufraw-thumbnailer - nvtopPackages.amd obsidian openrgb-with-all-plugins papirus-icon-theme @@ -139,12 +131,8 @@ poppler-utils prismlauncher-unwrapped protonup-qt - radeontop - rocmPackages.rocm-smi - rocmPackages.rocminfo rquickshare saber - # solaar solaar-master.packages.${pkgs.stdenv.hostPlatform.system}.default logitech-udev-rules scrcpy @@ -153,7 +141,6 @@ smartmontools starship sushi - swtpm telegram-desktop testdisk thunderbird @@ -178,7 +165,6 @@ tumbler xz yt-dlp - zenmonitor zip zram-generator zsh-autosuggestions diff --git a/common/modules/programs.nix b/common/modules/programs.nix new file mode 100644 index 0000000..8b1682b --- /dev/null +++ b/common/modules/programs.nix @@ -0,0 +1,53 @@ +{ + config, + pkgs, + lib, + ... +}: + +{ + programs = { + bat.enable = true; + zsh.enable = true; + gamemode.enable = true; + firefox = { + enable = true; + languagePacks = [ + "cs" + "en-GB" + "en-US" + ]; + }; + + weylus.enable = true; + gamescope.enable = true; + + git = { + enable = true; + lfs.enable = true; + }; + + nh = { + clean = { + enable = true; + extraArgs = "--keep-since 7d --keep 10"; + }; + enable = true; + flake = "/etc/nixos"; + }; + + nix-ld = { + enable = true; + libraries = with pkgs; [ ]; + }; + + steam = { + dedicatedServer.openFirewall = true; + enable = true; + extest.enable = true; + gamescopeSession.enable = true; + protontricks.enable = true; + remotePlay.openFirewall = true; + }; + }; +} diff --git a/modules/services.nix b/common/modules/services.nix similarity index 57% rename from modules/services.nix rename to common/modules/services.nix index a716ad3..5401928 100644 --- a/modules/services.nix +++ b/common/modules/services.nix @@ -6,13 +6,7 @@ }: { - environment.systemPackages = with pkgs; [ - zram-generator - ]; - services = { - lact.enable = true; - sshd.enable = true; displayManager.gdm.enable = true; desktopManager.gnome.enable = true; @@ -42,12 +36,6 @@ #media-session.enable = true; }; - hardware.openrgb = { - enable = true; - motherboard = "amd"; - package = pkgs.openrgb-with-all-plugins; - }; - printing = { enable = true; drivers = [ @@ -67,10 +55,6 @@ SystemMaxFiles=100 ''; - udev.extraRules = '' - SUBSYSTEM=="block", ENV{ID_FS_UUID}=="39c48cb1-233c-4921-a614-3a193574df67", ENV{UDISKS_IGNORE}="1" - ''; - zram-generator = { enable = true; settings = { @@ -88,37 +72,6 @@ }; }; - btrbk.instances = { - daily_ssd = { - onCalendar = "daily"; - settings = { - timestamp_format = "long"; - snapshot_preserve = "7d"; - - volume."/" = { - subvolume = "home"; - snapshot_dir = "home/.snapshots/daily"; - }; - }; - }; - - weekly_hdd = { - onCalendar = "weekly"; - settings = { - timestamp_format = "long"; - snapshot_preserve_min = "latest"; - snapshot_preserve = "no"; - target_preserve = "20w"; - - volume."/" = { - subvolume = "home"; - snapshot_dir = "home/.snapshots/weekly"; - target = "/media/home-backup"; - }; - }; - }; - }; - fstrim = { enable = true; interval = "weekly"; diff --git a/desktop/default.nix b/desktop/default.nix new file mode 100644 index 0000000..76e814f --- /dev/null +++ b/desktop/default.nix @@ -0,0 +1,70 @@ +{ + config, + pkgs, + lib, + ... +}: + +{ + imports = [ + ./hardware-configuration.nix + ./modules + ../common + ]; + + boot = { + loader = { + systemd-boot = { + windows = { + "w" = { + title = "Windows"; + efiDeviceHandle = "HD3b"; + }; + }; + }; + }; + }; + + networking = { + hostName = "epiquev2"; + }; + + virtualisation = { + libvirtd = { + qemu = { + swtpm.enable = true; + }; + }; + + spiceUSBRedirection.enable = true; + }; + + hardware = { + cpu.amd.updateMicrocode = true; + + amdgpu = { + initrd.enable = true; + overdrive.enable = true; + }; + + bluetooth = { + settings = { + General = { + Name = "epiquev2"; + }; + }; + }; + + graphics = { + extraPackages = with pkgs; [ + rocmPackages.clr.icd + rocmPackages.rocminfo + rocmPackages.rocm-smi + ]; + }; + + amdgpu.opencl.enable = true; + }; + + system.stateVersion = "25.05"; +} diff --git a/hardware-configuration.nix b/desktop/hardware-configuration.nix similarity index 99% rename from hardware-configuration.nix rename to desktop/hardware-configuration.nix index f6a9bcf..1eeeb99 100644 --- a/hardware-configuration.nix +++ b/desktop/hardware-configuration.nix @@ -13,6 +13,7 @@ imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; + boot = { initrd = { kernelModules = [ ]; @@ -26,6 +27,7 @@ "sd_mod" ]; }; + kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest; kernelModules = [ "kvm-amd" @@ -33,9 +35,11 @@ "hid-logitech-dj" "hid-logitech-hidpp" ]; + extraModulePackages = with config.boot.kernelPackages; [ pkgs.linuxKernel.packages.linux_xanmod_latest.zenpower ]; + blacklistedKernelModules = [ "k10temp" ]; kernelParams = [ "amdgpu.seamless=1" @@ -191,5 +195,4 @@ # networking.interfaces.enp5s0.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = true; } diff --git a/desktop/modules/default.nix b/desktop/modules/default.nix new file mode 100644 index 0000000..12ba516 --- /dev/null +++ b/desktop/modules/default.nix @@ -0,0 +1,10 @@ +{ ... }: + +{ + imports = [ + ./gdm-monitors.nix + ./packages.nix + ./programs.nix + ./services.nix + ]; +} diff --git a/modules/gdm-monitors.nix b/desktop/modules/gdm-monitors.nix similarity index 98% rename from modules/gdm-monitors.nix rename to desktop/modules/gdm-monitors.nix index 16cf19c..b35b4e5 100644 --- a/modules/gdm-monitors.nix +++ b/desktop/modules/gdm-monitors.nix @@ -295,7 +295,6 @@ let in { systemd.tmpfiles.rules = [ - # L+ means to create a symbolic link (L) and create the directory if it doesn't exist (+) "L+ /run/gdm/.config/monitors.xml - - - - ${gdmMonitorsXml}" ]; } diff --git a/desktop/modules/packages.nix b/desktop/modules/packages.nix new file mode 100644 index 0000000..25f1321 --- /dev/null +++ b/desktop/modules/packages.nix @@ -0,0 +1,41 @@ +{ + config, + pkgs, + lib, + czkawka-master, + solaar-master, + fet, + ... +}: + +{ + environment.systemPackages = with pkgs; [ + amdgpu_top + arch-install-scripts + ccache + czkawka-master.packages.${pkgs.stdenv.hostPlatform.system}.default + fahclient + lact + nvtopPackages.amd + radeontop + rocmPackages.rocm-smi + rocmPackages.rocminfo + swtpm + zenmonitor + ]; + + fonts = { + packages = with pkgs; [ + fira-code + font-awesome + nerd-fonts.fira-code + nerd-fonts.fira-mono + nerd-fonts.symbols-only + nerd-fonts.ubuntu-mono + noto-fonts + noto-fonts-cjk-sans + noto-fonts-color-emoji + ubuntu-classic + ]; + }; +} diff --git a/modules/programs.nix b/desktop/modules/programs.nix similarity index 60% rename from modules/programs.nix rename to desktop/modules/programs.nix index 66d36b0..8863a7f 100644 --- a/modules/programs.nix +++ b/desktop/modules/programs.nix @@ -40,61 +40,23 @@ } ]; - bat.enable = true; - zsh.enable = true; - gamemode.enable = true; - firefox = { - enable = true; - languagePacks = ["cs" "en-GB" "en-US"]; - }; virt-manager.enable = true; - weylus.enable = true; - gamescope.enable = true; - noisetorch.enable = true; ccache = { enable = true; cacheDir = "/media/data/.ccache"; }; - git = { - enable = true; - lfs.enable = true; - }; - - nh = { - clean = { - enable = true; - extraArgs = "--keep-since 7d --keep 10"; - }; - enable = true; - flake = "/etc/nixos"; - }; - - nix-ld = { - enable = true; - libraries = with pkgs; [ ]; - }; - obs-studio = { enable = true; plugins = with pkgs.obs-studio-plugins; [ wlrobs obs-backgroundremoval obs-pipewire-audio-capture - obs-vaapi # optional AMD hardware acceleration + obs-vaapi obs-gstreamer obs-vkcapture ]; }; - - steam = { - dedicatedServer.openFirewall = true; - enable = true; - extest.enable = true; - gamescopeSession.enable = true; - protontricks.enable = true; - remotePlay.openFirewall = true; - }; }; } diff --git a/desktop/modules/services.nix b/desktop/modules/services.nix new file mode 100644 index 0000000..daa86ca --- /dev/null +++ b/desktop/modules/services.nix @@ -0,0 +1,57 @@ +{ + config, + pkgs, + lib, + ... +}: + +{ + environment.systemPackages = with pkgs; [ + zram-generator + ]; + + services = { + lact.enable = true; + + hardware.openrgb = { + enable = true; + motherboard = "amd"; + package = pkgs.openrgb-with-all-plugins; + }; + + udev.extraRules = '' + SUBSYSTEM=="block", ENV{ID_FS_UUID}=="39c48cb1-233c-4921-a614-3a193574df67", ENV{UDISKS_IGNORE}="1" + ''; + + btrbk.instances = { + daily_ssd = { + onCalendar = "daily"; + settings = { + timestamp_format = "long"; + snapshot_preserve = "7d"; + + volume."/" = { + subvolume = "home"; + snapshot_dir = "home/.snapshots/daily"; + }; + }; + }; + + weekly_hdd = { + onCalendar = "weekly"; + settings = { + timestamp_format = "long"; + snapshot_preserve_min = "latest"; + snapshot_preserve = "no"; + target_preserve = "20w"; + + volume."/" = { + subvolume = "home"; + snapshot_dir = "home/.snapshots/weekly"; + target = "/media/home-backup"; + }; + }; + }; + }; + }; +} diff --git a/flake.lock b/flake.lock index 6d17f17..548adfc 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "path": "./flakes/czkawka-master", + "path": "./common/flakes/czkawka-master", "type": "path" }, "original": { - "path": "./flakes/czkawka-master", + "path": "./common/flakes/czkawka-master", "type": "path" }, "parent": [] @@ -19,11 +19,11 @@ "czkawka-src": { "flake": false, "locked": { - "lastModified": 1770876278, - "narHash": "sha256-8wzQV1Ft0VgNauArgog5wY6OmDq5gKIYF6LKJ8qGq9g=", + "lastModified": 1771313751, + "narHash": "sha256-0mqQAmaa7N7NgOKUgstRed5Ss6PcbfJzh/vOsS9Dg6c=", "owner": "qarmin", "repo": "czkawka", - "rev": "cc4d357238246d9d95867801f9c58773710c009d", + "rev": "f665807d2e06b72950e0c0f1857ab9efefc32ac6", "type": "github" }, "original": { @@ -61,11 +61,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "path": "./flakes/fet", + "path": "./common/flakes/fet", "type": "path" }, "original": { - "path": "./flakes/fet", + "path": "./common/flakes/fet", "type": "path" }, "parent": [] @@ -145,11 +145,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1770841267, - "narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=", + "lastModified": 1771008912, + "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae", + "rev": "a82ccc39b39b621151d6732718e3e250109076fa", "type": "github" }, "original": { @@ -161,11 +161,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1770841267, - "narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=", + "lastModified": 1771008912, + "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae", + "rev": "a82ccc39b39b621151d6732718e3e250109076fa", "type": "github" }, "original": { @@ -177,11 +177,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1770956962, - "narHash": "sha256-dakX5wYFRTckgej29qy//68/DjFsEA/XNYfnltnaDlo=", + "lastModified": 1771264603, + "narHash": "sha256-iCDYLFNZ2kZdfyDa6praAuPZGnI4TAO6r6pBEXicGqA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2c4dbe7e217aa8f06a0e5a76169cc28f5de10b4b", + "rev": "2859feb957fc4ef8220705fd5524e770b21d7f7d", "type": "github" }, "original": { @@ -193,11 +193,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1770841267, - "narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=", + "lastModified": 1771008912, + "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae", + "rev": "a82ccc39b39b621151d6732718e3e250109076fa", "type": "github" }, "original": { @@ -240,11 +240,11 @@ "solaar-src": "solaar-src" }, "locked": { - "path": "./flakes/solaar-master", + "path": "./common/flakes/solaar-master", "type": "path" }, "original": { - "path": "./flakes/solaar-master", + "path": "./common/flakes/solaar-master", "type": "path" }, "parent": [] diff --git a/flake.nix b/flake.nix index 115003a..1ebea5d 100644 --- a/flake.nix +++ b/flake.nix @@ -1,12 +1,10 @@ { inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small"; - nix-flatpak.url = "github:gmodena/nix-flatpak"; - czkawka-master.url = "path:./flakes/czkawka-master"; - # czkawka-git.url = "github:qarmin/czkawka?dir=misc/nix"; - solaar-master.url = "path:./flakes/solaar-master"; - fet.url = "path:./flakes/fet"; + czkawka-master.url = "path:./common/flakes/czkawka-master"; + solaar-master.url = "path:./common/flakes/solaar-master"; + fet.url = "path:./common/flakes/fet"; }; outputs = @@ -14,22 +12,29 @@ self, nixpkgs, nix-flatpak, - czkawka-master, - solaar-master, - fet, ... - }: + }@inputs: + let + specialArgs = { inherit (inputs) czkawka-master solaar-master fet; }; + in { nixosConfigurations = { epiquev2 = nixpkgs.lib.nixosSystem { + inherit specialArgs; system = "x86_64-linux"; - specialArgs = { - inherit czkawka-master; - inherit solaar-master; - inherit fet; - }; modules = [ - ./configuration.nix + ./common + ./desktop + nix-flatpak.nixosModules.nix-flatpak + ]; + }; + + laptop = nixpkgs.lib.nixosSystem { + inherit specialArgs; + system = "x86_64-linux"; + modules = [ + ./common + ./laptop nix-flatpak.nixosModules.nix-flatpak ]; }; diff --git a/laptop/default.nix b/laptop/default.nix new file mode 100644 index 0000000..13f78e3 --- /dev/null +++ b/laptop/default.nix @@ -0,0 +1,32 @@ +{ + config, + pkgs, + lib, + ... +}: + +{ + imports = [ + ./hardware-configuration.nix + ./modules + ../common + ]; + + networking = { + hostName = "dalaptop"; + }; + + hardware = { + cpu.intel.updateMicrocode = true; + + bluetooth = { + settings = { + General = { + Name = "dalaptop"; + }; + }; + }; + }; + + system.stateVersion = "25.05"; +} diff --git a/laptop/hardware-configuration.nix b/laptop/hardware-configuration.nix new file mode 100644 index 0000000..3e6fdb9 --- /dev/null +++ b/laptop/hardware-configuration.nix @@ -0,0 +1,93 @@ +# 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" + "nvme" + "uas" + "sd_mod" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/02dad628-066d-4fba-ada7-bfdfbc2e4ca3"; + fsType = "btrfs"; + options = [ + "subvol=@nix" + "ssd" + "space_cache=v2" + "noatime" + "compress=zstd:8" + "autodefrag" + ]; + }; + + fileSystems."/home" = { + device = "/dev/disk/by-uuid/02dad628-066d-4fba-ada7-bfdfbc2e4ca3"; + fsType = "btrfs"; + options = [ + "subvol=@home" + "ssd" + "space_cache=v2" + "noatime" + "compress=zstd:7" + "autodefrag" + ]; + }; + + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/02dad628-066d-4fba-ada7-bfdfbc2e4ca3"; + fsType = "btrfs"; + options = [ + "subvol=@nix_nix" + "ssd" + "space_cache=v2" + "noatime" + "compress=zstd:10" + "autodefrag" + ]; + }; + + fileSystems."/var" = { + device = "/dev/disk/by-uuid/02dad628-066d-4fba-ada7-bfdfbc2e4ca3"; + fsType = "btrfs"; + options = [ + "subvol=@nix_var" + "ssd" + "space_cache=v2" + "noatime" + "compress=zstd:10" + "autodefrag" + ]; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/C871-B294"; + fsType = "vfat"; + options = [ + "fmask=0022" + "dmask=0022" + ]; + }; + + swapDevices = [ ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/laptop/modules/attic.nix b/laptop/modules/attic.nix new file mode 100644 index 0000000..40bdbb9 --- /dev/null +++ b/laptop/modules/attic.nix @@ -0,0 +1,15 @@ +{ ... }: { + nix.settings = { + substituters = [ + "https://attic.awroo.fun/my-config" + "https://cache.nixos.org" + ]; + + trusted-public-keys = [ + "my-config:zMLOKdd9wxVtJDK2jgI2fW6Uehtdc4WLyU0bOjNpyxM=" + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + ]; + + trusted-users = [ "root" "@wheel" ]; + }; +} \ No newline at end of file diff --git a/laptop/modules/default.nix b/laptop/modules/default.nix new file mode 100644 index 0000000..6875650 --- /dev/null +++ b/laptop/modules/default.nix @@ -0,0 +1,10 @@ +{ ... }: + +{ + imports = [ + ./attic.nix + ./packages.nix + ./programs.nix + ./services.nix + ]; +} diff --git a/laptop/modules/packages.nix b/laptop/modules/packages.nix new file mode 100644 index 0000000..0d7a220 --- /dev/null +++ b/laptop/modules/packages.nix @@ -0,0 +1,6 @@ +{ + ... +}: +{ + +} diff --git a/laptop/modules/programs.nix b/laptop/modules/programs.nix new file mode 100644 index 0000000..0d7a220 --- /dev/null +++ b/laptop/modules/programs.nix @@ -0,0 +1,6 @@ +{ + ... +}: +{ + +} diff --git a/laptop/modules/services.nix b/laptop/modules/services.nix new file mode 100644 index 0000000..0d7a220 --- /dev/null +++ b/laptop/modules/services.nix @@ -0,0 +1,6 @@ +{ + ... +}: +{ + +}