From 974a2ba37bfb80934275adc335e8f0a0ffcf49a3 Mon Sep 17 00:00:00 2001 From: Henry Webster Date: Wed, 22 Jul 2026 22:28:24 -0500 Subject: initial commit --- configuration.nix | 31 +++++++++---------------------- flake.lock | 27 +++++++++++++++++++++++++++ flake.nix | 4 +++- overlays/haunt.nix | 26 ++++++++++++++++++++++++++ programs.nix | 24 ++++++++++++++++++++++++ 5 files changed, 89 insertions(+), 23 deletions(-) create mode 100644 flake.lock create mode 100644 overlays/haunt.nix create mode 100644 programs.nix diff --git a/configuration.nix b/configuration.nix index 4af20b4..f234f57 100644 --- a/configuration.nix +++ b/configuration.nix @@ -70,7 +70,6 @@ services.desktopManager.gnome.enable = true; services.tailscale.enable = true; - services.immich.enable = true; services.mpd.enable = false; services.kavita = { @@ -343,8 +342,6 @@ "input" ]; packages = with pkgs; [ - google-chrome - steam blender rocmPackages.rpp rocmPackages.hipcc @@ -355,9 +352,7 @@ tmux protonmail-desktop ghostty - obsidian inkscape - protonvpn-gui darktable nfs-utils imagemagick @@ -366,7 +361,6 @@ alsa-tools usbutils pipewire.jack - itch rocmPackages.rocminfo discord vlc @@ -383,7 +377,6 @@ ripgrep abcde guile - haunt autoconf automake libtool @@ -475,8 +468,6 @@ }) ]; - programs.steam.enable = true; - # GnuPG programs.gnupg.agent = { enable = true; @@ -484,15 +475,15 @@ }; services.pcscd.enable = true; - services.ollama = { - enable = true; - package = pkgs.ollama-rocm; - environmentVariables = { - HIP_VISIBLE_DEVICES = "0"; - OLLAMA_CONTEXT_LENGTH = "32768"; - OLLAMA_KV_CACHE_TYPE = "q8_0"; - }; - }; + # services.ollama = { + # enable = true; + # package = pkgs.ollama-rocm; + # environmentVariables = { + # HIP_VISIBLE_DEVICES = "0"; + # OLLAMA_CONTEXT_LENGTH = "32768"; + # OLLAMA_KV_CACHE_TYPE = "q8_0"; + # }; + # }; # Install firefox. programs.firefox.enable = true; @@ -513,10 +504,6 @@ # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. # wget neovim - (pkgs.emacs.pkgs.withPackages (epkgs: [ - (epkgs.treesit-grammars.with-grammars (g: [ g.tree-sitter-nix ])) - ])) - ]; environment.sessionVariables = { diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..b467688 --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1784280462, + "narHash": "sha256-DtoqIqM7VkR6NxAkcLpMwmi02USwWb3JdmNGLyhthc0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "293d6abedf0478e681a4dfcfcb35b30fc796a32f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-26.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix index e713cb2..b024152 100644 --- a/flake.nix +++ b/flake.nix @@ -8,10 +8,12 @@ outputs = { self, nixpkgs, ... }@inputs: { - nixosConfigurations.kusanagi = nixpgs.lib.nixosSystem { + nixosConfigurations.kusanagi = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ ./configuration.nix + ./programs.nix + { nixpkgs.overlays = [ (import ./overlays/haunt.nix) ]; } ]; }; }; diff --git a/overlays/haunt.nix b/overlays/haunt.nix new file mode 100644 index 0000000..cae6a0a --- /dev/null +++ b/overlays/haunt.nix @@ -0,0 +1,26 @@ +final: prev: { + # haunt 0.4.0 needs the (commonmark html) module, which the pinned + # OrangeShark guile-commonmark (unstable-2020-04-30) doesn't provide. + # Track the Spritely fork that Guix now uses. + guile-commonmark = prev.guile-commonmark.overrideAttrs (finalAttrs: old: { + version = "0.1.2-unstable-2024"; + src = final.fetchgit { + url = "https://codeberg.org/spritely/guile-commonmark"; + rev = "8ebb3041973ee65eed71757c97d09c63b842ac9a"; + hash = "sha256-YYMBUDpRHwscuGv3LieYWHUlOJRJpaK39nLKlpl+ZVE="; + }; + }); + + haunt = prev.haunt.overrideAttrs (finalAttrs: old: { + version = "0.4.0"; + src = final.fetchgit { + url = "https://git.dthompson.us/haunt.git"; + tag = "v${finalAttrs.version}"; + hash = "sha256-VRs70ETGB/ygr0HUW5mfGxaLKex0VPbX4r8HCIxV3K0="; + }; + # 0.4.0 adds a dependency on the (htmlprag) Guile module from guile-lib. + # guile-gnutls provides the (gnutls) module that (web client) needs for + # HTTPS, so build-time fetching of remote pages works. + buildInputs = old.buildInputs ++ [ final.guile-lib final.guile-gnutls ]; + }); +} diff --git a/programs.nix b/programs.nix new file mode 100644 index 0000000..a38712d --- /dev/null +++ b/programs.nix @@ -0,0 +1,24 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ + itch + + haunt + + (aspellWithDicts (dicts: with dicts; [ en en-computers en-science ])) + ]; + + programs.steam.enable = true; + + services.emacs = { + enable = true; + package = pkgs.emacs.pkgs.withPackages (epkgs: [ + (epkgs.treesit-grammars.with-grammars (g: [ g.tree-sitter-nix ])) + ]); + }; + + services.immich = { + enable = true; + machine-learning.enable = false; + }; +} -- cgit v1.3