From 180a071620c099ae6b2a559da58c0e5907e89c4e Mon Sep 17 00:00:00 2001 From: William Date: Thu, 22 May 2025 09:52:44 -0300 Subject: [PATCH 01/30] niri config --- flake.nix | 1 + hosts/modules/desktop.nix | 11 ++- hosts/modules/impermanence.nix | 2 - hosts/modules/programs.nix | 13 +--- hosts/modules/virtualisation.nix | 1 - packages/niri.nix | 129 +++++++++++++++++++++++++++++++ users/modules/user/programs.nix | 6 +- 7 files changed, 141 insertions(+), 22 deletions(-) create mode 100644 packages/niri.nix diff --git a/flake.nix b/flake.nix index 8fe5b99..5a22c0c 100644 --- a/flake.nix +++ b/flake.nix @@ -113,6 +113,7 @@ }; workstationOverlay = final: prev: { plasticity = nixpkgs.legacyPackages."x86_64-linux".callPackage ./packages/plasticity.nix { }; + niri = nixpkgs.legacyPackages."x86_64-linux".callPackage ./packages/niri.nix { }; }; serverOverlay = final: prev: { }; diff --git a/hosts/modules/desktop.nix b/hosts/modules/desktop.nix index 59502ee..47c0ea6 100644 --- a/hosts/modules/desktop.nix +++ b/hosts/modules/desktop.nix @@ -25,7 +25,6 @@ compositor = "kwin"; }; }; - desktopManager.plasma6.enable = true; pipewire = { enable = true; alsa.enable = true; @@ -35,8 +34,12 @@ wireplumber.enable = true; }; }; - - # programs.hyprland.enable = true; + programs.niri.enable = true; + environment.systemPackages = with pkgs; [ + anyrun + foot + xwayland-satellite + ]; hardware = { xpadneo.enable = true; @@ -52,7 +55,7 @@ enable = true; xdgOpenUsePortal = true; extraPortals = with pkgs; [ - kdePackages.xdg-desktop-portal-kde + # kdePackages.xdg-desktop-portal-kde xdg-desktop-portal-gtk xdg-desktop-portal-gnome ]; diff --git a/hosts/modules/impermanence.nix b/hosts/modules/impermanence.nix index 5ba5f6e..7c5c7d6 100644 --- a/hosts/modules/impermanence.nix +++ b/hosts/modules/impermanence.nix @@ -27,14 +27,12 @@ ]; directories = [ "/etc/NetworkManager/system-connections" - "/etc/waydroid-extra/images/" "/var/lib/bluetooth" "/var/lib/flatpak" "/var/lib/nixos" "/var/lib/systemd/coredump" "/var/lib/systemd/timers" "/var/lib/tailscale" - "/var/lib/waydroid" "/var/log" ]; }; diff --git a/hosts/modules/programs.nix b/hosts/modules/programs.nix index d364637..8ba8925 100644 --- a/hosts/modules/programs.nix +++ b/hosts/modules/programs.nix @@ -46,6 +46,7 @@ let kdepkgs = with pkgs.kdePackages; [ ark + dolphin dolphin-plugins kolourpaint ]; @@ -156,18 +157,6 @@ roboto ]; }; - - environment.plasma6.excludePackages = ( - with pkgs.kdePackages; - [ - discover - elisa - gwenview - kate - khelpcenter - oxygen - ] - ); } )) ]; diff --git a/hosts/modules/virtualisation.nix b/hosts/modules/virtualisation.nix index fb2c156..232459a 100644 --- a/hosts/modules/virtualisation.nix +++ b/hosts/modules/virtualisation.nix @@ -32,7 +32,6 @@ virtualisation = { libvirtd.enable = true; lxd.enable = true; - waydroid.enable = true; }; }) ]; diff --git a/packages/niri.nix b/packages/niri.nix new file mode 100644 index 0000000..f866e1f --- /dev/null +++ b/packages/niri.nix @@ -0,0 +1,129 @@ +{ + lib, + dbus, + eudev, + fetchFromGitHub, + libdisplay-info, + libglvnd, + libinput, + libxkbcommon, + libgbm, + versionCheckHook, + nix-update-script, + pango, + pipewire, + pkg-config, + rustPlatform, + seatd, + systemd, + wayland, + withDbus ? true, + withDinit ? false, + withScreencastSupport ? true, + withSystemd ? true, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "niri"; + version = "25.05"; + + src = fetchFromGitHub { + owner = "YaLTeR"; + repo = "niri"; + tag = "v${finalAttrs.version}"; + hash = "sha256-ngQ+iTHmBJkEbsjYfCWTJdV8gHhOCTkV8K0at6Y+YHI="; + }; + + postPatch = '' + patchShebangs resources/niri-session + substituteInPlace resources/niri.service \ + --replace-fail '/usr/bin' "$out/bin" + ''; + + useFetchCargoVendor = true; + cargoHash = "sha256-tZp7AhhddEhKWzEUTgosxXMEzALbv6FxqnJEb9MBhzc="; + + strictDeps = true; + + nativeBuildInputs = [ + pkg-config + rustPlatform.bindgenHook + ]; + + buildInputs = + [ + libdisplay-info + libglvnd # For libEGL + libinput + libxkbcommon + libgbm + pango + seatd + wayland # For libwayland-client + ] + ++ lib.optional (withDbus || withScreencastSupport || withSystemd) dbus + ++ lib.optional withScreencastSupport pipewire + ++ lib.optional withSystemd systemd # Includes libudev + ++ lib.optional (!withSystemd) eudev; # Use an alternative libudev implementation when building w/o systemd + + buildFeatures = + lib.optional withDbus "dbus" + ++ lib.optional withDinit "dinit" + ++ lib.optional withScreencastSupport "xdp-gnome-screencast" + ++ lib.optional withSystemd "systemd"; + buildNoDefaultFeatures = true; + + postInstall = + '' + install -Dm0644 resources/niri.desktop -t $out/share/wayland-sessions + '' + + lib.optionalString withDbus '' + install -Dm0644 resources/niri-portals.conf -t $out/share/xdg-desktop-portal + '' + + lib.optionalString (withSystemd || withDinit) '' + install -Dm0755 resources/niri-session -t $out/bin + '' + + lib.optionalString withSystemd '' + install -Dm0644 resources/niri{-shutdown.target,.service} -t $out/lib/systemd/user + '' + + lib.optionalString withDinit '' + install -Dm0644 resources/dinit/niri{-shutdown,} -t $out/lib/dinit.d/user + ''; + + env = { + # Force linking with libEGL and libwayland-client + # so they can be discovered by `dlopen()` + RUSTFLAGS = toString ( + map (arg: "-C link-arg=" + arg) [ + "-Wl,--push-state,--no-as-needed" + "-lEGL" + "-lwayland-client" + "-Wl,--pop-state" + ] + ); + }; + + nativeInstallCheckInputs = [ versionCheckHook ]; + versionCheckProgramArg = "--version"; + doInstallCheck = true; + + passthru = { + providedSessions = [ "niri" ]; + updateScript = nix-update-script { }; + }; + + meta = { + description = "Scrollable-tiling Wayland compositor"; + homepage = "https://github.com/YaLTeR/niri"; + changelog = "https://github.com/YaLTeR/niri/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ + iogamaster + foo-dogsquared + sodiboo + getchoo + ]; + mainProgram = "niri"; + platforms = lib.platforms.linux; + }; +}) diff --git a/users/modules/user/programs.nix b/users/modules/user/programs.nix index 65985d8..2d4ae45 100644 --- a/users/modules/user/programs.nix +++ b/users/modules/user/programs.nix @@ -111,9 +111,9 @@ (lib.mkIf hostType.isWorkstation { fonts.fontconfig.enable = true; - # home.packages = with pkgs; [ - # ulauncher - # ]; + home.packages = with pkgs; [ + rmenu + ]; programs = { password-store.package = pkgs.pass-wayland; From b500c0a4ccc7bf01752c6bd2054da42062ef65a8 Mon Sep 17 00:00:00 2001 From: William Date: Thu, 22 May 2025 13:13:25 -0300 Subject: [PATCH 02/30] flake.lock: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'agenix': 'github:ryantm/agenix/6697e8babbd8f323dfd5e28f160a0128582c128b?narHash=sha256-E1WjB%2BzvDw4x058mg3MIdK5j2huvnNpTEEt2brhg2H8%3D' (2025-05-17) → 'github:ryantm/agenix/4835b1dc898959d8547a871ef484930675cb47f1?narHash=sha256-NwmAFuDUO/PFcgaGGr4j3ozG9Pe5hZ/ogitWhY%2BD81k%3D' (2025-05-18) • Updated input 'home-manager': 'github:nix-community/home-manager/ae755329092c87369b9e9a1510a8cf1ce2b1c708?narHash=sha256-5rCGrnkglKKj4cav1U3HC%2BSIUNJh08pqOK4spQv9RjA%3D' (2025-05-16) → 'github:nix-community/home-manager/f9186c64fcc6ee5f0114547acf9e814c806a640b?narHash=sha256-tdVx4kghhdy62LKuTnwE2RytOe8o88tah/yhpyuL0D4%3D' (2025-05-22) • Updated input 'home-manager-stable': 'github:nix-community/home-manager/1eec32f0efe3b830927989767a9e6ece0d82d608?narHash=sha256-3MmiUN/jOHBHQUnjqzg6qKArc17j2OS6jisEppDY4g8%3D' (2025-05-15) → 'github:nix-community/home-manager/d5f1f641b289553927b3801580598d200a501863?narHash=sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz%2BAFQF7n9NmNc%3D' (2025-05-19) • Updated input 'nixpkgs': 'github:nixos/nixpkgs/e06158e58f3adee28b139e9c2bcfcc41f8625b46?narHash=sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4%2BwYK4%3D' (2025-05-15) → 'github:nixos/nixpkgs/2795c506fe8fb7b03c36ccb51f75b6df0ab2553f?narHash=sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q%3D' (2025-05-20) • Updated input 'nixpkgs-stable': 'github:nixos/nixpkgs/ba8b70ee098bc5654c459d6a95dfc498b91ff858?narHash=sha256-IKKIXTSYJMmUtE%2BKav5Rob8SgLPnfnq4Qu8LyT4gdqQ%3D' (2025-05-15) → 'github:nixos/nixpkgs/72841a4a8761d1aed92ef6169a636872c986c76d?narHash=sha256-LXkWBVqilgx7Pohwqu/ABxDVw%2BCmi5/Mj2S2mpUH0Fw%3D' (2025-05-19) --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 909ccdc..3d704ac 100644 --- a/flake.lock +++ b/flake.lock @@ -10,11 +10,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1747514353, - "narHash": "sha256-E1WjB+zvDw4x058mg3MIdK5j2huvnNpTEEt2brhg2H8=", + "lastModified": 1747575206, + "narHash": "sha256-NwmAFuDUO/PFcgaGGr4j3ozG9Pe5hZ/ogitWhY+D81k=", "owner": "ryantm", "repo": "agenix", - "rev": "6697e8babbd8f323dfd5e28f160a0128582c128b", + "rev": "4835b1dc898959d8547a871ef484930675cb47f1", "type": "github" }, "original": { @@ -111,11 +111,11 @@ ] }, "locked": { - "lastModified": 1747331121, - "narHash": "sha256-3MmiUN/jOHBHQUnjqzg6qKArc17j2OS6jisEppDY4g8=", + "lastModified": 1747688870, + "narHash": "sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz+AFQF7n9NmNc=", "owner": "nix-community", "repo": "home-manager", - "rev": "1eec32f0efe3b830927989767a9e6ece0d82d608", + "rev": "d5f1f641b289553927b3801580598d200a501863", "type": "github" }, "original": { @@ -132,11 +132,11 @@ ] }, "locked": { - "lastModified": 1747439237, - "narHash": "sha256-5rCGrnkglKKj4cav1U3HC+SIUNJh08pqOK4spQv9RjA=", + "lastModified": 1747875884, + "narHash": "sha256-tdVx4kghhdy62LKuTnwE2RytOe8o88tah/yhpyuL0D4=", "owner": "nix-community", "repo": "home-manager", - "rev": "ae755329092c87369b9e9a1510a8cf1ce2b1c708", + "rev": "f9186c64fcc6ee5f0114547acf9e814c806a640b", "type": "github" }, "original": { @@ -179,11 +179,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1747327360, - "narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=", + "lastModified": 1747744144, + "narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=", "owner": "nixos", "repo": "nixpkgs", - "rev": "e06158e58f3adee28b139e9c2bcfcc41f8625b46", + "rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f", "type": "github" }, "original": { @@ -195,11 +195,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1747335874, - "narHash": "sha256-IKKIXTSYJMmUtE+Kav5Rob8SgLPnfnq4Qu8LyT4gdqQ=", + "lastModified": 1747676747, + "narHash": "sha256-LXkWBVqilgx7Pohwqu/ABxDVw+Cmi5/Mj2S2mpUH0Fw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "ba8b70ee098bc5654c459d6a95dfc498b91ff858", + "rev": "72841a4a8761d1aed92ef6169a636872c986c76d", "type": "github" }, "original": { From 95e23247b02eb32a6c44c9e93e239fd27dfce754 Mon Sep 17 00:00:00 2001 From: William Date: Fri, 23 May 2025 07:16:03 -0300 Subject: [PATCH 03/30] niri comin along --- flake.nix | 1 - hosts/modules/desktop.nix | 3 +- hosts/modules/programs.nix | 130 +++++++------- packages/niri.nix | 129 -------------- users/modules/programs.nix | 1 - users/modules/user/default.nix | 2 +- users/modules/user/home.nix | 24 +++ users/modules/user/hyprland.nix | 299 -------------------------------- users/modules/user/programs.nix | 44 ----- 9 files changed, 88 insertions(+), 545 deletions(-) delete mode 100644 packages/niri.nix create mode 100644 users/modules/user/home.nix delete mode 100644 users/modules/user/hyprland.nix diff --git a/flake.nix b/flake.nix index 5a22c0c..8fe5b99 100644 --- a/flake.nix +++ b/flake.nix @@ -113,7 +113,6 @@ }; workstationOverlay = final: prev: { plasticity = nixpkgs.legacyPackages."x86_64-linux".callPackage ./packages/plasticity.nix { }; - niri = nixpkgs.legacyPackages."x86_64-linux".callPackage ./packages/niri.nix { }; }; serverOverlay = final: prev: { }; diff --git a/hosts/modules/desktop.nix b/hosts/modules/desktop.nix index 47c0ea6..42e1a60 100644 --- a/hosts/modules/desktop.nix +++ b/hosts/modules/desktop.nix @@ -38,6 +38,8 @@ environment.systemPackages = with pkgs; [ anyrun foot + swaybg + swww xwayland-satellite ]; @@ -55,7 +57,6 @@ enable = true; xdgOpenUsePortal = true; extraPortals = with pkgs; [ - # kdePackages.xdg-desktop-portal-kde xdg-desktop-portal-gtk xdg-desktop-portal-gnome ]; diff --git a/hosts/modules/programs.nix b/hosts/modules/programs.nix index 8ba8925..8d5c1b1 100644 --- a/hosts/modules/programs.nix +++ b/hosts/modules/programs.nix @@ -1,5 +1,6 @@ { hostType, + inputs, lib, pkgs, ... @@ -44,12 +45,6 @@ # Workstation specific configuration (lib.mkIf hostType.isWorkstation ( let - kdepkgs = with pkgs.kdePackages; [ - ark - dolphin - dolphin-plugins - kolourpaint - ]; kwrite = pkgs.symlinkJoin { name = "kwrite"; paths = [ pkgs.kdePackages.kate ]; @@ -65,69 +60,66 @@ }; in { - environment.systemPackages = - with pkgs; - [ - ### Dev Tools ### - bat - deploy-rs - fd - fzf - nixfmt-rfc-style - nix-init - nix-output-monitor - ripgrep - ### Internet Browsers & Communication ### - beeper - brave - microsoft-edge - nextcloud-client - tor-browser - vesktop - ### Office & Productivity ### - aspell - aspellDicts.de - aspellDicts.en - aspellDicts.en-computers - aspellDicts.pt_BR - kwrite - libreoffice-qt - obsidian - (octaveFull.withPackages (octavePackages: with octavePackages; [ signal ])) - onlyoffice-desktopeditors - rnote - ### Graphics & Design ### - gimp - inkscape - orca-slicer - plasticity - ### Gaming & Entertainment ### - clonehero - heroic - mangohud - prismlauncher - protonup - ### System Utilities ### - adwaita-icon-theme - junction - kara - kde-rounded-corners - libfido2 - # lilipod BROKEN - mission-center - p7zip - qbittorrent - quickemu - quickgui - rustdesk - steam-run - unrar - ### Media ### - mpv - obs-studio - qview - ] - ++ kdepkgs; + environment.systemPackages = with pkgs; [ + ### Dev Tools ### + bat + deploy-rs + fd + fzf + nixfmt-rfc-style + nix-init + nix-output-monitor + ripgrep + ### Internet Browsers & Communication ### + beeper + brave + nextcloud-client + tor-browser + vesktop + ### Office & Productivity ### + aspell + aspellDicts.de + aspellDicts.en + aspellDicts.en-computers + aspellDicts.pt_BR + kwrite + libreoffice-qt + obsidian + (octaveFull.withPackages (octavePackages: with octavePackages; [ signal ])) + onlyoffice-desktopeditors + rnote + ### Graphics & Design ### + gimp + inkscape + orca-slicer + plasticity + ### Gaming & Entertainment ### + clonehero + heroic + mangohud + prismlauncher + protonup + ### System Utilities ### + adwaita-icon-theme + junction + kara + kde-rounded-corners + libfido2 + morewaita-icon-theme + nautilus + mission-center + p7zip + qbittorrent + quickemu + quickgui + rustdesk + steam-run + unrar + ### Media ### + mpv + obs-studio + qview + ]; programs = { adb.enable = true; diff --git a/packages/niri.nix b/packages/niri.nix deleted file mode 100644 index f866e1f..0000000 --- a/packages/niri.nix +++ /dev/null @@ -1,129 +0,0 @@ -{ - lib, - dbus, - eudev, - fetchFromGitHub, - libdisplay-info, - libglvnd, - libinput, - libxkbcommon, - libgbm, - versionCheckHook, - nix-update-script, - pango, - pipewire, - pkg-config, - rustPlatform, - seatd, - systemd, - wayland, - withDbus ? true, - withDinit ? false, - withScreencastSupport ? true, - withSystemd ? true, -}: - -rustPlatform.buildRustPackage (finalAttrs: { - pname = "niri"; - version = "25.05"; - - src = fetchFromGitHub { - owner = "YaLTeR"; - repo = "niri"; - tag = "v${finalAttrs.version}"; - hash = "sha256-ngQ+iTHmBJkEbsjYfCWTJdV8gHhOCTkV8K0at6Y+YHI="; - }; - - postPatch = '' - patchShebangs resources/niri-session - substituteInPlace resources/niri.service \ - --replace-fail '/usr/bin' "$out/bin" - ''; - - useFetchCargoVendor = true; - cargoHash = "sha256-tZp7AhhddEhKWzEUTgosxXMEzALbv6FxqnJEb9MBhzc="; - - strictDeps = true; - - nativeBuildInputs = [ - pkg-config - rustPlatform.bindgenHook - ]; - - buildInputs = - [ - libdisplay-info - libglvnd # For libEGL - libinput - libxkbcommon - libgbm - pango - seatd - wayland # For libwayland-client - ] - ++ lib.optional (withDbus || withScreencastSupport || withSystemd) dbus - ++ lib.optional withScreencastSupport pipewire - ++ lib.optional withSystemd systemd # Includes libudev - ++ lib.optional (!withSystemd) eudev; # Use an alternative libudev implementation when building w/o systemd - - buildFeatures = - lib.optional withDbus "dbus" - ++ lib.optional withDinit "dinit" - ++ lib.optional withScreencastSupport "xdp-gnome-screencast" - ++ lib.optional withSystemd "systemd"; - buildNoDefaultFeatures = true; - - postInstall = - '' - install -Dm0644 resources/niri.desktop -t $out/share/wayland-sessions - '' - + lib.optionalString withDbus '' - install -Dm0644 resources/niri-portals.conf -t $out/share/xdg-desktop-portal - '' - + lib.optionalString (withSystemd || withDinit) '' - install -Dm0755 resources/niri-session -t $out/bin - '' - + lib.optionalString withSystemd '' - install -Dm0644 resources/niri{-shutdown.target,.service} -t $out/lib/systemd/user - '' - + lib.optionalString withDinit '' - install -Dm0644 resources/dinit/niri{-shutdown,} -t $out/lib/dinit.d/user - ''; - - env = { - # Force linking with libEGL and libwayland-client - # so they can be discovered by `dlopen()` - RUSTFLAGS = toString ( - map (arg: "-C link-arg=" + arg) [ - "-Wl,--push-state,--no-as-needed" - "-lEGL" - "-lwayland-client" - "-Wl,--pop-state" - ] - ); - }; - - nativeInstallCheckInputs = [ versionCheckHook ]; - versionCheckProgramArg = "--version"; - doInstallCheck = true; - - passthru = { - providedSessions = [ "niri" ]; - updateScript = nix-update-script { }; - }; - - meta = { - description = "Scrollable-tiling Wayland compositor"; - homepage = "https://github.com/YaLTeR/niri"; - changelog = "https://github.com/YaLTeR/niri/releases/tag/v${finalAttrs.version}"; - license = lib.licenses.gpl3Only; - maintainers = with lib.maintainers; [ - iogamaster - foo-dogsquared - sodiboo - getchoo - ]; - mainProgram = "niri"; - platforms = lib.platforms.linux; - }; -}) diff --git a/users/modules/programs.nix b/users/modules/programs.nix index 55e4488..6558ea2 100644 --- a/users/modules/programs.nix +++ b/users/modules/programs.nix @@ -19,7 +19,6 @@ programs = { bash = { enable = true; - historyFile = "~/.cache/bash_history"; }; helix = { diff --git a/users/modules/user/default.nix b/users/modules/user/default.nix index 173f040..660553d 100644 --- a/users/modules/user/default.nix +++ b/users/modules/user/default.nix @@ -2,7 +2,7 @@ { imports = [ - # ./hyprland.nix ./programs.nix + ./home.nix ]; } diff --git a/users/modules/user/home.nix b/users/modules/user/home.nix new file mode 100644 index 0000000..869d579 --- /dev/null +++ b/users/modules/user/home.nix @@ -0,0 +1,24 @@ +{ pkgs, ... }: + +{ + home.pointerCursor = { + package = pkgs.kdePackages.breeze; + name = "Breeze_Light"; + gtk.enable = true; + x11.enable = true; + }; + + gtk = { + enable = true; + iconTheme = { + package = pkgs.morewaita-icon-theme; + name = "MoreWaita"; + }; + gtk3.extraConfig = { + gtk-decoration-layout = "appmenu:"; + }; + gtk4.extraConfig = { + gtk-decoration-layout = "appmenu:"; + }; + }; +} diff --git a/users/modules/user/hyprland.nix b/users/modules/user/hyprland.nix deleted file mode 100644 index e895922..0000000 --- a/users/modules/user/hyprland.nix +++ /dev/null @@ -1,299 +0,0 @@ -{ - lib, - pkgs, - ... -}: - -let - heightfittr = pkgs.writeShellApplication { - name = "heightfittr"; - runtimeInputs = with pkgs; [ - socat - hyprland - ]; - text = '' - function handle { - case "$1" in - *openwindow*) - hyprctl dispatch scroller:fitheight all > /dev/null - ;; - *closewindow*) - hyprctl dispatch scroller:fitheight all > /dev/null - ;; - esac - } - socat - "UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock" | while read -r line; do - handle "$line" - done - ''; - }; - - scrollermodetoggle = pkgs.writeShellApplication { - name = "scrollermodetoggle"; - runtimeInputs = with pkgs; [ hyprland ]; - text = '' - if [ -f "$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/colmode" ]; then - rm "$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/colmode" - hyprctl --batch 'dispatch scroller:setmode row; notify 2 1000 0 "Row Mode"' - else - touch "$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/colmode" - hyprctl --batch 'dispatch scroller:setmode col; notify 2 1000 0 "Column Mode"' - fi - ''; - }; -in - -{ - wayland.windowManager.hyprland = { - enable = true; - plugins = with pkgs.hyprlandPlugins; [ hyprscroller ]; - extraConfig = '' - ################ - ### MONITORS ### - ################ - monitor=,preferred,auto,1 - - ################# - ### AUTOSTART ### - ################# - # exec-once = ${pkgs.gnome-settings-daemon}/libexec/gsd-rfkill - # exec-once = waybar - # exec-once = syshud - exec-once = ${lib.getExe heightfittr} - env = XCURSOR_SIZE,24 - env = HYPRCURSOR_SIZE,24 - - ##################### - ### LOOK AND FEEL ### - ##################### - general { - gaps_in = 5 - gaps_out = 20 - border_size = 2 - resize_on_border = true - allow_tearing = false - layout = scroller - } - misc { - font_family = Inter - } - plugin { - scroller { - column_default_width = onethird - focuswrap = false - column_widths = onethird onehalf twothirds - center_row_if_space_available = true - } - } - decoration { - rounding = 10 - rounding_power = 2 - dim_inactive = true - dim_strength = 0.3 - shadow { - enabled = true - range = 4 - render_power = 3 - } - blur { - enabled = true - size = 8 - passes = 1 - vibrancy = 0.1696 - } - layerrule = blur, waybar - layerrule = ignorealpha 0.5, waybar - layerrule = ignorezero, waybar - } - animations { - enabled = yes, please :) - bezier = easeOutQuint,0.23,1,0.32,1 - bezier = easeInOutCubic,0.65,0.05,0.36,1 - bezier = linear,0,0,1,1 - bezier = almostLinear,0.5,0.5,0.75,1.0 - bezier = quick,0.15,0,0.1,1 - animation = global, 1, 1, default - animation = border, 1, 1, easeOutQuint - animation = windows, 1, 1, easeOutQuint - animation = windowsIn, 1, 1, easeOutQuint, popin 87% - animation = windowsOut, 1, 1, linear, popin 87% - animation = fadeIn, 1, 1, almostLinear - animation = fadeOut, 1, 1, almostLinear - animation = fade, 1, 1, quick - animation = layers, 1, 1, easeOutQuint - animation = layersIn, 1, 1, easeOutQuint, fade - animation = layersOut, 1, 1, linear, fade - animation = fadeLayersIn, 1, 1, almostLinear - animation = fadeLayersOut, 1, 1, almostLinear - animation = workspaces, 1, 1, almostLinear, slidevert - } - misc { - force_default_wallpaper = 0 - disable_hyprland_logo = true - } - - ############# - ### INPUT ### - ############# - input { - kb_layout = us - kb_variant = altgr-intl - follow_mouse = 1 - sensitivity = 0 - accel_profile = flat - natural_scroll = true - touchpad { - natural_scroll = true - clickfinger_behavior = true - } - } - - ################### - ### KEYBINDINGS ### - ################### - $mainMod = SUPER - $terminal = ghostty - $menu = ulauncher-toggle - # APP SHORTCUTS - bind = ALT, SPACE, exec, $menu - bind = $mainMod, RETURN, exec, $terminal - # SESSION MANAGEMENT - bind = CTRL ALT, DELETE, exit, - bind = $mainMod, mouse_up, exec, hyprnome - bind = $mainMod, mouse_down, exec, hyprnome --previous - bind = CTRL ALT, j, exec, hyprnome - bind = CTRL ALT, k, exec, hyprnome --previous - bind = $mainMod CTRL ALT, j, exec, hyprnome --move - bind = $mainMod CTRL ALT, k, exec, hyprnome --move --previous - bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ - bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- - bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle - bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle - bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+ - bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- - bindl = , XF86AudioNext, exec, playerctl next - bindl = , XF86AudioPause, exec, playerctl play-pause - bindl = , XF86AudioPlay, exec, playerctl play-pause - bindl = , XF86AudioPrev, exec, playerctl previous - bind = CTRL ALT SHIFT, a, exec, bash /home/user/.local/bin/toggle-audio-output.sh - # WINDOW MANAGEMENT - bind = ALT, F4, killactive, - bind = $mainMod, space, togglefloating, - bind = $mainMod, f, fullscreen - bindm = $mainMod, mouse:272, movewindow - bindm = $mainMod, mouse:273, resizewindow - bind = SUPER, h, movefocus, l - bind = SUPER, l, movefocus, r - bind = SUPER, k, movefocus, u - bind = SUPER, j, movefocus, d - bind = $mainMod CTRL, h, movewindow, l - bind = $mainMod CTRL, l, movewindow, r - bind = $mainMod CTRL, k, movewindow, u - bind = $mainMod CTRL, j, movewindow, d - bind = $mainMod, v, exec, ${lib.getExe scrollermodetoggle} - bind = $mainMod, r, scroller:cyclewidth, next - bind = $mainMod CTRL, r, scroller:cyclewidth, prev - bind = $mainMod, p, scroller:pin, - bind = $mainMod, c, scroller:alignwindow, center - bind = $mainMod CTRL, f, scroller:fitsize, all - - #################### - ### WINDOW RULES ### - #################### - windowrulev2 = suppressevent maximize, class:.* - windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 - # ulauncher - windowrule = float, ulauncher - windowrule = pin, ulauncher - windowrule = noborder, ulauncher - windowrule = noshadow, ulauncher - windowrule = nomaxsize, ulauncher - windowrule = noblur, ulauncher - windowrulev2 = animation slide top, class:^(ulauncher)$ - # browsers - windowrulev2 = plugin:scroller:columnwidth onehalf, class:(firefox) - windowrulev2 = plugin:scroller:columnwidth onehalf, class:(zen) - windowrulev2 = plugin:scroller:columnwidth onehalf, class:(brave) - ''; - }; - - services = { - # swaync = { - # enable = true; - # settings = { - # positionX = "left"; - # positionY = "top"; - # layer = "overlay"; - # control-center-layer = "top"; - # layer-shell = true; - # cssPriority = "application"; - # control-center-margin-top = 20; - # control-center-margin-bottom = 20; - # control-center-margin-right = 20; - # control-center-margin-left = 20; - # notification-2fa-action = true; - # notification-inline-replies = false; - # notification-icon-size = 64; - # notification-body-image-height = 100; - # notification-body-image-width = 200; - # timeout = 10; - # timeout-low = 5; - # timeout-critical = 0; - # fit-to-screen = true; - # relative-timestamps = true; - # control-center-width = 500; - # control-center-height = 600; - # notification-window-width = 500; - # keyboard-shortcuts = true; - # image-visibility = "when-available"; - # transition-time = 200; - # hide-on-clear = false; - # hide-on-action = true; - # script-fail-notify = true; - # widgets = [ - # "inhibitors" - # "title" - # "dnd" - # "notifications" - # "mpris" - # ]; - # widget-config = { - # inhibitors = { - # text = "Inhibitors"; - # button-text = "Clear All"; - # clear-all-button = true; - # }; - # title = { - # text = "Notifications"; - # clear-all-button = true; - # button-text = "Clear All"; - # }; - # dnd = { - # text = "Do Not Disturb"; - # }; - # mpris = { - # image-size = 96; - # image-radius = 12; - # }; - # }; - # }; - # }; - # clipman.enable = true; - }; - - # programs = { - # hyprlock.enable = true; - # }; - - home.packages = with pkgs; [ - brightnessctl - ghostty - hyprnome - playerctl - swaynotificationcenter - syshud - ulauncher - waybar - # inputs.mithril.packages.${pkgs.system}.mithril-control-center - ]; -} diff --git a/users/modules/user/programs.nix b/users/modules/user/programs.nix index 2d4ae45..4bc7f2d 100644 --- a/users/modules/user/programs.nix +++ b/users/modules/user/programs.nix @@ -111,10 +111,6 @@ (lib.mkIf hostType.isWorkstation { fonts.fontconfig.enable = true; - home.packages = with pkgs; [ - rmenu - ]; - programs = { password-store.package = pkgs.pass-wayland; @@ -137,46 +133,6 @@ }; }; }; - - gtk = { - gtk3.extraConfig = { - gtk-decoration-layout = "appmenu:"; - }; - gtk4.extraConfig = { - gtk-decoration-layout = "appmenu:"; - }; - }; - - # systemd.user.services.ulauncher = { - # Unit = { - # Description = "Ulauncher Application Launcher"; - # After = [ "graphical-session.target" ]; - # }; - # Service = { - # Type = "simple"; - # Environment = - # let - # pydeps = pkgs.python3.withPackages ( - # pp: with pp; [ - # # dependencies for ulauncher-albert-calculate-anything - # parsedatetime - # pint - # pytz - # requests - # simpleeval - # ] - # ); - # in - # [ - # "PYTHONPATH=${pydeps}/${pydeps.sitePackages}" - # ]; - # ExecStart = pkgs.writeShellScript "ulauncher-env-wrapper.sh" '' - # export PATH="''${XDG_BIN_HOME}:$HOME/.nix-profile/bin:/etc/profiles/per-user/$USER/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin" - # export GDK_BACKEND=wayland - # exec ${pkgs.ulauncher}/bin/ulauncher --hide-window - # ''; - # }; - # }; }) ]; } From 4b1707596805a0038b38ec9e441e29d3244c13ef Mon Sep 17 00:00:00 2001 From: William Date: Fri, 23 May 2025 07:33:18 -0300 Subject: [PATCH 04/30] added toggleaudiosink pkg --- flake.nix | 3 + hosts/modules/programs.nix | 195 ++++++++++++++++------------------- packages/toggleaudiosink.nix | 48 +++++++++ 3 files changed, 140 insertions(+), 106 deletions(-) create mode 100644 packages/toggleaudiosink.nix diff --git a/flake.nix b/flake.nix index 8fe5b99..fcf96a1 100644 --- a/flake.nix +++ b/flake.nix @@ -113,6 +113,9 @@ }; workstationOverlay = final: prev: { plasticity = nixpkgs.legacyPackages."x86_64-linux".callPackage ./packages/plasticity.nix { }; + toggleaudiosink = + nixpkgs.legacyPackages."x86_64-linux".callPackage ./packages/toggleaudiosink.nix + { }; }; serverOverlay = final: prev: { }; diff --git a/hosts/modules/programs.nix b/hosts/modules/programs.nix index 8d5c1b1..b8751c9 100644 --- a/hosts/modules/programs.nix +++ b/hosts/modules/programs.nix @@ -43,113 +43,96 @@ }) # Workstation specific configuration - (lib.mkIf hostType.isWorkstation ( - let - kwrite = pkgs.symlinkJoin { - name = "kwrite"; - paths = [ pkgs.kdePackages.kate ]; - postBuild = '' - rm -rf $out/bin/kate \ - $out/bin/.kate-wrapped \ - $out/share/applications/org.kde.kate.desktop \ - $out/share/man \ - $out/share/icons/hicolor/*/apps/kate.png \ - $out/share/icons/hicolor/scalable/apps/kate.svg \ - $out/share/appdata/org.kde.kate.appdata.xml - ''; + (lib.mkIf hostType.isWorkstation ({ + environment.systemPackages = with pkgs; [ + ### Dev Tools ### + bat + deploy-rs + fd + fzf + nixfmt-rfc-style + nix-init + nix-output-monitor + ripgrep + ### Internet Browsers & Communication ### + beeper + brave + nextcloud-client + tor-browser + vesktop + ### Office & Productivity ### + aspell + aspellDicts.de + aspellDicts.en + aspellDicts.en-computers + aspellDicts.pt_BR + libreoffice-qt + obsidian + (octaveFull.withPackages (octavePackages: with octavePackages; [ signal ])) + onlyoffice-desktopeditors + rnote + ### Graphics & Design ### + gimp + inkscape + orca-slicer + plasticity + ### Gaming & Entertainment ### + clonehero + heroic + mangohud + prismlauncher + protonup + ### System Utilities ### + adwaita-icon-theme + junction + kara + kde-rounded-corners + libfido2 + morewaita-icon-theme + nautilus + mission-center + p7zip + qbittorrent + quickemu + quickgui + rustdesk + steam-run + toggleaudiosink + unrar + ### Media ### + mpv + obs-studio + qview + ]; + + programs = { + adb.enable = true; + steam.enable = true; + dconf.enable = true; + nix-ld.enable = true; + kdeconnect.enable = true; + partition-manager.enable = true; + gamemode.enable = true; + appimage = { + enable = true; + binfmt = true; }; - in - { - environment.systemPackages = with pkgs; [ - ### Dev Tools ### - bat - deploy-rs - fd - fzf - nixfmt-rfc-style - nix-init - nix-output-monitor - ripgrep - ### Internet Browsers & Communication ### - beeper - brave - nextcloud-client - tor-browser - vesktop - ### Office & Productivity ### - aspell - aspellDicts.de - aspellDicts.en - aspellDicts.en-computers - aspellDicts.pt_BR - kwrite - libreoffice-qt - obsidian - (octaveFull.withPackages (octavePackages: with octavePackages; [ signal ])) - onlyoffice-desktopeditors - rnote - ### Graphics & Design ### - gimp - inkscape - orca-slicer - plasticity - ### Gaming & Entertainment ### - clonehero - heroic - mangohud - prismlauncher - protonup - ### System Utilities ### - adwaita-icon-theme - junction - kara - kde-rounded-corners - libfido2 - morewaita-icon-theme - nautilus - mission-center - p7zip - qbittorrent - quickemu - quickgui - rustdesk - steam-run - unrar - ### Media ### - mpv - obs-studio - qview + nh = { + enable = true; + flake = "/home/user/Projects/personal/nix-config"; + }; + }; + + fonts = { + fontDir.enable = true; + packages = with pkgs; [ + corefonts + inter + nerd-fonts.hack + noto-fonts-cjk-sans + roboto ]; - - programs = { - adb.enable = true; - steam.enable = true; - dconf.enable = true; - nix-ld.enable = true; - kdeconnect.enable = true; - partition-manager.enable = true; - gamemode.enable = true; - appimage = { - enable = true; - binfmt = true; - }; - nh = { - enable = true; - flake = "/home/user/Projects/personal/nix-config"; - }; - }; - - fonts = { - fontDir.enable = true; - packages = with pkgs; [ - corefonts - inter - nerd-fonts.hack - noto-fonts-cjk-sans - roboto - ]; - }; - } - )) + }; + })) ]; } diff --git a/packages/toggleaudiosink.nix b/packages/toggleaudiosink.nix new file mode 100644 index 0000000..623346f --- /dev/null +++ b/packages/toggleaudiosink.nix @@ -0,0 +1,48 @@ +{ + pkgs ? import { }, +}: + +pkgs.writeShellScriptBin "toggleaudiosink" '' + #!/usr/bin/env bash + + sound_server="pipewire" + + # Grab a count of how many audio sinks we have + sink_count=$(${pkgs.pulseaudio}/bin/pactl list sinks | grep -c "Sink #[[:digit:]]") + # Create an array of the actual sink IDs + sinks=() + mapfile -t sinks < <(${pkgs.pulseaudio}/bin/pactl list sinks | grep 'Sink #[[:digit:]]' | sed -n -e 's/.*Sink #\([[:digit:]]\)/\1/p') + # Get the ID of the active sink + active_sink_name=$(${pkgs.pulseaudio}/bin/pactl info | grep 'Default Sink:' | sed -n -e 's/.*Default Sink:[[:space:]]\+\(.*\)/\1/p') + active_sink=$(${pkgs.pulseaudio}/bin/pactl list sinks | grep -B 2 "$active_sink_name" | sed -n -e 's/Sink #\([[:digit:]]\)/\1/p' | head -n 1) + + # Get the ID of the last sink in the array + final_sink=''${sinks[$((sink_count - 1))]} + + # Find the index of the active sink + for index in "''${!sinks[@]}"; do + if [[ "''${sinks[$index]}" == "$active_sink" ]]; then + active_sink_index=$index + fi + done + + # Default to the first sink in the list + next_sink=''${sinks[0]} + next_sink_index=0 + + # If we're not at the end of the list, move up the list + if [[ $active_sink -ne $final_sink ]]; then + next_sink_index=$((active_sink_index + 1)) + next_sink=''${sinks[$next_sink_index]} + fi + + # Change the default sink + # Get the name of the next sink + next_sink_name=$(${pkgs.pulseaudio}/bin/pactl list sinks | grep -C 2 "Sink #$next_sink" | sed -n -e 's/.*Name:[[:space:]]\+\(.*\)/\1/p' | head -n 1) + ${pkgs.pulseaudio}/bin/pactl set-default-sink "$next_sink_name" + + # Move all inputs to the new sink + for app in $(${pkgs.pulseaudio}/bin/pactl list sink-inputs | sed -n -e 's/.*Sink Input #\([[:digit:]]\)/\1/p'); do + ${pkgs.pulseaudio}/bin/pactl "move-sink-input $app $next_sink" + done +'' From 58c5ddd0753b83dc3010aee34360e8557b02e8cc Mon Sep 17 00:00:00 2001 From: William Date: Sun, 1 Jun 2025 15:46:05 -0300 Subject: [PATCH 05/30] slowly making niri a better session --- hosts/modules/desktop.nix | 12 +++++------- hosts/modules/programs.nix | 1 + 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/hosts/modules/desktop.nix b/hosts/modules/desktop.nix index 42e1a60..2ac53c4 100644 --- a/hosts/modules/desktop.nix +++ b/hosts/modules/desktop.nix @@ -18,13 +18,6 @@ # Workstation specific configuration (lib.mkIf hostType.isWorkstation { services = { - displayManager.sddm = { - enable = true; - wayland = { - enable = true; - compositor = "kwin"; - }; - }; pipewire = { enable = true; alsa.enable = true; @@ -33,11 +26,16 @@ jack.enable = true; wireplumber.enable = true; }; + greetd = { + enable = true; + settings.default_session.command = "${pkgs.greetd.tuigreet}/bin/tuigreet --remember --asterisks --time"; + }; }; programs.niri.enable = true; environment.systemPackages = with pkgs; [ anyrun foot + gsettings-desktop-schemas swaybg swww xwayland-satellite diff --git a/hosts/modules/programs.nix b/hosts/modules/programs.nix index b8751c9..29322d3 100644 --- a/hosts/modules/programs.nix +++ b/hosts/modules/programs.nix @@ -47,6 +47,7 @@ environment.systemPackages = with pkgs; [ ### Dev Tools ### bat + code-cursor deploy-rs fd fzf From 37558060f4d0ad350c4c0fbbfdf483e8f820f1dd Mon Sep 17 00:00:00 2001 From: William Date: Sun, 1 Jun 2025 16:43:41 -0300 Subject: [PATCH 06/30] adding trantor; upgrading stable to 25.05 --- flake.lock | 60 ++++++++++++++++--- flake.nix | 34 ++++++++++- hosts/modules/alexandria/nextcloud.nix | 2 +- hosts/modules/trantor/boot.nix | 8 +++ hosts/modules/trantor/default.nix | 9 +++ hosts/modules/trantor/disko.nix | 32 ++++++++++ .../trantor/hardware-configuration.nix | 27 +++++++++ hosts/trantor.nix | 13 ++++ 8 files changed, 174 insertions(+), 11 deletions(-) create mode 100644 hosts/modules/trantor/boot.nix create mode 100644 hosts/modules/trantor/default.nix create mode 100644 hosts/modules/trantor/disko.nix create mode 100644 hosts/modules/trantor/hardware-configuration.nix create mode 100644 hosts/trantor.nix diff --git a/flake.lock b/flake.lock index 3d704ac..7e4c8ee 100644 --- a/flake.lock +++ b/flake.lock @@ -67,6 +67,48 @@ "type": "github" } }, + "disko": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1736864502, + "narHash": "sha256-ItkIZyebGvNH2dK9jVGzJHGPtb6BSWLN8Gmef16NeY0=", + "owner": "nix-community", + "repo": "disko", + "rev": "0141aabed359f063de7413f80d906e1d98c0c123", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "v1.11.0", + "repo": "disko", + "type": "github" + } + }, + "disko-stable": { + "inputs": { + "nixpkgs": [ + "nixpkgs-stable" + ] + }, + "locked": { + "lastModified": 1736864502, + "narHash": "sha256-ItkIZyebGvNH2dK9jVGzJHGPtb6BSWLN8Gmef16NeY0=", + "owner": "nix-community", + "repo": "disko", + "rev": "0141aabed359f063de7413f80d906e1d98c0c123", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "v1.11.0", + "repo": "disko", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -111,16 +153,16 @@ ] }, "locked": { - "lastModified": 1747688870, - "narHash": "sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz+AFQF7n9NmNc=", + "lastModified": 1748665073, + "narHash": "sha256-RMhjnPKWtCoIIHiuR9QKD7xfsKb3agxzMfJY8V9MOew=", "owner": "nix-community", "repo": "home-manager", - "rev": "d5f1f641b289553927b3801580598d200a501863", + "rev": "282e1e029cb6ab4811114fc85110613d72771dea", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-24.11", + "ref": "release-25.05", "repo": "home-manager", "type": "github" } @@ -195,16 +237,16 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1747676747, - "narHash": "sha256-LXkWBVqilgx7Pohwqu/ABxDVw+Cmi5/Mj2S2mpUH0Fw=", + "lastModified": 1748437600, + "narHash": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=", "owner": "nixos", "repo": "nixpkgs", - "rev": "72841a4a8761d1aed92ef6169a636872c986c76d", + "rev": "7282cb574e0607e65224d33be8241eae7cfe0979", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-24.11", + "ref": "nixos-25.05", "repo": "nixpkgs", "type": "github" } @@ -213,6 +255,8 @@ "inputs": { "agenix": "agenix", "deploy-rs": "deploy-rs", + "disko": "disko", + "disko-stable": "disko-stable", "home-manager": "home-manager_2", "home-manager-stable": "home-manager-stable", "impermanence": "impermanence", diff --git a/flake.nix b/flake.nix index fcf96a1..d0f2039 100644 --- a/flake.nix +++ b/flake.nix @@ -3,14 +3,23 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11"; + nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.05"; home-manager = { url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager-stable = { - url = "github:nix-community/home-manager/release-24.11"; + url = "github:nix-community/home-manager/release-25.05"; + inputs.nixpkgs.follows = "nixpkgs-stable"; + }; + + disko = { + url = "github:nix-community/disko?ref=v1.11.0"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + disko-stable = { + url = "github:nix-community/disko?ref=v1.11.0"; inputs.nixpkgs.follows = "nixpkgs-stable"; }; @@ -36,6 +45,8 @@ nixpkgs-stable, home-manager, home-manager-stable, + disko, + disko-stable, agenix, deploy-rs, impermanence, @@ -55,6 +66,7 @@ let pkgs = if type == "server" then nixpkgs-stable else nixpkgs; hm = if type == "server" then home-manager-stable else home-manager; + diskoInput = if type == "server" then disko-stable else disko; hostTypeFlags = { isServer = type == "server"; isWorkstation = type == "workstation"; @@ -62,6 +74,7 @@ defaultModules = [ ./hosts/${hostname}.nix agenix.nixosModules.default + diskoInput.nixosModules.default hm.nixosModules.default impermanence.nixosModules.impermanence nix-flatpak.nixosModules.nix-flatpak @@ -106,6 +119,11 @@ hostname = "alexandria"; type = "server"; }; + trantor = mkHost { + hostname = "trantor"; + type = "server"; + system = "aarch64-linux"; + }; }; overlays = { @@ -137,6 +155,18 @@ }; }; + trantor = { + hostname = "trantor"; + profiles = { + system = { + user = "root"; + sshUser = "root"; + remoteBuild = true; + path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.alexandria; + }; + }; + }; + io = { hostname = "io"; profiles = { diff --git a/hosts/modules/alexandria/nextcloud.nix b/hosts/modules/alexandria/nextcloud.nix index 04d7407..456f88c 100644 --- a/hosts/modules/alexandria/nextcloud.nix +++ b/hosts/modules/alexandria/nextcloud.nix @@ -9,7 +9,7 @@ services = { nextcloud = { enable = true; - package = pkgs.nextcloud30; + package = pkgs.nextcloud31; datadir = "/data/nextcloud"; hostName = "cloud.baduhai.dev"; configureRedis = true; diff --git a/hosts/modules/trantor/boot.nix b/hosts/modules/trantor/boot.nix new file mode 100644 index 0000000..ceb6821 --- /dev/null +++ b/hosts/modules/trantor/boot.nix @@ -0,0 +1,8 @@ +{ ... }: + +{ + boot = { + loader.efi.efiSysMountPoint = "/boot"; + initrd.systemd.enable = true; + }; +} diff --git a/hosts/modules/trantor/default.nix b/hosts/modules/trantor/default.nix new file mode 100644 index 0000000..a23030f --- /dev/null +++ b/hosts/modules/trantor/default.nix @@ -0,0 +1,9 @@ +{ ... }: + +{ + imports = [ + ./boot.nix + ./disko.nix + ./hardware-configuration.nix + ]; +} diff --git a/hosts/modules/trantor/disko.nix b/hosts/modules/trantor/disko.nix new file mode 100644 index 0000000..39599f4 --- /dev/null +++ b/hosts/modules/trantor/disko.nix @@ -0,0 +1,32 @@ +{ + disko.devices = { + disk = { + main = { + type = "disk"; + device = "/dev/sda"; + content = { + type = "gpt"; + partitions = { + boot = { + size = "512M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + }; + }; + root = { + size = "100%"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + }; + }; + }; + }; + }; + }; + }; +} diff --git a/hosts/modules/trantor/hardware-configuration.nix b/hosts/modules/trantor/hardware-configuration.nix new file mode 100644 index 0000000..d5cc31f --- /dev/null +++ b/hosts/modules/trantor/hardware-configuration.nix @@ -0,0 +1,27 @@ +{ + lib, + modulesPath, + ... +}: + +{ + imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; + + boot = { + kernelModules = [ ]; + extraModulePackages = [ ]; + initrd = { + availableKernelModules = [ + "xhci_pci" + "virtio_pci" + "virtio_scsi" + "usbhid" + ]; + kernelModules = [ ]; + }; + }; + + networking.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; +} diff --git a/hosts/trantor.nix b/hosts/trantor.nix new file mode 100644 index 0000000..4a02556 --- /dev/null +++ b/hosts/trantor.nix @@ -0,0 +1,13 @@ +{ ... }: + +{ + networking.hostName = "trantor"; + + imports = [ + ./modules/trantor + ./modules + ]; + + nix.nixPath = [ "nixos-config=${./trantor.nix}" ]; +} + From 66b68ce65816f5e70ba5e6e3b01ef8f2b4bbde35 Mon Sep 17 00:00:00 2001 From: William Date: Sun, 1 Jun 2025 17:53:46 -0300 Subject: [PATCH 07/30] forward minecraft server traffic from trantor to alexandria --- hosts/modules/alexandria/networking.nix | 5 ++-- hosts/modules/trantor/default.nix | 1 + hosts/modules/trantor/networking.nix | 35 +++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 hosts/modules/trantor/networking.nix diff --git a/hosts/modules/alexandria/networking.nix b/hosts/modules/alexandria/networking.nix index f518b12..2b85a18 100644 --- a/hosts/modules/alexandria/networking.nix +++ b/hosts/modules/alexandria/networking.nix @@ -6,11 +6,10 @@ allowedTCPPorts = [ 80 # HTTP 443 # HTTPS - 25565 # Minecraft + # 25565 # Minecraft ]; allowedUDPPorts = [ - 24454 # Minecraft Simple Voice Chat - 25565 # Minecraft + # 25565 # Minecraft ]; }; }; diff --git a/hosts/modules/trantor/default.nix b/hosts/modules/trantor/default.nix index a23030f..9bdb292 100644 --- a/hosts/modules/trantor/default.nix +++ b/hosts/modules/trantor/default.nix @@ -5,5 +5,6 @@ ./boot.nix ./disko.nix ./hardware-configuration.nix + ./networking.nix ]; } diff --git a/hosts/modules/trantor/networking.nix b/hosts/modules/trantor/networking.nix new file mode 100644 index 0000000..6de3d0c --- /dev/null +++ b/hosts/modules/trantor/networking.nix @@ -0,0 +1,35 @@ +{ ... }: + +{ + networking = { + firewall = { + allowedTCPPorts = [ 25565 ]; + allowedUDPPorts = [ + 25565 + 19132 + ]; + }; + nat = { + enable = true; + externalInterface = "enp0s6"; + internalInterfaces = [ "tailscale0" ]; + forwardPorts = [ + { + sourcePort = 25565; + proto = "tcp"; + destination = "alexandria:25565"; + } + { + sourcePort = 25565; + proto = "udp"; + destination = "alexandria:25565"; + } + { + sourcePort = 19132; + proto = "udp"; + destination = "alexandria:19132"; + } + ]; + }; + }; +} From 632f4d9b38ed58eab7cdde5598cf8923d8f4bef1 Mon Sep 17 00:00:00 2001 From: William Date: Sun, 1 Jun 2025 18:16:32 -0300 Subject: [PATCH 08/30] can't be bothered with nextcloud anymore --- hosts/modules/alexandria/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/modules/alexandria/default.nix b/hosts/modules/alexandria/default.nix index d33bd6d..2816fef 100644 --- a/hosts/modules/alexandria/default.nix +++ b/hosts/modules/alexandria/default.nix @@ -19,7 +19,7 @@ in ./jellyfin.nix ./librespeed.nix ./memos.nix - ./nextcloud.nix + # ./nextcloud.nix ./nginx.nix ./searx.nix ./services.nix From ba224d45a4b03eb6845f3f71fb8521a5588de1f7 Mon Sep 17 00:00:00 2001 From: William Date: Sun, 1 Jun 2025 18:20:32 -0300 Subject: [PATCH 09/30] need to open ports on alexandria --- hosts/modules/alexandria/networking.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hosts/modules/alexandria/networking.nix b/hosts/modules/alexandria/networking.nix index 2b85a18..722303c 100644 --- a/hosts/modules/alexandria/networking.nix +++ b/hosts/modules/alexandria/networking.nix @@ -6,10 +6,11 @@ allowedTCPPorts = [ 80 # HTTP 443 # HTTPS - # 25565 # Minecraft + 25565 # Minecraft ]; allowedUDPPorts = [ - # 25565 # Minecraft + 19132 # Minecraft Bedrock + 25565 # Minecraft ]; }; }; From 45b1a1e7ecd0f56c84b4c4b5144cb401db704f6a Mon Sep 17 00:00:00 2001 From: William Date: Sun, 1 Jun 2025 18:49:31 -0300 Subject: [PATCH 10/30] goodbye nextcloud --- hosts/modules/programs.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/modules/programs.nix b/hosts/modules/programs.nix index 29322d3..dee2478 100644 --- a/hosts/modules/programs.nix +++ b/hosts/modules/programs.nix @@ -58,7 +58,6 @@ ### Internet Browsers & Communication ### beeper brave - nextcloud-client tor-browser vesktop ### Office & Productivity ### From e79b2eeb05fd9ef9a7d8ef95ba02879a0131bcf5 Mon Sep 17 00:00:00 2001 From: William Date: Sun, 1 Jun 2025 19:01:23 -0300 Subject: [PATCH 11/30] iptables doesn't understand hostnames --- hosts/modules/trantor/networking.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hosts/modules/trantor/networking.nix b/hosts/modules/trantor/networking.nix index 6de3d0c..d1c6b09 100644 --- a/hosts/modules/trantor/networking.nix +++ b/hosts/modules/trantor/networking.nix @@ -17,17 +17,17 @@ { sourcePort = 25565; proto = "tcp"; - destination = "alexandria:25565"; + destination = "100.76.19.50:25565"; } { sourcePort = 25565; proto = "udp"; - destination = "alexandria:25565"; + destination = "100.76.19.50:25565"; } { sourcePort = 19132; proto = "udp"; - destination = "alexandria:19132"; + destination = "100.76.19.50:19132"; } ]; }; From fd1da06173cf5fac307e9adc73a205e1c56dd6d3 Mon Sep 17 00:00:00 2001 From: William Date: Sun, 1 Jun 2025 19:11:29 -0300 Subject: [PATCH 12/30] better see if ssh'd --- users/modules/user/programs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/users/modules/user/programs.nix b/users/modules/user/programs.nix index 4bc7f2d..93620e8 100644 --- a/users/modules/user/programs.nix +++ b/users/modules/user/programs.nix @@ -57,7 +57,7 @@ settings = { add_newline = false; format = '' - $directory$git_branch$git_status$nix_shell + $hostname$directory$git_branch$git_status$nix_shell [ ❯ ](bold green) ''; right_format = "$cmd_duration$character"; From 830b945d916cefc51686be80ad3e831cb4f5bdce Mon Sep 17 00:00:00 2001 From: William Date: Sun, 1 Jun 2025 19:13:40 -0300 Subject: [PATCH 13/30] better ssh icon --- users/modules/user/programs.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/users/modules/user/programs.nix b/users/modules/user/programs.nix index 93620e8..1f3452a 100644 --- a/users/modules/user/programs.nix +++ b/users/modules/user/programs.nix @@ -61,6 +61,9 @@ [ ❯ ](bold green) ''; right_format = "$cmd_duration$character"; + hostname = { + ssh_symbol = "" + }; character = { error_symbol = "[](red)"; success_symbol = "[󱐋](green)"; From 830376454c144e4afb29d55ae931477ed5b97691 Mon Sep 17 00:00:00 2001 From: William Date: Sun, 1 Jun 2025 19:15:48 -0300 Subject: [PATCH 14/30] semicolons --- users/modules/user/programs.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/users/modules/user/programs.nix b/users/modules/user/programs.nix index 1f3452a..9b25dbb 100644 --- a/users/modules/user/programs.nix +++ b/users/modules/user/programs.nix @@ -62,7 +62,7 @@ ''; right_format = "$cmd_duration$character"; hostname = { - ssh_symbol = "" + ssh_symbol = " "; }; character = { error_symbol = "[](red)"; From 982e7edd2d166cfd7e0d35a93132ea03a9da9811 Mon Sep 17 00:00:00 2001 From: William Date: Sun, 1 Jun 2025 19:22:16 -0300 Subject: [PATCH 15/30] enable ip forwarding on trantor's kernel --- hosts/modules/trantor/networking.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hosts/modules/trantor/networking.nix b/hosts/modules/trantor/networking.nix index d1c6b09..0246968 100644 --- a/hosts/modules/trantor/networking.nix +++ b/hosts/modules/trantor/networking.nix @@ -32,4 +32,8 @@ ]; }; }; + + kernel.sysctl = { + "net.ipv4.ip_forward" = 1; + }; } From 8f165dbc05ef531bedc05bb86e1f3ad037d37dd1 Mon Sep 17 00:00:00 2001 From: William Date: Sun, 1 Jun 2025 19:23:30 -0300 Subject: [PATCH 16/30] fix kernel ip forwarding on trantor --- hosts/modules/trantor/networking.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/hosts/modules/trantor/networking.nix b/hosts/modules/trantor/networking.nix index 0246968..3dc32f0 100644 --- a/hosts/modules/trantor/networking.nix +++ b/hosts/modules/trantor/networking.nix @@ -31,9 +31,8 @@ } ]; }; - }; - - kernel.sysctl = { - "net.ipv4.ip_forward" = 1; + kernel.sysctl = { + "net.ipv4.ip_forward" = 1; + }; }; } From 9838e913b5bb8b1074abf7a45fdcbb9ec8abb97b Mon Sep 17 00:00:00 2001 From: William Date: Sun, 1 Jun 2025 19:25:28 -0300 Subject: [PATCH 17/30] I should stop blindly trusting llms --- hosts/modules/trantor/boot.nix | 1 + hosts/modules/trantor/networking.nix | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/hosts/modules/trantor/boot.nix b/hosts/modules/trantor/boot.nix index ceb6821..35b8cb6 100644 --- a/hosts/modules/trantor/boot.nix +++ b/hosts/modules/trantor/boot.nix @@ -4,5 +4,6 @@ boot = { loader.efi.efiSysMountPoint = "/boot"; initrd.systemd.enable = true; + kernel.sysctl."net.ipv4.ip_forward" = 1; }; } diff --git a/hosts/modules/trantor/networking.nix b/hosts/modules/trantor/networking.nix index 3dc32f0..d1c6b09 100644 --- a/hosts/modules/trantor/networking.nix +++ b/hosts/modules/trantor/networking.nix @@ -31,8 +31,5 @@ } ]; }; - kernel.sysctl = { - "net.ipv4.ip_forward" = 1; - }; }; } From 907d8bc9d21f3c08bf00c00e4cab2889974dd9bd Mon Sep 17 00:00:00 2001 From: William Date: Sun, 1 Jun 2025 21:32:24 -0300 Subject: [PATCH 18/30] masquarade nat from alexandria --- hosts/modules/trantor/networking.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/modules/trantor/networking.nix b/hosts/modules/trantor/networking.nix index d1c6b09..f9c2d84 100644 --- a/hosts/modules/trantor/networking.nix +++ b/hosts/modules/trantor/networking.nix @@ -13,6 +13,7 @@ enable = true; externalInterface = "enp0s6"; internalInterfaces = [ "tailscale0" ]; + externalIP = null; forwardPorts = [ { sourcePort = 25565; From afc7385c9552a9f5841396652212ce8244abd56f Mon Sep 17 00:00:00 2001 From: William Date: Mon, 2 Jun 2025 13:01:07 -0300 Subject: [PATCH 19/30] fix ssh keys and disallow root login --- hosts/modules/networking.nix | 5 ++++- hosts/modules/users.nix | 8 ++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/hosts/modules/networking.nix b/hosts/modules/networking.nix index 63459d0..30dd7b5 100644 --- a/hosts/modules/networking.nix +++ b/hosts/modules/networking.nix @@ -18,7 +18,10 @@ enable = true; extraUpFlags = [ "--operator=user" ]; }; - openssh.enable = true; + openssh = { + enable = true; + settings.PermitRootLogin = "no"; + }; }; } diff --git a/hosts/modules/users.nix b/hosts/modules/users.nix index 96f1ba5..e463781 100644 --- a/hosts/modules/users.nix +++ b/hosts/modules/users.nix @@ -20,17 +20,13 @@ "wheel" ]; openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKcwF1yuWEfYGScNocEbs0AmGxyTIzGc4/IhpU587SJE" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA1v3+q3EaruiiStWjubEJWvtejam/r41uoOpCdwJtLL" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA1v3+q3EaruiiStWjubEJWvtejam/r41uoOpCdwJtLL user@rotterdam" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO3Y0PVpGfJHonqDS7qoCFhqzUvqGq9I9sax+F9e/5cs user@io" ]; hashedPassword = "$6$Pj7v/CpstyuWQQV0$cNujVDhfMBdwlGVEnnd8t71.kZPixbo0u25cd.874iaqLTH4V5fa1f98V5zGapjQCz5JyZmsR94xi00sUrntT0"; }; root = { shell = pkgs.fish; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKcwF1yuWEfYGScNocEbs0AmGxyTIzGc4/IhpU587SJE" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA1v3+q3EaruiiStWjubEJWvtejam/r41uoOpCdwJtLL" - ]; hashedPassword = "!"; }; }; From f5adb9d6d774d342c8c37061e30df5da01af22e8 Mon Sep 17 00:00:00 2001 From: William Date: Mon, 2 Jun 2025 15:43:17 -0300 Subject: [PATCH 20/30] move flatpaks to programs file --- flake.nix | 19 ++++++++++--------- hosts/modules/default.nix | 1 - hosts/modules/flatpak.nix | 35 ----------------------------------- hosts/modules/programs.nix | 20 +++++++++++++++++++- 4 files changed, 29 insertions(+), 46 deletions(-) delete mode 100644 hosts/modules/flatpak.nix diff --git a/flake.nix b/flake.nix index d0f2039..92c3eeb 100644 --- a/flake.nix +++ b/flake.nix @@ -15,10 +15,6 @@ }; disko = { - url = "github:nix-community/disko?ref=v1.11.0"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - disko-stable = { url = "github:nix-community/disko?ref=v1.11.0"; inputs.nixpkgs.follows = "nixpkgs-stable"; }; @@ -33,6 +29,8 @@ inputs.nixpkgs.follows = "nixpkgs-stable"; }; + nix-minecraft.url = "github:Infinidoge/nix-minecraft"; + nix-flatpak.url = "github:gmodena/nix-flatpak/latest"; impermanence.url = "github:nix-community/impermanence"; @@ -46,11 +44,11 @@ home-manager, home-manager-stable, disko, - disko-stable, agenix, deploy-rs, - impermanence, + nix-minecraft, nix-flatpak, + impermanence, ... }: { @@ -66,7 +64,6 @@ let pkgs = if type == "server" then nixpkgs-stable else nixpkgs; hm = if type == "server" then home-manager-stable else home-manager; - diskoInput = if type == "server" then disko-stable else disko; hostTypeFlags = { isServer = type == "server"; isWorkstation = type == "workstation"; @@ -74,7 +71,7 @@ defaultModules = [ ./hosts/${hostname}.nix agenix.nixosModules.default - diskoInput.nixosModules.default + disko.nixosModules.default hm.nixosModules.default impermanence.nixosModules.impermanence nix-flatpak.nixosModules.nix-flatpak @@ -92,7 +89,9 @@ } ]; serverModules = [ - self.nixosModules.qbittorrent + nixpkgs.overlays = [ + self.overlays.serverOverlay + ]; ]; typeModules = if type == "server" then serverModules else workstationModules; allModules = defaultModules ++ typeModules ++ extraModules; @@ -118,11 +117,13 @@ alexandria = mkHost { hostname = "alexandria"; type = "server"; + extraModules = [ self.nixosModules.qbittorrent ]; }; trantor = mkHost { hostname = "trantor"; type = "server"; system = "aarch64-linux"; + extraModules = [ nix-minecraft.nixosModules.default ]; }; }; diff --git a/hosts/modules/default.nix b/hosts/modules/default.nix index c877354..bc290b2 100644 --- a/hosts/modules/default.nix +++ b/hosts/modules/default.nix @@ -5,7 +5,6 @@ ./boot.nix ./console.nix ./desktop.nix - ./flatpak.nix ./impermanence.nix ./locale.nix ./networking.nix diff --git a/hosts/modules/flatpak.nix b/hosts/modules/flatpak.nix deleted file mode 100644 index 39d57d9..0000000 --- a/hosts/modules/flatpak.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - hostType, - lib, - ... -}: - -{ - config = lib.mkMerge [ - # Common configuration - { - } - - # Server specific configuration - (lib.mkIf hostType.isServer { - }) - - # Workstation specific configuration - (lib.mkIf hostType.isWorkstation { - services.flatpak = { - enable = true; - packages = [ - "com.github.k4zmu2a.spacecadetpinball" - "com.github.tchx84.Flatseal" - "com.steamgriddb.SGDBoop" - "app.zen_browser.zen" - "io.github.Foldex.AdwSteamGtk" - "io.itch.itch" - "org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/24.08" - ]; - uninstallUnmanaged = true; - update.auto.enable = true; - }; - }) - ]; -} diff --git a/hosts/modules/programs.nix b/hosts/modules/programs.nix index dee2478..09f1167 100644 --- a/hosts/modules/programs.nix +++ b/hosts/modules/programs.nix @@ -33,9 +33,10 @@ ls = "${pkgs.eza}/bin/eza --icons --group-directories-first"; neofetch = "fastfetch"; tree = "ls --tree"; - tsh = "ssh -o RequestTTY=yes $argv tmux -u -CC new -A -s tmux-main"; syscleanup = "sudo nix-collect-garbage -d; sudo /run/current-system/bin/switch-to-configuration boot"; }; + + services.flatpak.enable = lib.mkForce false; } # Server specific configuration @@ -133,6 +134,23 @@ roboto ]; }; + + services.flatpak = { + enable = true; + packages = [ + "com.boxy_svg.BoxySVG" + "com.github.k4zmu2a.spacecadetpinball" + "com.github.tchx84.Flatseal" + "com.steamgriddb.SGDBoop" + "app.zen_browser.zen" + "io.github.Foldex.AdwSteamGtk" + "io.itch.itch" + "io.mrarm.mcpelauncher" + "org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/24.08" + ]; + uninstallUnmanaged = true; + update.auto.enable = true; + }; })) ]; } From 40e311e5e4d11b79cc74963d3bb86839761e0ea7 Mon Sep 17 00:00:00 2001 From: William Date: Mon, 2 Jun 2025 19:02:39 -0300 Subject: [PATCH 21/30] will continue on other host --- flake.lock | 116 +++++++++++++++++++++------- flake.nix | 11 ++- hosts/modules/trantor/default.nix | 1 + hosts/modules/trantor/minecraft.nix | 20 +++++ 4 files changed, 121 insertions(+), 27 deletions(-) create mode 100644 hosts/modules/trantor/minecraft.nix diff --git a/flake.lock b/flake.lock index 7e4c8ee..86a03ed 100644 --- a/flake.lock +++ b/flake.lock @@ -68,27 +68,6 @@ } }, "disko": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736864502, - "narHash": "sha256-ItkIZyebGvNH2dK9jVGzJHGPtb6BSWLN8Gmef16NeY0=", - "owner": "nix-community", - "repo": "disko", - "rev": "0141aabed359f063de7413f80d906e1d98c0c123", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "v1.11.0", - "repo": "disko", - "type": "github" - } - }, - "disko-stable": { "inputs": { "nixpkgs": [ "nixpkgs-stable" @@ -125,6 +104,40 @@ "type": "github" } }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -219,13 +232,33 @@ "type": "github" } }, + "nix-minecraft": { + "inputs": { + "flake-compat": "flake-compat_2", + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1748570485, + "narHash": "sha256-oDnEc/rxyDf+uUXO56Z2TJtrrQoBe0Z4MCIRaY6lVZ0=", + "owner": "Infinidoge", + "repo": "nix-minecraft", + "rev": "6c961ee42ff2301ee61c75aa42cbe8c8adecf3c8", + "type": "github" + }, + "original": { + "owner": "Infinidoge", + "repo": "nix-minecraft", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1747744144, - "narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=", + "lastModified": 1742889210, + "narHash": "sha256-hw63HnwnqU3ZQfsMclLhMvOezpM7RSB0dMAtD5/sOiw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f", + "rev": "698214a32beb4f4c8e3942372c694f40848b360d", "type": "github" }, "original": { @@ -251,17 +284,33 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1747744144, + "narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { "agenix": "agenix", "deploy-rs": "deploy-rs", "disko": "disko", - "disko-stable": "disko-stable", "home-manager": "home-manager_2", "home-manager-stable": "home-manager-stable", "impermanence": "impermanence", "nix-flatpak": "nix-flatpak", - "nixpkgs": "nixpkgs", + "nix-minecraft": "nix-minecraft", + "nixpkgs": "nixpkgs_2", "nixpkgs-stable": "nixpkgs-stable" } }, @@ -295,6 +344,21 @@ "type": "github" } }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "utils": { "inputs": { "systems": "systems_2" diff --git a/flake.nix b/flake.nix index 92c3eeb..464038b 100644 --- a/flake.nix +++ b/flake.nix @@ -89,9 +89,11 @@ } ]; serverModules = [ + { nixpkgs.overlays = [ self.overlays.serverOverlay ]; + } ]; typeModules = if type == "server" then serverModules else workstationModules; allModules = defaultModules ++ typeModules ++ extraModules; @@ -123,7 +125,14 @@ hostname = "trantor"; type = "server"; system = "aarch64-linux"; - extraModules = [ nix-minecraft.nixosModules.default ]; + extraModules = [ + nix-minecraft.nixosModules.minecraft-servers + { + nixpkgs.overlays = [ + nix-minecraft.overlays.default + ]; + } + ]; }; }; diff --git a/hosts/modules/trantor/default.nix b/hosts/modules/trantor/default.nix index 9bdb292..a357f9b 100644 --- a/hosts/modules/trantor/default.nix +++ b/hosts/modules/trantor/default.nix @@ -6,5 +6,6 @@ ./disko.nix ./hardware-configuration.nix ./networking.nix + ./minecraft.nix ]; } diff --git a/hosts/modules/trantor/minecraft.nix b/hosts/modules/trantor/minecraft.nix new file mode 100644 index 0000000..8933cf0 --- /dev/null +++ b/hosts/modules/trantor/minecraft.nix @@ -0,0 +1,20 @@ +{ pkgs, ... }: + +{ + services.minecraft-server = { + enable = true; + eula = true; + servers.fabric = { + enable = true; + package = pkgs.fabricServers.fabric-1_21_5; + openFirewall = true; + serverProperties = { + server-port = 25566; + difficulty = "hard"; + gamemode = "survival"; + white-list = true; + motd = "Servidor dos primos"; + }; + }; + }; +} From fdb1b8aeb54f448a4ad626ecb04d9642c0c9a5ad Mon Sep 17 00:00:00 2001 From: William Date: Mon, 2 Jun 2025 19:08:21 -0300 Subject: [PATCH 22/30] cannot mkDefault flatpak to false --- hosts/modules/programs.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hosts/modules/programs.nix b/hosts/modules/programs.nix index 09f1167..0ca4abd 100644 --- a/hosts/modules/programs.nix +++ b/hosts/modules/programs.nix @@ -35,12 +35,11 @@ tree = "ls --tree"; syscleanup = "sudo nix-collect-garbage -d; sudo /run/current-system/bin/switch-to-configuration boot"; }; - - services.flatpak.enable = lib.mkForce false; } # Server specific configuration (lib.mkIf hostType.isServer { + services.flatpak.enable = false; }) # Workstation specific configuration From 8f3d0e7a7d76a0a1266c44cf74a770f128f19521 Mon Sep 17 00:00:00 2001 From: William Date: Mon, 2 Jun 2025 19:10:16 -0300 Subject: [PATCH 23/30] it was mkForce instead of mkDefault before --- hosts/modules/programs.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hosts/modules/programs.nix b/hosts/modules/programs.nix index 0ca4abd..6daa25b 100644 --- a/hosts/modules/programs.nix +++ b/hosts/modules/programs.nix @@ -35,11 +35,12 @@ tree = "ls --tree"; syscleanup = "sudo nix-collect-garbage -d; sudo /run/current-system/bin/switch-to-configuration boot"; }; + + services.flatpak.enable = lib.mkDefault false; } # Server specific configuration (lib.mkIf hostType.isServer { - services.flatpak.enable = false; }) # Workstation specific configuration From 0ec2a2cc7d0f9181c001d9270aac9ad118892aab Mon Sep 17 00:00:00 2001 From: William Date: Mon, 2 Jun 2025 19:18:56 -0300 Subject: [PATCH 24/30] flake.lock: Update MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flake lock file updates: • Updated input 'home-manager': 'github:nix-community/home-manager/f9186c64fcc6ee5f0114547acf9e814c806a640b?narHash=sha256-tdVx4kghhdy62LKuTnwE2RytOe8o88tah/yhpyuL0D4%3D' (2025-05-22) → 'github:nix-community/home-manager/c7fdb7e90bff1a51b79c1eed458fb39e6649a82a?narHash=sha256-EB%2BLzYHK0D5aqxZiYoPeoZoOzSAs8eqBDxm3R%2B6wMKU%3D' (2025-06-02) • Updated input 'nixpkgs': 'github:nixos/nixpkgs/2795c506fe8fb7b03c36ccb51f75b6df0ab2553f?narHash=sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q%3D' (2025-05-20) → 'github:nixos/nixpkgs/910796cabe436259a29a72e8d3f5e180fc6dfacc?narHash=sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8%3D' (2025-05-31) • Updated input 'nixpkgs-stable': 'github:nixos/nixpkgs/7282cb574e0607e65224d33be8241eae7cfe0979?narHash=sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04%3D' (2025-05-28) → 'github:nixos/nixpkgs/a59eb7800787c926045d51b70982ae285faa2346?narHash=sha256-q8jG2HJWgooWa9H0iatZqBPF3bp0504e05MevFmnFLY%3D' (2025-05-31) --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index 86a03ed..777d0bf 100644 --- a/flake.lock +++ b/flake.lock @@ -187,11 +187,11 @@ ] }, "locked": { - "lastModified": 1747875884, - "narHash": "sha256-tdVx4kghhdy62LKuTnwE2RytOe8o88tah/yhpyuL0D4=", + "lastModified": 1748830238, + "narHash": "sha256-EB+LzYHK0D5aqxZiYoPeoZoOzSAs8eqBDxm3R+6wMKU=", "owner": "nix-community", "repo": "home-manager", - "rev": "f9186c64fcc6ee5f0114547acf9e814c806a640b", + "rev": "c7fdb7e90bff1a51b79c1eed458fb39e6649a82a", "type": "github" }, "original": { @@ -270,11 +270,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1748437600, - "narHash": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=", + "lastModified": 1748708770, + "narHash": "sha256-q8jG2HJWgooWa9H0iatZqBPF3bp0504e05MevFmnFLY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "7282cb574e0607e65224d33be8241eae7cfe0979", + "rev": "a59eb7800787c926045d51b70982ae285faa2346", "type": "github" }, "original": { @@ -286,11 +286,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1747744144, - "narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=", + "lastModified": 1748693115, + "narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f", + "rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc", "type": "github" }, "original": { From c3631f1ef8edd138d5ad57893b545666bdf5556e Mon Sep 17 00:00:00 2001 From: William Date: Mon, 2 Jun 2025 19:29:24 -0300 Subject: [PATCH 25/30] jvm options --- hosts/modules/trantor/minecraft.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/modules/trantor/minecraft.nix b/hosts/modules/trantor/minecraft.nix index 8933cf0..44b8532 100644 --- a/hosts/modules/trantor/minecraft.nix +++ b/hosts/modules/trantor/minecraft.nix @@ -7,6 +7,7 @@ servers.fabric = { enable = true; package = pkgs.fabricServers.fabric-1_21_5; + jvmOpts = "-Xms2G -Xmx8G"; openFirewall = true; serverProperties = { server-port = 25566; From 6287704cf322b4b9898bcb77b6f9d707e76cce5b Mon Sep 17 00:00:00 2001 From: William Date: Mon, 2 Jun 2025 20:32:06 -0300 Subject: [PATCH 26/30] removed nix-minecraft --- flake.lock | 94 ++--------------------------- flake.nix | 11 ---- hosts/modules/trantor/default.nix | 1 - hosts/modules/trantor/minecraft.nix | 21 ------- 4 files changed, 4 insertions(+), 123 deletions(-) delete mode 100644 hosts/modules/trantor/minecraft.nix diff --git a/flake.lock b/flake.lock index 777d0bf..aefdd3e 100644 --- a/flake.lock +++ b/flake.lock @@ -104,40 +104,6 @@ "type": "github" } }, - "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1733328505, - "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-utils": { - "inputs": { - "systems": "systems_3" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -232,33 +198,13 @@ "type": "github" } }, - "nix-minecraft": { - "inputs": { - "flake-compat": "flake-compat_2", - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1748570485, - "narHash": "sha256-oDnEc/rxyDf+uUXO56Z2TJtrrQoBe0Z4MCIRaY6lVZ0=", - "owner": "Infinidoge", - "repo": "nix-minecraft", - "rev": "6c961ee42ff2301ee61c75aa42cbe8c8adecf3c8", - "type": "github" - }, - "original": { - "owner": "Infinidoge", - "repo": "nix-minecraft", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1742889210, - "narHash": "sha256-hw63HnwnqU3ZQfsMclLhMvOezpM7RSB0dMAtD5/sOiw=", + "lastModified": 1748693115, + "narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "698214a32beb4f4c8e3942372c694f40848b360d", + "rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc", "type": "github" }, "original": { @@ -284,22 +230,6 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1748693115, - "narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "root": { "inputs": { "agenix": "agenix", @@ -309,8 +239,7 @@ "home-manager-stable": "home-manager-stable", "impermanence": "impermanence", "nix-flatpak": "nix-flatpak", - "nix-minecraft": "nix-minecraft", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs", "nixpkgs-stable": "nixpkgs-stable" } }, @@ -344,21 +273,6 @@ "type": "github" } }, - "systems_3": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "utils": { "inputs": { "systems": "systems_2" diff --git a/flake.nix b/flake.nix index 464038b..b86c103 100644 --- a/flake.nix +++ b/flake.nix @@ -29,8 +29,6 @@ inputs.nixpkgs.follows = "nixpkgs-stable"; }; - nix-minecraft.url = "github:Infinidoge/nix-minecraft"; - nix-flatpak.url = "github:gmodena/nix-flatpak/latest"; impermanence.url = "github:nix-community/impermanence"; @@ -46,7 +44,6 @@ disko, agenix, deploy-rs, - nix-minecraft, nix-flatpak, impermanence, ... @@ -125,14 +122,6 @@ hostname = "trantor"; type = "server"; system = "aarch64-linux"; - extraModules = [ - nix-minecraft.nixosModules.minecraft-servers - { - nixpkgs.overlays = [ - nix-minecraft.overlays.default - ]; - } - ]; }; }; diff --git a/hosts/modules/trantor/default.nix b/hosts/modules/trantor/default.nix index a357f9b..9bdb292 100644 --- a/hosts/modules/trantor/default.nix +++ b/hosts/modules/trantor/default.nix @@ -6,6 +6,5 @@ ./disko.nix ./hardware-configuration.nix ./networking.nix - ./minecraft.nix ]; } diff --git a/hosts/modules/trantor/minecraft.nix b/hosts/modules/trantor/minecraft.nix deleted file mode 100644 index 44b8532..0000000 --- a/hosts/modules/trantor/minecraft.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ pkgs, ... }: - -{ - services.minecraft-server = { - enable = true; - eula = true; - servers.fabric = { - enable = true; - package = pkgs.fabricServers.fabric-1_21_5; - jvmOpts = "-Xms2G -Xmx8G"; - openFirewall = true; - serverProperties = { - server-port = 25566; - difficulty = "hard"; - gamemode = "survival"; - white-list = true; - motd = "Servidor dos primos"; - }; - }; - }; -} From 63a32cee922c31edee8a9c097fcd28533a7fe802 Mon Sep 17 00:00:00 2001 From: William Date: Mon, 2 Jun 2025 21:00:26 -0300 Subject: [PATCH 27/30] drop nat to alexandria; open 25566 --- hosts/modules/trantor/networking.nix | 30 ++-------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/hosts/modules/trantor/networking.nix b/hosts/modules/trantor/networking.nix index f9c2d84..cb7b88a 100644 --- a/hosts/modules/trantor/networking.nix +++ b/hosts/modules/trantor/networking.nix @@ -3,34 +3,8 @@ { networking = { firewall = { - allowedTCPPorts = [ 25565 ]; - allowedUDPPorts = [ - 25565 - 19132 - ]; - }; - nat = { - enable = true; - externalInterface = "enp0s6"; - internalInterfaces = [ "tailscale0" ]; - externalIP = null; - forwardPorts = [ - { - sourcePort = 25565; - proto = "tcp"; - destination = "100.76.19.50:25565"; - } - { - sourcePort = 25565; - proto = "udp"; - destination = "100.76.19.50:25565"; - } - { - sourcePort = 19132; - proto = "udp"; - destination = "100.76.19.50:19132"; - } - ]; + allowedTCPPorts = [ 25566 ]; + allowedUDPPorts = [ 25566 ]; }; }; } From 83c1f23d61c8666e77161f72bbd33284e9fb7283 Mon Sep 17 00:00:00 2001 From: William Date: Mon, 2 Jun 2025 21:43:19 -0300 Subject: [PATCH 28/30] add proton-ge directly in steam --- hosts/modules/programs.nix | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/hosts/modules/programs.nix b/hosts/modules/programs.nix index 6daa25b..56c4105 100644 --- a/hosts/modules/programs.nix +++ b/hosts/modules/programs.nix @@ -82,7 +82,6 @@ heroic mangohud prismlauncher - protonup ### System Utilities ### adwaita-icon-theme junction @@ -108,7 +107,10 @@ programs = { adb.enable = true; - steam.enable = true; + steam = { + enable = true; + extraCompatPackages = [ pkgs.proton-ge-bin ]; + }; dconf.enable = true; nix-ld.enable = true; kdeconnect.enable = true; @@ -138,15 +140,22 @@ services.flatpak = { enable = true; packages = [ - "com.boxy_svg.BoxySVG" - "com.github.k4zmu2a.spacecadetpinball" - "com.github.tchx84.Flatseal" - "com.steamgriddb.SGDBoop" + ### Dev Tools ### + ### Internet Browsers & Communication ### "app.zen_browser.zen" - "io.github.Foldex.AdwSteamGtk" + ### Office & Productivity ### + ### Graphics & Design ### + "com.boxy_svg.BoxySVG" + ### Gaming & Entertainment ### + "com.github.k4zmu2a.spacecadetpinball" "io.itch.itch" "io.mrarm.mcpelauncher" "org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/24.08" + ### System Utilities ### + "com.github.tchx84.Flatseal" + "io.github.Foldex.AdwSteamGtk" + "com.steamgriddb.SGDBoop" + ### Media ### ]; uninstallUnmanaged = true; update.auto.enable = true; From 698292e00ad5056c225d417a0591c6ca6ea8435a Mon Sep 17 00:00:00 2001 From: William Date: Mon, 2 Jun 2025 21:45:31 -0300 Subject: [PATCH 29/30] remove cursor --- hosts/modules/programs.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/hosts/modules/programs.nix b/hosts/modules/programs.nix index 56c4105..5253677 100644 --- a/hosts/modules/programs.nix +++ b/hosts/modules/programs.nix @@ -48,7 +48,6 @@ environment.systemPackages = with pkgs; [ ### Dev Tools ### bat - code-cursor deploy-rs fd fzf From 53f33fa74b4e5cf51848ac8d926e39c6004f92f8 Mon Sep 17 00:00:00 2001 From: William Date: Tue, 3 Jun 2025 10:03:48 -0300 Subject: [PATCH 30/30] changed readme --- readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index f19ab12..9daeedb 100644 --- a/readme.md +++ b/readme.md @@ -2,6 +2,7 @@ All my personal Nix and NixOS hosts, in a flake. |Host|Description|Nixpkgs version| |:---|:---:|---:| -|alexandria|Personal server/NAS|24.05| +|alexandria|Personal server/NAS|25.05| |io|Mobile workstation|unstable| |rotterdam|Workstation|unstable| +|trantor|VPS in Oracle Cloud|25.05|