me like nix
0

Configure Feed

Select the types of activity you want to include in your feed.

update stuff

author
Sean Aye
date (May 10, 2026, 3:12 PM -0400) commit ddfed074 parent cd0f5d53 change-id qlwrqzrm
+134 -31
+15 -15
flake.lock
··· 109 109 }, 110 110 "crane_2": { 111 111 "locked": { 112 - "lastModified": 1771438068, 113 - "narHash": "sha256-nGBbXvEZVe/egCPVPFcu89RFtd8Rf6J+4RFoVCFec0A=", 112 + "lastModified": 1777242778, 113 + "narHash": "sha256-VWTeqWeb8Sel/QiWyaPvCa9luAbcGawR+Rw09FJoHz0=", 114 114 "owner": "ipetkov", 115 115 "repo": "crane", 116 - "rev": "b5090e53e9d68c523a4bb9ad42b4737ee6747597", 116 + "rev": "ad8b31ad0ba8448bd958d7a5d50d811dc5d271c0", 117 117 "type": "github" 118 118 }, 119 119 "original": { ··· 221 221 "rust-analyzer-src": "rust-analyzer-src_4" 222 222 }, 223 223 "locked": { 224 - "lastModified": 1757400094, 225 - "narHash": "sha256-5Rcs6juMoMTaMJSR1glravl4QB9yLAFBD8s7KLi4kdQ=", 224 + "lastModified": 1777190237, 225 + "narHash": "sha256-XbNSZv/fi6U8r8r8J/rljY91wf2jxyM6AwNLBeeM5SA=", 226 226 "owner": "nix-community", 227 227 "repo": "fenix", 228 - "rev": "0682b9b518792c9428865c511a4c40c9ad85c243", 228 + "rev": "82fcabb6d9819f34170877fb1848b92e9350ec57", 229 229 "type": "github" 230 230 }, 231 231 "original": { ··· 711 711 }, 712 712 "nixpkgs-stable_2": { 713 713 "locked": { 714 - "lastModified": 1757408970, 715 - "narHash": "sha256-aSgK4BLNFFGvDTNKPeB28lVXYqVn8RdyXDNAvgGq+k0=", 714 + "lastModified": 1767313136, 715 + "narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=", 716 716 "owner": "NixOS", 717 717 "repo": "nixpkgs", 718 - "rev": "d179d77c139e0a3f5c416477f7747e9d6b7ec315", 718 + "rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d", 719 719 "type": "github" 720 720 }, 721 721 "original": { ··· 933 933 "rust-analyzer-src_4": { 934 934 "flake": false, 935 935 "locked": { 936 - "lastModified": 1757362324, 937 - "narHash": "sha256-/PAhxheUq4WBrW5i/JHzcCqK5fGWwLKdH6/Lu1tyS18=", 936 + "lastModified": 1776800521, 937 + "narHash": "sha256-f8YJfwAOsLFpIoqZuX3yF69UvMLrkx7iVzMH1pJU7cM=", 938 938 "owner": "rust-lang", 939 939 "repo": "rust-analyzer", 940 - "rev": "9edc9cbe5d8e832b5864e09854fa94861697d2fd", 940 + "rev": "8954b66d43225e62c92e8bbcc8500191b5cceb1e", 941 941 "type": "github" 942 942 }, 943 943 "original": { ··· 1054 1054 "nixpkgs-stable": "nixpkgs-stable_2" 1055 1055 }, 1056 1056 "locked": { 1057 - "lastModified": 1777250125, 1058 - "narHash": "sha256-DNpwCxfPKddbM0b5to/nq080pILPJPuHMaQsqXyW9hg=", 1057 + "lastModified": 1777256726, 1058 + "narHash": "sha256-Vtn/Yfw17gXgnE0Gm/ylKtMUJqKPKP6JBoo6YbeYirU=", 1059 1059 "owner": "seanaye", 1060 1060 "repo": "trmnl-rs", 1061 - "rev": "ab539b83b55e85cbb7357050241ba1e7c6cc5c1f", 1061 + "rev": "8c1fea4287a6ee585821b367cd8e1f2b00b33bcc", 1062 1062 "type": "github" 1063 1063 }, 1064 1064 "original": {
+1 -2
modules/apps.nix
··· 35 35 flyctl 36 36 rainfrog 37 37 sqlitebrowser 38 + cachix 38 39 39 40 # System tools 40 41 nautilus ··· 103 104 thinking = "high"; 104 105 }; 105 106 enabledPlugins = { 106 - "rust-analyzer-lsp@claude-plugins-official" = true; 107 - "typescript-lsp@claude-plugins-official" = true; 108 107 "caveman@caveman" = true; 109 108 }; 110 109 hooks = {
+3 -1
modules/gaming.nix
··· 80 80 ]; 81 81 env = { 82 82 STEAM_DESKTOP_SESSION = "niri"; 83 - ENABLE_GAMESCOPE_WSI = "0"; 83 + ENABLE_GAMESCOPE_WSI = "1"; 84 84 }; 85 85 }; 86 86 extraCompatPackages = with pkgs; [ ··· 99 99 environment.systemPackages = [ 100 100 steamos-session-select 101 101 ]; 102 + 103 + boot.kernelParams = [ "split_lock_mitigate=0" ]; 102 104 103 105 security.pam.loginLimits = [ 104 106 {
+81 -13
modules/hosts/kodi-pi.nix
··· 41 41 # Kodi Pi 5 specific settings 42 42 ( 43 43 { pkgs, lib, ... }: 44 + let 45 + patchedInvidious = pkgs.kodiPackages.invidious.overrideAttrs (old: { 46 + postPatch = (old.postPatch or "") + '' 47 + substituteInPlace resources/lib/invidious_plugin.py \ 48 + --replace-fail \ 49 + 'url = video_info["dashUrl"]' \ 50 + 'url = video_info["dashUrl"]; url = self.api_client.instance_url + url if url.startswith("/") else url' \ 51 + --replace-fail \ 52 + 'url = video_info["formatStreams"][-1]["url"]' \ 53 + 'url = video_info["formatStreams"][-1]["url"]; url = self.api_client.instance_url + url if url.startswith("/") else url' 54 + ''; 55 + }); 56 + 57 + myKodi = pkgs.kodi-gbm.withPackages (kodiPkgs: with kodiPkgs; [ 58 + jellyfin 59 + patchedInvidious 60 + ]); 61 + 62 + kodiAdvancedSettings = pkgs.writeText "advancedsettings.xml" '' 63 + <advancedsettings version="1.0"> 64 + <videoplayer> 65 + <useprimedecoder>true</useprimedecoder> 66 + <useprimedecoderforhw>true</useprimedecoderforhw> 67 + </videoplayer> 68 + </advancedsettings> 69 + ''; 70 + in 44 71 { 45 72 networking.hostName = "kodi-pi"; 46 73 ··· 68 95 hardware.raspberry-pi.config.all.options = { 69 96 gpu_mem = { 70 97 enable = true; 71 - value = 512; 98 + value = 256; 72 99 }; 73 100 hdmi_force_hotplug = { 74 101 enable = true; ··· 76 103 }; 77 104 }; 78 105 79 - services.pipewire = { 80 - enable = true; 81 - alsa.enable = true; 82 - pulse.enable = true; 83 - }; 106 + # ALSA only for HDMI passthrough 107 + services.pipewire.enable = false; 108 + services.pulseaudio.enable = false; 84 109 85 - services.cage = { 86 - enable = true; 87 - user = "kiosk"; 88 - program = "${pkgs.jellyfin-media-player}/bin/jellyfinmediaplayer --tv"; 110 + systemd.services.kodi = { 111 + description = "Kodi media center"; 112 + wantedBy = [ "multi-user.target" ]; 113 + after = [ "network-online.target" "sound.target" "systemd-user-sessions.service" ]; 114 + wants = [ "network-online.target" ]; 115 + serviceConfig = { 116 + Type = "simple"; 117 + User = "kodi"; 118 + ExecStartPre = pkgs.writeShellScript "kodi-setup" '' 119 + mkdir -p /home/kodi/.kodi/userdata 120 + cp -f ${kodiAdvancedSettings} /home/kodi/.kodi/userdata/advancedsettings.xml 121 + 122 + JFSETTINGS=/home/kodi/.kodi/userdata/addon_data/plugin.video.jellyfin/settings.xml 123 + if [ -f "$JFSETTINGS" ]; then 124 + ${pkgs.gnused}/bin/sed -i \ 125 + -e 's|"transcode_h265">true|"transcode_h265">false|' \ 126 + -e 's|"transcodeHi10P">true|"transcodeHi10P">false|' \ 127 + -e 's|"kodiCompanion">false|"kodiCompanion">true|' \ 128 + "$JFSETTINGS" 129 + fi 130 + 131 + INVSETTINGS=/home/kodi/.kodi/userdata/addon_data/plugin.video.invidious/settings.xml 132 + if [ -f "$INVSETTINGS" ]; then 133 + ${pkgs.gnused}/bin/sed -i \ 134 + -e 's|"auto_instance">true|"auto_instance">false|' \ 135 + -e 's|"instance_url"[^<]*<|"instance_url">http://mira:3001<|' \ 136 + -e 's|"disable_dash"[^>]*>[^<]*<|"disable_dash">false<|' \ 137 + "$INVSETTINGS" 138 + else 139 + mkdir -p /home/kodi/.kodi/userdata/addon_data/plugin.video.invidious 140 + cat > "$INVSETTINGS" <<'INVEOF' 141 + <settings version="2"> 142 + <setting id="auto_instance">false</setting> 143 + <setting id="instance_url">http://mira:3001</setting> 144 + <setting id="disable_dash">false</setting> 145 + </settings> 146 + INVEOF 147 + fi 148 + ''; 149 + ExecStart = "${myKodi}/bin/kodi-standalone"; 150 + Restart = "always"; 151 + TimeoutStopSec = "15s"; 152 + TimeoutStopFailureMode = "kill"; 153 + }; 89 154 }; 90 155 91 - users.users.kiosk = { 156 + users.users.kodi = { 92 157 isNormalUser = true; 93 158 extraGroups = [ 94 159 "video" ··· 128 193 networking.useDHCP = true; 129 194 security.sudo.wheelNeedsPassword = false; 130 195 131 - networking.firewall.allowedTCPPorts = [ 22 ]; 196 + networking.firewall.allowedTCPPorts = [ 197 + 22 198 + 8080 # Kodi web remote 199 + ]; 132 200 133 - environment.systemPackages = [ pkgs.jellyfin-media-player ]; 201 + environment.systemPackages = [ myKodi ]; 134 202 135 203 system.stateVersion = "24.11"; 136 204 }
+1
modules/hosts/mira.nix
··· 29 29 30 30 # Mira-specific aspects 31 31 nm.nvidia 32 + nm.ollama 32 33 nm.media-server 33 34 nm.home-automation 34 35 nm.gaming
+23
modules/mira-extras.nix
··· 54 54 { 55 55 networking.hostName = "mira"; 56 56 57 + fileSystems."/".options = [ "noatime" ]; 58 + fileSystems."/boot".options = [ "noatime" ]; 59 + 60 + boot.tmp.useTmpfs = true; 61 + 62 + zramSwap = { 63 + enable = true; 64 + memoryPercent = 50; 65 + }; 66 + 67 + boot.kernel.sysctl = { 68 + "vm.swappiness" = 10; 69 + "vm.dirty_background_ratio" = 5; 70 + "vm.dirty_ratio" = 10; 71 + }; 72 + 73 + services.fstrim.enable = true; 74 + 75 + # NVMe drives manage their own I/O queuing; mq-deadline adds unnecessary latency 76 + services.udev.extraRules = '' 77 + ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="none" 78 + ''; 79 + 57 80 # Enable QEMU emulation for aarch64 (for building Pi images) 58 81 boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; 59 82
+10
modules/ollama.nix
··· 1 + { ... }: { 2 + flake.modules.nixos.ollama = 3 + { pkgs, ... }: 4 + { 5 + services.ollama = { 6 + enable = true; 7 + package = pkgs.ollama-cuda; 8 + }; 9 + }; 10 + }