From d1a237689cd7b44ff5e122ee0c412c2c1d93f496 Mon Sep 17 00:00:00 2001 From: Hunter Haugen Date: Fri, 30 Jan 2026 14:47:25 -0800 Subject: [PATCH] Add more packages to liminal --- hosts/liminal/configuration.nix | 32 ++- hosts/liminal/flake.lock | 384 ++++++++++++++++++++++++++++++++ hosts/liminal/flake.nix | 28 ++- 3 files changed, 434 insertions(+), 10 deletions(-) create mode 100644 hosts/liminal/flake.lock diff --git a/hosts/liminal/configuration.nix b/hosts/liminal/configuration.nix index cb82d27..48743be 100644 --- a/hosts/liminal/configuration.nix +++ b/hosts/liminal/configuration.nix @@ -30,6 +30,12 @@ swapDevices = [ { device = "/dev/mapper/cryptswap"; } ]; + + # Allow hibernate image to be larger (50 GiB) to accommodate 56 GiB system RAM + # Default is ~2/5 of RAM which is too small when memory is heavily used + systemd.tmpfiles.rules = [ + "w /sys/power/image_size - - - - 53687091200" + ]; services.fwupd.enable = true; hardware.framework.enableKmod = true; @@ -51,7 +57,7 @@ services.xserver.videoDrivers = [ "amdgpu" ]; services.ollama = { enable = true; - loadModels = [ "gemma3" ]; + loadModels = [ "gemma3" "gpt-oss" ]; acceleration = "rocm"; rocmOverrideGfx = "11.0.2"; }; @@ -111,6 +117,7 @@ enable = true; extraOptions = "--storage-driver=overlay2"; }; + programs.niri.enable = true; programs.hyprland.enable = true; programs.hyprland.xwayland.enable = false; programs.hyprland.withUWSM = true; @@ -227,8 +234,9 @@ ffmpeg jetbrains-toolbox pass + dua diff-so-fancy - pkgs.unstable.zed-editor + zed-editor pkgs.unstable.package-version-server amdgpu_top nixd # for zed @@ -266,6 +274,8 @@ plover-flake.packages.${pkgs.stdenv.hostPlatform.system}.plover-full pkgs.unstable.zoom-us beads-flake.packages.${pkgs.stdenv.hostPlatform.system}.default + nix-index # for nix-locate + sops ]; }; systemd.user.services = { @@ -298,6 +308,16 @@ # Allow unfree packages nixpkgs.config.allowUnfree = true; + # Allow dynamic linked binaries + programs.nix-ld.enable = true; + + programs.steam = { + enable = true; + remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play + dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server + localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers + }; + # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ @@ -314,6 +334,7 @@ file ripgrep docker-compose + docker-credential-helpers powertop alacritty rofi @@ -334,6 +355,7 @@ hsetroot redshift pkgs.unstable.code-cursor + pkgs.unstable.cursor-cli pwvucontrol pamixer helvum @@ -346,6 +368,7 @@ restic xscreensaver unzip + zip scarlett2 alsa-scarlett-gui pkgs.unstable.ndi-6 @@ -358,6 +381,7 @@ hyprpicker flameshot chromium + lmstudio ]; services.clipmenu.enable = true; @@ -422,8 +446,8 @@ # services.openssh.enable = true; # Open ports in the firewall. - networking.firewall.allowedTCPPorts = [ 8080 8081 8082 ]; - networking.firewall.allowedUDPPorts = [ 8080 8081 8082 ]; + networking.firewall.allowedTCPPorts = [ 8080 8081 8082 1234 ]; + networking.firewall.allowedUDPPorts = [ 8080 8081 8082 1234 ]; # Or disable the firewall altogether. # networking.firewall.enable = false; systemd.services.upower.enable = true; diff --git a/hosts/liminal/flake.lock b/hosts/liminal/flake.lock new file mode 100644 index 0000000..336299a --- /dev/null +++ b/hosts/liminal/flake.lock @@ -0,0 +1,384 @@ +{ + "nodes": { + "beads-flake": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1769745953, + "narHash": "sha256-MaXonP3cKzhIudOwyHThSiKVWpH5cm4HKhBgw69P6Q0=", + "owner": "steveyegge", + "repo": "beads", + "rev": "761d2e76379a03c7fe0efc2157ac23e8a52217df", + "type": "github" + }, + "original": { + "owner": "steveyegge", + "repo": "beads", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "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": [ + "impermanence", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1768598210, + "narHash": "sha256-kkgA32s/f4jaa4UG+2f8C225Qvclxnqs76mf8zvTVPg=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "c47b2cc64a629f8e075de52e4742de688f930dc6", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "impermanence": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1769548169, + "narHash": "sha256-03+JxvzmfwRu+5JafM0DLbxgHttOQZkUtDWBmeUkN8Y=", + "owner": "nix-community", + "repo": "impermanence", + "rev": "7b1d382faf603b6d264f58627330f9faa5cba149", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "impermanence", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "talon-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1693660503, + "narHash": "sha256-B/g2V4v6gjirFmy+I5mwB2bCYc0l3j5scVfwgl6WOl8=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "bd5bdbb52350e145c526108f4ef192eb8e554fa0", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nixos-hardware": { + "locked": { + "lastModified": 1769302137, + "narHash": "sha256-QEDtctEkOsbx8nlFh4yqPEOtr4tif6KTqWwJ37IM2ds=", + "owner": "NixOS", + "repo": "nixos-hardware", + "rev": "a351494b0e35fd7c0b7a1aae82f0afddf4907aa8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixos-hardware", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1760284886, + "narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1769461804, + "narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1768564909, + "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1769598131, + "narHash": "sha256-e7VO/kGLgRMbWtpBqdWl0uFg8Y2XWFMdz0uUJvlML8o=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fa83fd837f3098e3e678e6cf017b2b36102c7211", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1769461804, + "narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1698318101, + "narHash": "sha256-gUihHt3yPD7bVqg+k/UVHgngyaJ3DMEBchbymBMvK1E=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "63678e9f3d3afecfeafa0acead6239cdb447574c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "plover": { + "flake": false, + "locked": { + "lastModified": 1769494862, + "narHash": "sha256-vHsGisi53KFYzbE+GFtF1kQWShqlUxnL4791v4Amsqw=", + "owner": "openstenoproject", + "repo": "plover", + "rev": "78064997b471cd9a02308f5a7bb524e19eb1e522", + "type": "github" + }, + "original": { + "owner": "openstenoproject", + "repo": "plover", + "type": "github" + } + }, + "plover-flake": { + "inputs": { + "nixpkgs": "nixpkgs_4", + "plover": "plover", + "plover-stroke": "plover-stroke", + "plover2cat": "plover2cat", + "plover_plugins_registry": "plover_plugins_registry", + "rtf-tokenize": "rtf-tokenize" + }, + "locked": { + "lastModified": 1769717881, + "narHash": "sha256-KujC4L53jzIJUPkP0VW4+423V4EhWfhApHHobOAUkmo=", + "owner": "openstenoproject", + "repo": "plover-flake", + "rev": "c0dabbdff79f8d8096ad4a45afb9b2c65eee5fd5", + "type": "github" + }, + "original": { + "owner": "openstenoproject", + "repo": "plover-flake", + "type": "github" + } + }, + "plover-stroke": { + "flake": false, + "locked": { + "lastModified": 1652559629, + "narHash": "sha256-A75OMzmEn0VmDAvmQCp6/7uptxzwWJTwsih3kWlYioA=", + "owner": "openstenoproject", + "repo": "plover_stroke", + "rev": "e717a1983b58dcba644153a542dbf8514425a39b", + "type": "github" + }, + "original": { + "owner": "openstenoproject", + "repo": "plover_stroke", + "type": "github" + } + }, + "plover2cat": { + "flake": false, + "locked": { + "lastModified": 1769293912, + "narHash": "sha256-nxyNTYZ/8VqxPa2d2pHeaTRae1J4zu5h29lDGzA/C/U=", + "owner": "greenwyrt", + "repo": "plover2CAT", + "rev": "f6c788c5e343ada345a787579b5561c7255d4277", + "type": "github" + }, + "original": { + "owner": "greenwyrt", + "repo": "plover2CAT", + "type": "github" + } + }, + "plover_plugins_registry": { + "flake": false, + "locked": { + "lastModified": 1769296318, + "narHash": "sha256-xpDpYhxzqxMV5wTZ4MC/L5V6DodQG4aSjheLcJIXHjA=", + "owner": "openstenoproject", + "repo": "plover_plugins_registry", + "rev": "627f6f4650cd75a62f6741f8643bd437e75c9eeb", + "type": "github" + }, + "original": { + "owner": "openstenoproject", + "repo": "plover_plugins_registry", + "type": "github" + } + }, + "root": { + "inputs": { + "beads-flake": "beads-flake", + "impermanence": "impermanence", + "nixos-hardware": "nixos-hardware", + "nixpkgs": "nixpkgs_3", + "nixpkgs-unstable": "nixpkgs-unstable", + "plover-flake": "plover-flake", + "sops-nix": "sops-nix", + "talon-nix": "talon-nix" + } + }, + "rtf-tokenize": { + "flake": false, + "locked": { + "lastModified": 1751102035, + "narHash": "sha256-bM/DFl1mpHgeBItdyA5Tt+Eo9u82Gz+6qwft2h0bM94=", + "owner": "openstenoproject", + "repo": "rtf_tokenize", + "rev": "5c4ad772f4b45ceb35b60584e22a171e90526916", + "type": "github" + }, + "original": { + "owner": "openstenoproject", + "repo": "rtf_tokenize", + "type": "github" + } + }, + "sops-nix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1769469829, + "narHash": "sha256-wFcr32ZqspCxk4+FvIxIL0AZktRs6DuF8oOsLt59YBU=", + "owner": "Mic92", + "repo": "sops-nix", + "rev": "c5eebd4eb2e3372fe12a8d70a248a6ee9dd02eff", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "sops-nix", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "talon-nix": { + "inputs": { + "nix-github-actions": "nix-github-actions", + "nixpkgs": "nixpkgs_5" + }, + "locked": { + "lastModified": 1746431176, + "narHash": "sha256-bwXLFy2pDpNE60EkVltrmiRgwNWLo4eYBesP997p8mg=", + "owner": "nix-community", + "repo": "talon-nix", + "rev": "cc110629c5f0be12e839b2aea6a16880f1822706", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "talon-nix", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/hosts/liminal/flake.nix b/hosts/liminal/flake.nix index 344480e..5b0ca1b 100644 --- a/hosts/liminal/flake.nix +++ b/hosts/liminal/flake.nix @@ -4,18 +4,31 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; - + nixos-hardware.url = "github:NixOS/nixos-hardware"; impermanence.url = "github:nix-community/impermanence"; talon-nix.url = "github:nix-community/talon-nix"; plover-flake.url = "github:openstenoproject/plover-flake"; beads-flake.url = "github:steveyegge/beads"; + sops-nix.url = "github:Mic92/sops-nix"; + sops-nix.inputs.nixpkgs.follows = "nixpkgs"; }; - outputs = { self, nixpkgs, nixpkgs-unstable, nixos-hardware, impermanence, talon-nix, plover-flake, beads-flake, ... }: + outputs = { + self, + nixpkgs, + nixpkgs-unstable, + nixos-hardware, + impermanence, + talon-nix, + plover-flake, + beads-flake, + sops-nix, + ... + }: let system = "x86_64-linux"; - + # Create unstable overlay overlay-unstable = final: prev: { unstable = import nixpkgs-unstable { @@ -27,15 +40,18 @@ { nixosConfigurations.liminal = nixpkgs.lib.nixosSystem { inherit system; - + specialArgs = { inherit nixos-hardware impermanence talon-nix plover-flake beads-flake; }; - + modules = [ # Add unstable overlay ({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; }) - + + # Add sops + sops-nix.nixosModules.sops + # Import configuration ./configuration.nix ];