Vic's *Nix config.

Refactoring to import-all (#115)

Refactoring to import-all

authored by oeiuwq.com and committed by

GitHub 90b19e79 75f1858f

+1991 -3006
+3 -2
.envrc
··· 1 - use flake 2 - export FLAKE=$PWD 1 + # use flake 2 + 3 +
+1 -1
.github/workflows/flake-update.yaml
··· 14 14 env: 15 15 GH_TOKEN: ${{ secrets.PAT }} 16 16 run: 17 - nix develop . -c gh-flake-update 17 + nix run .#gh-flake-update
+1 -1
.github/workflows/nix-fmt.yaml
··· 16 16 with: 17 17 name: vix 18 18 authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} 19 - - run: nix build .#checks.x86_64-linux.formatted 19 + - run: nix fmt -- --ci
+1 -1
README.md
··· 74 74 75 75 ## Hosts 76 76 77 - Defined at [`/hosts`]([tree/main/hosts](https://github.com/vic/vix/tree/main/hosts) directory. 77 + Defined at [`/modules/flake/osConfigurations.nix`](https://github.com/vic/vix/tree/main/modules/flake/osConfigurations.nix). 78 78 79 79 [![Workflow](https://github.com/vic/vix/actions/workflows/build-systems.yaml/badge.svg)](https://github.com/vic/vix/actions/workflows/build-systems.yaml) 80 80
-1
checks/formatted.nix
··· 1 - { pkgs, inputs, ... }: (inputs.self.lib.treefmt pkgs).config.build.check inputs.self
+1
default.nix
··· 1 + inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules)
-1
devshell.toml
··· 1 - imports = ["./devshells/nixos.toml"]
-2
devshells/lean4.toml
··· 1 - [[commands]] 2 - package = "lean4"
-46
devshells/nixos.toml
··· 1 - imports = [ "./nixos/gh-flake-update.nix" ] 2 - 3 - [devshell] 4 - packages = ["sops", "age", "nh"] 5 - 6 - [[commands]] 7 - name = "vic-sops" 8 - help = "Sops for vic" 9 - command = """ 10 - if test -z "${1:-}"; then 11 - sops --config ./modules/home/vic/sops.yaml edit ./modules/home/vic/secrets.yaml 12 - else 13 - sops --config ./modules/home/vic/sops.yaml "${@}" 14 - fi 15 - """ 16 - 17 - [[commands]] 18 - name = "vic-sops-rotate" 19 - help = "Rotate sops secrets" 20 - command = """ 21 - ls -1 modules/home/vic/secrets{.yaml,/*} | xargs -n 1 sops rotate -i 22 - """ 23 - 24 - [[commands]] 25 - name = "logs-home-manager-vic" 26 - help = "See logs for home-manager-vic activation" 27 - command = """ 28 - journalctl -u home-manager-vic.service "${@}" 29 - """ 30 - 31 - [[commands]] 32 - name = "os-rebuild" 33 - help = "OS rebuild" 34 - command = """ 35 - sudo nix --extra-experimental-features "flakes nix-command" run .#os-rebuild -- "${@}" 36 - """ 37 - 38 - [[commands]] 39 - name = "clean" 40 - help = "nh clean all" 41 - command = "nh clean all" 42 - 43 - [[commands]] 44 - name = "fmt" 45 - help = "nix fmt" 46 - command = "nix fmt"
-46
devshells/nixos/gh-flake-update.nix
··· 1 - { pkgs, ... }: 2 - let 3 - 4 - app = pkgs.writeShellApplication { 5 - name = "gh-flake-update"; 6 - text = '' 7 - export GIT_AUTHOR_NAME="Victor Borja" 8 - export GIT_AUTHOR_EMAIL="vborja@apache.org" 9 - export GIT_COMMITTER_NAME="Victor Borja" 10 - export GIT_COMMITTER_EMAIL="vborja@apache.org" 11 - 12 - branch="flake-update-$(date '+%F')" 13 - 14 - git checkout -b "$branch" 15 - title="Updating flake inputs $(date)" 16 - 17 - ( 18 - echo "$title" 19 - echo -ne "\n\n\n\n" 20 - echo '```shell' 21 - echo '$ nix flake update' 22 - nix flake update --accept-flake-config 2>&1 23 - echo '```' 24 - echo -ne "\n\n\n\n" 25 - echo 'request-checks: true' 26 - ) | tee /tmp/commit-message.md 27 - 28 - changes="$(git status -s | grep -o 'M ' | wc -l)" 29 - 30 - if test "$changes" -eq 0; then 31 - echo "No changes" 32 - exit 0 33 - fi 34 - 35 - git status -s | grep 'M ' | cut -d 'M' -f 2 | xargs git add 36 - git commit -F /tmp/commit-message.md --no-signoff --no-verify --trailer "request-checks:true" --no-edit --cleanup=verbatim 37 - git push origin "$branch:$branch" --force 38 - 39 - gh pr create --base main --label flake-update --reviewer vic --assignee vic --body-file /tmp/commit-message.md --title "$title" --head "$branch" | tee /tmp/pr-url 40 - ''; 41 - }; 42 - 43 - in 44 - { 45 - devshell.packages = [ app ]; 46 - }
-12
devshells/nixos/leader.nix
··· 1 - { 2 - perSystem, 3 - ... 4 - }: 5 - { 6 - commands = [ 7 - { 8 - package = perSystem.self.leader; 9 - help = "Leader key"; 10 - } 11 - ]; 12 - }
-20
devshells/scala3.nix
··· 1 - { pkgs, perSystem, ... }: 2 - let 3 - jre = pkgs.graalvm-ce; 4 - 5 - mill = pkgs.mill.override { inherit jre; }; 6 - scala-cli = pkgs.scala-cli.override { inherit jre; }; 7 - sbt = pkgs.sbt.override { inherit jre; }; 8 - metals = pkgs.metals.override { inherit jre; }; 9 - in 10 - perSystem.devshell.mkShell { 11 - 12 - commands = [ 13 - { package = mill; } 14 - { package = scala-cli; } 15 - { package = sbt; } 16 - ]; 17 - 18 - devshell.packages = [ metals ]; 19 - 20 - }
-46
devshells/upterm.nix
··· 1 - { pkgs, perSystem, ... }: 2 - let 3 - 4 - ssh_config_text = '' 5 - Host * 6 - ForwardAgent yes 7 - ForwardX11 yes 8 - ForwardX11Trusted yes 9 - StrictHostKeyChecking no 10 - CheckHostIP no 11 - TCPKeepAlive yes 12 - ServerAliveInterval 30 13 - ServerAliveCountMax 180 14 - VerifyHostKeyDNS yes 15 - UpdateHostKeys yes 16 - ''; 17 - 18 - runtimeInputs = [ 19 - pkgs.upterm 20 - pkgs.screen 21 - pkgs.openssh 22 - pkgs.bash 23 - pkgs.coreutils 24 - pkgs.findutils 25 - pkgs.gawk 26 - ] ++ (pkgs.lib.optionals (pkgs.config.allowUnfree) [ pkgs.vscode ]); 27 - 28 - gh-action = pkgs.writeShellApplication { 29 - name = "gh-action"; 30 - text = '' 31 - mkdir -p ~/.ssh 32 - echo "${ssh_config_text}" > ~/.ssh/config 33 - export PATH="${pkgs.lib.makeBinPath runtimeInputs}:$PATH" 34 - ${pkgs.openssh}/bin/ssh-agent ${pkgs.bash}/bin/bash ${./upterm/gh-action.bash} 35 - ''; 36 - }; 37 - 38 - in 39 - perSystem.devshell.mkShell { 40 - 41 - devshell.packages = [ 42 - gh-action 43 - perSystem.self.vic-sops-get 44 - ]; 45 - 46 - }
-20
devshells/upterm/gh-action.bash
··· 1 - mkdir -p ~/.ssh ~/.upterm 2 - touch ~/.upterm/out.log ~/.upterm/upterm.log 3 - ssh-keygen -q -t rsa -N '' -C "$GITHUB_TRIGGERING_ACTOR@$GITHUB_REPOSITORY:$GITHUB_RUN_ID" -f ~/.ssh/id_rsa 4 - ssh-keygen -q -t ed25519 -N '' -C "$GITHUB_TRIGGERING_ACTOR@$GITHUB_REPOSITORY:$GITHUB_RUN_ID" -f ~/.ssh/id_ed25519 5 - ssh-add 6 - echo Adding uptermd.upterm.dev to known_hosts 7 - ssh-keyscan uptermd.upterm.dev 2> /dev/null >> ~/.ssh/known_upterm 8 - cat ~/.ssh/known_upterm >> ~/.ssh/known_hosts 9 - grep 'uptermd.upterm.dev ' ~/.ssh/known_upterm | gawk -e '{ print "@cert-authority * " $2 " " $3 }' >> ~/.ssh/known_hosts 10 - cat ~/.ssh/known_hosts 11 - echo Starting in background 12 - screen -A -U -O -T xterm-256color -dmS upterm bash -c "upterm host --accept --github-user $GITHUB_REPOSITORY_OWNER 2>&1 | tee -a ~/.upterm/out.log" 13 - echo Waiting for upterm to start 14 - tail -f ~/.upterm/out.log | head -n 1 15 - while ! grep 'SSH Session:' ~/.upterm/out.log; do sleep 1 ; done 16 - echo Waiting for join 17 - while ! grep 'Client joined' ~/.upterm/upterm.log >/dev/null; do sleep 10; done 18 - echo Joined 19 - while ! grep 'Client left' ~/.upterm/upterm.log >/dev/null; do sleep 10; done 20 - echo Left
devshells/zig.toml

This is a binary file and will not be displayed.

+80 -641
flake.lock
··· 4 4 "inputs": { 5 5 "bats-assert": "bats-assert", 6 6 "bats-support": "bats-support", 7 - "blueprint": [ 8 - "blueprint" 9 - ], 7 + "blueprint": "blueprint", 10 8 "nixpkgs": [ 11 9 "nixpkgs" 12 10 ], ··· 28 26 "type": "github" 29 27 } 30 28 }, 31 - "advisory-db": { 32 - "flake": false, 33 - "locked": { 34 - "lastModified": 1739520703, 35 - "narHash": "sha256-UqR1f9gThWNBCBobWet7T46vTSxkB6dVAdeqNBoF8mc=", 36 - "owner": "rustsec", 37 - "repo": "advisory-db", 38 - "rev": "ddccfe8aced779f7b54d27bbe7e122ecb1dda33a", 39 - "type": "github" 40 - }, 41 - "original": { 42 - "owner": "rustsec", 43 - "repo": "advisory-db", 44 - "type": "github" 45 - } 46 - }, 47 29 "bats-assert": { 48 30 "flake": false, 49 31 "locked": { ··· 79 61 "blueprint": { 80 62 "inputs": { 81 63 "nixpkgs": [ 64 + "SPC", 82 65 "nixpkgs" 83 66 ], 84 - "systems": [ 85 - "systems" 86 - ] 67 + "systems": "systems" 87 68 }, 88 69 "locked": { 89 - "lastModified": 1744632722, 90 - "narHash": "sha256-0chvqUV1Kzf8BMQ7MsH3CeicJEb2HeCpwliS77FGyfc=", 70 + "lastModified": 1741365449, 71 + "narHash": "sha256-4bmMbrmc6p6QxmF0Frc6SoZUfaodWcxjqEgw5mGmTAQ=", 91 72 "owner": "numtide", 92 73 "repo": "blueprint", 93 - "rev": "49bbd5d072b577072f4a1d07d4b0621ecce768af", 74 + "rev": "09a2c2c7bb08e5baeb88319e042ccfe6acaa9664", 94 75 "type": "github" 95 76 }, 96 77 "original": { ··· 99 80 "type": "github" 100 81 } 101 82 }, 102 - "cli-leader": { 103 - "flake": false, 104 - "locked": { 105 - "lastModified": 1535730734, 106 - "narHash": "sha256-t20pzwGUZnMmwmYqAw4im45q7/bdKBTsFTvj30o4Kr8=", 107 - "owner": "dhamidi", 108 - "repo": "leader", 109 - "rev": "14373a25d8693681e7917f230de555977a12d2ba", 110 - "type": "github" 111 - }, 112 - "original": { 113 - "owner": "dhamidi", 114 - "ref": "14373a2", 115 - "repo": "leader", 116 - "type": "github" 117 - } 118 - }, 119 - "crane": { 120 - "locked": { 121 - "lastModified": 1745454774, 122 - "narHash": "sha256-oLvmxOnsEKGtwczxp/CwhrfmQUG2ym24OMWowcoRhH8=", 123 - "owner": "ipetkov", 124 - "repo": "crane", 125 - "rev": "efd36682371678e2b6da3f108fdb5c613b3ec598", 126 - "type": "github" 127 - }, 128 - "original": { 129 - "owner": "ipetkov", 130 - "repo": "crane", 131 - "type": "github" 132 - } 133 - }, 134 - "devicon-lookup": { 135 - "flake": false, 136 - "locked": { 137 - "lastModified": 1708787643, 138 - "narHash": "sha256-eHxUSrN/wzitT95Sdt0DTNv4UuvwRn4gHmIzgK6ELZk=", 139 - "owner": "coreyja", 140 - "repo": "devicon-lookup", 141 - "rev": "404c9cbd477b3dee0e757aa93a66d5e59b85e596", 142 - "type": "github" 143 - }, 144 - "original": { 145 - "owner": "coreyja", 146 - "repo": "devicon-lookup", 147 - "type": "github" 148 - } 149 - }, 150 83 "devshell": { 151 84 "inputs": { 152 85 "nixpkgs": [ ··· 167 100 "type": "github" 168 101 } 169 102 }, 170 - "devshell_2": { 171 - "inputs": { 172 - "nixpkgs": [ 173 - "nix-versions", 174 - "nixpkgs" 175 - ] 176 - }, 177 - "locked": { 178 - "lastModified": 1741473158, 179 - "narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=", 180 - "owner": "numtide", 181 - "repo": "devshell", 182 - "rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0", 183 - "type": "github" 184 - }, 185 - "original": { 186 - "owner": "numtide", 187 - "repo": "devshell", 188 - "type": "github" 189 - } 190 - }, 191 103 "doom-emacs": { 192 104 "flake": false, 193 105 "locked": { 194 - "lastModified": 1745483329, 195 - "narHash": "sha256-3jYdqfEeQ0zoJ8svX5nzh8Bjq1HClJ9AUcpNLE3U09I=", 106 + "lastModified": 1746509951, 107 + "narHash": "sha256-bfoTBSsy/1S7+6uR3ig5EA8AAQ1RhmDLNF/m2RXU2sM=", 196 108 "owner": "doomemacs", 197 109 "repo": "doomemacs", 198 - "rev": "303dd28db808b42a2397c0f4b9fdd71e606026ff", 110 + "rev": "b70d137f1a224cdbac3994d249fb5e8c7fcc203a", 199 111 "type": "github" 200 112 }, 201 113 "original": { ··· 204 116 "type": "github" 205 117 } 206 118 }, 207 - "dream2nix": { 208 - "inputs": { 209 - "nixpkgs": [ 210 - "nci", 211 - "nixpkgs" 212 - ], 213 - "purescript-overlay": "purescript-overlay", 214 - "pyproject-nix": "pyproject-nix" 215 - }, 216 - "locked": { 217 - "lastModified": 1735160684, 218 - "narHash": "sha256-n5CwhmqKxifuD4Sq4WuRP/h5LO6f23cGnSAuJemnd/4=", 219 - "owner": "nix-community", 220 - "repo": "dream2nix", 221 - "rev": "8ce6284ff58208ed8961681276f82c2f8f978ef4", 222 - "type": "github" 223 - }, 224 - "original": { 225 - "owner": "nix-community", 226 - "repo": "dream2nix", 227 - "type": "github" 228 - } 229 - }, 230 119 "flake-compat": { 231 120 "flake": false, 232 121 "locked": { 233 - "lastModified": 1696426674, 234 - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", 235 - "owner": "edolstra", 236 - "repo": "flake-compat", 237 - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", 238 - "type": "github" 239 - }, 240 - "original": { 241 - "owner": "edolstra", 242 - "repo": "flake-compat", 243 - "type": "github" 244 - } 245 - }, 246 - "flake-compat_2": { 247 - "flake": false, 248 - "locked": { 249 122 "lastModified": 1733328505, 250 123 "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", 251 124 "owner": "edolstra", ··· 259 132 "type": "github" 260 133 } 261 134 }, 262 - "flake-compat_3": { 263 - "flake": false, 264 - "locked": { 265 - "lastModified": 1696426674, 266 - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", 267 - "owner": "edolstra", 268 - "repo": "flake-compat", 269 - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", 270 - "type": "github" 271 - }, 272 - "original": { 273 - "owner": "edolstra", 274 - "repo": "flake-compat", 275 - "type": "github" 276 - } 277 - }, 278 135 "flake-parts": { 279 136 "inputs": { 280 137 "nixpkgs-lib": "nixpkgs-lib" ··· 295 152 }, 296 153 "flake-utils": { 297 154 "inputs": { 298 - "systems": [ 299 - "systems" 300 - ] 155 + "systems": "systems_3" 301 156 }, 302 157 "locked": { 303 - "lastModified": 1731533236, 304 - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 158 + "lastModified": 1681202837, 159 + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", 305 160 "owner": "numtide", 306 161 "repo": "flake-utils", 307 - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 162 + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", 308 163 "type": "github" 309 164 }, 310 165 "original": { ··· 313 168 "type": "github" 314 169 } 315 170 }, 316 - "gitignore": { 317 - "flake": false, 318 - "locked": { 319 - "lastModified": 1709087332, 320 - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", 321 - "owner": "hercules-ci", 322 - "repo": "gitignore.nix", 323 - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", 324 - "type": "github" 325 - }, 326 - "original": { 327 - "owner": "hercules-ci", 328 - "repo": "gitignore.nix", 329 - "type": "github" 330 - } 331 - }, 332 - "gitignore_2": { 171 + "home-manager": { 333 172 "inputs": { 334 173 "nixpkgs": [ 335 - "radicle", 336 - "pre-commit-hooks", 337 174 "nixpkgs" 338 175 ] 339 176 }, 340 177 "locked": { 341 - "lastModified": 1709087332, 342 - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", 343 - "owner": "hercules-ci", 344 - "repo": "gitignore.nix", 345 - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", 178 + "lastModified": 1746413188, 179 + "narHash": "sha256-i6BoiQP0PasExESQHszC0reQHfO6D4aI2GzOwZMOI20=", 180 + "owner": "nix-community", 181 + "repo": "home-manager", 182 + "rev": "8a318641ac13d3bc0a53651feaee9560f9b2d89a", 346 183 "type": "github" 347 184 }, 348 185 "original": { 349 - "owner": "hercules-ci", 350 - "repo": "gitignore.nix", 186 + "owner": "nix-community", 187 + "repo": "home-manager", 351 188 "type": "github" 352 189 } 353 190 }, 354 - "home-manager": { 355 - "inputs": { 356 - "nixpkgs": [ 357 - "nixpkgs" 358 - ] 359 - }, 191 + "import-tree": { 360 192 "locked": { 361 - "lastModified": 1745555634, 362 - "narHash": "sha256-lhVyVn1utb2UVTbyKJ6mfKB7wLTjrj14OlebvO0WU2s=", 363 - "owner": "nix-community", 364 - "repo": "home-manager", 365 - "rev": "98f4fef7fd7b4a77245db12e33616023162bc6d9", 193 + "lastModified": 1745565707, 194 + "narHash": "sha256-ccFeWWQ9RLgCd1k+xwV/ASUkJ7AGTTaGDhlRWZgytxY=", 195 + "owner": "vic", 196 + "repo": "import-tree", 197 + "rev": "ed504db425c363b13f13d5ca52f1a2600c4a7703", 366 198 "type": "github" 367 199 }, 368 200 "original": { 369 - "owner": "nix-community", 370 - "repo": "home-manager", 201 + "owner": "vic", 202 + "repo": "import-tree", 371 203 "type": "github" 372 204 } 373 205 }, ··· 386 218 "type": "indirect" 387 219 } 388 220 }, 389 - "jj-fzf": { 390 - "flake": false, 391 - "locked": { 392 - "lastModified": 1738203280, 393 - "narHash": "sha256-1ND9pMzLaW+iIJYFDoseUixK522x/1N2ryAySnYOjGs=", 394 - "owner": "tim-janik", 395 - "repo": "jj-fzf", 396 - "rev": "501a936d4f5843b0a3b4df37caec529fbe199c2b", 397 - "type": "github" 398 - }, 399 - "original": { 400 - "owner": "tim-janik", 401 - "repo": "jj-fzf", 402 - "type": "github" 403 - } 404 - }, 405 221 "jjui": { 406 222 "inputs": { 407 223 "flake-parts": [ ··· 415 231 ] 416 232 }, 417 233 "locked": { 418 - "lastModified": 1745351251, 419 - "narHash": "sha256-2M69r3r4VeESymiJzLr2tfKBsmTcAZJsCLEYQkRKoMw=", 234 + "lastModified": 1746474255, 235 + "narHash": "sha256-flK5Bq3O/GiRDH1hJM6eoBQMqSTQ0lRMBO1f4xAM2fU=", 420 236 "owner": "idursun", 421 237 "repo": "jjui", 422 - "rev": "24872197db930a780f91a77a0ea8db660f0e03fe", 238 + "rev": "41cafa297151786d8da7e9e8e1ca13555e1889b8", 423 239 "type": "github" 424 240 }, 425 241 "original": { ··· 428 244 "type": "github" 429 245 } 430 246 }, 431 - "lazyjj": { 432 - "flake": false, 433 - "locked": { 434 - "lastModified": 1745255220, 435 - "narHash": "sha256-18qtv5Pe4Fwhj5vIJDeYq7p597HX4uT8glLqw2VVmCA=", 436 - "owner": "Cretezy", 437 - "repo": "lazyjj", 438 - "rev": "d729aad58caefd48f754a81bfb32e8a32a2fba9f", 439 - "type": "github" 440 - }, 441 - "original": { 442 - "owner": "Cretezy", 443 - "repo": "lazyjj", 444 - "type": "github" 445 - } 446 - }, 447 - "mk-naked-shell": { 448 - "flake": false, 449 - "locked": { 450 - "lastModified": 1681286841, 451 - "narHash": "sha256-3XlJrwlR0nBiREnuogoa5i1b4+w/XPe0z8bbrJASw0g=", 452 - "owner": "yusdacra", 453 - "repo": "mk-naked-shell", 454 - "rev": "7612f828dd6f22b7fb332cc69440e839d7ffe6bd", 455 - "type": "github" 456 - }, 457 - "original": { 458 - "owner": "yusdacra", 459 - "repo": "mk-naked-shell", 460 - "type": "github" 461 - } 462 - }, 463 - "nci": { 464 - "inputs": { 465 - "crane": [ 466 - "crane" 467 - ], 468 - "dream2nix": "dream2nix", 469 - "mk-naked-shell": "mk-naked-shell", 470 - "nixpkgs": [ 471 - "nixpkgs" 472 - ], 473 - "parts": [ 474 - "flake-parts" 475 - ], 476 - "rust-overlay": [ 477 - "rust-overlay" 478 - ], 479 - "treefmt": [ 480 - "treefmt-nix" 481 - ] 482 - }, 483 - "locked": { 484 - "lastModified": 1745475473, 485 - "narHash": "sha256-agOKeQ5/wwJaMA3akk+X5NBlazK/KYf+4qmsQBmEWsA=", 486 - "owner": "yusdacra", 487 - "repo": "nix-cargo-integration", 488 - "rev": "36f8235765940ea5739a5f1030c1381082f514c8", 489 - "type": "github" 490 - }, 491 - "original": { 492 - "owner": "yusdacra", 493 - "repo": "nix-cargo-integration", 494 - "type": "github" 495 - } 496 - }, 497 247 "nix-darwin": { 498 248 "inputs": { 499 249 "nixpkgs": [ ··· 501 251 ] 502 252 }, 503 253 "locked": { 504 - "lastModified": 1744478979, 505 - "narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=", 254 + "lastModified": 1746254942, 255 + "narHash": "sha256-Y062AuRx6l+TJNX8wxZcT59SSLsqD9EedAY0mqgTtQE=", 506 256 "owner": "LnL7", 507 257 "repo": "nix-darwin", 508 - "rev": "43975d782b418ebf4969e9ccba82466728c2851b", 258 + "rev": "760a11c87009155afa0140d55c40e7c336d62d7a", 509 259 "type": "github" 510 260 }, 511 261 "original": { ··· 521 271 ] 522 272 }, 523 273 "locked": { 524 - "lastModified": 1745120797, 525 - "narHash": "sha256-owQ0VQ+7cSanTVPxaZMWEzI22Q4bGnuvhVjLAJBNQ3E=", 274 + "lastModified": 1746330942, 275 + "narHash": "sha256-ShizFaJCAST23tSrHHtFFGF0fwd72AG+KhPZFFQX/0o=", 526 276 "owner": "nix-community", 527 277 "repo": "nix-index-database", 528 - "rev": "69716041f881a2af935021c1182ed5b0cc04d40e", 278 + "rev": "137fd2bd726fff343874f85601b51769b48685cc", 529 279 "type": "github" 530 280 }, 531 281 "original": { ··· 534 284 "type": "github" 535 285 } 536 286 }, 537 - "nix-inspect": { 538 - "inputs": { 539 - "nci": [ 540 - "nci" 541 - ], 542 - "nixpkgs": [ 543 - "nixpkgs" 544 - ], 545 - "parts": [ 546 - "flake-parts" 547 - ] 548 - }, 549 - "locked": { 550 - "lastModified": 1733357226, 551 - "narHash": "sha256-ArwdTtlIje7yOTblkZs4aQ1+HBtEwJKkfKOiA9tY8nA=", 552 - "owner": "bluskript", 553 - "repo": "nix-inspect", 554 - "rev": "2938c8e94acca6a7f1569f478cac6ddc4877558e", 555 - "type": "github" 556 - }, 557 - "original": { 558 - "owner": "bluskript", 559 - "repo": "nix-inspect", 560 - "type": "github" 561 - } 562 - }, 563 - "nix-versions": { 564 - "inputs": { 565 - "devshell": "devshell_2", 566 - "flake-parts": [ 567 - "flake-parts" 568 - ], 569 - "nixpkgs": [ 570 - "nixpkgs" 571 - ], 572 - "systems": [ 573 - "systems" 574 - ], 575 - "treefmt-nix": [ 576 - "treefmt-nix" 577 - ] 578 - }, 579 - "locked": { 580 - "lastModified": 1744513513, 581 - "narHash": "sha256-ukDfyA5lPwKr6WO0Z2fqN4TsRkAejBAtR4arFYnyASY=", 582 - "owner": "vic", 583 - "repo": "nix-versions", 584 - "rev": "ef2fadc629f9d8a3ae22e435d81833c86b382d9f", 585 - "type": "github" 586 - }, 587 - "original": { 588 - "owner": "vic", 589 - "repo": "nix-versions", 590 - "type": "github" 591 - } 592 - }, 593 - "nixlib": { 594 - "locked": { 595 - "lastModified": 1736643958, 596 - "narHash": "sha256-tmpqTSWVRJVhpvfSN9KXBvKEXplrwKnSZNAoNPf/S/s=", 597 - "owner": "nix-community", 598 - "repo": "nixpkgs.lib", 599 - "rev": "1418bc28a52126761c02dd3d89b2d8ca0f521181", 600 - "type": "github" 601 - }, 602 - "original": { 603 - "owner": "nix-community", 604 - "repo": "nixpkgs.lib", 605 - "type": "github" 606 - } 607 - }, 608 - "nixos-generators": { 609 - "inputs": { 610 - "nixlib": "nixlib", 611 - "nixpkgs": [ 612 - "nixpkgs" 613 - ] 614 - }, 615 - "locked": { 616 - "lastModified": 1742568034, 617 - "narHash": "sha256-QaMEhcnscfF2MqB7flZr+sLJMMYZPnvqO4NYf9B4G38=", 618 - "owner": "nix-community", 619 - "repo": "nixos-generators", 620 - "rev": "42ee229088490e3777ed7d1162cb9e9d8c3dbb11", 621 - "type": "github" 622 - }, 623 - "original": { 624 - "owner": "nix-community", 625 - "repo": "nixos-generators", 626 - "type": "github" 627 - } 628 - }, 629 287 "nixos-wsl": { 630 288 "inputs": { 631 - "flake-compat": "flake-compat_2", 289 + "flake-compat": "flake-compat", 632 290 "nixpkgs": [ 633 291 "nixpkgs" 634 292 ] 635 293 }, 636 294 "locked": { 637 - "lastModified": 1744290088, 638 - "narHash": "sha256-/X9XVEl0EiyisNbF5srrxXRSVoRqdwExuqyspYqqEjQ=", 295 + "lastModified": 1746453552, 296 + "narHash": "sha256-r66UGha+7KVHkI7ksrcMjnw/mm9Sg4l5bQlylxHwdGU=", 639 297 "owner": "nix-community", 640 298 "repo": "nixos-wsl", 641 - "rev": "60b4904a1390ac4c89e93d95f6ed928975e525ed", 299 + "rev": "be618645aa0adf461f778500172b6896d5ab2d01", 642 300 "type": "github" 643 301 }, 644 302 "original": { ··· 649 307 }, 650 308 "nixpkgs": { 651 309 "locked": { 652 - "lastModified": 1745377448, 653 - "narHash": "sha256-jhZDfXVKdD7TSEGgzFJQvEEZ2K65UMiqW5YJ2aIqxMA=", 310 + "lastModified": 1746397377, 311 + "narHash": "sha256-5oLdRa3vWSRbuqPIFFmQBGGUqaYZBxX+GGtN9f/n4lU=", 654 312 "owner": "nixos", 655 313 "repo": "nixpkgs", 656 - "rev": "507b63021ada5fee621b6ca371c4fca9ca46f52c", 314 + "rev": "ed30f8aba41605e3ab46421e3dcb4510ec560ff8", 657 315 "type": "github" 658 316 }, 659 317 "original": { ··· 678 336 "type": "github" 679 337 } 680 338 }, 681 - "nixpkgs-stable": { 682 - "locked": { 683 - "lastModified": 1740142985, 684 - "narHash": "sha256-fCPt2PVnQgiHXGlTRmU5/gFdG/+JT3ycpt+GxY1Vp+s=", 685 - "owner": "NixOS", 686 - "repo": "nixpkgs", 687 - "rev": "1d1ce35bb6052a23f5692cd89b7cc49acdcb8d0e", 688 - "type": "github" 689 - }, 690 - "original": { 691 - "owner": "NixOS", 692 - "ref": "release-24.11", 693 - "repo": "nixpkgs", 694 - "type": "github" 695 - } 696 - }, 697 - "nixpkgs-unstable": { 698 - "locked": { 699 - "lastModified": 1740142985, 700 - "narHash": "sha256-fCPt2PVnQgiHXGlTRmU5/gFdG/+JT3ycpt+GxY1Vp+s=", 701 - "owner": "NixOS", 702 - "repo": "nixpkgs", 703 - "rev": "1d1ce35bb6052a23f5692cd89b7cc49acdcb8d0e", 704 - "type": "github" 705 - }, 706 - "original": { 707 - "owner": "NixOS", 708 - "ref": "release-24.11", 709 - "repo": "nixpkgs", 710 - "type": "github" 711 - } 712 - }, 713 - "nixpkgs_2": { 714 - "locked": { 715 - "lastModified": 1744536153, 716 - "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", 717 - "owner": "NixOS", 718 - "repo": "nixpkgs", 719 - "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", 720 - "type": "github" 721 - }, 722 - "original": { 723 - "owner": "NixOS", 724 - "ref": "nixpkgs-unstable", 725 - "repo": "nixpkgs", 726 - "type": "github" 727 - } 728 - }, 729 - "nox": { 730 - "inputs": { 731 - "flake-utils": [ 732 - "flake-utils" 733 - ], 734 - "gitignore": "gitignore", 735 - "nixpkgs": [ 736 - "nixpkgs" 737 - ] 738 - }, 739 - "locked": { 740 - "lastModified": 1743876182, 741 - "narHash": "sha256-qfiVewr5huupheLqStX60JSbjBEm9/PDncLQXE0dsXo=", 742 - "owner": "madsbv", 743 - "repo": "nix-options-search", 744 - "rev": "f52dc6986161570a2ffffdf337c88b503e9a58fb", 745 - "type": "github" 746 - }, 747 - "original": { 748 - "owner": "madsbv", 749 - "repo": "nix-options-search", 750 - "type": "github" 751 - } 752 - }, 753 339 "ntv": { 754 340 "inputs": { 755 341 "devshell": [ ··· 781 367 "type": "github" 782 368 } 783 369 }, 784 - "pre-commit-hooks": { 785 - "inputs": { 786 - "flake-compat": "flake-compat_3", 787 - "gitignore": "gitignore_2", 788 - "nixpkgs": [ 789 - "radicle", 790 - "nixpkgs" 791 - ] 792 - }, 793 - "locked": { 794 - "lastModified": 1742649964, 795 - "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", 796 - "owner": "cachix", 797 - "repo": "git-hooks.nix", 798 - "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", 799 - "type": "github" 800 - }, 801 - "original": { 802 - "owner": "cachix", 803 - "repo": "git-hooks.nix", 804 - "type": "github" 805 - } 806 - }, 807 - "purescript-overlay": { 808 - "inputs": { 809 - "flake-compat": "flake-compat", 810 - "nixpkgs": [ 811 - "nci", 812 - "dream2nix", 813 - "nixpkgs" 814 - ], 815 - "slimlock": "slimlock" 816 - }, 817 - "locked": { 818 - "lastModified": 1728546539, 819 - "narHash": "sha256-Sws7w0tlnjD+Bjck1nv29NjC5DbL6nH5auL9Ex9Iz2A=", 820 - "owner": "thomashoneyman", 821 - "repo": "purescript-overlay", 822 - "rev": "4ad4c15d07bd899d7346b331f377606631eb0ee4", 823 - "type": "github" 824 - }, 825 - "original": { 826 - "owner": "thomashoneyman", 827 - "repo": "purescript-overlay", 828 - "type": "github" 829 - } 830 - }, 831 - "pyproject-nix": { 832 - "flake": false, 833 - "locked": { 834 - "lastModified": 1702448246, 835 - "narHash": "sha256-hFg5s/hoJFv7tDpiGvEvXP0UfFvFEDgTdyHIjDVHu1I=", 836 - "owner": "davhau", 837 - "repo": "pyproject.nix", 838 - "rev": "5a06a2697b228c04dd2f35659b4b659ca74f7aeb", 839 - "type": "github" 840 - }, 841 - "original": { 842 - "owner": "davhau", 843 - "ref": "dream2nix", 844 - "repo": "pyproject.nix", 845 - "type": "github" 846 - } 847 - }, 848 - "radicle": { 849 - "inputs": { 850 - "advisory-db": "advisory-db", 851 - "crane": [ 852 - "crane" 853 - ], 854 - "flake-utils": [ 855 - "flake-utils" 856 - ], 857 - "nixpkgs": [ 858 - "nixpkgs" 859 - ], 860 - "nixpkgs-stable": "nixpkgs-stable", 861 - "nixpkgs-unstable": "nixpkgs-unstable", 862 - "pre-commit-hooks": "pre-commit-hooks", 863 - "rust-overlay": [ 864 - "rust-overlay" 865 - ] 866 - }, 867 - "locked": { 868 - "lastModified": 1745506298, 869 - "narHash": "sha256-UTrZih6C0Pbm+V22gWJ+FtwI4D2Mp6T+1t/XzKz2dhU=", 870 - "ref": "refs/heads/master", 871 - "rev": "f13afe491d169004159a033c4ad7548a7ba76271", 872 - "revCount": 2212, 873 - "type": "git", 874 - "url": "https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git" 875 - }, 876 - "original": { 877 - "type": "git", 878 - "url": "https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git" 879 - } 880 - }, 881 370 "root": { 882 371 "inputs": { 883 372 "SPC": "SPC", 884 - "blueprint": "blueprint", 885 - "cli-leader": "cli-leader", 886 - "crane": "crane", 887 - "devicon-lookup": "devicon-lookup", 888 373 "devshell": "devshell", 889 374 "doom-emacs": "doom-emacs", 890 375 "flake-parts": "flake-parts", 891 - "flake-utils": "flake-utils", 892 376 "home-manager": "home-manager", 893 - "jj-fzf": "jj-fzf", 377 + "import-tree": "import-tree", 894 378 "jjui": "jjui", 895 - "lazyjj": "lazyjj", 896 - "nci": "nci", 897 379 "nix-darwin": "nix-darwin", 898 380 "nix-index-database": "nix-index-database", 899 - "nix-inspect": "nix-inspect", 900 - "nix-versions": "nix-versions", 901 - "nixos-generators": "nixos-generators", 902 381 "nixos-wsl": "nixos-wsl", 903 382 "nixpkgs": "nixpkgs", 904 - "nox": "nox", 905 383 "ntv": "ntv", 906 - "radicle": "radicle", 907 - "rust-overlay": "rust-overlay", 908 384 "sops-nix": "sops-nix", 909 - "systems": "systems", 385 + "systems": "systems_2", 910 386 "treefmt-nix": "treefmt-nix", 911 - "use_devshell_toml": "use_devshell_toml", 912 387 "versioned": "versioned", 913 388 "vscode-server": "vscode-server" 914 389 } 915 390 }, 916 - "rust-overlay": { 391 + "sops-nix": { 917 392 "inputs": { 918 - "nixpkgs": "nixpkgs_2" 393 + "nixpkgs": [ 394 + "nixpkgs" 395 + ] 919 396 }, 920 397 "locked": { 921 - "lastModified": 1745548521, 922 - "narHash": "sha256-xyliq8oS5OnzXjHRGr92RtmrtYI/dflf2gSEo0wMFjc=", 923 - "owner": "oxalica", 924 - "repo": "rust-overlay", 925 - "rev": "eb0afb4ac0720d55c29e88eb29432103d73ae11d", 398 + "lastModified": 1746485181, 399 + "narHash": "sha256-PxrrSFLaC7YuItShxmYbMgSuFFuwxBB+qsl9BZUnRvg=", 400 + "owner": "Mic92", 401 + "repo": "sops-nix", 402 + "rev": "e93ee1d900ad264d65e9701a5c6f895683433386", 926 403 "type": "github" 927 404 }, 928 405 "original": { 929 - "owner": "oxalica", 930 - "repo": "rust-overlay", 406 + "owner": "Mic92", 407 + "repo": "sops-nix", 931 408 "type": "github" 932 409 } 933 410 }, 934 - "slimlock": { 935 - "inputs": { 936 - "nixpkgs": [ 937 - "nci", 938 - "dream2nix", 939 - "purescript-overlay", 940 - "nixpkgs" 941 - ] 942 - }, 411 + "systems": { 943 412 "locked": { 944 - "lastModified": 1688756706, 945 - "narHash": "sha256-xzkkMv3neJJJ89zo3o2ojp7nFeaZc2G0fYwNXNJRFlo=", 946 - "owner": "thomashoneyman", 947 - "repo": "slimlock", 948 - "rev": "cf72723f59e2340d24881fd7bf61cb113b4c407c", 413 + "lastModified": 1681028828, 414 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 415 + "owner": "nix-systems", 416 + "repo": "default", 417 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 949 418 "type": "github" 950 419 }, 951 420 "original": { 952 - "owner": "thomashoneyman", 953 - "repo": "slimlock", 421 + "owner": "nix-systems", 422 + "repo": "default", 954 423 "type": "github" 955 424 } 956 425 }, 957 - "sops-nix": { 958 - "inputs": { 959 - "nixpkgs": [ 960 - "nixpkgs" 961 - ] 962 - }, 426 + "systems_2": { 963 427 "locked": { 964 - "lastModified": 1745310711, 965 - "narHash": "sha256-ePyTpKEJTgX0gvgNQWd7tQYQ3glIkbqcW778RpHlqgA=", 966 - "owner": "Mic92", 967 - "repo": "sops-nix", 968 - "rev": "5e3e92b16d6fdf9923425a8d4df7496b2434f39c", 428 + "lastModified": 1681028828, 429 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 430 + "owner": "nix-systems", 431 + "repo": "default", 432 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 969 433 "type": "github" 970 434 }, 971 435 "original": { 972 - "owner": "Mic92", 973 - "repo": "sops-nix", 436 + "owner": "nix-systems", 437 + "repo": "default", 974 438 "type": "github" 975 439 } 976 440 }, 977 - "systems": { 441 + "systems_3": { 978 442 "locked": { 979 443 "lastModified": 1681028828, 980 444 "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", ··· 996 460 ] 997 461 }, 998 462 "locked": { 999 - "lastModified": 1744961264, 1000 - "narHash": "sha256-aRmUh0AMwcbdjJHnytg1e5h5ECcaWtIFQa6d9gI85AI=", 463 + "lastModified": 1746216483, 464 + "narHash": "sha256-4h3s1L/kKqt3gMDcVfN8/4v2jqHrgLIe4qok4ApH5x4=", 1001 465 "owner": "numtide", 1002 466 "repo": "treefmt-nix", 1003 - "rev": "8d404a69efe76146368885110f29a2ca3700bee6", 467 + "rev": "29ec5026372e0dec56f890e50dbe4f45930320fd", 1004 468 "type": "github" 1005 469 }, 1006 470 "original": { ··· 1009 473 "type": "github" 1010 474 } 1011 475 }, 1012 - "use_devshell_toml": { 1013 - "inputs": { 1014 - "nixpkgs": [ 1015 - "nixpkgs" 1016 - ], 1017 - "treefmt-nix": [ 1018 - "treefmt-nix" 1019 - ] 1020 - }, 1021 - "locked": { 1022 - "lastModified": 1741354009, 1023 - "narHash": "sha256-+zXgbNiN9Cwnd/21vY7Wo31/gkyKUbaoXHIx65KY79o=", 1024 - "owner": "vic", 1025 - "repo": "use_devshell_toml", 1026 - "rev": "63f65adffe7d94a237552451bd70b10372492dab", 1027 - "type": "github" 1028 - }, 1029 - "original": { 1030 - "owner": "vic", 1031 - "repo": "use_devshell_toml", 1032 - "type": "github" 1033 - } 1034 - }, 1035 476 "versioned": { 1036 477 "inputs": { 1037 478 "input-leap": "input-leap", ··· 1043 484 ] 1044 485 }, 1045 486 "locked": { 1046 - "lastModified": 312768000, 487 + "lastModified": 312789600, 1047 488 "narHash": "sha256-lAhV+c203eZDOZXAyBsKuDk6mCgGQhHkcfM9PJJ0mzE=", 1048 489 "type": "tarball", 1049 490 "url": "https://nix-versions.alwaysdata.net/flake.zip/input-leap" ··· 1055 496 }, 1056 497 "vscode-server": { 1057 498 "inputs": { 1058 - "flake-utils": [ 1059 - "flake-utils" 1060 - ], 499 + "flake-utils": "flake-utils", 1061 500 "nixpkgs": [ 1062 501 "nixpkgs" 1063 502 ]
+31 -108
flake.nix
··· 1 1 { 2 2 description = "Vic's Nix Environment"; 3 3 4 + outputs = inputs: import ./. inputs; 5 + 4 6 nixConfig = { 5 7 allow-import-from-derivation = true; 6 - 7 8 extra-trusted-public-keys = [ 8 9 "vix.cachix.org-1:hP/Lpdsi1dB3AxK9o6coWh+xHzvAc4ztdDYuG7lC6dI=" 9 10 ]; 10 11 extra-substituters = [ "https://vix.cachix.org" ]; 11 12 }; 12 - inputs = { 13 - nixpkgs.url = "github:nixos/nixpkgs?ref=nixpkgs-unstable"; 14 - 15 - systems.url = "github:nix-systems/default"; 16 - 17 - # not used here but followed by other deps to get a flat dep tree 18 - flake-utils.url = "github:numtide/flake-utils"; 19 - flake-utils.inputs.systems.follows = "systems"; 20 - 21 - blueprint.url = "github:numtide/blueprint"; 22 - blueprint.inputs.nixpkgs.follows = "nixpkgs"; 23 - blueprint.inputs.systems.follows = "systems"; 24 - 25 - nix-darwin.url = "github:LnL7/nix-darwin"; 26 - nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; 27 13 28 - nixos-wsl.url = "github:nix-community/nixos-wsl"; 29 - nixos-wsl.inputs.nixpkgs.follows = "nixpkgs"; 30 - 31 - home-manager.url = "github:nix-community/home-manager"; 32 - home-manager.inputs.nixpkgs.follows = "nixpkgs"; 33 - 34 - nixos-generators.url = "github:nix-community/nixos-generators"; 35 - nixos-generators.inputs.nixpkgs.follows = "nixpkgs"; 36 - 37 - vscode-server.url = "github:nix-community/nixos-vscode-server"; 38 - vscode-server.inputs.nixpkgs.follows = "nixpkgs"; 39 - vscode-server.inputs.flake-utils.follows = "flake-utils"; 40 - 41 - cli-leader.url = "github:dhamidi/leader?ref=14373a2"; 42 - cli-leader.flake = false; 43 - 44 - nox.url = "github:madsbv/nix-options-search"; 45 - nox.inputs.nixpkgs.follows = "nixpkgs"; 46 - nox.inputs.flake-utils.follows = "flake-utils"; 14 + inputs = { 47 15 48 - devshell.url = "github:numtide/devshell"; 49 16 devshell.inputs.nixpkgs.follows = "nixpkgs"; 50 - 51 - sops-nix.url = "github:Mic92/sops-nix"; 52 - sops-nix.inputs.nixpkgs.follows = "nixpkgs"; 53 - 54 - nix-index-database.url = "github:nix-community/nix-index-database"; 55 - nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; 56 - 57 - treefmt-nix.url = "github:numtide/treefmt-nix"; 58 - treefmt-nix.inputs.nixpkgs.follows = "nixpkgs"; 59 - 60 - use_devshell_toml.url = "github:vic/use_devshell_toml"; 61 - use_devshell_toml.inputs.nixpkgs.follows = "nixpkgs"; 62 - use_devshell_toml.inputs.treefmt-nix.follows = "treefmt-nix"; 63 - 64 - SPC.url = "github:vic/SPC"; 65 - SPC.inputs.nixpkgs.follows = "nixpkgs"; 66 - SPC.inputs.blueprint.follows = "blueprint"; 67 - SPC.inputs.treefmt-nix.follows = "treefmt-nix"; 68 - 17 + devshell.url = "github:numtide/devshell"; 18 + doom-emacs.flake = false; 69 19 doom-emacs.url = "github:doomemacs/doomemacs"; 70 - doom-emacs.flake = false; 71 - 72 20 flake-parts.url = "github:hercules-ci/flake-parts"; 73 - 74 - nix-versions.url = "github:vic/nix-versions"; 75 - nix-versions.inputs.nixpkgs.follows = "nixpkgs"; 76 - nix-versions.inputs.flake-parts.follows = "flake-parts"; 77 - nix-versions.inputs.systems.follows = "systems"; 78 - nix-versions.inputs.treefmt-nix.follows = "treefmt-nix"; 79 - 80 - rust-overlay.url = "github:oxalica/rust-overlay"; 81 - crane.url = "github:ipetkov/crane"; 82 - 83 - nci.url = "github:yusdacra/nix-cargo-integration"; 84 - nci.inputs.nixpkgs.follows = "nixpkgs"; 85 - nci.inputs.parts.follows = "flake-parts"; 86 - nci.inputs.crane.follows = "crane"; 87 - nci.inputs.treefmt.follows = "treefmt-nix"; 88 - nci.inputs.rust-overlay.follows = "rust-overlay"; 89 - 90 - nix-inspect.url = "github:bluskript/nix-inspect"; 91 - nix-inspect.inputs.nixpkgs.follows = "nixpkgs"; 92 - nix-inspect.inputs.parts.follows = "flake-parts"; 93 - nix-inspect.inputs.nci.follows = "nci"; 94 - 95 - radicle.url = "git+https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git"; 96 - radicle.inputs.nixpkgs.follows = "nixpkgs"; 97 - radicle.inputs.flake-utils.follows = "flake-utils"; 98 - radicle.inputs.crane.follows = "crane"; 99 - radicle.inputs.rust-overlay.follows = "rust-overlay"; 100 - 101 - devicon-lookup.url = "github:coreyja/devicon-lookup"; 102 - devicon-lookup.flake = false; 103 - 104 - jj-fzf.url = "github:tim-janik/jj-fzf"; 105 - jj-fzf.flake = false; 106 - 107 - lazyjj.url = "github:Cretezy/lazyjj"; 108 - lazyjj.flake = false; 109 - 110 - jjui.url = "github:idursun/jjui"; 21 + home-manager.inputs.nixpkgs.follows = "nixpkgs"; 22 + home-manager.url = "github:nix-community/home-manager"; 23 + import-tree.url = "github:vic/import-tree"; 24 + jjui.inputs.flake-parts.follows = "flake-parts"; 111 25 jjui.inputs.nixpkgs.follows = "nixpkgs"; 112 - jjui.inputs.flake-parts.follows = "flake-parts"; 113 26 jjui.inputs.systems.follows = "systems"; 114 - 115 - ntv.url = "github:vic/ntv?dir=nix/flakeModules"; 27 + jjui.url = "github:idursun/jjui"; 28 + nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; 29 + nix-darwin.url = "github:LnL7/nix-darwin"; 30 + nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; 31 + nix-index-database.url = "github:nix-community/nix-index-database"; 32 + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; 33 + ntv.inputs.devshell.follows = "devshell"; 34 + ntv.inputs.flake-parts.follows = "flake-parts"; 116 35 ntv.inputs.nixpkgs.follows = "nixpkgs"; 117 36 ntv.inputs.systems.follows = "systems"; 118 - ntv.inputs.devshell.follows = "devshell"; 119 - ntv.inputs.flake-parts.follows = "flake-parts"; 120 - 121 - versioned.url = "https://nix-versions.alwaysdata.net/flake.zip/input-leap"; 37 + ntv.url = "github:vic/ntv?dir=nix/flakeModules"; 38 + sops-nix.inputs.nixpkgs.follows = "nixpkgs"; 39 + sops-nix.url = "github:Mic92/sops-nix"; 40 + SPC.inputs.nixpkgs.follows = "nixpkgs"; 41 + SPC.inputs.treefmt-nix.follows = "treefmt-nix"; 42 + SPC.url = "github:vic/SPC"; 43 + systems.url = "github:nix-systems/default"; 44 + treefmt-nix.inputs.nixpkgs.follows = "nixpkgs"; 45 + treefmt-nix.url = "github:numtide/treefmt-nix"; 122 46 versioned.inputs.nixpkgs.follows = "nixpkgs"; 123 47 versioned.inputs.ntv.follows = "ntv"; 48 + versioned.url = "https://nix-versions.alwaysdata.net/flake.zip/input-leap"; 49 + vscode-server.inputs.nixpkgs.follows = "nixpkgs"; 50 + vscode-server.url = "github:nix-community/nixos-vscode-server"; 51 + nixos-wsl.url = "github:nix-community/nixos-wsl"; 52 + nixos-wsl.inputs.nixpkgs.follows = "nixpkgs"; 124 53 125 54 }; 126 - 127 - outputs = 128 - inputs: 129 - inputs.blueprint { 130 - inherit inputs; 131 - }; 132 55 }
-1
formatter.nix
··· 1 - { inputs, pkgs, ... }: (inputs.self.lib.treefmt pkgs).config.build.wrapper
-13
hosts/annatar/configuration.nix
··· 1 - { inputs, ... }: 2 - { 3 - 4 - imports = with inputs.self.nixosModules; [ 5 - wsl 6 - nix-features 7 - vic 8 - ./static.nix 9 - ]; 10 - 11 - wsl.defaultUser = "vic"; 12 - 13 - }
-5
hosts/annatar/static.nix
··· 1 - { 2 - networking.hostName = "annatar"; 3 - nixpkgs.hostPlatform = "x86_64-linux"; 4 - system.stateVersion = "25.05"; 5 - }
-9
hosts/annatar/users/vic.nix
··· 1 - { inputs, ... }: 2 - { 3 - imports = with inputs.self.homeModules; [ 4 - vic 5 - vscode-server 6 - ]; 7 - 8 - home.stateVersion = with import ./../static.nix; system.stateVersion; 9 - }
-6
hosts/bert/darwin-configuration.nix
··· 1 - { ... }: 2 - { 3 - nixpkgs.hostPlatform = "aarch64-darwin"; 4 - system.stateVersion = 6; 5 - users.users.runner.home = "/Users/runner"; 6 - }
-7
hosts/bert/users/runner.nix
··· 1 - { inputs, ... }: 2 - { 3 - imports = with inputs.self.homeModules; [ 4 - runner 5 - ]; 6 - home.stateVersion = "25.05"; 7 - }
-8
hosts/bill/configuration.nix
··· 1 - { ... }: 2 - { 3 - boot.loader.grub.enable = false; 4 - fileSystems."/".device = "/dev/null"; 5 - nixpkgs.hostPlatform = "aarch64-linux"; 6 - system.stateVersion = "25.05"; 7 - users.users.runner.isNormalUser = true; 8 - }
-7
hosts/bill/users/runner.nix
··· 1 - { inputs, ... }: 2 - { 3 - imports = with inputs.self.homeModules; [ 4 - runner 5 - ]; 6 - home.stateVersion = "25.05"; 7 - }
-42
hosts/bombadil/configuration.nix
··· 1 - # nix build .#.nixosConfigurations.bombadil.config.system.build.isoImage 2 - { 3 - modulesPath, 4 - config, 5 - lib, 6 - inputs, 7 - ... 8 - }: 9 - { 10 - imports = with inputs.self.nixosModules; [ 11 - "${toString modulesPath}/installer/cd-dvd/installation-cd-base.nix" 12 - nix-features 13 - vic 14 - vic-autologin 15 - macos-keys 16 - kvm-intel 17 - wl-broadcom 18 - all-firmware 19 - xfce-desktop 20 - ./static.nix 21 - ]; 22 - 23 - lib.isoFileSystems."/home/vic" = { 24 - device = "/dev/disk/by-label/vic"; 25 - fsType = "ext4"; 26 - }; 27 - 28 - users.users.vic.uid = 1000; 29 - users.users.nixos.uid = 1001; 30 - 31 - vix.features.macos-keys.enable = true; 32 - 33 - isoImage.edition = lib.mkDefault config.networking.hostName; 34 - networking.networkmanager.enable = true; 35 - networking.wireless.enable = lib.mkImageMediaOverride false; 36 - 37 - hardware.bluetooth.enable = true; 38 - hardware.bluetooth.powerOnBoot = true; 39 - services.blueman.enable = true; 40 - services.pulseaudio.enable = false; 41 - 42 - }
-5
hosts/bombadil/static.nix
··· 1 - { 2 - networking.hostName = "bombadil"; 3 - nixpkgs.hostPlatform = "x86_64-linux"; 4 - system.stateVersion = "25.05"; 5 - }
-8
hosts/bombadil/users/vic.nix
··· 1 - { inputs, ... }: 2 - { 3 - imports = with inputs.self.homeModules; [ 4 - vic 5 - vic-desktop 6 - ]; 7 - home.stateVersion = with import ./../static.nix; system.stateVersion; 8 - }
-18
hosts/mordor/configuration.nix
··· 1 - { inputs, ... }: 2 - { 3 - 4 - imports = with inputs.self.nixosModules; [ 5 - nix-features 6 - bootable 7 - xfce-desktop 8 - barrier 9 - vic 10 - vic-autologin 11 - kvm-amd 12 - nvidia 13 - ./static.nix 14 - ./filesystems.nix 15 - ./hardware-configuration.nix 16 - ]; 17 - 18 - }
-28
hosts/mordor/filesystems.nix
··· 1 - { 2 - 3 - boot.initrd.availableKernelModules = [ "nvme" ]; 4 - 5 - fileSystems."/" = { 6 - device = "/dev/disk/by-label/nixos"; 7 - fsType = "ext4"; 8 - }; 9 - 10 - fileSystems."/home" = { 11 - device = "/dev/disk/by-label/home"; 12 - fsType = "ext4"; 13 - }; 14 - 15 - fileSystems."/boot" = { 16 - device = "/dev/disk/by-label/BOOT"; 17 - fsType = "vfat"; 18 - options = [ 19 - "fmask=0022" 20 - "dmask=0022" 21 - ]; 22 - }; 23 - 24 - swapDevices = [ 25 - { device = "/dev/disk/by-label/swap"; } 26 - ]; 27 - 28 - }
-16
hosts/mordor/hardware-configuration.nix
··· 1 - # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 - # and may be overwritten by future invocations. Please make changes 3 - # to /etc/nixos/configuration.nix instead. 4 - { 5 - ... 6 - }: 7 - 8 - { 9 - boot.initrd.availableKernelModules = [ 10 - "xhci_pci" 11 - "ahci" 12 - "usbhid" 13 - "usb_storage" 14 - "sd_mod" 15 - ]; 16 - }
-5
hosts/mordor/static.nix
··· 1 - { 2 - networking.hostName = "mordor"; 3 - nixpkgs.hostPlatform = "x86_64-linux"; 4 - system.stateVersion = "25.05"; 5 - }
-9
hosts/mordor/users/vic.nix
··· 1 - { inputs, ... }: 2 - { 3 - imports = with inputs.self.homeModules; [ 4 - vic 5 - vic-desktop 6 - ]; 7 - 8 - home.stateVersion = with import ./../static.nix; system.stateVersion; 9 - }
-27
hosts/nargun/configuration.nix
··· 1 - # Edit this configuration file to define what should be installed on 2 - # your system. Help is available in the configuration.nix(5) man page 3 - # and in the NixOS manual (accessible by running ‘nixos-help’). 4 - 5 - { 6 - inputs, 7 - ... 8 - }: 9 - 10 - { 11 - imports = with inputs.self.nixosModules; [ 12 - barrier 13 - bootable 14 - kde-desktop 15 - kvm-amd 16 - macos-keys 17 - nix-features 18 - vic 19 - vic-autologin 20 - ./static.nix 21 - ./filesystems.nix 22 - ./hardware-configuration.nix 23 - ]; 24 - 25 - vix.features.macos-keys.enable = true; 26 - 27 - }
-26
hosts/nargun/filesystems.nix
··· 1 - # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 - # and may be overwritten by future invocations. Please make changes 3 - # to /etc/nixos/configuration.nix instead. 4 - { 5 - ... 6 - }: 7 - 8 - { 9 - 10 - fileSystems."/" = { 11 - device = "/dev/disk/by-uuid/5e0a5652-9af6-4590-9bd1-be059e339b84"; 12 - fsType = "ext4"; 13 - }; 14 - 15 - fileSystems."/boot" = { 16 - device = "/dev/disk/by-uuid/3902-2085"; 17 - fsType = "vfat"; 18 - options = [ 19 - "fmask=0077" 20 - "dmask=0077" 21 - ]; 22 - }; 23 - 24 - swapDevices = [ { device = "/dev/disk/by-uuid/3be2776b-3153-443b-95b8-0fbd06becb75"; } ]; 25 - 26 - }
-18
hosts/nargun/hardware-configuration.nix
··· 1 - # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 - # and may be overwritten by future invocations. Please make changes 3 - # to /etc/nixos/configuration.nix instead. 4 - { 5 - ... 6 - }: 7 - 8 - { 9 - 10 - boot.initrd.availableKernelModules = [ 11 - "nvme" 12 - "xhci_pci" 13 - "usb_storage" 14 - "sd_mod" 15 - "sdhci_pci" 16 - ]; 17 - 18 - }
-5
hosts/nargun/static.nix
··· 1 - { 2 - networking.hostName = "nargun"; 3 - nixpkgs.hostPlatform = "x86_64-linux"; 4 - system.stateVersion = "25.05"; 5 - }
-9
hosts/nargun/users/vic.nix
··· 1 - { inputs, ... }: 2 - { 3 - imports = with inputs.self.homeModules; [ 4 - vic 5 - vic-desktop 6 - ]; 7 - 8 - home.stateVersion = with import ./../static.nix; system.stateVersion; 9 - }
-28
hosts/nienna/configuration.nix
··· 1 - # Edit this configuration file to define what should be installed on 2 - # your system. Help is available in the configuration.nix(5) man page 3 - # and in the NixOS manual (accessible by running ‘nixos-help’). 4 - 5 - { 6 - inputs, 7 - ... 8 - }: 9 - 10 - { 11 - imports = with inputs.self.nixosModules; [ 12 - nix-features 13 - vic 14 - vic-autologin 15 - bootable 16 - gnome-desktop 17 - barrier 18 - macos-keys 19 - kvm-intel 20 - wl-broadcom 21 - ./static.nix 22 - ./filesystems.nix 23 - ./hardware-configuration.nix 24 - ]; 25 - 26 - vix.features.macos-keys.enable = false; 27 - 28 - }
-28
hosts/nienna/filesystems.nix
··· 1 - # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 - # and may be overwritten by future invocations. Please make changes 3 - # to /etc/nixos/configuration.nix instead. 4 - { 5 - ... 6 - }: 7 - 8 - { 9 - 10 - fileSystems."/" = { 11 - device = "/dev/disk/by-uuid/49a514f4-ba6e-47aa-b3c0-83a650c2e22d"; 12 - fsType = "ext4"; 13 - }; 14 - 15 - fileSystems."/boot" = { 16 - device = "/dev/disk/by-uuid/45F4-4CED"; 17 - fsType = "vfat"; 18 - options = [ 19 - "fmask=0077" 20 - "dmask=0077" 21 - ]; 22 - }; 23 - 24 - swapDevices = [ 25 - { device = "/dev/disk/by-uuid/f774218c-ec59-427d-bada-8eb7b6b928b8"; } 26 - ]; 27 - 28 - }
-19
hosts/nienna/hardware-configuration.nix
··· 1 - # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 - # and may be overwritten by future invocations. Please make changes 3 - # to /etc/nixos/configuration.nix instead. 4 - { 5 - ... 6 - }: 7 - 8 - { 9 - boot.initrd.availableKernelModules = [ 10 - "uhci_hcd" 11 - "ehci_pci" 12 - "ahci" 13 - "firewire_ohci" 14 - "usbhid" 15 - "usb_storage" 16 - "sd_mod" 17 - "sdhci_pci" 18 - ]; 19 - }
-5
hosts/nienna/static.nix
··· 1 - { 2 - networking.hostName = "nienna"; 3 - nixpkgs.hostPlatform = "x86_64-linux"; 4 - system.stateVersion = "25.05"; 5 - }
-9
hosts/nienna/users/vic.nix
··· 1 - { inputs, ... }: 2 - { 3 - imports = with inputs.self.homeModules; [ 4 - vic 5 - vic-desktop 6 - ]; 7 - 8 - home.stateVersion = with import ./../static.nix; system.stateVersion; 9 - }
-30
hosts/smaug/configuration.nix
··· 1 - # Edit this configuration file to define what should be installed on 2 - # your system. Help is available in the configuration.nix(5) man page 3 - # and in the NixOS manual (accessible by running ‘nixos-help’). 4 - 5 - { 6 - inputs, 7 - ... 8 - }: 9 - 10 - { 11 - imports = with inputs.self.nixosModules; [ 12 - nix-features 13 - vic 14 - vic-autologin 15 - bootable 16 - kde-desktop 17 - barrier 18 - macos-keys 19 - kvm-intel 20 - wl-broadcom 21 - nvidia 22 - all-firmware 23 - ./static.nix 24 - ./filesystems.nix 25 - ./hardware-configuration.nix 26 - ]; 27 - 28 - vix.features.macos-keys.enable = true; 29 - 30 - }
-31
hosts/smaug/filesystems.nix
··· 1 - # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 - # and may be overwritten by future invocations. Please make changes 3 - # to /etc/nixos/configuration.nix instead. 4 - { ... }: 5 - 6 - { 7 - 8 - fileSystems."/" = { 9 - device = "/dev/disk/by-label/nixos"; 10 - fsType = "ext4"; 11 - }; 12 - 13 - fileSystems."/boot" = { 14 - device = "/dev/disk/by-label/boot"; 15 - fsType = "vfat"; 16 - options = [ 17 - "fmask=0077" 18 - "dmask=0077" 19 - ]; 20 - }; 21 - 22 - fileSystems."/home" = { 23 - device = "/dev/disk/by-label/home"; 24 - fsType = "ext4"; 25 - }; 26 - 27 - swapDevices = [ 28 - { device = "/dev/disk/by-label/swap"; } 29 - ]; 30 - 31 - }
-16
hosts/smaug/hardware-configuration.nix
··· 1 - # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 - # and may be overwritten by future invocations. Please make changes 3 - # to /etc/nixos/configuration.nix instead. 4 - { 5 - ... 6 - }: 7 - 8 - { 9 - 10 - boot.initrd.availableKernelModules = [ 11 - "xhci_pci" 12 - "ehci_pci" 13 - "usb_storage" 14 - "sd_mod" 15 - ]; 16 - }
-5
hosts/smaug/static.nix
··· 1 - { 2 - networking.hostName = "smaug"; 3 - nixpkgs.hostPlatform = "x86_64-linux"; 4 - system.stateVersion = "25.05"; 5 - }
-9
hosts/smaug/users/vic.nix
··· 1 - { inputs, ... }: 2 - { 3 - imports = with inputs.self.homeModules; [ 4 - vic 5 - vic-desktop 6 - ]; 7 - 8 - home.stateVersion = with import ./../static.nix; system.stateVersion; 9 - }
-8
hosts/tom/configuration.nix
··· 1 - { ... }: 2 - { 3 - boot.loader.grub.enable = false; 4 - fileSystems."/".device = "/dev/null"; 5 - nixpkgs.hostPlatform = "x86_64-linux"; 6 - system.stateVersion = "25.05"; 7 - users.users.runner.isNormalUser = true; 8 - }
-7
hosts/tom/users/runner.nix
··· 1 - { inputs, ... }: 2 - { 3 - imports = with inputs.self.homeModules; [ 4 - runner 5 - ]; 6 - home.stateVersion = "25.05"; 7 - }
-11
hosts/varda/darwin-configuration.nix
··· 1 - { inputs, ... }: 2 - { 3 - imports = with inputs.self.nixosModules; [ 4 - darwin 5 - nix-features 6 - vic 7 - ./static.nix 8 - ]; 9 - 10 - users.users.vic.home = "/Users/vic"; 11 - }
-5
hosts/varda/static.nix
··· 1 - { 2 - networking.hostName = "varda"; 3 - nixpkgs.hostPlatform = "aarch64-darwin"; 4 - system.stateVersion = 6; 5 - }
-8
hosts/varda/users/vic.nix
··· 1 - { inputs, ... }: 2 - { 3 - imports = with inputs.self.homeModules; [ 4 - vic 5 - ]; 6 - 7 - home.stateVersion = "25.05"; 8 - }
-11
hosts/yavanna/darwin-configuration.nix
··· 1 - { inputs, ... }: 2 - { 3 - imports = with inputs.self.nixosModules; [ 4 - darwin 5 - nix-features 6 - vic 7 - ./static.nix 8 - ]; 9 - 10 - users.users.vic.home = "/v/home"; 11 - }
-5
hosts/yavanna/static.nix
··· 1 - { 2 - networking.hostName = "yavanna"; 3 - nixpkgs.hostPlatform = "x86_64-darwin"; 4 - system.stateVersion = 6; 5 - }
-8
hosts/yavanna/users/vic.nix
··· 1 - { inputs, ... }: 2 - { 3 - imports = with inputs.self.homeModules; [ 4 - vic 5 - ]; 6 - 7 - home.stateVersion = "25.05"; 8 - }
-23
lib/default.nix
··· 1 - { inputs, ... }: 2 - { 3 - 4 - treefmt = pkgs: pkgs.callPackage ./treefmt.nix { inherit inputs; }; 5 - 6 - hostsBySystem = 7 - system: 8 - let 9 - # pkgs expects we run on a linux. 10 - pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux; 11 - lib = pkgs.lib; 12 - where = 13 - ({ 14 - "x86_64-linux" = inputs.self.nixosConfigurations; 15 - "aarch64-linux" = inputs.self.nixosConfigurations; 16 - "x86_64-darwin" = inputs.self.darwinConfigurations; 17 - "aarch64-darwin" = inputs.self.darwinConfigurations; 18 - }).${system} or (throw "Unsupported system: ${system}"); 19 - sameSystem = lib.filterAttrs (_: v: v.config.nixpkgs.hostPlatform.system == system) where; 20 - in 21 - lib.attrNames sameSystem; 22 - 23 - }
-7
lib/treefmt.nix
··· 1 - { pkgs, inputs, ... }: 2 - inputs.treefmt-nix.lib.evalModule pkgs { 3 - projectRootFile = "flake.nix"; 4 - programs.nixfmt.enable = true; 5 - programs.nixfmt.excludes = [ ".direnv" ]; 6 - programs.deadnix.enable = true; 7 - }
+7
modules/features/all-firmware.nix
··· 1 + { 2 + flake.modules.nixos.all-firmware = { 3 + hardware.enableAllFirmware = true; 4 + hardware.enableRedistributableFirmware = true; 5 + nixpkgs.config.allowUnfree = true; # enableAllFirmware depends on this 6 + }; 7 + }
+87
modules/features/bootable.nix
··· 1 + { 2 + 3 + flake.modules.nixos.bootable = 4 + { lib, modulesPath, ... }: 5 + { 6 + imports = [ 7 + (modulesPath + "/installer/scan/not-detected.nix") 8 + ]; 9 + 10 + # Bootloader. 11 + boot.loader.systemd-boot.enable = true; 12 + boot.loader.efi.canTouchEfiVariables = true; 13 + powerManagement.enable = true; 14 + 15 + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. 16 + 17 + # Configure network proxy if necessary 18 + # networking.proxy.default = "http://user:password@proxy:port/"; 19 + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; 20 + 21 + # Enable networking 22 + networking.networkmanager.enable = true; 23 + 24 + # Set your time zone. 25 + time.timeZone = "America/Mexico_City"; 26 + 27 + # Select internationalisation properties. 28 + i18n.defaultLocale = "en_US.UTF-8"; 29 + 30 + # Enable the X11 windowing system. 31 + services.xserver.enable = true; 32 + 33 + # Configure keymap in X11 34 + services.xserver.xkb = { 35 + layout = "us"; 36 + variant = ""; 37 + }; 38 + 39 + # Enable CUPS to print documents. 40 + # services.printing.enable = true; 41 + 42 + # Enable sound with pipewire. 43 + # sound.enable = true; 44 + hardware.bluetooth.enable = true; 45 + hardware.bluetooth.powerOnBoot = true; 46 + services.pulseaudio.enable = false; 47 + services.blueman.enable = true; 48 + security.rtkit.enable = true; 49 + services.pipewire = { 50 + enable = true; 51 + alsa.enable = true; 52 + alsa.support32Bit = true; 53 + pulse.enable = true; 54 + # If you want to use JACK applications, uncomment this 55 + #jack.enable = true; 56 + 57 + # use the example session manager (no others are packaged yet so this is enabled by default, 58 + # no need to redefine it in your config for now) 59 + #media-session.enable = true; 60 + }; 61 + 62 + # Enable touchpad support (enabled default in most desktopManager). 63 + # services.xserver.libinput.enable = true; 64 + 65 + # Some programs need SUID wrappers, can be configured further or are 66 + # started in user sessions. 67 + # programs.mtr.enable = true; 68 + # programs.gnupg.agent = { 69 + # enable = true; 70 + # enableSSHSupport = true; 71 + # }; 72 + 73 + # List services that you want to enable: 74 + 75 + # Enable the OpenSSH daemon. 76 + # services.openssh.enable = true; 77 + 78 + # Open ports in the firewall. 79 + # networking.firewall.allowedTCPPorts = [ ... ]; 80 + # networking.firewall.allowedUDPPorts = [ ... ]; 81 + # Or disable the firewall altogether. 82 + # networking.firewall.enable = false; 83 + 84 + networking.useDHCP = lib.mkDefault true; 85 + }; 86 + 87 + }
+34
modules/features/darwin.nix
··· 1 + { inputs, ... }: 2 + let 3 + flake.modules.darwin.darwin.imports = [ 4 + inputs.home-manager.darwinModules.home-manager 5 + nix-darwin-pkgs 6 + darwin-cfg 7 + ]; 8 + 9 + darwin-cfg = { 10 + # Determinate uses its own daemon to manage the Nix installation 11 + nix.enable = false; 12 + 13 + system.defaults.trackpad.Clicking = true; 14 + system.defaults.trackpad.TrackpadThreeFingerDrag = true; 15 + system.defaults.NSGlobalDomain.ApplePressAndHoldEnabled = false; 16 + 17 + system.keyboard.enableKeyMapping = true; 18 + system.keyboard.remapCapsLockToControl = true; 19 + }; 20 + 21 + nix-darwin-pkgs = 22 + { pkgs, ... }: 23 + { 24 + environment.systemPackages = with inputs.nix-darwin.packages.${pkgs.system}; [ 25 + darwin-option 26 + darwin-rebuild 27 + darwin-version 28 + darwin-uninstaller 29 + ]; 30 + }; 31 + in 32 + { 33 + inherit flake; 34 + }
+11
modules/features/gnome-desktop.nix
··· 1 + { 2 + flake.modules.nixos.gnome-desktop = { 3 + # Enable the GNOME Desktop Environment. 4 + services.xserver.displayManager.gdm.enable = true; 5 + services.xserver.desktopManager.gnome.enable = true; 6 + 7 + # Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229 8 + systemd.services."getty@tty1".enable = false; 9 + systemd.services."autovt@tty1".enable = false; 10 + }; 11 + }
+18
modules/features/kde-desktop.nix
··· 1 + { 2 + flake.modules.nixos.kde-desktop = { 3 + # Enable the KDE Plasma Desktop Environment. 4 + services.displayManager.sddm.wayland.enable = true; 5 + services.desktopManager.plasma6.enable = true; 6 + 7 + services.avahi = { 8 + nssmdns4 = true; 9 + enable = true; 10 + publish = { 11 + enable = true; 12 + userServices = true; 13 + domain = true; 14 + }; 15 + }; 16 + 17 + }; 18 + }
+8
modules/features/kvm-amd.nix
··· 1 + { 2 + flake.modules.nixos.kvm-amd = 3 + { lib, config, ... }: 4 + { 5 + boot.kernelModules = [ "kvm-amd" ]; 6 + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 7 + }; 8 + }
+8
modules/features/kvm-intel.nix
··· 1 + { 2 + flake.modules.nixos.kvm-intel = 3 + { lib, config, ... }: 4 + { 5 + boot.kernelModules = [ "kvm-intel" ]; 6 + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 7 + }; 8 + }
+14
modules/features/macos-keys.nix
··· 1 + { 2 + flake.modules.nixos.macos-keys = 3 + { 4 + lib, 5 + pkgs, 6 + config, 7 + ... 8 + }: 9 + { 10 + services.keyd.enable = true; 11 + services.keyd.keyboards.default.ids = [ "*" ]; # apply on all devices 12 + services.keyd.keyboards.default.settings = import ./_macos-keys.nix { inherit lib pkgs config; }; 13 + }; 14 + }
+34
modules/features/nix-setttings.nix
··· 1 + { 2 + flake.modules.nixos.nix-settings = 3 + { pkgs, config, ... }: 4 + { 5 + nix = { 6 + settings = { 7 + substituters = [ 8 + "https://vix.cachix.org" 9 + "https://devenv.cachix.org" 10 + ]; 11 + trusted-public-keys = [ 12 + "vix.cachix.org-1:hP/Lpdsi1dB3AxK9o6coWh+xHzvAc4ztdDYuG7lC6dI=" 13 + "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" 14 + ]; 15 + 16 + auto-optimise-store = true; 17 + experimental-features = [ 18 + "nix-command" 19 + "flakes" 20 + # "allow-import-from-derivation" 21 + ]; 22 + trusted-users = [ 23 + "root" 24 + "@wheel" 25 + ]; 26 + }; 27 + gc = pkgs.lib.optionalAttrs config.nix.enable { 28 + automatic = true; 29 + dates = "weekly"; 30 + options = "--delete-older-than 7d"; 31 + }; 32 + }; 33 + }; 34 + }
+9
modules/features/nixos.nix
··· 1 + { inputs, ... }: 2 + { 3 + flake.modules.nixos.nixos.imports = [ 4 + inputs.home-manager.nixosModules.home-manager 5 + inputs.self.modules.nixos.bootable 6 + inputs.self.modules.nixos.nix-settings 7 + inputs.self.modules.nixos.unfree 8 + ]; 9 + }
+29
modules/features/nvidia.nix
··· 1 + { 2 + 3 + flake.modules.nixos.nvidia = 4 + { config, ... }: 5 + { 6 + boot.initrd.kernelModules = [ "nvidia" ]; 7 + boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ]; 8 + boot.blacklistedKernelModules = [ "nouveau" ]; 9 + boot.extraModprobeConfig = '' 10 + blacklist nouveau 11 + options nouveau modeset=0 12 + ''; 13 + services.xserver.videoDrivers = [ "nvidia" ]; 14 + hardware.graphics.enable = true; 15 + hardware.nvidia = rec { 16 + open = false; 17 + nvidiaSettings = true; 18 + package = config.boot.kernelPackages.nvidiaPackages.stable; 19 + powerManagement.enable = true; 20 + powerManagement.finegrained = false; 21 + modesetting.enable = true; 22 + 23 + prime = { 24 + offload.enable = powerManagement.finegrained; 25 + offload.enableOffloadCmd = prime.offload.enable; 26 + }; 27 + }; 28 + }; 29 + }
+6
modules/features/platform.nix
··· 1 + { 2 + flake.modules.nixos.x86_64-linux = { }; 3 + flake.modules.nixos.aarch64-linux = { }; 4 + flake.modules.darwin.x86_64-darwin = { }; 5 + flake.modules.darwin.aarch64-darwin = { }; 6 + }
+30
modules/features/rdesk.nix
··· 1 + { inputs, ... }: 2 + let 3 + 4 + flake.modules.homeManager.rdesk = 5 + { pkgs, lib, ... }: 6 + { 7 + home.packages = lib.optionals pkgs.stdenvNoCC.isLinux [ 8 + pkgs.anydesk 9 + inputs.versioned.packages.${pkgs.system}.input-leap 10 + ]; 11 + }; 12 + 13 + flake.modules.nixos.rdesk.networking.firewall = { 14 + enable = true; 15 + allowedTCPPorts = [ 16 + 24800 # inputleap 17 + 6568 # anydesk 18 + 50001 # anydesk 19 + ]; 20 + allowedUDPPorts = [ 21 + 24800 # inputleap 22 + 6568 # anydesk 23 + 50001 # anydesk 24 + ]; 25 + }; 26 + 27 + in 28 + { 29 + inherit flake; 30 + }
+4
modules/features/unfree.nix
··· 1 + { inputs, ... }: 2 + { 3 + flake.modules.nixos.unfree = inputs.self.lib.unfree-module [ ]; 4 + }
+8
modules/features/wl-broadcom.nix
··· 1 + { 2 + flake.modules.nixos.wl-broadcom = 3 + { config, ... }: 4 + { 5 + boot.kernelModules = [ "wl" ]; 6 + boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; 7 + }; 8 + }
+13
modules/features/wsl.nix
··· 1 + { inputs, ... }: 2 + { 3 + flake.modules.nixos.wsl = { 4 + imports = [ 5 + inputs.nixos-wsl.nixosModules.default 6 + inputs.home-manager.nixosModules.home-manager 7 + inputs.self.modules.nixos.nix-settings 8 + inputs.self.modules.nixos.unfree 9 + ]; 10 + 11 + wsl.enable = true; 12 + }; 13 + }
+19
modules/features/xfce-desktop.nix
··· 1 + { 2 + 3 + flake.modules.nixos.xfce-desktop = { 4 + # https://gist.github.com/nat-418/1101881371c9a7b419ba5f944a7118b0 5 + services.xserver = { 6 + enable = true; 7 + desktopManager = { 8 + xterm.enable = false; 9 + xfce.enable = true; 10 + }; 11 + }; 12 + 13 + services.displayManager = { 14 + defaultSession = "xfce"; 15 + enable = true; 16 + }; 17 + }; 18 + 19 + }
+8
modules/flake/formatter.nix
··· 1 + { 2 + perSystem.treefmt.projectRootFile = "flake.nix"; 3 + perSystem.treefmt.programs = { 4 + nixfmt.enable = true; 5 + nixfmt.excludes = [ ".direnv" ]; 6 + deadnix.enable = true; 7 + }; 8 + }
+9
modules/flake/imports.nix
··· 1 + { inputs, ... }: 2 + { 3 + imports = [ 4 + inputs.devshell.flakeModule 5 + inputs.flake-parts.flakeModules.modules 6 + inputs.home-manager.flakeModules.home-manager 7 + inputs.treefmt-nix.flakeModule 8 + ]; 9 + }
+12
modules/flake/lib/hosts-by-system.nix
··· 1 + { inputs, lib, ... }: 2 + { 3 + flake.lib.hostsBySystem = 4 + system: 5 + let 6 + self = inputs.self; 7 + where = 8 + if lib.hasSuffix "darwin" system then self.darwinConfigurations else self.nixosConfigurations; 9 + sameSystem = lib.filterAttrs (_: v: v.config.nixpkgs.hostPlatform.system == system) where; 10 + in 11 + lib.attrNames sameSystem; 12 + }
+7
modules/flake/lib/option.nix
··· 1 + { lib, ... }: 2 + { 3 + options.flake.lib = lib.mkOption { 4 + type = lib.types.attrsOf lib.types.unspecified; 5 + default = { }; 6 + }; 7 + }
+8
modules/flake/lib/unfree-module.nix
··· 1 + { 2 + flake.lib.unfree-module = 3 + names: 4 + { lib, ... }: 5 + { 6 + nixpkgs.config.allowUnfreePredicate = pkg: lib.elem (lib.getName pkg) names; 7 + }; 8 + }
+63
modules/flake/osConfigurations.nix
··· 1 + { inputs, lib, ... }: 2 + let 3 + flake.nixosConfigurations = { 4 + annatar = wsl "annatar"; 5 + mordor = linux "mordor"; 6 + nargun = linux "nargun"; 7 + smaug = linux "smaug"; 8 + nienna = linux "nienna"; 9 + tom = linux "tom"; 10 + bombadil = linux "bombadil"; 11 + bill = linux-arm "bill"; 12 + }; 13 + 14 + flake.darwinConfigurations = { 15 + yavanna = darwin-intel "yavanna"; 16 + varda = darwin-arm "varda"; 17 + bert = darwin-arm "bert"; 18 + }; 19 + 20 + wsl = mkNixos "x86_64-linux" "wsl"; 21 + 22 + linux = mkNixos "x86_64-linux" "nixos"; 23 + linux-arm = mkNixos "aarch64-linux" "nixos"; 24 + 25 + darwin-intel = mkDarwin "x86_64-darwin"; 26 + darwin-arm = mkDarwin "aarch64-darwin"; 27 + 28 + mkNixos = 29 + system: cls: name: 30 + inputs.nixpkgs.lib.nixosSystem { 31 + inherit system; 32 + modules = [ 33 + inputs.self.modules.nixos.${cls} 34 + inputs.self.modules.nixos.${name} 35 + inputs.self.modules.nixos.${system} 36 + { 37 + networking.hostName = lib.mkDefault name; 38 + nixpkgs.hostPlatform = lib.mkDefault system; 39 + system.stateVersion = lib.mkDefault "25.05"; 40 + } 41 + ]; 42 + }; 43 + 44 + mkDarwin = 45 + system: name: 46 + inputs.nix-darwin.lib.darwinSystem { 47 + inherit system; 48 + modules = [ 49 + inputs.self.modules.darwin.darwin 50 + inputs.self.modules.darwin.${name} 51 + inputs.self.modules.darwin.${system} 52 + { 53 + networking.hostName = lib.mkDefault name; 54 + nixpkgs.hostPlatform = lib.mkDefault system; 55 + system.stateVersion = lib.mkDefault 6; 56 + } 57 + ]; 58 + }; 59 + 60 + in 61 + { 62 + inherit flake; 63 + }
+4
modules/flake/systems.nix
··· 1 + { inputs, ... }: 2 + { 3 + systems = import inputs.systems; 4 + }
-35
modules/home/devshells.nix
··· 1 - { 2 - pkgs, 3 - imports, 4 - inputs, 5 - perSystem, 6 - ... 7 - }: 8 - let 9 - 10 - envs = 11 - with pkgs.lib; 12 - mergeAttrsList ( 13 - map ( 14 - name: 15 - setAttrByPath [ ".cache/envs/${name}/.envrc" "text" ] "use flake ${inputs.self.outPath}#${name}" 16 - ) (attrNames inputs.self.devShells.${pkgs.system}) 17 - ); 18 - in 19 - { 20 - 21 - imports = [ 22 - inputs.use_devshell_toml.homeModules.default 23 - { home.file = envs; } 24 - ]; 25 - 26 - home.packages = with pkgs; [ 27 - perSystem.devshell.default 28 - # devenv 29 - ]; 30 - 31 - home.file.".envrc".text = '' 32 - export FLAKE="$HOME/.flake" 33 - ''; 34 - 35 - }
+8 -9
modules/home/nix-index.nix
··· 1 1 { inputs, ... }: 2 2 { 3 + flake.modules.homeManager.nix-index = { 4 + imports = [ 5 + inputs.nix-index-database.hmModules.nix-index 6 + ]; 3 7 4 - imports = [ 5 - inputs.nix-index-database.hmModules.nix-index 6 - ]; 7 - 8 - programs.nix-index.enable = true; 9 - programs.nix-index.enableFishIntegration = true; 10 - programs.nix-index-database.comma.enable = true; 11 - 12 - home.file.".nix-flake".source = inputs.self.outPath; 8 + programs.nix-index.enable = true; 9 + programs.nix-index.enableFishIntegration = true; 10 + programs.nix-index-database.comma.enable = true; 11 + }; 13 12 }
+4 -4
modules/home/nix-registry.nix
··· 1 - { inputs, pkgs, ... }: 1 + { inputs, lib, ... }: 2 2 { 3 3 4 - nix.registry = 5 - with pkgs.lib; 6 - mapAttrs (_name: v: { flake = v; }) (filterAttrs (_name: value: value ? outputs) inputs); 4 + flake.modules.homeManager.nix-registry.nix.registry = lib.mapAttrs (_name: v: { flake = v; }) ( 5 + lib.filterAttrs (_name: value: value ? outputs) inputs 6 + ); 7 7 8 8 }
-4
modules/home/runner.nix
··· 1 - { ... }: 2 - { 3 - 4 - }
-21
modules/home/vic-desktop.nix
··· 1 - { 2 - pkgs, 3 - osConfig, 4 - lib, 5 - ... 6 - }: 7 - { 8 - 9 - home.packages = 10 - ([ 11 - pkgs.librewolf 12 - pkgs.vscode 13 - pkgs.wezterm 14 - pkgs.ghostty 15 - ]) 16 - ++ (lib.optionals (osConfig.networking.hostName != "bombadil") [ 17 - pkgs.code-cursor 18 - pkgs.zed-editor 19 - ]); 20 - 21 - }
-94
modules/home/vic.nix
··· 1 - { 2 - lib, 3 - pkgs, 4 - perSystem, 5 - osConfig ? null, 6 - ... 7 - }: 8 - let 9 - hostName = if osConfig == null then "bombadil" else osConfig.networking.hostName; 10 - in 11 - { 12 - 13 - imports = 14 - [ 15 - ./vic/secrets.nix 16 - ./vic/ssh.nix 17 - ./vic/fish.nix 18 - ./vic/git.nix 19 - ./vic/jujutsu.nix 20 - ./vic/doom.nix 21 - ./vic/nvim.nix 22 - ./vic/dots.nix 23 - ] 24 - ++ (lib.optionals (hostName != "bombadil") [ 25 - ./nix-registry.nix 26 - ./devshells.nix 27 - ./nix-index.nix 28 - ]); 29 - 30 - home.packages = 31 - let 32 - nonBombadil = lib.optionals (hostName != "bombadil") [ 33 - perSystem.nox.default 34 - perSystem.self.devicon-lookup # for eee 35 - perSystem.self.leader 36 - pkgs.yazi # file tui 37 - pkgs.zoxide # cd 38 - pkgs.nix-search-cli 39 - pkgs.nixd # lsp 40 - pkgs.nixfmt-rfc-style 41 - pkgs.ispell 42 - pkgs.gh 43 - ]; 44 - 45 - anywhere = nonBombadil ++ [ 46 - perSystem.nix-versions.default 47 - perSystem.self.vic-sops-get 48 - pkgs.tree 49 - pkgs.fzf 50 - pkgs.ripgrep # grep 51 - pkgs.bat # cat 52 - pkgs.bottom 53 - pkgs.htop 54 - pkgs.eza # ls 55 - pkgs.fd # find 56 - pkgs.lazygit # no magit 57 - pkgs.tig # alucard 58 - pkgs.cachix 59 - pkgs.jq 60 - pkgs.helix 61 - ]; 62 - 63 - perHost = { 64 - nargun = [ 65 - # pkgs.obsidian # notion 66 - perSystem.radicle.radicle-full 67 - perSystem.nix-inspect.default # TODO: enabling it causes GH-action to fail 68 - ]; 69 - bombadil = [ 70 - pkgs.home-manager 71 - pkgs.gnome-disk-utility 72 - ]; 73 - }; 74 - 75 - perPlatform = { 76 - "x86_64-linux" = [ 77 - pkgs.gparted 78 - pkgs.wl-clipboard 79 - perSystem.self.copilot-language-server # tab tab tab 80 - ]; 81 - }; 82 - 83 - packages = anywhere ++ (perHost.${hostName} or [ ]) ++ (perPlatform.${pkgs.system} or [ ]); 84 - 85 - in 86 - packages; 87 - 88 - programs.nh.enable = true; 89 - programs.home-manager.enable = true; 90 - 91 - programs.direnv.enable = true; 92 - programs.direnv.nix-direnv.enable = true; 93 - 94 - }
-69
modules/home/vic/doom.nix
··· 1 - { 2 - pkgs, 3 - lib, 4 - inputs, 5 - ... 6 - }: 7 - let 8 - 9 - emacsPkg = pkgs.emacs30; 10 - 11 - doom-install = pkgs.writeShellApplication { 12 - name = "doom-install"; 13 - runtimeInputs = with pkgs; [ 14 - git 15 - emacsPkg 16 - ripgrep 17 - openssh 18 - ]; 19 - text = '' 20 - set -e 21 - if test -f "$HOME"/.config/emacs/.local/etc/@/init*.el; then 22 - doom_rev="$(rg "put 'doom-version 'ref '\"(\w+)\"" "$HOME"/.config/emacs/.local/etc/@/init*.el -or '$1')" 23 - fi 24 - 25 - if test "''${doom_rev:-}" = "${inputs.doom-emacs.rev}"; then 26 - echo "DOOM Emacs already at revision ${inputs.doom-emacs.rev}" 27 - exit 0 # doom already pointing to same revision 28 - fi 29 - 30 - ( 31 - echo "DOOM Emacs obtaining revision ${inputs.doom-emacs.rev}" 32 - if ! test -d "$HOME/.config/emacs/.git"; then 33 - git clone --depth 1 https://github.com/doomemacs/doomemacs "$HOME/.config/emacs" 34 - fi 35 - cd "$HOME/.config/emacs" 36 - git fetch --depth 1 origin "${inputs.doom-emacs.rev}" 37 - git reset --hard "${inputs.doom-emacs.rev}" 38 - bin/doom install --no-config --no-env --no-install --no-fonts --no-hooks --force 39 - echo "DOOM Emacs updated to revision ${inputs.doom-emacs.rev}" 40 - bin/doom sync -e --force 41 - ) 42 - ''; 43 - }; 44 - 45 - SPC = inputs.SPC.packages.${pkgs.system}.SPC.override { emacs = emacsPkg; }; 46 - 47 - in 48 - { 49 - programs.emacs.enable = true; 50 - programs.emacs.package = emacsPkg; 51 - services.emacs.enable = true; 52 - services.emacs.package = emacsPkg; 53 - services.emacs.extraOptions = [ 54 - "--init-directory" 55 - "~/.config/emacs" 56 - ]; 57 - 58 - home.packages = [ 59 - SPC 60 - (pkgs.writeShellScriptBin "doom" ''exec $HOME/.config/emacs/bin/doom "$@"'') 61 - (pkgs.writeShellScriptBin "doomscript" ''exec $HOME/.config/emacs/bin/doomscript "$@"'') 62 - (pkgs.writeShellScriptBin "d" ''exec emacsclient -nw -a "doom run -nw --" "$@"'') 63 - ]; 64 - 65 - home.activation.doom-install = lib.hm.dag.entryAfter [ "link-ssh-id" ] '' 66 - run ${lib.getExe doom-install} 67 - ''; 68 - 69 - }
-36
modules/home/vic/dots.nix
··· 1 - { config, pkgs, ... }: 2 - let 3 - dotsLink = 4 - path: 5 - config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.flake/modules/home/vic/dots/${path}"; 6 - in 7 - { 8 - home.activation.link-flake = config.lib.dag.entryAfter [ "writeBoundary" ] '' 9 - echo Checking that "$HOME/.flake" exists. 10 - test -L "$HOME/.flake" 11 - ''; 12 - 13 - home.file.".ssh" = { 14 - recursive = true; 15 - source = ./dots/ssh; 16 - }; 17 - 18 - home.file.".config/nvim".source = dotsLink "config/nvim"; 19 - home.file.".config/doom".source = dotsLink "config/doom"; 20 - home.file.".config/zed".source = dotsLink "config/zed"; 21 - home.file.".config/wezterm".source = dotsLink "config/wezterm"; 22 - home.file.".config/ghostty".source = dotsLink "config/ghostty"; 23 - 24 - home.file.".config/Code/User/settings.json".source = dotsLink "config/Code/User/settings.json"; 25 - home.file.".config/Code/User/keybindings.json".source = 26 - dotsLink "config/Code/User/keybindings.json"; 27 - home.file.".vscode/extensions/extensions.json".source = 28 - dotsLink "vscode/extensions/extensions-${pkgs.stdenv.hostPlatform.uname.system}.json"; 29 - 30 - home.file.".config/Cursor/User/settings.json".source = dotsLink "config/Code/User/settings.json"; 31 - home.file.".config/Cursor/User/keybindings.json".source = 32 - dotsLink "config/Code/User/keybindings.json"; 33 - home.file.".cursor/extensions/extensions.json".source = 34 - dotsLink "cursor/extensions/extensions-${pkgs.stdenv.hostPlatform.uname.system}.json"; 35 - 36 - }
modules/home/vic/dots/config/Code/User/keybindings.json modules/vic/dots/config/Code/User/keybindings.json
+2 -3
modules/home/vic/dots/config/Code/User/settings.json modules/vic/dots/config/Code/User/settings.json
··· 161 161 "direnv.restart.automatic": true, 162 162 "window.autoDetectColorScheme": true, 163 163 "workbench.preferredLightColorTheme": "Dracula Theme Soft", 164 - "workbench.preferredDarkColorTheme": "Midnight Purple 2077", 165 164 "workbench.view.showQuietly": { 166 165 "workbench.panel.output": false 167 166 }, ··· 171 170 "errorLens.statusBarColorsEnabled": true, 172 171 "workbench.sideBar.location": "right", 173 172 "workbench.activityBar.location": "top", 174 - "workbench.editor.showTabs": "none", 175 173 "workbench.editor.limit.excludeDirty": true, 176 174 "workbench.editor.limit.perEditorGroup": true, 177 175 "cursor.cmdk.useThemedDiffBackground": true, ··· 181 179 "opensource-explorer.defaultClonePath": "~/hk", 182 180 "opensource-explorer.defaultView": "recent", 183 181 "debug.openExplorerOnEnd": true, 184 - "jjk.enableAnnotations": false 182 + "jjk.enableAnnotations": false, 183 + "workbench.preferredHighContrastColorTheme": "Abyss" 185 184 }
+1 -1
modules/home/vic/dots/config/doom/config.el modules/vic/dots/config/doom/config.el
··· 36 36 ;; There are two ways to load a theme. Both assume the theme is installed and 37 37 ;; available. You can either set `doom-theme' or manually load a theme with the 38 38 ;; `load-theme' function. This is the default: 39 - (setq doom-theme 'doom-laserwave) 39 + (setq doom-theme 'doom-oksolar-light) 40 40 41 41 ;; This determines the style of line numbers in effect. If set to `nil', line 42 42 ;; numbers are disabled. For relative line numbers, set this to `relative'.
modules/home/vic/dots/config/doom/custom.el modules/vic/dots/config/doom/custom.el
modules/home/vic/dots/config/doom/ee-jj-fzf.bash modules/vic/dots/config/doom/ee-jj-fzf.bash
modules/home/vic/dots/config/doom/ee-lazyjj.bash modules/vic/dots/config/doom/ee-lazyjj.bash
modules/home/vic/dots/config/doom/init.el modules/vic/dots/config/doom/init.el
modules/home/vic/dots/config/doom/packages.el modules/vic/dots/config/doom/packages.el
modules/home/vic/dots/config/ghostty/config modules/vic/dots/config/ghostty/config
modules/home/vic/dots/config/ghostty/flake.lock modules/vic/dots/config/ghostty/flake.lock
modules/home/vic/dots/config/nvim/.gitignore modules/vic/dots/config/nvim/.gitignore
modules/home/vic/dots/config/nvim/.neoconf.json modules/vic/dots/config/nvim/.neoconf.json
modules/home/vic/dots/config/nvim/LICENSE modules/vic/dots/config/nvim/LICENSE
modules/home/vic/dots/config/nvim/README.md modules/vic/dots/config/nvim/README.md
modules/home/vic/dots/config/nvim/init.lua modules/vic/dots/config/nvim/init.lua
+9 -9
modules/home/vic/dots/config/nvim/lazy-lock.json modules/vic/dots/config/nvim/lazy-lock.json
··· 3 3 "blink.cmp": { "branch": "main", "commit": "cb5e346d9e0efa7a3eee7fd4da0b690c48d2a98e" }, 4 4 "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, 5 5 "catppuccin": { "branch": "main", "commit": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429" }, 6 - "conform.nvim": { "branch": "master", "commit": "eebc724d12c5579d733d1f801386e0ceb909d001" }, 6 + "conform.nvim": { "branch": "master", "commit": "372fc521f8421b7830ea6db4d6ea3bae1c77548c" }, 7 7 "flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" }, 8 - "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, 9 - "gitsigns.nvim": { "branch": "main", "commit": "17ab794b6fce6fce768430ebc925347e349e1d60" }, 10 - "grug-far.nvim": { "branch": "main", "commit": "082f97122dd59d816a9a7b676d2b2f86a8ab6ed9" }, 8 + "friendly-snippets": { "branch": "main", "commit": "fc8f183479a472df60aa86f00e295462f2308178" }, 9 + "gitsigns.nvim": { "branch": "main", "commit": "b79047e81f645875e500b4f433d8133bc421446c" }, 10 + "grug-far.nvim": { "branch": "main", "commit": "f66017591ffa611344b3b2b490df73464c33113e" }, 11 11 "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, 12 12 "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, 13 - "lualine.nvim": { "branch": "master", "commit": "1ba400068bc178eb698b96ecfde82db59e7a7b8f" }, 13 + "lualine.nvim": { "branch": "master", "commit": "15884cee63a8c205334ab13ab1c891cd4d27101a" }, 14 14 "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, 15 15 "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, 16 16 "mini.ai": { "branch": "main", "commit": "e139eb1101beb0250fea322f8c07a42f0f175688" }, ··· 18 18 "mini.pairs": { "branch": "main", "commit": "69864a2efb36c030877421634487fd90db1e4298" }, 19 19 "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, 20 20 "nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" }, 21 - "nvim-lint": { "branch": "master", "commit": "e7b4ffa6ab763af012e38b21af2c9159f10d2d33" }, 22 - "nvim-lspconfig": { "branch": "master", "commit": "9ae789e7450995e4c06ed9f8f74629992d5d28a6" }, 23 - "nvim-treesitter": { "branch": "master", "commit": "0e21ee8df6235511c02bab4a5b391d18e165a58d" }, 24 - "nvim-treesitter-textobjects": { "branch": "master", "commit": "698b5f805722254bca3c509591c1806d268b6c2f" }, 21 + "nvim-lint": { "branch": "master", "commit": "d698d3b6fd7b1b85657d05a2a31d843ddb682c63" }, 22 + "nvim-lspconfig": { "branch": "master", "commit": "5af60bbb835d5b6efdc64cdff2a5b27cde4120de" }, 23 + "nvim-treesitter": { "branch": "master", "commit": "684eeac91ed8e297685a97ef70031d19ac1de25a" }, 24 + "nvim-treesitter-textobjects": { "branch": "master", "commit": "205e3369bc83d8cb83f7409c36120e24611f8c5c" }, 25 25 "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, 26 26 "persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" }, 27 27 "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
modules/home/vic/dots/config/nvim/lazyvim.json modules/vic/dots/config/nvim/lazyvim.json
modules/home/vic/dots/config/nvim/lua/config/autocmds.lua modules/vic/dots/config/nvim/lua/config/autocmds.lua
modules/home/vic/dots/config/nvim/lua/config/keymaps.lua modules/vic/dots/config/nvim/lua/config/keymaps.lua
modules/home/vic/dots/config/nvim/lua/config/lazy.lua modules/vic/dots/config/nvim/lua/config/lazy.lua
modules/home/vic/dots/config/nvim/lua/config/options.lua modules/vic/dots/config/nvim/lua/config/options.lua
modules/home/vic/dots/config/nvim/lua/plugins/example.lua modules/vic/dots/config/nvim/lua/plugins/example.lua
modules/home/vic/dots/config/nvim/stylua.toml modules/vic/dots/config/nvim/stylua.toml
modules/home/vic/dots/config/wezterm/wezterm.lua modules/vic/dots/config/wezterm/wezterm.lua
modules/home/vic/dots/config/zed/keymap.json modules/vic/dots/config/zed/keymap.json
modules/home/vic/dots/config/zed/settings.json modules/vic/dots/config/zed/settings.json
modules/home/vic/dots/cursor/extensions/extensions-Linux.json modules/vic/dots/cursor/extensions/extensions-Linux.json
modules/home/vic/dots/ssh/authorized_keys modules/vic/dots/ssh/authorized_keys
modules/home/vic/dots/ssh/id_ed25519.pub modules/vic/dots/ssh/id_ed25519.pub
modules/home/vic/dots/ssh/nix_versions_ed25519.pub modules/vic/dots/ssh/nix_versions_ed25519.pub
modules/home/vic/dots/ssh/vix_ed25519.pub modules/vic/dots/ssh/vix_ed25519.pub
modules/home/vic/dots/vscode/extension-pack/package.json modules/vic/dots/vscode/extension-pack/package.json
-1
modules/home/vic/dots/vscode/extensions/extensions-Linux.json
··· 1 - [{"identifier":{"id":"cybersamurai.midnight-purple-2077","uuid":"093e3b44-8c4f-461b-8aa8-ba46f938aae3"},"version":"1.1.9","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/cybersamurai.midnight-purple-2077-1.1.9","scheme":"file"},"relativeLocation":"cybersamurai.midnight-purple-2077-1.1.9","metadata":{"installedTimestamp":1742623962707,"pinned":false,"source":"gallery","id":"093e3b44-8c4f-461b-8aa8-ba46f938aae3","publisherId":"716a7a71-9c4e-490a-ba29-0780f389e5e8","publisherDisplayName":"cyber samurai","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"vspacecode.vspacecode","uuid":"1c81ab96-0424-43c4-b356-fe408a1bd1cf"},"version":"0.10.19","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/vspacecode.vspacecode-0.10.19","scheme":"file"},"relativeLocation":"vspacecode.vspacecode-0.10.19","metadata":{"installedTimestamp":1742624039079,"pinned":false,"source":"gallery","id":"1c81ab96-0424-43c4-b356-fe408a1bd1cf","publisherId":"60415ab6-4581-4e73-a7e0-6fc6b3369f12","publisherDisplayName":"VSpaceCode","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"vscodevim.vim","uuid":"d96e79c6-8b25-4be3-8545-0e0ecefcae03"},"version":"1.29.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/vscodevim.vim-1.29.0","scheme":"file"},"relativeLocation":"vscodevim.vim-1.29.0","metadata":{"installedTimestamp":1742624039081,"pinned":false,"source":"gallery","id":"d96e79c6-8b25-4be3-8545-0e0ecefcae03","publisherId":"5d63889b-1b67-4b1f-8350-4f1dce041a26","publisherDisplayName":"vscodevim","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"vspacecode.whichkey","uuid":"47ddeb9c-b4bb-4594-906b-412886e20e47"},"version":"0.11.4","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/vspacecode.whichkey-0.11.4","scheme":"file"},"relativeLocation":"vspacecode.whichkey-0.11.4","metadata":{"installedTimestamp":1742624039084,"pinned":false,"source":"gallery","id":"47ddeb9c-b4bb-4594-906b-412886e20e47","publisherId":"60415ab6-4581-4e73-a7e0-6fc6b3369f12","publisherDisplayName":"VSpaceCode","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"kahole.magit","uuid":"4d965b97-6bfd-43d8-882c-d4dfce310168"},"version":"0.6.66","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/kahole.magit-0.6.66","scheme":"file"},"relativeLocation":"kahole.magit-0.6.66","metadata":{"installedTimestamp":1742624119333,"pinned":false,"source":"gallery","id":"4d965b97-6bfd-43d8-882c-d4dfce310168","publisherId":"74af81ef-7bda-475b-bfe0-ccf6aa9b34dc","publisherDisplayName":"Kristian Andersen Hole","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"jnoortheen.nix-ide","uuid":"0ffebccd-4265-4f2d-a855-db1adcf278c7"},"version":"0.4.16","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/jnoortheen.nix-ide-0.4.16","scheme":"file"},"relativeLocation":"jnoortheen.nix-ide-0.4.16","metadata":{"installedTimestamp":1742624124907,"pinned":false,"source":"gallery","id":"0ffebccd-4265-4f2d-a855-db1adcf278c7","publisherId":"3a7c13d8-8768-454a-be53-290c25bd0f85","publisherDisplayName":"Noortheen","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"jacobdufault.fuzzy-search","uuid":"c2ebe7f7-8974-4ceb-a4a5-aea798305313"},"version":"0.0.3","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/jacobdufault.fuzzy-search-0.0.3","scheme":"file"},"relativeLocation":"jacobdufault.fuzzy-search-0.0.3","metadata":{"installedTimestamp":1742624140341,"pinned":false,"source":"gallery","id":"c2ebe7f7-8974-4ceb-a4a5-aea798305313","publisherId":"e7902c39-c8b4-4fb0-b245-6241b490a67b","publisherDisplayName":"jacobdufault","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"golang.go","uuid":"d6f6cfea-4b6f-41f4-b571-6ad2ab7918da"},"version":"0.46.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/golang.go-0.46.1","scheme":"file"},"relativeLocation":"golang.go-0.46.1","metadata":{"installedTimestamp":1742624149848,"pinned":false,"source":"gallery","id":"d6f6cfea-4b6f-41f4-b571-6ad2ab7918da","publisherId":"dbf6ae0a-da75-4167-ac8b-75b4512f2153","publisherDisplayName":"Go Team at Google","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"github.vscode-github-actions","uuid":"04f49bfc-8330-4eee-8237-ea938fb755ef"},"version":"0.27.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.vscode-github-actions-0.27.1","scheme":"file"},"relativeLocation":"github.vscode-github-actions-0.27.1","metadata":{"installedTimestamp":1742624155234,"pinned":false,"source":"gallery","id":"04f49bfc-8330-4eee-8237-ea938fb755ef","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"chaitanyashahare.lazygit","uuid":"e370d573-0664-4b89-b241-5d3cfeb9a427"},"version":"1.0.7","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/chaitanyashahare.lazygit-1.0.7","scheme":"file"},"relativeLocation":"chaitanyashahare.lazygit-1.0.7","metadata":{"installedTimestamp":1742624175976,"pinned":false,"source":"gallery","id":"e370d573-0664-4b89-b241-5d3cfeb9a427","publisherId":"dce96627-2e0f-4f44-8cd1-a081a4b4e98e","publisherDisplayName":"Chaitanya Shahare","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"bodil.file-browser","uuid":"97a82b1e-e6f7-4519-b1fc-f6be103e3824"},"version":"0.2.11","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/bodil.file-browser-0.2.11","scheme":"file"},"relativeLocation":"bodil.file-browser-0.2.11","metadata":{"installedTimestamp":1742624185638,"pinned":false,"source":"gallery","id":"97a82b1e-e6f7-4519-b1fc-f6be103e3824","publisherId":"e5c9456a-b78b-41ec-95c2-0cc218272ab9","publisherDisplayName":"Bodil Stokke","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"vitchu.vscode-autohide-vim","uuid":"316a5b14-0b5e-4dae-9bdc-319e3cf6c8d4"},"version":"1.0.7","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/vitchu.vscode-autohide-vim-1.0.7","scheme":"file"},"relativeLocation":"vitchu.vscode-autohide-vim-1.0.7","metadata":{"installedTimestamp":1742624218711,"pinned":false,"source":"gallery","id":"316a5b14-0b5e-4dae-9bdc-319e3cf6c8d4","publisherId":"27774761-fc08-46a2-b1e5-e5d295dcc507","publisherDisplayName":"Vitchu","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"mkhl.direnv","uuid":"e365e970-aeef-4dcd-8e4a-17306a27ab62"},"version":"0.17.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/mkhl.direnv-0.17.0","scheme":"file"},"relativeLocation":"mkhl.direnv-0.17.0","metadata":{"installedTimestamp":1742624267822,"pinned":false,"source":"gallery","id":"e365e970-aeef-4dcd-8e4a-17306a27ab62","publisherId":"577d6c37-7054-4ca5-b4ce-9250409f3903","publisherDisplayName":"Martin Kühl","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"tomrijndorp.find-it-faster","uuid":"d5eafbee-176a-421a-b74d-fbc51bd86a21"},"version":"0.0.39","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/tomrijndorp.find-it-faster-0.0.39","scheme":"file"},"relativeLocation":"tomrijndorp.find-it-faster-0.0.39","metadata":{"installedTimestamp":1742624662955,"pinned":false,"source":"gallery","id":"d5eafbee-176a-421a-b74d-fbc51bd86a21","publisherId":"f002c5e6-5db9-4df2-8791-8800b44272a4","publisherDisplayName":"Tom Rijndorp","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"usernamehw.errorlens","uuid":"9d8c32ab-354c-4daf-a9bf-20b633734435"},"version":"3.25.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/usernamehw.errorlens-3.25.0","scheme":"file"},"relativeLocation":"usernamehw.errorlens-3.25.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1743573836435,"pinned":false,"source":"gallery","id":"9d8c32ab-354c-4daf-a9bf-20b633734435","publisherId":"151820df-5dc5-4c97-8751-eb84643203fa","publisherDisplayName":"Alexander","targetPlatform":"undefined","updated":true,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"ms-vscode.cpptools-themes","uuid":"99b17261-8f6e-45f0-9ad5-a69c6f509a4f"},"version":"2.0.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.cpptools-themes-2.0.0","scheme":"file"},"relativeLocation":"ms-vscode.cpptools-themes-2.0.0","metadata":{"installedTimestamp":1743618545498,"source":"gallery","id":"99b17261-8f6e-45f0-9ad5-a69c6f509a4f","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"github.github-vscode-theme","uuid":"7328a705-91fc-49e6-8293-da6f112e482d"},"version":"6.3.5","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.github-vscode-theme-6.3.5","scheme":"file"},"relativeLocation":"github.github-vscode-theme-6.3.5","metadata":{"installedTimestamp":1743618590147,"source":"gallery","id":"7328a705-91fc-49e6-8293-da6f112e482d","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode-remote.remote-containers","uuid":"93ce222b-5f6f-49b7-9ab1-a0463c6238df"},"version":"0.409.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode-remote.remote-containers-0.409.0","scheme":"file"},"relativeLocation":"ms-vscode-remote.remote-containers-0.409.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1744177988353,"pinned":false,"source":"gallery","id":"93ce222b-5f6f-49b7-9ab1-a0463c6238df","publisherId":"ac9410a2-0d75-40ec-90de-b59bb705801d","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"github.copilot-chat","uuid":"7ec7d6e6-b89e-4cc5-a59b-d6c4d238246f"},"version":"0.26.3","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.copilot-chat-0.26.3","scheme":"file"},"relativeLocation":"github.copilot-chat-0.26.3","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1744177992493,"pinned":false,"source":"gallery","id":"7ec7d6e6-b89e-4cc5-a59b-d6c4d238246f","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"rust-lang.rust-analyzer","uuid":"06574cb4-e5dc-4631-8174-a543a4533621"},"version":"0.3.2370","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/rust-lang.rust-analyzer-0.3.2370-linux-x64","scheme":"file"},"relativeLocation":"rust-lang.rust-analyzer-0.3.2370-linux-x64","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1744177988356,"pinned":false,"source":"gallery","id":"06574cb4-e5dc-4631-8174-a543a4533621","publisherId":"cb14a7a7-a188-40bd-a953-e0a20757c5dd","publisherDisplayName":"The Rust Programming Language ","targetPlatform":"linux-x64","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"ms-vscode.remote-explorer","uuid":"11858313-52cc-4e57-b3e4-d7b65281e34b"},"version":"0.4.3","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.remote-explorer-0.4.3","scheme":"file"},"relativeLocation":"ms-vscode.remote-explorer-0.4.3","metadata":{"installedTimestamp":1744178019887,"pinned":false,"source":"gallery","id":"11858313-52cc-4e57-b3e4-d7b65281e34b","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode-remote.remote-ssh-edit","uuid":"bfeaf631-bcff-4908-93ed-fda4ef9a0c5c"},"version":"0.87.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode-remote.remote-ssh-edit-0.87.0","scheme":"file"},"relativeLocation":"ms-vscode-remote.remote-ssh-edit-0.87.0","metadata":{"installedTimestamp":1744178019886,"pinned":false,"source":"gallery","id":"bfeaf631-bcff-4908-93ed-fda4ef9a0c5c","publisherId":"ac9410a2-0d75-40ec-90de-b59bb705801d","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode-remote.remote-ssh","uuid":"607fd052-be03-4363-b657-2bd62b83d28a"},"version":"0.119.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode-remote.remote-ssh-0.119.0","scheme":"file"},"relativeLocation":"ms-vscode-remote.remote-ssh-0.119.0","metadata":{"installedTimestamp":1744178019884,"pinned":false,"source":"gallery","id":"607fd052-be03-4363-b657-2bd62b83d28a","publisherId":"ac9410a2-0d75-40ec-90de-b59bb705801d","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode.remote-server","uuid":"105c0b3c-07a9-4156-a4fc-4141040eb07e"},"version":"1.5.2","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.remote-server-1.5.2","scheme":"file"},"relativeLocation":"ms-vscode.remote-server-1.5.2","metadata":{"installedTimestamp":1744222972457,"pinned":false,"source":"gallery","id":"105c0b3c-07a9-4156-a4fc-4141040eb07e","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"dracula-theme.theme-dracula","uuid":"4e44877c-1c8d-4f9c-ba86-1372d0fbeeb1"},"version":"2.25.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/dracula-theme.theme-dracula-2.25.1","scheme":"file"},"relativeLocation":"dracula-theme.theme-dracula-2.25.1","metadata":{"installedTimestamp":1744233970240,"source":"gallery","id":"4e44877c-1c8d-4f9c-ba86-1372d0fbeeb1","publisherId":"fbb3d024-f8f2-460c-bdb5-99552f6d8c4b","publisherDisplayName":"Dracula Theme","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"hyzeta.vscode-theme-github-light","uuid":"b84ed643-ec7d-49cc-a514-3ce104ed777f"},"version":"7.14.2","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/hyzeta.vscode-theme-github-light-7.14.2","scheme":"file"},"relativeLocation":"hyzeta.vscode-theme-github-light-7.14.2","metadata":{"installedTimestamp":1744238749461,"source":"gallery","id":"b84ed643-ec7d-49cc-a514-3ce104ed777f","publisherId":"18f3a989-6d93-420d-a045-baf7651c8552","publisherDisplayName":"Hyzeta","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"github.copilot","uuid":"23c4aeee-f844-43cd-b53e-1113e483f1a6"},"version":"1.300.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.copilot-1.300.0","scheme":"file"},"relativeLocation":"github.copilot-1.300.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1744238774409,"pinned":false,"source":"gallery","id":"23c4aeee-f844-43cd-b53e-1113e483f1a6","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"jjk.jjk","uuid":"27fecc3e-093e-4ff1-b130-b3ccf371337d"},"version":"0.6.2","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/jjk.jjk-0.6.2","scheme":"file"},"relativeLocation":"jjk.jjk-0.6.2","metadata":{"installedTimestamp":1744254626428,"pinned":false,"source":"gallery","id":"27fecc3e-093e-4ff1-b130-b3ccf371337d","publisherId":"8a38bc31-626a-4853-9ef7-91fe4f1486f4","publisherDisplayName":"Jujutsu Kaizen","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}}]
-23
modules/home/vic/fish.nix
··· 1 - { inputs, pkgs, ... }: 2 - let 3 - inherit (pkgs) lib; 4 - in 5 - { 6 - 7 - home.file.".config/fish/conf.d/init-leader.fish".source = 8 - "${inputs.cli-leader.outPath}/assets/leader.fish.sh"; 9 - 10 - programs.fzf.enable = true; 11 - programs.fzf.enableFishIntegration = true; 12 - 13 - programs.fish = { 14 - enable = true; 15 - 16 - functions = import ./fish/functions.nix { inherit inputs lib; }; 17 - shellAliases = import ./fish/aliases.nix; 18 - shellAbbrs = import ./fish/abbrs.nix; 19 - 20 - plugins = [ ]; # pure done fzf.fish pisces z 21 - }; 22 - 23 - }
modules/home/vic/fish/abbrs.nix modules/vic/_fish/abbrs.nix
modules/home/vic/fish/aliases.nix modules/vic/_fish/aliases.nix
modules/home/vic/fish/functions.nix modules/vic/_fish/functions.nix
-60
modules/home/vic/git.nix
··· 1 - { pkgs, ... }: 2 - { 3 - 4 - home.packages = [ pkgs.difftastic ]; 5 - 6 - programs.git = { 7 - enable = true; 8 - userName = "Victor Borja"; 9 - userEmail = "vborja@apache.org"; 10 - signing.format = "ssh"; 11 - 12 - extraConfig = { 13 - init.defaultBranch = "main"; 14 - pull.rebase = true; 15 - pager.difftool = true; 16 - diff.tool = "difftastic"; 17 - difftool.prompt = false; 18 - difftool.difftastic.cmd = "${pkgs.difftastic}/bin/difft $LOCAL $REMOTE"; 19 - 20 - github.user = "vic"; 21 - gitlab.user = "vic"; 22 - 23 - core.editor = "vim"; 24 - }; 25 - aliases = { 26 - "dff" = "difftool"; 27 - "fap" = "fetch --all -p"; 28 - "rm-merged" = 29 - "for-each-ref --format '%(refname:short)' refs/heads | grep -v master | xargs git branch -D"; 30 - "recents" = 31 - "for-each-ref --sort=committerdate refs/heads/ --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'"; 32 - }; 33 - ignores = [ 34 - ".DS_Store" 35 - "*.swp" 36 - ".direnv" 37 - ".envrc" 38 - ".envrc.local" 39 - ".env" 40 - ".env.local" 41 - ".jj" 42 - "/devshell.toml" 43 - "/.tool-versions" 44 - "*.key" 45 - "/vic" 46 - "*~" 47 - ]; 48 - includes = [ ]; 49 - # { path = "${DOTS}/git/something"; } 50 - 51 - lfs.enable = true; 52 - 53 - delta.enable = true; 54 - delta.options = { 55 - line-numbers = true; 56 - side-by-side = false; 57 - }; 58 - }; 59 - 60 - }
-144
modules/home/vic/jujutsu.nix
··· 1 - { pkgs, perSystem, ... }: 2 - { 3 - 4 - home.packages = 5 - let 6 - jj-for-tui = pkgs.stdenvNoCC.mkDerivation { 7 - inherit (pkgs.jujutsu) name version meta; 8 - nativeBuildInputs = [ pkgs.makeWrapper ]; 9 - phases = "wrap"; 10 - wrap = '' 11 - makeWrapper ${pkgs.jujutsu}/bin/jj $out/bin/jj \ 12 - --add-flags --config-file \ 13 - --add-flags "~/.config/jj/tui.toml" 14 - ''; 15 - }; 16 - 17 - jj-tui-wrap = 18 - main: drv: extra: 19 - pkgs.stdenvNoCC.mkDerivation { 20 - inherit (drv) name meta; 21 - nativeBuildInputs = [ pkgs.makeWrapper ]; 22 - phases = "wrap"; 23 - wrap = '' 24 - makeWrapper \ 25 - "${drv}/bin/${main}" \ 26 - "$out/bin/${main}" \ 27 - --prefix PATH : ${jj-for-tui}/bin \ 28 - ${extra} 29 - ''; 30 - }; 31 - in 32 - [ 33 - (jj-tui-wrap "lazyjj" pkgs.lazyjj "--add-flags --jj-bin --add-flags ${jj-for-tui}/bin/jj") 34 - (jj-tui-wrap "jj-fzf" pkgs.jj-fzf "--add-flags --key-bindings") 35 - (jj-tui-wrap "jjui" perSystem.jjui.default "") 36 - ]; 37 - 38 - programs.jujutsu = { 39 - enable = true; 40 - 41 - # See https://jj-vcs.github.io/jj/v0.17.0/config 42 - settings = { 43 - user.name = "Victor Borja"; 44 - user.email = "vborja@apache.org"; 45 - 46 - revset-aliases = { 47 - "trunk()" = "main@origin"; 48 - 49 - # commits on working-copy compared to `trunk` 50 - "compared_to_trunk()" = "(trunk()..@):: | (trunk()..@)-"; 51 - 52 - # immutable heads: 53 - # main and not mine commits. 54 - "immutable_heads()" = "trunk() | (trunk().. & ~mine())"; 55 - 56 - "default_log()" = "present(@) | ancestors(immutable_heads().., 2) | present(trunk())"; 57 - }; 58 - 59 - template-aliases = { 60 - "format_short_id(id)" = "id.shortest().upper()"; # default is shortest(12) 61 - "format_short_change_id(id)" = "format_short_id(id)"; 62 - "format_short_signature(signature)" = "signature.email()"; 63 - }; 64 - 65 - ui = { 66 - default-command = [ 67 - "status" 68 - "--no-pager" 69 - ]; 70 - diff.tool = [ 71 - (pkgs.lib.getExe pkgs.difftastic) 72 - "--color=always" 73 - "$left" 74 - "$right" 75 - ]; 76 - # pager = ":builtin"; 77 - # editor = "nvim"; 78 - merge-editor = "vscode"; # meld 79 - }; 80 - 81 - signing = { 82 - behaviour = "own"; 83 - backend = "ssh"; 84 - key = "~/.ssh/id_ed25519.pub"; 85 - }; 86 - 87 - git = { 88 - push-bookmark-prefix = "vic/jj-change-"; 89 - }; 90 - 91 - aliases = { 92 - l = [ 93 - "log" 94 - "-r" 95 - "compared_to_trunk()" 96 - "--config" 97 - "template-aliases.'format_short_id(id)'='id.shortest().upper()'" 98 - "--config" 99 - "template-aliases.'format_short_change_id(id)'='id.shortest().upper()'" 100 - "--config" 101 - "template-aliases.'format_timestamp(timestamp)'='timestamp.ago()'" 102 - ]; 103 - 104 - # like git log, all visible commits in the repo 105 - ll = [ 106 - "log" 107 - "-r" 108 - ".." 109 - ]; 110 - }; 111 - 112 - }; 113 - }; 114 - 115 - home.file.".config/jj/tui.toml".source = 116 - let 117 - toml = { 118 - ui.editor = "vim"; 119 - jj-fzf = { 120 - show-keys = "true"; 121 - revsets.log = ".."; 122 - diff-mode = "jj-diff"; 123 - }; 124 - template-aliases = { 125 - "format_short_id(id)" = "id.shortest().upper()"; # default is shortest(12) 126 - "format_short_change_id(id)" = "format_short_id(id)"; 127 - "format_short_signature(signature)" = "signature.email()"; 128 - "format_timestamp(timestamp)" = "timestamp.ago()"; 129 - }; 130 - }; 131 - fmt = pkgs.formats.toml { }; 132 - in 133 - fmt.generate "tui.toml" toml; 134 - 135 - home.file.".config/jjui/config.toml".source = 136 - let 137 - # https://github.com/idursun/jjui/wiki/Configuration 138 - toml = { 139 - 140 - }; 141 - fmt = pkgs.formats.toml { }; 142 - in 143 - fmt.generate "config.toml" toml; 144 - }
-14
modules/home/vic/nvim.nix
··· 1 - { pkgs, ... }: 2 - { 3 - home.sessionVariables.EDITOR = "vim"; 4 - programs.neovim.enable = true; 5 - programs.neovim.viAlias = true; 6 - programs.neovim.vimAlias = true; 7 - programs.neovim.withNodeJs = true; 8 - programs.neovim.extraPackages = with pkgs; [ 9 - zig 10 - sqlite 11 - treefmt 12 - ]; 13 - 14 - }
-41
modules/home/vic/secrets.nix
··· 1 - { 2 - inputs, 3 - config, 4 - pkgs, 5 - ... 6 - }: 7 - { 8 - 9 - imports = [ 10 - inputs.sops-nix.homeManagerModules.sops 11 - ]; 12 - 13 - home.packages = [ pkgs.sops ]; 14 - 15 - sops = { 16 - age.keyFile = "${config.xdg.configHome}/sops/age/keys.txt"; 17 - age.sshKeyPaths = [ ]; 18 - age.generateKey = false; 19 - defaultSopsFile = ./secrets.yaml; 20 - validateSopsFiles = true; 21 - 22 - secrets = { 23 - "hello" = { }; 24 - "ssh/id_ed25519" = { 25 - format = "binary"; 26 - sopsFile = ./secrets/mordor; 27 - }; 28 - "ssh/sops_ssh_config" = { 29 - format = "binary"; 30 - sopsFile = ./secrets/ssh-conf; 31 - }; 32 - }; 33 - 34 - templates = { 35 - "hello.toml".content = '' 36 - hello = "Wooo ${config.sops.placeholder.hello} Hoo"; 37 - ''; 38 - }; 39 - }; 40 - 41 - }
-27
modules/home/vic/secrets.yaml
··· 1 - hello: ENC[AES256_GCM,data:7R26OBoPCxSV8AwDFyI92R2s+x4N1LuIPDcGuGJ4QNdHqxCsnewLm1aS2KT5Sg==,iv:f8cgbppFfeESlcEwAxBQFVNVJP2EVib2uCiUw0zfwP8=,tag:Gkn+AOjMAncEwAvEqtzfxg==,type:str] 2 - gh_actions_pat: ENC[AES256_GCM,data:BKfkJkymrgW1nh6GxbuT0OyLZRhsbZG+cqNqn5zY8gjlxOFdBysfLLYZcNeqHM/CQG/Z3UGWE3i47s8j7iCVrliiZVaKXwqeku4SXql9h6AVjVye6FM44lN8jzTa,iv:NONHWFikaQCiTz+gzrJ5dn9bKgo1NjbustcsNCRDUXI=,tag:d+qQSeHQFxQG0J8zgMoZFg==,type:str] 3 - cachix_personal: ENC[AES256_GCM,data:H/TieCTS0igCKbgDvHMJr6RAGdB0+hBNcYEZEL36DFRPVDln2UJkz4Z/x+7B+A6Vu+08QN3qBas7YdEI3FQzezTVtr+hix9MfwSe+5V1si9YXaGwZuz/FKEpCBiMhVo5kylExtbZ7CF3XwqaOlzdhhliRmPj9tSfC8kFsLkwRXxC27ec1L8huzkBCHDutxMStw==,iv:mymYXDiM7gheeCWR5vYJI3plVSIbT9g6l6oZGrB8k0Y=,tag:mX6weKnUe5TF1k4/YszDBA==,type:str] 4 - cachix_gleam_nix: ENC[AES256_GCM,data:ZqY3/L47SKb39kSvp3N/55aBoLIeS6t6b+iUxnPQvkUmnkn4/gkVpGnwlMU1IEp6Y5OCDUOYXthaRsBwWuiiukpesaygqOTquX1yUXCgFJ2t4FlvigMTl18sOLjGK7Xenfjo/V//sNGi3N1LNItywg/Fvna5smegoOJ40fm9ogX+5mnvh9CJUHrd1gjz3c0cDZjQU4g=,iv:ylE+G++jSOEto2pipGxHZBb8doYR2gGiZ8ZcaD6sdq4=,tag:33NAdmJ80NmJPlL8LeIdQQ==,type:str] 5 - cachix_vix: ENC[AES256_GCM,data:OqdKuc/clXIcN8nppKo/XbM3EfuLF745EpXAtM+eAag4FMh3l9mMgq4eGcEmnPX86Ba9CSpQawTgwK7rgj2DB12NAC2CiTDyEgk/b5LAGk9/oKnzKkvSbaotevAJT6eNtMYEtDuNbX2md9ltOARVPT46zdAZZvenzLUxQCGICVIRKjCjx02voVyj27p6aWd07f/cbuo=,iv:8xnWPN7l+5dg5NQhYMkqytQDHl+JKIBdM13HmmnlyEQ=,tag:Q5QfFnQ5mFVKfDjNf+ycIA==,type:str] 6 - alwaysdata_vic: ENC[AES256_GCM,data:Jl7hSEhy3KXKM8ue2SNnxifpqY3FDGePfZTYFlIGNEU=,iv:WevxrLrFeDe7T4b/t0+ETP1h0K8AXOmuASlszaaTdhE=,tag:xKMK5jCoqkmQxvUG0G8KKg==,type:str] 7 - alwaysdata_vix: ENC[AES256_GCM,data:UTAw7Gpw2KlQDUSYpuY7LUEvY9P0YEIVogM=,iv:MPAh+oPqfgbYiZhLPq2YkxI2A0YevI6tQ63A4errBss=,tag:iyscRaCY8ZBDmhbge97H1Q==,type:str] 8 - alwaysdata_nix_versions: ENC[AES256_GCM,data:wYnsbyeziI/1RTwuF/5PYpcdgoxzx+s=,iv:JblAEGt7rRmSkuIo4IJYfV2zFVIEVofThJcRb9dORv0=,tag:z8FT3g6PM6iC8p1TqttHdg==,type:str] 9 - alwaysdata_nix_versions_api_key: ENC[AES256_GCM,data:nRrAKYEzUOm9dmBBbZFzCFxd9vAnbFhXF/0VnwosMZA=,iv:EcRH91F8r4FVonyy16ys+mOf2E4tx8qmZttU1CXEVr4=,tag:uAEQIG+jxz3qmXy0QlI3yg==,type:str] 10 - alwaysdata_nix_versions_totp: ENC[AES256_GCM,data:eNfxUBoImr1ogdZ2CfCLF7hU3S0vDzil9i+LC37aePA=,iv:5akqwLvFLePU0zs3LhLAE5pxWrdGwQdSZtMSWTI4XYY=,tag:bj4WYKPWM6qEyQMdkzmWzQ==,type:str] 11 - nix_versions_ssh: ENC[AES256_GCM,data:BW6q6byHFulS9pAeLh8mBQl4A+BGg7XFlMM=,iv:Xbe5TQhadHKtgJjDb2ncew4XfhLsD9pl4YVnkdv7na4=,tag:4CTRkH8pLoDa6o4Xb/aFUw==,type:str] 12 - gemini_api_key: ENC[AES256_GCM,data:crJzUYfhNFKURDtfSvuzHVw4MtqAcJUEy088okk1uP5oPR5M8Db9,iv:3zsX3cvbnz1+PDSwGGjN9nX9gDC9hrzgFhG3VPzXb/E=,tag:yYxKM7aJoy62Aepgv+fmYQ==,type:str] 13 - sops: 14 - age: 15 - - recipient: age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e 16 - enc: | 17 - -----BEGIN AGE ENCRYPTED FILE----- 18 - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4QzBuV2cyWlVObEhhN0V2 19 - YzlRandEQ2FSakUxSUQrcmY1NVkrYkFMVmhRCkdRWlBiNENQNTkvVGRIUm80TmQz 20 - SjBUeGI4bk9nQjRucWtvN2N3SGJsKzQKLS0tIHdwclZINk5tTVRWakNQQnlYRTVy 21 - RngvNDFJVis4bnFTSDcyemtSM1kvNGcKN4Dx+YvXieoGnPUOlp9Qpl1CdFM/5A0s 22 - j+UxpVFZGaTYntcE5oZ16w+I8fG4VQhPc27RRPPY6R5kWwL9gtteSg== 23 - -----END AGE ENCRYPTED FILE----- 24 - lastmodified: "2025-04-11T00:33:26Z" 25 - mac: ENC[AES256_GCM,data:QDzgWgQ55vsgY6T4/gEoTgdmrEMuSUb1c23/7z/Qhfgxo4doHVVY5ZQtQYIcerTFvYapmWr3DrlyPCWco/Ju3SdHuCLXNGn7aFeHp27fmSbippOFy7d+ec6/HRU9XU42/KDTYqgrJwuPqblzej2lkt28JXigPD1nDeHtGxiPa+s=,iv:jimzvL5YjNLvM5MQfR3SzbP/FKxyRzZM8WLRNCPzo9I=,tag:rzcgcUwRwv10dMz6FPcT1g==,type:str] 26 - unencrypted_suffix: _unencrypted 27 - version: 3.10.1
-15
modules/home/vic/secrets/gh-recover
··· 1 - { 2 - "data": "ENC[AES256_GCM,data:EXyvdrebmHRETKD/GNdovyNg/8xHe4hPffrfivWYoZ6KBcS/Ecw2D5Mkw+zmdWY5PPSfoo7u6nxjLB/gWQiEIfEhD/UjeJH3UnvGdml+Z7bNyBBl8eoTDdCZQlECCewYipeSKidhz3UOLGU2Hr2mkD0tgQ1Ie2yTFB4jp6pSpiJASR4ss3VUilHVYZnOWexczG11lwtW9mtYLk5zNxEc47FPKVOthjAgkysrtIYo55VBHUZ//xbN/DCKASQ7MNKDAqGXzs0R2qDne81CBNk=,iv:aCjlCntFSHeb8iuJ+DAEzBPY7pRXCpFGZSBuhJiM3/M=,tag:9Z0G7QlCtCb6pXDuw+uQNQ==,type:str]", 3 - "sops": { 4 - "age": [ 5 - { 6 - "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0VW5rWTNhaStiZFA1elhr\nTjZEMjYzT3hpN3BjNFJvTDE0TW1DVlNBVDFZClV6RytOUlFNd2hzNWI1UEpzYlNx\nbytzTnViU04wRlA3SlYrcUxqU090SncKLS0tIHdZZGVXSzFKd2pMV1B2NHdqN3Rz\ndjZWbU9Bd2YxMDQyQ3FTY0loOFNEQmcKcnt8vuVzXnwxt72tZqCIJFqXMaEWgtO1\nkQZLapcfLfoJsSgVtYIimJcGjc+7rkyabQSk0qxgH+/9eYTCziJ4MQ==\n-----END AGE ENCRYPTED FILE-----\n" 8 - } 9 - ], 10 - "lastmodified": "2025-04-10T19:56:44Z", 11 - "mac": "ENC[AES256_GCM,data:hKLV3HNBnC0hNjdStGYIGbQ4IEcRwUQEi3bUi6gro7jmSDyd+am0zjwA8m9WnIW8lTWH4PurMjZh4mhY8p5rLymfFUy08ik0MUP0FVzlrhk54YvW3crTT4aI2Jgcq22b1297al/hLRYplqKAExaN08QmYkedMtH6jdCSuBI/kxM=,iv:cW/G/IzJ+bSIvjfg3VsWn9mWtygf1r8biGlODkioAvU=,tag:QGKIt4dbEbZKxW5ULvt0oQ==,type:str]", 12 - "unencrypted_suffix": "_unencrypted", 13 - "version": "3.9.4" 14 - } 15 - }
-15
modules/home/vic/secrets/mordor
··· 1 - { 2 - "data": "ENC[AES256_GCM,data:5MyZ/JK2AicnHxylksPGNScJo/9gDtsQjjHC+Cf/Uq93ygkwrAmMsPuTaCgg7wiJBA4i4jTtigZSuHCDoi+JOeft8hM5Jb8p47pnF51q2WbbygdsR5egTb2hW0ZPrEsY1EzYAabRnqmaVAo3SfSPSbKetRV9LqTmJVwyE7V9BOa/nAwVWx9/3ZiqDn0rN3lrMn3yK7J7HN9Fg1FB9gXG9V79mBNZlCM226qQ38FsUFZkcppOD8nWDAaG/h8CTcKcmyOubP8iJTtSZAlp1VyUK3jzRoaaI06tklLuRZEUPVEwhZ65QL2ak5xddk92zXu+lAjirj9XEHXYN2C0rzNaPu+XpXweHCjFXyUxkGgIcylfJ00r0FeANDieM+yIvO3BjKTNpUsm0naoFi6KeT70HX7qpDm4F9gkJwU27V1Pd1i/pMPEx8pRosrJbb5TKoX+u09FTJ/9mJU4alXHD4d9cdaDv1J6bnIhsWmi/X0DYdN15dYW0QnAWtmw9wTCTKCEGLmJyLFCD2R2SjJVALV9U2C9Qp7zVc4Z5iER/NsiW6JDAwvsblQxvq1aYv10J0v3X9YIucUMC9wgEsGL,iv:+Zm1AEglKHEH/TIzrZnFH+vDFQtQKrdFBGVzGx+IjlU=,tag:cQa4aVuIdKSOGIP8AoYv5A==,type:str]", 3 - "sops": { 4 - "age": [ 5 - { 6 - "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXTVlYalB5Sk84QnQrbVR1\nOWtPQngrc2lINGRHR0Vwd3NtdjRSRXo0aGlFCmZxM1dHWUo0NjlCd1pXTjA4bjlU\nNmFFdWxmdnV4bUJBdHM3Ym5mQ0dGcjQKLS0tIGJ2Rm5iVVZ1L0VOTDlmK3UyU2Ur\nWXo0OC9QTlNEU0NWZnk5VVZJemNCem8KF9zaaJh1NA0QH60XmWK6SKEzyha64UfP\nydwJMpo17F8sP++/tJQ/m3h6jTYcdnx9UKUTglVyMLGnQ6k/XZ4+rw==\n-----END AGE ENCRYPTED FILE-----\n" 8 - } 9 - ], 10 - "lastmodified": "2025-04-10T19:56:44Z", 11 - "mac": "ENC[AES256_GCM,data:mmOEpuR9Ej68EC2MJm7esXwX/EsUvIS5CNwax+CcteHDqjACTJK3EBu9O3zDYt7Da/aj5usbJsJsiIcjsdGPmEdVdQs/oE11GLO+aT4viZj8OxPM7NExXNSxR/Ol3botOXF6mYWEqeucdlbnwuqV+s5XAfxg9+rAh77nvrMoKGw=,iv:gxS45hLs58RSA1uyjxc+scHjDI6Rol+ewFwPhUiuaYg=,tag:jYROtv3BBGrTn+K4jKkzXQ==,type:str]", 12 - "unencrypted_suffix": "_unencrypted", 13 - "version": "3.9.4" 14 - } 15 - }
-15
modules/home/vic/secrets/nix-versions
··· 1 - { 2 - "data": "ENC[AES256_GCM,data:AR0/oB9uP6DJo+D6z3a9qiUZLBc/HaFKZ5ZNv/ksCVcYf6WPimQcBBp9dPPB3X68jZir8hIDHStaZYgGtqFKtHdskg8BXqZYb+ka65OQ+HVH6hry26YHJ75yueGqACPYlMYBf1mmAWUXRfaKpw0hO0Bxu21bEzBVePrmpnx3UTsuaQxHYIXtyS8GmNeLtK9lbeWTdy7WcV4T7T2g0lIahhbd8snT3qlL5iJU3nbBdB2n8XxUD3JL5XFJ2Byq2Is2JhPwkm0AIpyYYNgNMNJ9jfXnkLvyKdqg1VY5iNiiM1+yJY0ksYJMwiFRLcGui/VsMbwDEfLtE7PZv49ryz75QRybDHf7K/l0PyhtS5OhyxiWISL/LAbfCfspOb+mX1r7JSqHyaVSLlJtIZn2rmS/b3lN/ond5PGmxpQF0N0bTl/PBL+f9qoiByqwvlrKI1iMZmkgKgK6eW5YSvajupjtTA7BTMDp5XXS4dy4m402xLN6Uj+67MUIFyuxZuUvA08ZQxQsX2gSHNlsX5vm9f1Z,iv:crVwb2Sr694f047Dg35t86/gOy5XVzCKR7eyPB1v3CQ=,tag:yeiHiQgQinV8QUVQDwZoPA==,type:str]", 3 - "sops": { 4 - "age": [ 5 - { 6 - "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEdW1oVXdpZ2ovUStVc3Vr\ndk1DWUhrV2R2SUZIQVhxWTVNR0MyU1lNSGhBClkxWGlhQnRrZ2dqVWs2dkk5YzBV\nckZ5bzl1ekxHTUdRYWZiL005ZzZzRU0KLS0tIGJWalZha21aR09BcStpam1oVUcy\nWG9udWV0LzhYSzZPMVhOaWs2UEI2aGsKv8KSI03x/7GAb3sGjDOh3wBQTHHG5rTI\nBaHtxm8FqPiHaqvrWmwRSzn5SQVX4z/VVrF2TcfhQEFB3+Gdqny5Xw==\n-----END AGE ENCRYPTED FILE-----\n" 8 - } 9 - ], 10 - "lastmodified": "2025-04-10T19:56:44Z", 11 - "mac": "ENC[AES256_GCM,data:mmAQieBJBQmF0/JxJpd4vcycjC+w5/ngd8QnTco5r4jb+Xf0PK0rTQUlWDXXGCW5bLatQbTv4X4eesmdg85e/4W+PRA+/yKX3MAnkS+jlUflhFogLB+XjoXM0UFCyMhoH66rLXkaSjr2rXPzUQr7FV56+6F0om74xInw9nCnoZs=,iv:m3XioSm/bY2MxctKi9Z/aTNoelMitjriqILrUQdR6Uk=,tag:bMHjE5TL3ys7ZSvW+EtE5w==,type:str]", 12 - "unencrypted_suffix": "_unencrypted", 13 - "version": "3.9.4" 14 - } 15 - }
-15
modules/home/vic/secrets/ssh-conf
··· 1 - { 2 - "data": "ENC[AES256_GCM,data:0afUmtZuYqVgaF5TXrCoBfqdOmh0S0H+ojWG2DbMwtBUEIv8fMBg9MI/6sFMC5PIyVNFXrgQdf1x0UfYRKheM/jXRG5VIdEeYpm/FDCrcnEdgSClyhX4lSdUCGkmIY3ujyo1q7CXHxVrJhEiezU5vzXyKdgSyJ9zOaiYcZLnXyv5Yi7/BzTPP5sqHADzkuaigmFW2VwD4rGUN9Qn0lFCb/ZvO8IlZ4rIcflFJkV+XOcZydXm/zKflhGxpOJAWdgNwGD7/wC6mJov6zBv+wjdQvNgIfLJ6nQvqjBLVttpFPaeLU+x23M3GQY/nDiXrGaDqdjH8esyc4whnA==,iv:iSlNo/WSvc2G31qmwXxFECC+gOH9YK2gA7mzvsdVoU8=,tag:HALJyzuksFjxCN6tmwNLNQ==,type:str]", 3 - "sops": { 4 - "age": [ 5 - { 6 - "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4bitQK0xPR0VjdEpNdmRZ\nYTNHeHRoUmh2UjlhYVFjU0NLVlFESzRzTUZ3ClZVUjdKNGNrbUZ0bHJSOERUSFhC\nOGltbGhuVVMyMVR4bDdKdWFOekNwdFEKLS0tIGk0bWRtNUxHcEcwM2oxditXaXZt\nR2kxQ3haeUVzbXdQRjlBclVjVFdvUEkKRtxh9sWNdkIiIMSXpy2NnIz3Z2HvK3rc\n3oIg9U2misRj3ko+23kgPzWRYRfVjyOo/zMazQz0SRjn9s4eJ1TDPQ==\n-----END AGE ENCRYPTED FILE-----\n" 8 - } 9 - ], 10 - "lastmodified": "2025-04-10T19:56:44Z", 11 - "mac": "ENC[AES256_GCM,data:UNXAJLsLSQAPv9K43TwqkC6lh0GpfWngAe0Yqefs7XNi6Yj0rihV/nDoPYK7bgTRPLB8W8Hbr2v2NxKa0i3xoXC92KD/oGQxAa7iJtlIWtScc3IpN8Hay8yYqXs34/tKpfeDkG5U9aDvV0kPik054/Nx3eRj7BPpZ5411pVDeFM=,iv:HzBrTV5w0MMz1Zt/XWidGwByMVRC61siCKAJUVGuQkA=,tag:MYA6NUT9DIaAiF5ciVw7LA==,type:str]", 12 - "unencrypted_suffix": "_unencrypted", 13 - "version": "3.9.4" 14 - } 15 - }
-15
modules/home/vic/secrets/vix
··· 1 - { 2 - "data": "ENC[AES256_GCM,data:F0e973VLxDZQxZkJHgi+Nm6UGj1eJBJty2fsuNCkDnZOpq1Yndwzuz6wmg+umoRGH8AZlxw51NXCDEJ9XfcOULrofIcx3N5/O6kbiUWIXqeLzTGgTXNELb3CBN4ukXImu94+2sLXaIFeXZFWJqccgN6tFKaIZoYiqhMviU5hEXVyQNOuRUCULjEJQmQPVw7APO/crBs6zWX6EB+xL+dggYLZyPDkKHyPCYlaVjj8a+CFu89b4vySdOKZjVg0E0ItoA9sYV7j6Lhxt6p1GZ0nPpQGZdiHr1QhfuB8gnvxGHH7OS0vfzJ+FdWt2Ftf291sZyL6e2US8hw/r8fK0TSARzaW11ppbvPfRe8ffYHe89O3ZkOHIcyk+YvkdVIKJTuirdiSLs0xqhlsBICzCJFSy/jPWUhyHdF0chgRNQTVLHI3OHTTSJnGn5bndCfJ4xd/LEKMQYp2qsrgnznv/UBQEYAwDs0GI5Vu0712060OluUO4PcVV/RQsR7iDxw/tRPsRFPQ,iv:A4LRsPwPU5uIkLFNE/tyqsTBJZmUa8FN3r7D7kS6hig=,tag:5DNmUy0MdIdXTjSn3BUiWQ==,type:str]", 3 - "sops": { 4 - "age": [ 5 - { 6 - "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWSEtDd1hmVUJaWDhXSTJn\nZjNJZm9lKzgva0ZNLzdTWkxISG9UaUNIcFdNCmJ0YmtOWEFudCtUd0F4VVhaaDZk\nUXBSRTZzb3hNVWwwNmtMdTczdVgvYlUKLS0tIExNUUZreEthMC9yWWZROElPU2ZG\nVHhUc3JrV29qTmR1MDNHc2tnRjFKN1kKhcfyx/oqfD1yZmywUZGI602sHwMSbN+Z\nwFY/brBj/JnFCMRUnoRoB8VFr840DxAzCPxR925Hgi6f3xGWyMpGtQ==\n-----END AGE ENCRYPTED FILE-----\n" 8 - } 9 - ], 10 - "lastmodified": "2025-04-11T00:37:17Z", 11 - "mac": "ENC[AES256_GCM,data:iccU5Tvf1ic0ss1TmV5ROx9mOnascfVaUBtuaD5U5O4QRWlmaxRS7O96WJludRGpezgvGaL8dWO13GhCU8Ab+C2KD4hSuVJMq98gNjvkPh/KTLwl30NqewTPmilKho+2LQOdNanUM38g4Q2Dq3N/jSfvRCwvohDoYuOjZ2dRc0A=,iv:FiWH5G4/LRcCM2krRJWmls/ZzDV9rRD66IcKG6XROlc=,tag:LOhQleOaS5YY6oCJ5fnqnw==,type:str]", 12 - "unencrypted_suffix": "_unencrypted", 13 - "version": "3.10.1" 14 - } 15 - }
modules/home/vic/sops.yaml modules/vic/sops.yaml
-57
modules/home/vic/ssh.nix
··· 1 - { 2 - lib, 3 - config, 4 - pkgs, 5 - ... 6 - }: 7 - { 8 - programs.ssh = { 9 - enable = true; 10 - addKeysToAgent = "yes"; 11 - controlMaster = "auto"; 12 - controlPath = "~/.ssh/%r@%h:%p"; 13 - controlPersist = "10m"; 14 - includes = [ "~/.config/sops-nix/secrets/ssh/sops_ssh_config" ]; 15 - 16 - matchBlocks = { 17 - "github.com" = { 18 - identityFile = "~/.ssh/id_ed25519"; 19 - extraOptions.ControlPersist = "no"; 20 - }; 21 - 22 - "uptermd.upterm.dev" = { 23 - forwardAgent = true; 24 - serverAliveInterval = 10; 25 - serverAliveCountMax = 6; 26 - extraOptions.ControlPath = "~/.ssh/upterm-%C"; 27 - setEnv.TERM = "xterm-256color"; 28 - localForwards = [ 29 - { 30 - bind.port = 8000; # http 31 - host.address = "127.0.0.1"; 32 - host.port = 8000; 33 - } 34 - { 35 - bind.port = 5900; # vnc 36 - host.address = "127.0.0.1"; 37 - host.port = 5900; 38 - } 39 - ]; 40 - remoteForwards = [ 41 - { 42 - bind.port = 5000; # sops 43 - host.address = "127.0.0.1"; 44 - host.port = 5000; 45 - } 46 - ]; 47 - }; 48 - 49 - }; 50 - }; 51 - 52 - services.ssh-agent.enable = pkgs.stdenv.isLinux; 53 - 54 - home.activation.link-ssh-id = lib.hm.dag.entryAfter [ "link-flake" "sops-nix" "reloadSystemd" ] '' 55 - run ln -sf "${config.sops.secrets."ssh/id_ed25519".path}" $HOME/.ssh/id_ed25519 56 - ''; 57 - }
+16 -12
modules/home/vscode-server.nix
··· 1 - { inputs, pkgs, ... }: 1 + { inputs, ... }: 2 2 { 3 - imports = [ 4 - inputs.vscode-server.homeModules.default 5 - ]; 3 + flake.modules.homeManager.vscode-server = 4 + { pkgs, ... }: 5 + { 6 + imports = [ 7 + inputs.vscode-server.homeModules.default 8 + ]; 6 9 7 - services.vscode-server = { 8 - enable = true; 9 - nodejsPackage = pkgs.nodejs_latest; 10 - extraRuntimeDependencies = with pkgs; [ 11 - curl 12 - wget 13 - ]; 14 - }; 10 + services.vscode-server = { 11 + enable = true; 12 + nodejsPackage = pkgs.nodejs_latest; 13 + extraRuntimeDependencies = with pkgs; [ 14 + curl 15 + wget 16 + ]; 17 + }; 18 + }; 15 19 }
+10
modules/hosts/annatar/configuration.nix
··· 1 + { inputs, ... }: 2 + let 3 + flake.modules.nixos.annatar.imports = with inputs.self.modules.nixos; [ 4 + vic 5 + { wsl.defaultUser = "vic"; } 6 + ]; 7 + in 8 + { 9 + inherit flake; 10 + }
+5
modules/hosts/bert/darwin-configuration.nix
··· 1 + { 2 + flake.modules.darwin.bert = { 3 + users.users.runner.home = "/Users/runner"; 4 + }; 5 + }
+7
modules/hosts/bill/configuration.nix
··· 1 + { 2 + flake.modules.nixos.bill = { 3 + boot.loader.grub.enable = false; 4 + fileSystems."/".device = "/dev/null"; 5 + users.users.runner.isNormalUser = true; 6 + }; 7 + }
+40
modules/hosts/bombadil/configuration.nix
··· 1 + # nix build .#.nixosConfigurations.bombadil.config.system.build.isoImage 2 + { inputs, ... }: 3 + { 4 + flake.modules.nixos.bombadil = 5 + { 6 + modulesPath, 7 + config, 8 + lib, 9 + ... 10 + }: 11 + { 12 + imports = with inputs.self.modules.nixos; [ 13 + "${toString modulesPath}/installer/cd-dvd/installation-cd-base.nix" 14 + vic 15 + macos-keys 16 + kvm-intel 17 + wl-broadcom 18 + all-firmware 19 + xfce-desktop 20 + ]; 21 + 22 + lib.isoFileSystems."/home/vic" = { 23 + device = "/dev/disk/by-label/vic"; 24 + fsType = "ext4"; 25 + }; 26 + 27 + users.users.vic.uid = 1000; 28 + users.users.nixos.uid = 1001; 29 + 30 + isoImage.edition = lib.mkDefault config.networking.hostName; 31 + networking.networkmanager.enable = true; 32 + networking.wireless.enable = lib.mkImageMediaOverride false; 33 + 34 + hardware.bluetooth.enable = true; 35 + hardware.bluetooth.powerOnBoot = true; 36 + services.blueman.enable = true; 37 + services.pulseaudio.enable = false; 38 + 39 + }; 40 + }
+23
modules/hosts/mordor/configuration.nix
··· 1 + { inputs, ... }: 2 + let 3 + flake.modules.nixos.mordor.imports = with inputs.self.modules.nixos; [ 4 + kvm-amd 5 + mordor-nvidia 6 + mordor-unfree 7 + nvidia 8 + vic 9 + xfce-desktop 10 + ]; 11 + 12 + mordor-nvidia = { 13 + hardware.nvidia.prime.nvidiaBusId = "PCI:9:0:0"; 14 + }; 15 + mordor-unfree = inputs.self.lib.unfree-module [ 16 + "nvidia-x11" 17 + "nvidia-settings" 18 + ]; 19 + 20 + in 21 + { 22 + inherit flake; 23 + }
+30
modules/hosts/mordor/filesystems.nix
··· 1 + { 2 + flake.modules.nixos.mordor = { 3 + 4 + boot.initrd.availableKernelModules = [ "nvme" ]; 5 + 6 + fileSystems."/" = { 7 + device = "/dev/disk/by-label/nixos"; 8 + fsType = "ext4"; 9 + }; 10 + 11 + fileSystems."/home" = { 12 + device = "/dev/disk/by-label/home"; 13 + fsType = "ext4"; 14 + }; 15 + 16 + fileSystems."/boot" = { 17 + device = "/dev/disk/by-label/BOOT"; 18 + fsType = "vfat"; 19 + options = [ 20 + "fmask=0022" 21 + "dmask=0022" 22 + ]; 23 + }; 24 + 25 + swapDevices = [ 26 + { device = "/dev/disk/by-label/swap"; } 27 + ]; 28 + 29 + }; 30 + }
+15
modules/hosts/mordor/hardware-configuration.nix
··· 1 + # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 + # and may be overwritten by future invocations. Please make changes 3 + # to /etc/nixos/configuration.nix instead. 4 + { 5 + 6 + flake.modules.nixos.mordor = { 7 + boot.initrd.availableKernelModules = [ 8 + "xhci_pci" 9 + "ahci" 10 + "usbhid" 11 + "usb_storage" 12 + "sd_mod" 13 + ]; 14 + }; 15 + }
+14
modules/hosts/nargun/configuration.nix
··· 1 + { inputs, ... }: 2 + let 3 + 4 + flake.modules.nixos.nargun.imports = with inputs.self.modules.nixos; [ 5 + vic 6 + xfce-desktop 7 + macos-keys 8 + kvm-amd 9 + ]; 10 + 11 + in 12 + { 13 + inherit flake; 14 + }
+21
modules/hosts/nargun/filesystems.nix
··· 1 + { 2 + flake.modules.nixos.nargun = { 3 + 4 + fileSystems."/" = { 5 + device = "/dev/disk/by-uuid/5e0a5652-9af6-4590-9bd1-be059e339b84"; 6 + fsType = "ext4"; 7 + }; 8 + 9 + fileSystems."/boot" = { 10 + device = "/dev/disk/by-uuid/3902-2085"; 11 + fsType = "vfat"; 12 + options = [ 13 + "fmask=0077" 14 + "dmask=0077" 15 + ]; 16 + }; 17 + 18 + swapDevices = [ { device = "/dev/disk/by-uuid/3be2776b-3153-443b-95b8-0fbd06becb75"; } ]; 19 + 20 + }; 21 + }
+13
modules/hosts/nargun/hardware-configuration.nix
··· 1 + { 2 + flake.modules.nixos.nargun = { 3 + 4 + boot.initrd.availableKernelModules = [ 5 + "nvme" 6 + "xhci_pci" 7 + "usb_storage" 8 + "sd_mod" 9 + "sdhci_pci" 10 + ]; 11 + 12 + }; 13 + }
+24
modules/hosts/nienna/configuration.nix
··· 1 + # Edit this configuration file to define what should be installed on 2 + # your system. Help is available in the configuration.nix(5) man page 3 + # and in the NixOS manual (accessible by running ‘nixos-help’). 4 + 5 + { 6 + inputs, 7 + ... 8 + }: 9 + let 10 + flake.modules.nixos.nienna.imports = with inputs.self.modules.nixos; [ 11 + vic 12 + xfce-desktop 13 + macos-keys 14 + kvm-intel 15 + wl-broadcom 16 + nienna-unfree 17 + ]; 18 + nienna-unfree = inputs.self.lib.unfree-module [ 19 + "broadcom-sta" 20 + ]; 21 + in 22 + { 23 + inherit flake; 24 + }
+26
modules/hosts/nienna/filesystems.nix
··· 1 + # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 + # and may be overwritten by future invocations. Please make changes 3 + # to /etc/nixos/configuration.nix instead. 4 + { 5 + flake.modules.nixos.nienna = { 6 + 7 + fileSystems."/" = { 8 + device = "/dev/disk/by-uuid/49a514f4-ba6e-47aa-b3c0-83a650c2e22d"; 9 + fsType = "ext4"; 10 + }; 11 + 12 + fileSystems."/boot" = { 13 + device = "/dev/disk/by-uuid/45F4-4CED"; 14 + fsType = "vfat"; 15 + options = [ 16 + "fmask=0077" 17 + "dmask=0077" 18 + ]; 19 + }; 20 + 21 + swapDevices = [ 22 + { device = "/dev/disk/by-uuid/f774218c-ec59-427d-bada-8eb7b6b928b8"; } 23 + ]; 24 + 25 + }; 26 + }
+19
modules/hosts/nienna/hardware-configuration.nix
··· 1 + # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 + # and may be overwritten by future invocations. Please make changes 3 + # to /etc/nixos/configuration.nix instead. 4 + { 5 + 6 + flake.modules.nixos.nienna = { 7 + boot.initrd.availableKernelModules = [ 8 + "uhci_hcd" 9 + "ehci_pci" 10 + "ahci" 11 + "firewire_ohci" 12 + "usbhid" 13 + "usb_storage" 14 + "sd_mod" 15 + "sdhci_pci" 16 + ]; 17 + }; 18 + 19 + }
+15
modules/hosts/smaug/configuration.nix
··· 1 + # Edit this configuration file to define what should be installed on 2 + # your system. Help is available in the configuration.nix(5) man page 3 + # and in the NixOS manual (accessible by running ‘nixos-help’). 4 + { inputs, ... }: 5 + { 6 + flake.modules.nixos.smaug.imports = with inputs.self.modules.nixos; [ 7 + vic 8 + xfce-desktop 9 + macos-keys 10 + kvm-intel 11 + wl-broadcom 12 + nvidia 13 + all-firmware 14 + ]; 15 + }
+32
modules/hosts/smaug/filesystems.nix
··· 1 + # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 + # and may be overwritten by future invocations. Please make changes 3 + # to /etc/nixos/configuration.nix instead. 4 + { 5 + 6 + flake.modules.nixos.smaug = { 7 + 8 + fileSystems."/" = { 9 + device = "/dev/disk/by-label/nixos"; 10 + fsType = "ext4"; 11 + }; 12 + 13 + fileSystems."/boot" = { 14 + device = "/dev/disk/by-label/boot"; 15 + fsType = "vfat"; 16 + options = [ 17 + "fmask=0077" 18 + "dmask=0077" 19 + ]; 20 + }; 21 + 22 + fileSystems."/home" = { 23 + device = "/dev/disk/by-label/home"; 24 + fsType = "ext4"; 25 + }; 26 + 27 + swapDevices = [ 28 + { device = "/dev/disk/by-label/swap"; } 29 + ]; 30 + 31 + }; 32 + }
+11
modules/hosts/smaug/hardware-configuration.nix
··· 1 + { 2 + flake.modules.nixos.smaug = { 3 + 4 + boot.initrd.availableKernelModules = [ 5 + "xhci_pci" 6 + "ehci_pci" 7 + "usb_storage" 8 + "sd_mod" 9 + ]; 10 + }; 11 + }
+7
modules/hosts/tom/configuration.nix
··· 1 + { 2 + flake.modules.nixos.tom = { 3 + boot.loader.grub.enable = false; 4 + fileSystems."/".device = "/dev/null"; 5 + users.users.runner.isNormalUser = true; 6 + }; 7 + }
+7
modules/hosts/varda/darwin-configuration.nix
··· 1 + { inputs, ... }: 2 + { 3 + flake.modules.darwin.varda.imports = with inputs.self.modules.darwin; [ 4 + vic 5 + { users.users.vic.home = "/Users/vic"; } 6 + ]; 7 + }
+8
modules/hosts/yavanna/darwin-configuration.nix
··· 1 + { inputs, ... }: 2 + { 3 + flake.modules.darwin.yavanna.imports = with inputs.self.modules.darwin; [ 4 + vic 5 + { users.users.vic.home = "/v/home"; } 6 + ]; 7 + 8 + }
-5
modules/nixos/all-firmware.nix
··· 1 - { 2 - hardware.enableAllFirmware = true; 3 - hardware.enableRedistributableFirmware = true; 4 - nixpkgs.config.allowUnfree = true; # enableAllFirmware depends on this 5 - }
-23
modules/nixos/barrier.nix
··· 1 - { pkgs, perSystem, ... }: 2 - { 3 - 4 - environment.systemPackages = with pkgs; [ 5 - anydesk 6 - perSystem.versioned.input-leap 7 - ]; 8 - 9 - networking.firewall = { 10 - enable = true; 11 - allowedTCPPorts = [ 12 - 24800 # inputleap 13 - 6568 # anydesk 14 - 50001 # anydesk 15 - ]; 16 - allowedUDPPorts = [ 17 - 24800 # inputleap 18 - 6568 # anydesk 19 - 50001 # anydesk 20 - ]; 21 - }; 22 - 23 - }
-82
modules/nixos/bootable.nix
··· 1 - { lib, modulesPath, ... }: 2 - { 3 - imports = [ 4 - (modulesPath + "/installer/scan/not-detected.nix") 5 - ]; 6 - 7 - # Bootloader. 8 - boot.loader.systemd-boot.enable = true; 9 - boot.loader.efi.canTouchEfiVariables = true; 10 - powerManagement.enable = true; 11 - 12 - # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. 13 - 14 - # Configure network proxy if necessary 15 - # networking.proxy.default = "http://user:password@proxy:port/"; 16 - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; 17 - 18 - # Enable networking 19 - networking.networkmanager.enable = true; 20 - 21 - # Set your time zone. 22 - time.timeZone = "America/Mexico_City"; 23 - 24 - # Select internationalisation properties. 25 - i18n.defaultLocale = "en_US.UTF-8"; 26 - 27 - # Enable the X11 windowing system. 28 - services.xserver.enable = true; 29 - 30 - # Configure keymap in X11 31 - services.xserver.xkb = { 32 - layout = "us"; 33 - variant = ""; 34 - }; 35 - 36 - # Enable CUPS to print documents. 37 - # services.printing.enable = true; 38 - 39 - # Enable sound with pipewire. 40 - # sound.enable = true; 41 - hardware.bluetooth.enable = true; 42 - hardware.bluetooth.powerOnBoot = true; 43 - services.pulseaudio.enable = false; 44 - services.blueman.enable = true; 45 - security.rtkit.enable = true; 46 - services.pipewire = { 47 - enable = true; 48 - alsa.enable = true; 49 - alsa.support32Bit = true; 50 - pulse.enable = true; 51 - # If you want to use JACK applications, uncomment this 52 - #jack.enable = true; 53 - 54 - # use the example session manager (no others are packaged yet so this is enabled by default, 55 - # no need to redefine it in your config for now) 56 - #media-session.enable = true; 57 - }; 58 - 59 - # Enable touchpad support (enabled default in most desktopManager). 60 - # services.xserver.libinput.enable = true; 61 - 62 - # Some programs need SUID wrappers, can be configured further or are 63 - # started in user sessions. 64 - # programs.mtr.enable = true; 65 - # programs.gnupg.agent = { 66 - # enable = true; 67 - # enableSSHSupport = true; 68 - # }; 69 - 70 - # List services that you want to enable: 71 - 72 - # Enable the OpenSSH daemon. 73 - # services.openssh.enable = true; 74 - 75 - # Open ports in the firewall. 76 - # networking.firewall.allowedTCPPorts = [ ... ]; 77 - # networking.firewall.allowedUDPPorts = [ ... ]; 78 - # Or disable the firewall altogether. 79 - # networking.firewall.enable = false; 80 - 81 - networking.useDHCP = lib.mkDefault true; 82 - }
-28
modules/nixos/darwin.nix
··· 1 - { perSystem, pkgs, ... }: 2 - let 3 - nix-darwin-pkgs = with perSystem.nix-darwin; [ 4 - darwin-option 5 - darwin-rebuild 6 - darwin-version 7 - darwin-uninstaller 8 - ]; 9 - in 10 - { 11 - 12 - environment.systemPackages = 13 - nix-darwin-pkgs 14 - ++ (with pkgs; [ 15 - iterm2 16 - wezterm 17 - ]); 18 - 19 - # Determinate uses its own daemon to manage the Nix installation 20 - nix.enable = false; 21 - 22 - system.defaults.trackpad.Clicking = true; 23 - system.defaults.trackpad.TrackpadThreeFingerDrag = true; 24 - system.defaults.NSGlobalDomain.ApplePressAndHoldEnabled = false; 25 - 26 - system.keyboard.enableKeyMapping = true; 27 - system.keyboard.remapCapsLockToControl = true; 28 - }
-10
modules/nixos/gnome-desktop.nix
··· 1 - { ... }: 2 - { 3 - # Enable the GNOME Desktop Environment. 4 - services.xserver.displayManager.gdm.enable = true; 5 - services.xserver.desktopManager.gnome.enable = true; 6 - 7 - # Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229 8 - systemd.services."getty@tty1".enable = false; 9 - systemd.services."autovt@tty1".enable = false; 10 - }
-17
modules/nixos/kde-desktop.nix
··· 1 - { ... }: 2 - { 3 - # Enable the KDE Plasma Desktop Environment. 4 - services.displayManager.sddm.wayland.enable = true; 5 - services.desktopManager.plasma6.enable = true; 6 - 7 - services.avahi = { 8 - nssmdns4 = true; 9 - enable = true; 10 - publish = { 11 - enable = true; 12 - userServices = true; 13 - domain = true; 14 - }; 15 - }; 16 - 17 - }
-5
modules/nixos/kvm-amd.nix
··· 1 - { lib, config, ... }: 2 - { 3 - boot.kernelModules = [ "kvm-amd" ]; 4 - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 5 - }
-5
modules/nixos/kvm-intel.nix
··· 1 - { lib, config, ... }: 2 - { 3 - boot.kernelModules = [ "kvm-intel" ]; 4 - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 5 - }
-5
modules/nixos/macos-keys/caps-is-ctrl-or-esc.nix
··· 1 - # see https://github.com/rvaiya/keyd/blob/master/examples/capslock-esc-basic.conf 2 - { 3 - main.capslock = "overload(capscontrol, esc)"; 4 - "capscontrol:C" = { }; 5 - }
-26
modules/nixos/macos-keys/default.nix
··· 1 - { 2 - lib, 3 - pkgs, 4 - config, 5 - ... 6 - }: 7 - let 8 - cfg = config.vix.features.macos-keys; 9 - in 10 - { 11 - 12 - options.vix.features.macos-keys = with lib; { 13 - enable = options.mkEnableOption "MacOS keys"; 14 - }; 15 - 16 - config = lib.mkIf cfg.enable { 17 - services.keyd.enable = true; 18 - services.keyd.keyboards.default.ids = [ "*" ]; # apply on all devices 19 - services.keyd.keyboards.default.settings = lib.mkMerge [ 20 - (import ./macos-keys.nix { 21 - inherit lib pkgs config; 22 - }) 23 - ]; 24 - 25 - }; 26 - }
-79
modules/nixos/macos-keys/desktop-keys-options.nix
··· 1 - { lib, ... }: 2 - with lib; 3 - { 4 - launcher = mkOption { 5 - type = types.str; 6 - default = "A-f1"; 7 - description = "Key to open the launcher"; 8 - }; 9 - close-app = mkOption { 10 - type = types.str; 11 - default = "A-f4"; 12 - description = "Key to close the current app"; 13 - }; 14 - new-tab = mkOption { 15 - type = types.str; 16 - default = "C-t"; 17 - description = "Key to create a tab new"; 18 - }; 19 - close-tab = mkOption { 20 - type = types.str; 21 - default = "C-w"; 22 - description = "Key to close the current tab"; 23 - }; 24 - next-app = mkOption { 25 - type = types.str; 26 - default = "G-tab"; 27 - description = "Key to switch to the next app"; 28 - }; 29 - prev-app = mkOption { 30 - type = types.str; 31 - default = "G-S-tab"; 32 - description = "Key to switch to the previous app"; 33 - }; 34 - next-window-in-group = mkOption { 35 - type = types.str; 36 - default = "G-`"; 37 - description = "Key to switch to the next window in the current group"; 38 - }; 39 - next-desktop = mkOption { 40 - type = types.str; 41 - default = "M-tab"; 42 - description = "Key to switch to the next desktop"; 43 - }; 44 - prev-desktop = mkOption { 45 - type = types.str; 46 - default = "M-S-tab"; 47 - description = "Key to switch to the previous desktop"; 48 - }; 49 - copy = mkOption { 50 - type = types.str; 51 - default = "C-insert"; 52 - description = "Key to copy"; 53 - }; 54 - paste = mkOption { 55 - type = types.str; 56 - default = "S-insert"; 57 - description = "Key to paste"; 58 - }; 59 - cut = mkOption { 60 - type = types.str; 61 - default = "S-delete"; 62 - description = "Key to cut"; 63 - }; 64 - switch-tab-n-prefix = mkOption { 65 - type = types.str; 66 - default = "A"; 67 - description = "Key to switch to the nth tab. Modifier without -"; 68 - }; 69 - beginning-of-line = mkOption { 70 - type = types.str; 71 - default = "home"; 72 - description = "Key to go to the beginning of the line"; 73 - }; 74 - end-of-line = mkOption { 75 - type = types.str; 76 - default = "end"; 77 - description = "Key to go to the end of the line"; 78 - }; 79 - }
modules/nixos/macos-keys/macos-keys.nix modules/features/_macos-keys.nix
-27
modules/nixos/nix-features.nix
··· 1 - { config, pkgs, ... }: 2 - { 3 - imports = [ 4 - ./nix-substituters.nix 5 - ./nixpkgs-unfree.nix 6 - ]; 7 - 8 - nix = { 9 - settings = { 10 - auto-optimise-store = true; 11 - experimental-features = [ 12 - "nix-command" 13 - "flakes" 14 - # "allow-import-from-derivation" 15 - ]; 16 - trusted-users = [ 17 - "root" 18 - "@wheel" 19 - ]; 20 - }; 21 - gc = pkgs.lib.optionalAttrs config.nix.enable { 22 - automatic = true; 23 - dates = "weekly"; 24 - options = "--delete-older-than 7d"; 25 - }; 26 - }; 27 - }
-14
modules/nixos/nix-substituters.nix
··· 1 - { ... }: 2 - { 3 - 4 - nix.settings = { 5 - substituters = [ 6 - "https://vix.cachix.org" 7 - "https://devenv.cachix.org" 8 - ]; 9 - trusted-public-keys = [ 10 - "vix.cachix.org-1:hP/Lpdsi1dB3AxK9o6coWh+xHzvAc4ztdDYuG7lC6dI=" 11 - "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" 12 - ]; 13 - }; 14 - }
-37
modules/nixos/nixpkgs-unfree.nix
··· 1 - { config, pkgs, ... }: 2 - { 3 - nixpkgs.config.allowUnfreePredicate = 4 - pkg: 5 - let 6 - name = pkgs.lib.getName pkg; 7 - 8 - global = [ 9 - "copilot-language-server" 10 - "cursor" 11 - "vscode" 12 - "obsidian" 13 - "anydesk" 14 - ]; 15 - 16 - perHost = 17 - { 18 - "mordor" = [ 19 - "nvidia-x11" 20 - "nvidia-settings" 21 - ]; 22 - "nienna" = [ 23 - "broadcom-sta" 24 - ]; 25 - "smaug" = [ 26 - "broadcom-sta" 27 - "nvidia-x11" 28 - "nvidia-settings" 29 - ]; 30 - } 31 - .${config.networking.hostName} or [ ]; 32 - 33 - allowed = builtins.elem name (global ++ perHost); 34 - msg = if allowed then "Allowed unfree: ${name}" else "Not allowed unfree ${name}"; 35 - in 36 - builtins.trace msg allowed; 37 - }
-31
modules/nixos/nvidia.nix
··· 1 - { config, ... }: 2 - { 3 - boot.initrd.kernelModules = [ "nvidia" ]; 4 - boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ]; 5 - boot.blacklistedKernelModules = [ "nouveau" ]; 6 - boot.extraModprobeConfig = '' 7 - blacklist nouveau 8 - options nouveau modeset=0 9 - ''; 10 - services.xserver.videoDrivers = [ "nvidia" ]; 11 - hardware.graphics.enable = true; 12 - hardware.nvidia = rec { 13 - open = false; 14 - nvidiaSettings = true; 15 - package = config.boot.kernelPackages.nvidiaPackages.stable; 16 - powerManagement.enable = true; 17 - powerManagement.finegrained = false; 18 - modesetting.enable = true; 19 - 20 - prime = { 21 - offload.enable = powerManagement.finegrained; 22 - offload.enableOffloadCmd = prime.offload.enable; 23 - nvidiaBusId = ( 24 - { 25 - mordor = "PCI:9:0:0"; 26 - } 27 - .${config.networking.hostName} or "" 28 - ); 29 - }; 30 - }; 31 - }
-5
modules/nixos/vic-autologin.nix
··· 1 - { 2 - # Enable automatic login for the user. 3 - services.displayManager.autoLogin.enable = true; 4 - services.displayManager.autoLogin.user = "vic"; 5 - }
-34
modules/nixos/vic.nix
··· 1 - { 2 - lib, 3 - pkgs, 4 - ... 5 - }: 6 - { 7 - 8 - home-manager.backupFileExtension = "backup"; 9 - 10 - programs.fish.enable = true; 11 - 12 - fonts.packages = with pkgs.nerd-fonts; [ 13 - victor-mono 14 - jetbrains-mono 15 - inconsolata 16 - ]; 17 - 18 - users.users.vic = { 19 - description = "vic"; 20 - shell = pkgs.fish; 21 - }; 22 - 23 - imports = [ 24 - (lib.mkIf pkgs.stdenv.isLinux { 25 - users.users.vic = { 26 - isNormalUser = true; 27 - extraGroups = [ 28 - "networkmanager" 29 - "wheel" 30 - ]; 31 - }; 32 - }) 33 - ]; 34 - }
-5
modules/nixos/wl-broadcom.nix
··· 1 - { config, ... }: 2 - { 3 - boot.kernelModules = [ "wl" ]; 4 - boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; 5 - }
-6
modules/nixos/wsl.nix
··· 1 - { inputs, ... }: 2 - { 3 - imports = [ inputs.nixos-wsl.nixosModules.default ]; 4 - 5 - wsl.enable = true; 6 - }
-18
modules/nixos/xfce-desktop.nix
··· 1 - { ... }: 2 - { 3 - 4 - # https://gist.github.com/nat-418/1101881371c9a7b419ba5f944a7118b0 5 - services.xserver = { 6 - enable = true; 7 - desktopManager = { 8 - xterm.enable = false; 9 - xfce.enable = true; 10 - }; 11 - }; 12 - 13 - services.displayManager = { 14 - defaultSession = "xfce"; 15 - enable = true; 16 - }; 17 - 18 - }
+51
modules/packages/gh-flake-update.nix
··· 1 + let 2 + 3 + app = 4 + pkgs: 5 + pkgs.writeShellApplication { 6 + name = "gh-flake-update"; 7 + text = '' 8 + export GIT_AUTHOR_NAME="Victor Borja" 9 + export GIT_AUTHOR_EMAIL="vborja@apache.org" 10 + export GIT_COMMITTER_NAME="Victor Borja" 11 + export GIT_COMMITTER_EMAIL="vborja@apache.org" 12 + 13 + branch="flake-update-$(date '+%F')" 14 + 15 + git checkout -b "$branch" 16 + title="Updating flake inputs $(date)" 17 + 18 + ( 19 + echo "$title" 20 + echo -ne "\n\n\n\n" 21 + echo '```shell' 22 + echo '$ nix flake update' 23 + nix flake update --accept-flake-config 2>&1 24 + echo '```' 25 + echo -ne "\n\n\n\n" 26 + echo 'request-checks: true' 27 + ) | tee /tmp/commit-message.md 28 + 29 + changes="$(git status -s | grep -o 'M ' | wc -l)" 30 + 31 + if test "$changes" -eq 0; then 32 + echo "No changes" 33 + exit 0 34 + fi 35 + 36 + git status -s | grep 'M ' | cut -d 'M' -f 2 | xargs git add 37 + git commit -F /tmp/commit-message.md --no-signoff --no-verify --trailer "request-checks:true" --no-edit --cleanup=verbatim 38 + git push origin "$branch:$branch" --force 39 + 40 + gh pr create --base main --label flake-update --reviewer vic --assignee vic --body-file /tmp/commit-message.md --title "$title" --head "$branch" | tee /tmp/pr-url 41 + ''; 42 + }; 43 + 44 + in 45 + { 46 + perSystem = 47 + { pkgs, ... }: 48 + { 49 + packages.gh-flake-update = app pkgs; 50 + }; 51 + }
+79
modules/packages/os-rebuild.nix
··· 1 + { inputs, ... }: 2 + { 3 + 4 + perSystem = 5 + { pkgs, lib, ... }: 6 + let 7 + 8 + same-system-oses = 9 + let 10 + has-same-system = _n: o: o.config.nixpkgs.hostPlatform.system == pkgs.system; 11 + all-oses = (inputs.self.nixosConfigurations or { }) // (inputs.self.darwinConfigurations or { }); 12 + in 13 + lib.filterAttrs has-same-system all-oses; 14 + 15 + os-builder = 16 + name: os: 17 + let 18 + platform = os.config.nixpkgs.hostPlatform; 19 + darwin-rebuild = lib.getExe inputs.nix-darwin.packages.${platform.system}.darwin-rebuild; 20 + nixos-rebuild = lib.getExe pkgs.nixos-rebuild; 21 + flake-param = ''--flake "path:${inputs.self}#${name}" ''; 22 + in 23 + pkgs.writeShellApplication { 24 + name = "${name}-os-rebuild"; 25 + text = '' 26 + ${if platform.isDarwin then darwin-rebuild else nixos-rebuild} ${flake-param} "''${@}" 27 + ''; 28 + }; 29 + 30 + os-builders = lib.mapAttrs os-builder same-system-oses; 31 + 32 + os-rebuild = pkgs.writeShellApplication { 33 + name = "os-rebuild"; 34 + text = '' 35 + export PATH="${ 36 + pkgs.lib.makeBinPath ( 37 + (lib.attrValues os-builders) 38 + ++ [ 39 + pkgs.coreutils 40 + ] 41 + ++ (lib.optionals pkgs.stdenv.isLinux [ pkgs.systemd ]) 42 + 43 + ) 44 + }" 45 + 46 + if [ "-h" = "''${1:-}" ] || [ "--help" = "''${1:-}" ]; then 47 + echo Usage: "$0" [HOSTNAME] [${ 48 + if pkgs.stdenv.isDarwin then "DARWIN" else "NIXOS" 49 + }-REBUILD OPTIONS ...] 50 + echo 51 + echo Default hostname: "$(uname -n)" 52 + echo Default ${if pkgs.stdenv.isDarwin then "darwin" else "nixos"}-rebuild options: switch 53 + echo 54 + echo Known hostnames on ${pkgs.system}: 55 + echo "${lib.concatStringsSep "\n" (lib.attrNames same-system-oses)}" 56 + exit 0 57 + fi 58 + 59 + if test "file" = "$(type -t "''${1:-_}-os-rebuild")"; then 60 + hostname="$1" 61 + shift 62 + else 63 + hostname="$(uname -n)" 64 + fi 65 + 66 + if test "file" = "$(type -t "$hostname-os-rebuild")"; then 67 + "$hostname-os-rebuild" "''${@:-switch}" 68 + else 69 + echo "No configuration found for host: $hostname" 70 + exit 1 71 + fi 72 + ''; 73 + }; 74 + 75 + in 76 + { 77 + packages.os-rebuild = os-rebuild; 78 + }; 79 + }
+87
modules/packages/vic-sops-get.nix
··· 1 + { 2 + perSystem = 3 + { pkgs, ... }: 4 + let 5 + vic-sops-get = pkgs.writeShellApplication { 6 + name = "vic-sops-get"; 7 + text = '' 8 + export PATH="${ 9 + pkgs.lib.makeBinPath [ 10 + pkgs.sops 11 + pkgs.ssh-to-age 12 + ] 13 + }:$PATH" 14 + declare -a args more 15 + 16 + file="" 17 + dry="" 18 + extract="" 19 + server="" 20 + setup="" 21 + 22 + while test -n "''${1:-}"; do 23 + first="$1" 24 + shift 25 + case "$first" in 26 + "--setup") 27 + setup="$1" 28 + shift 29 + ;; 30 + "--dry-run") 31 + dry="true" 32 + ;; 33 + "-f" | "--file") 34 + file="${./..}/modules/home/vic/secrets/$1" 35 + shift 36 + ;; 37 + "-a" | "--attr") 38 + file="${./..}/modules/home/vic/secrets.yaml" 39 + extract="[\"$1\"]" 40 + shift 41 + ;; 42 + "-s" | "--keyservice") 43 + server="$1" 44 + shift 45 + ;; 46 + *) 47 + more+=("$first") 48 + ;; 49 + esac 50 + done 51 + 52 + if test -n "$extract"; then 53 + args+=("--extract" "$extract") 54 + fi 55 + 56 + if test -n "$server"; then 57 + args+=("--enable-local-service=false" "--keyservice" "$server") 58 + fi 59 + 60 + args+=("''${more[@]}") 61 + 62 + if test -n "$file"; then 63 + args+=("$file") 64 + fi 65 + 66 + function perform_setup() { 67 + echo -n "Password: " >&2 68 + local pass 69 + read -r -s pass 70 + sops decrypt "''${args[@]}" | SSH_TO_AGE_PASSPHRASE="$pass" ssh-to-age -private-key -o "$setup" 2>/dev/null 71 + } 72 + 73 + if test -n "$dry"; then 74 + echo "sops decrypt" "''${args[@]}" 75 + exit 0 76 + elif test -n "$setup"; then 77 + perform_setup 78 + else 79 + exec sops decrypt "''${args[@]}" 80 + fi 81 + ''; 82 + }; 83 + in 84 + { 85 + packages.vic-sops-get = vic-sops-get; 86 + }; 87 + }
+13
modules/packages/vic-sops-rotate.nix
··· 1 + { 2 + perSystem = 3 + { pkgs, ... }: 4 + { 5 + packages.vic-sops-rotate = pkgs.writeShellApplication { 6 + name = "vic-sops-rotate"; 7 + text = '' 8 + # shellcheck disable=SC2011 9 + ls --zero modules/vic/secrets{.yaml,/*} | xargs -0 -n 1 sops rotate -i 10 + ''; 11 + }; 12 + }; 13 + }
+72
modules/vic/apps.nix
··· 1 + let 2 + flake.modules.homeManager.vic.imports = [ 3 + nonBombadil 4 + anywhere 5 + linux 6 + ]; 7 + 8 + linux = 9 + { lib, pkgs, ... }: 10 + lib.mkIf (pkgs.stdenvNoCC.isLinux) { 11 + home.packages = [ 12 + pkgs.gparted 13 + pkgs.wl-clipboard 14 + # perSystem.self.copilot-language-server # tab tab tab 15 + ]; 16 + }; 17 + 18 + nonBombadil = 19 + { 20 + lib, 21 + pkgs, 22 + osConfig, 23 + ... 24 + }: 25 + lib.mkIf (osConfig.networking.hostName != "bombadil") { 26 + home.packages = [ 27 + #perSystem.nox.default 28 + #perSystem.self.devicon-lookup # for eee 29 + #perSystem.self.leader 30 + pkgs.yazi # file tui 31 + pkgs.zoxide # cd 32 + pkgs.nix-search-cli 33 + pkgs.nixd # lsp 34 + pkgs.nixfmt-rfc-style 35 + pkgs.ispell 36 + pkgs.gh 37 + ]; 38 + }; 39 + 40 + anywhere = 41 + { pkgs, ... }: 42 + { 43 + programs.nh.enable = true; 44 + programs.home-manager.enable = true; 45 + 46 + programs.direnv.enable = true; 47 + programs.direnv.nix-direnv.enable = true; 48 + 49 + home.packages = [ 50 + 51 + #perSystem.nix-versions.default 52 + #perSystem.self.vic-sops-get 53 + pkgs.tree 54 + pkgs.fzf 55 + pkgs.ripgrep # grep 56 + pkgs.bat # cat 57 + pkgs.bottom 58 + pkgs.htop 59 + pkgs.eza # ls 60 + pkgs.fd # find 61 + pkgs.lazygit # no magit 62 + pkgs.tig # alucard 63 + pkgs.cachix 64 + pkgs.jq 65 + pkgs.home-manager 66 + ]; 67 + }; 68 + 69 + in 70 + { 71 + inherit flake; 72 + }
+54
modules/vic/desktop-apps.nix
··· 1 + { ... }: 2 + let 3 + 4 + flake.modules.homeManager.vic.imports = [ 5 + everywhere 6 + nonBombadil 7 + darwin 8 + ]; 9 + 10 + darwin = 11 + { pkgs, lib, ... }: 12 + lib.mkIf pkgs.stdenvNoCC.isDarwin { 13 + home.packages = [ pkgs.iterm2 ]; 14 + }; 15 + 16 + nonBombadil = 17 + { 18 + pkgs, 19 + osConfig, 20 + lib, 21 + ... 22 + }: 23 + lib.mkIf (osConfig.networking.hostName != "bombadil") { 24 + home.packages = [ 25 + pkgs.code-cursor 26 + pkgs.zed-editor 27 + ]; 28 + }; 29 + 30 + everywhere = 31 + { 32 + pkgs, 33 + lib, 34 + ... 35 + }: 36 + { 37 + home.packages = 38 + [ 39 + pkgs.librewolf 40 + pkgs.vscode 41 + pkgs.wezterm 42 + ] 43 + ++ (lib.optionals (pkgs.system == "aarm64-darwin" || pkgs.stdenvNoCC.isLinux) [ 44 + pkgs.ghostty 45 + ]) 46 + ++ (lib.optionals pkgs.stdenvNoCC.isLinux [ 47 + pkgs.gnome-disk-utility 48 + ]); 49 + }; 50 + 51 + in 52 + { 53 + inherit flake; 54 + }
+72
modules/vic/doom.nix
··· 1 + { inputs, ... }: 2 + { 3 + flake.modules.homeManager.vic = 4 + { 5 + pkgs, 6 + lib, 7 + ... 8 + }: 9 + let 10 + 11 + emacsPkg = pkgs.emacs30; 12 + 13 + doom-install = pkgs.writeShellApplication { 14 + name = "doom-install"; 15 + runtimeInputs = with pkgs; [ 16 + git 17 + emacsPkg 18 + ripgrep 19 + openssh 20 + ]; 21 + text = '' 22 + set -e 23 + if test -f "$HOME"/.config/emacs/.local/etc/@/init*.el; then 24 + doom_rev="$(rg "put 'doom-version 'ref '\"(\w+)\"" "$HOME"/.config/emacs/.local/etc/@/init*.el -or '$1')" 25 + fi 26 + 27 + if test "''${doom_rev:-}" = "${inputs.doom-emacs.rev}"; then 28 + echo "DOOM Emacs already at revision ${inputs.doom-emacs.rev}" 29 + exit 0 # doom already pointing to same revision 30 + fi 31 + 32 + ( 33 + echo "DOOM Emacs obtaining revision ${inputs.doom-emacs.rev}" 34 + if ! test -d "$HOME/.config/emacs/.git"; then 35 + git clone --depth 1 https://github.com/doomemacs/doomemacs "$HOME/.config/emacs" 36 + fi 37 + cd "$HOME/.config/emacs" 38 + git fetch --depth 1 origin "${inputs.doom-emacs.rev}" 39 + git reset --hard "${inputs.doom-emacs.rev}" 40 + bin/doom install --no-config --no-env --no-install --no-fonts --no-hooks --force 41 + echo "DOOM Emacs updated to revision ${inputs.doom-emacs.rev}" 42 + bin/doom sync -e --force 43 + ) 44 + ''; 45 + }; 46 + 47 + SPC = inputs.SPC.packages.${pkgs.system}.SPC.override { emacs = emacsPkg; }; 48 + 49 + in 50 + { 51 + programs.emacs.enable = true; 52 + programs.emacs.package = emacsPkg; 53 + services.emacs.enable = true; 54 + services.emacs.package = emacsPkg; 55 + services.emacs.extraOptions = [ 56 + "--init-directory" 57 + "~/.config/emacs" 58 + ]; 59 + 60 + home.packages = [ 61 + SPC 62 + (pkgs.writeShellScriptBin "doom" ''exec $HOME/.config/emacs/bin/doom "$@"'') 63 + (pkgs.writeShellScriptBin "doomscript" ''exec $HOME/.config/emacs/bin/doomscript "$@"'') 64 + (pkgs.writeShellScriptBin "d" ''exec emacsclient -nw -a "doom run -nw --" "$@"'') 65 + ]; 66 + 67 + home.activation.doom-install = lib.hm.dag.entryAfter [ "link-ssh-id" ] '' 68 + run ${lib.getExe doom-install} 69 + ''; 70 + 71 + }; 72 + }
+42
modules/vic/dots.nix
··· 1 + { 2 + flake.modules.homeManager.vic = 3 + { config, pkgs, ... }: 4 + let 5 + dotsLink = 6 + path: 7 + config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.flake/modules/vic/dots/${path}"; 8 + in 9 + { 10 + home.activation.link-flake = config.lib.dag.entryAfter [ "writeBoundary" ] '' 11 + echo Checking that "$HOME/.flake" exists. 12 + if ! test -L "$HOME/.flake"; then 13 + echo "Missing $HOME/.flake link" 14 + exit 1 15 + fi 16 + ''; 17 + 18 + home.file.".ssh" = { 19 + recursive = true; 20 + source = ./dots/ssh; 21 + }; 22 + 23 + home.file.".config/nvim".source = dotsLink "config/nvim"; 24 + home.file.".config/doom".source = dotsLink "config/doom"; 25 + home.file.".config/zed".source = dotsLink "config/zed"; 26 + home.file.".config/wezterm".source = dotsLink "config/wezterm"; 27 + home.file.".config/ghostty".source = dotsLink "config/ghostty"; 28 + 29 + home.file.".config/Code/User/settings.json".source = dotsLink "config/Code/User/settings.json"; 30 + home.file.".config/Code/User/keybindings.json".source = 31 + dotsLink "config/Code/User/keybindings.json"; 32 + home.file.".vscode/extensions/extensions.json".source = 33 + dotsLink "vscode/extensions/extensions-${pkgs.stdenv.hostPlatform.uname.system}.json"; 34 + 35 + home.file.".config/Cursor/User/settings.json".source = dotsLink "config/Code/User/settings.json"; 36 + home.file.".config/Cursor/User/keybindings.json".source = 37 + dotsLink "config/Code/User/keybindings.json"; 38 + home.file.".cursor/extensions/extensions.json".source = 39 + dotsLink "cursor/extensions/extensions-${pkgs.stdenv.hostPlatform.uname.system}.json"; 40 + 41 + }; 42 + }
+1
modules/vic/dots/vscode/extensions/extensions-Linux.json
··· 1 + [{"identifier":{"id":"cybersamurai.midnight-purple-2077","uuid":"093e3b44-8c4f-461b-8aa8-ba46f938aae3"},"version":"1.1.9","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/cybersamurai.midnight-purple-2077-1.1.9","scheme":"file"},"relativeLocation":"cybersamurai.midnight-purple-2077-1.1.9","metadata":{"installedTimestamp":1742623962707,"pinned":false,"source":"gallery","id":"093e3b44-8c4f-461b-8aa8-ba46f938aae3","publisherId":"716a7a71-9c4e-490a-ba29-0780f389e5e8","publisherDisplayName":"cyber samurai","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"github.vscode-github-actions","uuid":"04f49bfc-8330-4eee-8237-ea938fb755ef"},"version":"0.27.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.vscode-github-actions-0.27.1","scheme":"file"},"relativeLocation":"github.vscode-github-actions-0.27.1","metadata":{"installedTimestamp":1742624155234,"pinned":false,"source":"gallery","id":"04f49bfc-8330-4eee-8237-ea938fb755ef","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"chaitanyashahare.lazygit","uuid":"e370d573-0664-4b89-b241-5d3cfeb9a427"},"version":"1.0.7","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/chaitanyashahare.lazygit-1.0.7","scheme":"file"},"relativeLocation":"chaitanyashahare.lazygit-1.0.7","metadata":{"installedTimestamp":1742624175976,"pinned":false,"source":"gallery","id":"e370d573-0664-4b89-b241-5d3cfeb9a427","publisherId":"dce96627-2e0f-4f44-8cd1-a081a4b4e98e","publisherDisplayName":"Chaitanya Shahare","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"tomrijndorp.find-it-faster","uuid":"d5eafbee-176a-421a-b74d-fbc51bd86a21"},"version":"0.0.39","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/tomrijndorp.find-it-faster-0.0.39","scheme":"file"},"relativeLocation":"tomrijndorp.find-it-faster-0.0.39","metadata":{"installedTimestamp":1742624662955,"pinned":false,"source":"gallery","id":"d5eafbee-176a-421a-b74d-fbc51bd86a21","publisherId":"f002c5e6-5db9-4df2-8791-8800b44272a4","publisherDisplayName":"Tom Rijndorp","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode.cpptools-themes","uuid":"99b17261-8f6e-45f0-9ad5-a69c6f509a4f"},"version":"2.0.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.cpptools-themes-2.0.0","scheme":"file"},"relativeLocation":"ms-vscode.cpptools-themes-2.0.0","metadata":{"installedTimestamp":1743618545498,"source":"gallery","id":"99b17261-8f6e-45f0-9ad5-a69c6f509a4f","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"github.github-vscode-theme","uuid":"7328a705-91fc-49e6-8293-da6f112e482d"},"version":"6.3.5","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.github-vscode-theme-6.3.5","scheme":"file"},"relativeLocation":"github.github-vscode-theme-6.3.5","metadata":{"installedTimestamp":1743618590147,"source":"gallery","id":"7328a705-91fc-49e6-8293-da6f112e482d","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode-remote.remote-containers","uuid":"93ce222b-5f6f-49b7-9ab1-a0463c6238df"},"version":"0.409.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode-remote.remote-containers-0.409.0","scheme":"file"},"relativeLocation":"ms-vscode-remote.remote-containers-0.409.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1744177988353,"pinned":false,"source":"gallery","id":"93ce222b-5f6f-49b7-9ab1-a0463c6238df","publisherId":"ac9410a2-0d75-40ec-90de-b59bb705801d","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"rust-lang.rust-analyzer","uuid":"06574cb4-e5dc-4631-8174-a543a4533621"},"version":"0.3.2370","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/rust-lang.rust-analyzer-0.3.2370-linux-x64","scheme":"file"},"relativeLocation":"rust-lang.rust-analyzer-0.3.2370-linux-x64","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1744177988356,"pinned":false,"source":"gallery","id":"06574cb4-e5dc-4631-8174-a543a4533621","publisherId":"cb14a7a7-a188-40bd-a953-e0a20757c5dd","publisherDisplayName":"The Rust Programming Language ","targetPlatform":"linux-x64","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"ms-vscode.remote-explorer","uuid":"11858313-52cc-4e57-b3e4-d7b65281e34b"},"version":"0.4.3","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.remote-explorer-0.4.3","scheme":"file"},"relativeLocation":"ms-vscode.remote-explorer-0.4.3","metadata":{"installedTimestamp":1744178019887,"pinned":false,"source":"gallery","id":"11858313-52cc-4e57-b3e4-d7b65281e34b","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode-remote.remote-ssh-edit","uuid":"bfeaf631-bcff-4908-93ed-fda4ef9a0c5c"},"version":"0.87.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode-remote.remote-ssh-edit-0.87.0","scheme":"file"},"relativeLocation":"ms-vscode-remote.remote-ssh-edit-0.87.0","metadata":{"installedTimestamp":1744178019886,"pinned":false,"source":"gallery","id":"bfeaf631-bcff-4908-93ed-fda4ef9a0c5c","publisherId":"ac9410a2-0d75-40ec-90de-b59bb705801d","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode-remote.remote-ssh","uuid":"607fd052-be03-4363-b657-2bd62b83d28a"},"version":"0.119.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode-remote.remote-ssh-0.119.0","scheme":"file"},"relativeLocation":"ms-vscode-remote.remote-ssh-0.119.0","metadata":{"installedTimestamp":1744178019884,"pinned":false,"source":"gallery","id":"607fd052-be03-4363-b657-2bd62b83d28a","publisherId":"ac9410a2-0d75-40ec-90de-b59bb705801d","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode.remote-server","uuid":"105c0b3c-07a9-4156-a4fc-4141040eb07e"},"version":"1.5.2","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.remote-server-1.5.2","scheme":"file"},"relativeLocation":"ms-vscode.remote-server-1.5.2","metadata":{"installedTimestamp":1744222972457,"pinned":false,"source":"gallery","id":"105c0b3c-07a9-4156-a4fc-4141040eb07e","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"dracula-theme.theme-dracula","uuid":"4e44877c-1c8d-4f9c-ba86-1372d0fbeeb1"},"version":"2.25.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/dracula-theme.theme-dracula-2.25.1","scheme":"file"},"relativeLocation":"dracula-theme.theme-dracula-2.25.1","metadata":{"installedTimestamp":1744233970240,"source":"gallery","id":"4e44877c-1c8d-4f9c-ba86-1372d0fbeeb1","publisherId":"fbb3d024-f8f2-460c-bdb5-99552f6d8c4b","publisherDisplayName":"Dracula Theme","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"hyzeta.vscode-theme-github-light","uuid":"b84ed643-ec7d-49cc-a514-3ce104ed777f"},"version":"7.14.2","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/hyzeta.vscode-theme-github-light-7.14.2","scheme":"file"},"relativeLocation":"hyzeta.vscode-theme-github-light-7.14.2","metadata":{"installedTimestamp":1744238749461,"source":"gallery","id":"b84ed643-ec7d-49cc-a514-3ce104ed777f","publisherId":"18f3a989-6d93-420d-a045-baf7651c8552","publisherDisplayName":"Hyzeta","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"mkhl.direnv","uuid":"e365e970-aeef-4dcd-8e4a-17306a27ab62"},"version":"0.17.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/mkhl.direnv-0.17.0","scheme":"file"},"relativeLocation":"mkhl.direnv-0.17.0","metadata":{"installedTimestamp":1746581315466,"pinned":false,"source":"gallery","id":"e365e970-aeef-4dcd-8e4a-17306a27ab62","publisherId":"577d6c37-7054-4ca5-b4ce-9250409f3903","publisherDisplayName":"Martin Kühl","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"golang.go","uuid":"d6f6cfea-4b6f-41f4-b571-6ad2ab7918da"},"version":"0.46.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/golang.go-0.46.1","scheme":"file"},"relativeLocation":"golang.go-0.46.1","metadata":{"installedTimestamp":1746581324035,"pinned":false,"source":"gallery","id":"d6f6cfea-4b6f-41f4-b571-6ad2ab7918da","publisherId":"dbf6ae0a-da75-4167-ac8b-75b4512f2153","publisherDisplayName":"Go Team at Google","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"vspacecode.whichkey","uuid":"47ddeb9c-b4bb-4594-906b-412886e20e47"},"version":"0.11.4","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/vspacecode.whichkey-0.11.4","scheme":"file"},"relativeLocation":"vspacecode.whichkey-0.11.4","metadata":{"installedTimestamp":1746581341954,"pinned":false,"source":"gallery","id":"47ddeb9c-b4bb-4594-906b-412886e20e47","publisherId":"60415ab6-4581-4e73-a7e0-6fc6b3369f12","publisherDisplayName":"VSpaceCode","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"vspacecode.vspacecode","uuid":"1c81ab96-0424-43c4-b356-fe408a1bd1cf"},"version":"0.10.19","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/vspacecode.vspacecode-0.10.19","scheme":"file"},"relativeLocation":"vspacecode.vspacecode-0.10.19","metadata":{"installedTimestamp":1746581346578,"pinned":false,"source":"gallery","id":"1c81ab96-0424-43c4-b356-fe408a1bd1cf","publisherId":"60415ab6-4581-4e73-a7e0-6fc6b3369f12","publisherDisplayName":"VSpaceCode","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"vscodevim.vim","uuid":"d96e79c6-8b25-4be3-8545-0e0ecefcae03"},"version":"1.29.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/vscodevim.vim-1.29.0","scheme":"file"},"relativeLocation":"vscodevim.vim-1.29.0","metadata":{"installedTimestamp":1746581346579,"pinned":false,"source":"gallery","id":"d96e79c6-8b25-4be3-8545-0e0ecefcae03","publisherId":"5d63889b-1b67-4b1f-8350-4f1dce041a26","publisherDisplayName":"vscodevim","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"bodil.file-browser","uuid":"97a82b1e-e6f7-4519-b1fc-f6be103e3824"},"version":"0.2.11","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/bodil.file-browser-0.2.11","scheme":"file"},"relativeLocation":"bodil.file-browser-0.2.11","metadata":{"installedTimestamp":1746581346580,"pinned":false,"source":"gallery","id":"97a82b1e-e6f7-4519-b1fc-f6be103e3824","publisherId":"e5c9456a-b78b-41ec-95c2-0cc218272ab9","publisherDisplayName":"Bodil Stokke","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"jacobdufault.fuzzy-search","uuid":"c2ebe7f7-8974-4ceb-a4a5-aea798305313"},"version":"0.0.3","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/jacobdufault.fuzzy-search-0.0.3","scheme":"file"},"relativeLocation":"jacobdufault.fuzzy-search-0.0.3","metadata":{"installedTimestamp":1746581346581,"pinned":false,"source":"gallery","id":"c2ebe7f7-8974-4ceb-a4a5-aea798305313","publisherId":"e7902c39-c8b4-4fb0-b245-6241b490a67b","publisherDisplayName":"jacobdufault","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"kahole.magit","uuid":"4d965b97-6bfd-43d8-882c-d4dfce310168"},"version":"0.6.66","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/kahole.magit-0.6.66","scheme":"file"},"relativeLocation":"kahole.magit-0.6.66","metadata":{"installedTimestamp":1746581346580,"pinned":false,"source":"gallery","id":"4d965b97-6bfd-43d8-882c-d4dfce310168","publisherId":"74af81ef-7bda-475b-bfe0-ccf6aa9b34dc","publisherDisplayName":"Kristian Andersen Hole","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"github.copilot-chat","uuid":"7ec7d6e6-b89e-4cc5-a59b-d6c4d238246f"},"version":"0.26.7","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.copilot-chat-0.26.7","scheme":"file"},"relativeLocation":"github.copilot-chat-0.26.7","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1746581379868,"pinned":false,"source":"gallery","id":"7ec7d6e6-b89e-4cc5-a59b-d6c4d238246f","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"github.copilot","uuid":"23c4aeee-f844-43cd-b53e-1113e483f1a6"},"version":"1.314.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.copilot-1.314.0","scheme":"file"},"relativeLocation":"github.copilot-1.314.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1746581384122,"pinned":false,"source":"gallery","id":"23c4aeee-f844-43cd-b53e-1113e483f1a6","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"jnoortheen.nix-ide","uuid":"0ffebccd-4265-4f2d-a855-db1adcf278c7"},"version":"0.4.16","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/jnoortheen.nix-ide-0.4.16","scheme":"file"},"relativeLocation":"jnoortheen.nix-ide-0.4.16","metadata":{"installedTimestamp":1746581406789,"pinned":false,"source":"gallery","id":"0ffebccd-4265-4f2d-a855-db1adcf278c7","publisherId":"3a7c13d8-8768-454a-be53-290c25bd0f85","publisherDisplayName":"Noortheen","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"usernamehw.errorlens"},"version":"3.26.0","location":{"$mid":1,"fsPath":"/home/vic/.vscode/extensions/usernamehw.errorlens-3.26.0","external":"file:///home/vic/.vscode/extensions/usernamehw.errorlens-3.26.0","path":"/home/vic/.vscode/extensions/usernamehw.errorlens-3.26.0","scheme":"file"},"relativeLocation":"usernamehw.errorlens-3.26.0","metadata":{"installedTimestamp":1746581420935,"pinned":false,"source":"gallery","id":"9d8c32ab-354c-4daf-a9bf-20b633734435","publisherId":"151820df-5dc5-4c97-8751-eb84643203fa","publisherDisplayName":"Alexander","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}}]
+27
modules/vic/fish.nix
··· 1 + { inputs, ... }: 2 + { 3 + flake.modules.homeManager.vic = 4 + { pkgs, ... }: 5 + let 6 + inherit (pkgs) lib; 7 + in 8 + { 9 + 10 + #home.file.".config/fish/conf.d/init-leader.fish".source = 11 + # "${inputs.cli-leader.outPath}/assets/leader.fish.sh"; 12 + 13 + programs.fzf.enable = true; 14 + programs.fzf.enableFishIntegration = true; 15 + 16 + programs.fish = { 17 + enable = true; 18 + 19 + functions = import ./_fish/functions.nix { inherit inputs lib; }; 20 + shellAliases = import ./_fish/aliases.nix; 21 + shellAbbrs = import ./_fish/abbrs.nix; 22 + 23 + plugins = [ ]; # pure done fzf.fish pisces z 24 + }; 25 + 26 + }; 27 + }
+64
modules/vic/git.nix
··· 1 + { 2 + flake.modules.homeManager.vic = 3 + { pkgs, ... }: 4 + { 5 + 6 + home.packages = [ pkgs.difftastic ]; 7 + 8 + programs.git = { 9 + enable = true; 10 + userName = "Victor Borja"; 11 + userEmail = "vborja@apache.org"; 12 + signing.format = "ssh"; 13 + 14 + extraConfig = { 15 + init.defaultBranch = "main"; 16 + pull.rebase = true; 17 + pager.difftool = true; 18 + diff.tool = "difftastic"; 19 + difftool.prompt = false; 20 + difftool.difftastic.cmd = "${pkgs.difftastic}/bin/difft $LOCAL $REMOTE"; 21 + 22 + github.user = "vic"; 23 + gitlab.user = "vic"; 24 + 25 + core.editor = "vim"; 26 + }; 27 + aliases = { 28 + "dff" = "difftool"; 29 + "fap" = "fetch --all -p"; 30 + "rm-merged" = 31 + "for-each-ref --format '%(refname:short)' refs/heads | grep -v master | xargs git branch -D"; 32 + "recents" = 33 + "for-each-ref --sort=committerdate refs/heads/ --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'"; 34 + }; 35 + ignores = [ 36 + ".DS_Store" 37 + "*.swp" 38 + ".direnv" 39 + ".envrc" 40 + ".envrc.local" 41 + ".env" 42 + ".env.local" 43 + ".jj" 44 + "/devshell.toml" 45 + "/.tool-versions" 46 + "*.key" 47 + "/vic" 48 + "*~" 49 + ]; 50 + includes = [ ]; 51 + # { path = "${DOTS}/git/something"; } 52 + 53 + lfs.enable = true; 54 + 55 + delta.enable = true; 56 + delta.options = { 57 + line-numbers = true; 58 + side-by-side = false; 59 + }; 60 + }; 61 + 62 + }; 63 + 64 + }
+29
modules/vic/home.nix
··· 1 + { inputs, lib, ... }: 2 + let 3 + flake.homeConfigurations.vic = vic_at "mordor"; 4 + flake.homeConfigurations."vic@mordor" = vic_at "mordor"; 5 + 6 + vic_at = 7 + host: 8 + inputs.home-manager.lib.homeManagerConfiguration { 9 + pkgs = inputs.self.nixosConfigurations.${host}.pkgs; 10 + modules = [ inputs.self.homeModules.vic ]; 11 + extraSpecialArgs.osConfig = inputs.self.nixosConfigurations.${host}.config; 12 + }; 13 + 14 + flake.homeModules.vic.imports = [ 15 + inputs.self.modules.homeManager.vic 16 + ]; 17 + 18 + flake.modules.homeManager.vic = 19 + { pkgs, lib, ... }: 20 + { 21 + home.username = lib.mkDefault "vic"; 22 + home.homeDirectory = lib.mkDefault (if pkgs.stdenvNoCC.isDarwin then "/Users/vic" else "/home/vic"); 23 + home.stateVersion = lib.mkDefault "25.05"; 24 + }; 25 + 26 + in 27 + { 28 + inherit flake; 29 + }
+9
modules/vic/imports.nix
··· 1 + { inputs, ... }: 2 + { 3 + # home.file.".nix-flake".source = inputs.self.outPath; 4 + flake.modules.homeManager.vic.imports = [ 5 + inputs.self.modules.homeManager.nix-index 6 + inputs.self.modules.homeManager.nix-registry 7 + inputs.self.modules.homeManager.vscode-server 8 + ]; 9 + }
+148
modules/vic/jujutsu.nix
··· 1 + { inputs, ... }: 2 + { 3 + flake.modules.homeManager.vic = 4 + { pkgs, ... }: 5 + { 6 + 7 + home.packages = 8 + let 9 + jj-for-tui = pkgs.stdenvNoCC.mkDerivation { 10 + inherit (pkgs.jujutsu) name version meta; 11 + nativeBuildInputs = [ pkgs.makeWrapper ]; 12 + phases = "wrap"; 13 + wrap = '' 14 + makeWrapper ${pkgs.jujutsu}/bin/jj $out/bin/jj \ 15 + --add-flags --config-file \ 16 + --add-flags "~/.config/jj/tui.toml" 17 + ''; 18 + }; 19 + 20 + jj-tui-wrap = 21 + main: drv: extra: 22 + pkgs.stdenvNoCC.mkDerivation { 23 + inherit (drv) name meta; 24 + nativeBuildInputs = [ pkgs.makeWrapper ]; 25 + phases = "wrap"; 26 + wrap = '' 27 + makeWrapper \ 28 + "${drv}/bin/${main}" \ 29 + "$out/bin/${main}" \ 30 + --prefix PATH : ${jj-for-tui}/bin \ 31 + ${extra} 32 + ''; 33 + }; 34 + in 35 + [ 36 + (jj-tui-wrap "lazyjj" pkgs.lazyjj "--add-flags --jj-bin --add-flags ${jj-for-tui}/bin/jj") 37 + (jj-tui-wrap "jj-fzf" pkgs.jj-fzf "--add-flags --key-bindings") 38 + (jj-tui-wrap "jjui" inputs.jjui.packages.${pkgs.system}.default "") 39 + ]; 40 + 41 + programs.jujutsu = { 42 + enable = true; 43 + 44 + # See https://jj-vcs.github.io/jj/v0.17.0/config 45 + settings = { 46 + user.name = "Victor Borja"; 47 + user.email = "vborja@apache.org"; 48 + 49 + revset-aliases = { 50 + "trunk()" = "main@origin"; 51 + 52 + # commits on working-copy compared to `trunk` 53 + "compared_to_trunk()" = "(trunk()..@):: | (trunk()..@)-"; 54 + 55 + # immutable heads: 56 + # main and not mine commits. 57 + "immutable_heads()" = "trunk() | (trunk().. & ~mine())"; 58 + 59 + "default_log()" = "present(@) | ancestors(immutable_heads().., 2) | present(trunk())"; 60 + }; 61 + 62 + template-aliases = { 63 + "format_short_id(id)" = "id.shortest().upper()"; # default is shortest(12) 64 + "format_short_change_id(id)" = "format_short_id(id)"; 65 + "format_short_signature(signature)" = "signature.email()"; 66 + }; 67 + 68 + ui = { 69 + default-command = [ 70 + "status" 71 + "--no-pager" 72 + ]; 73 + diff.tool = [ 74 + (pkgs.lib.getExe pkgs.difftastic) 75 + "--color=always" 76 + "$left" 77 + "$right" 78 + ]; 79 + # pager = ":builtin"; 80 + # editor = "nvim"; 81 + merge-editor = "vscode"; # meld 82 + }; 83 + 84 + signing = { 85 + behaviour = "own"; 86 + backend = "ssh"; 87 + key = "~/.ssh/id_ed25519.pub"; 88 + }; 89 + 90 + git = { 91 + push-bookmark-prefix = "vic/jj-change-"; 92 + }; 93 + 94 + aliases = { 95 + l = [ 96 + "log" 97 + "-r" 98 + "compared_to_trunk()" 99 + "--config" 100 + "template-aliases.'format_short_id(id)'='id.shortest().upper()'" 101 + "--config" 102 + "template-aliases.'format_short_change_id(id)'='id.shortest().upper()'" 103 + "--config" 104 + "template-aliases.'format_timestamp(timestamp)'='timestamp.ago()'" 105 + ]; 106 + 107 + # like git log, all visible commits in the repo 108 + ll = [ 109 + "log" 110 + "-r" 111 + ".." 112 + ]; 113 + }; 114 + 115 + }; 116 + }; 117 + 118 + home.file.".config/jj/tui.toml".source = 119 + let 120 + toml = { 121 + ui.editor = "vim"; 122 + jj-fzf = { 123 + show-keys = "true"; 124 + revsets.log = ".."; 125 + diff-mode = "jj-diff"; 126 + }; 127 + template-aliases = { 128 + "format_short_id(id)" = "id.shortest().upper()"; # default is shortest(12) 129 + "format_short_change_id(id)" = "format_short_id(id)"; 130 + "format_short_signature(signature)" = "signature.email()"; 131 + "format_timestamp(timestamp)" = "timestamp.ago()"; 132 + }; 133 + }; 134 + fmt = pkgs.formats.toml { }; 135 + in 136 + fmt.generate "tui.toml" toml; 137 + 138 + home.file.".config/jjui/config.toml".source = 139 + let 140 + # https://github.com/idursun/jjui/wiki/Configuration 141 + toml = { 142 + 143 + }; 144 + fmt = pkgs.formats.toml { }; 145 + in 146 + fmt.generate "config.toml" toml; 147 + }; 148 + }
+18
modules/vic/nvim.nix
··· 1 + { 2 + flake.modules.homeManager.vic = 3 + { pkgs, ... }: 4 + { 5 + home.sessionVariables.EDITOR = "vim"; 6 + programs.neovim.enable = true; 7 + programs.neovim.viAlias = true; 8 + programs.neovim.vimAlias = true; 9 + programs.neovim.withNodeJs = true; 10 + programs.neovim.extraPackages = with pkgs; [ 11 + zig 12 + sqlite 13 + treefmt 14 + ]; 15 + 16 + }; 17 + 18 + }
+11
modules/vic/rdesk.nix
··· 1 + { inputs, ... }: 2 + let 3 + flake.modules.nixos.vic.imports = [ 4 + inputs.self.modules.nixos.rdesk 5 + ]; 6 + 7 + flake.modules.homeManager.vic.imports = [ inputs.self.modules.homeManager.rdesk ]; 8 + in 9 + { 10 + inherit flake; 11 + }
+45
modules/vic/secrets.nix
··· 1 + { inputs, ... }: 2 + { 3 + 4 + flake.modules.homeManager.vic = 5 + { 6 + config, 7 + pkgs, 8 + ... 9 + }: 10 + { 11 + 12 + imports = [ 13 + inputs.sops-nix.homeManagerModules.sops 14 + ]; 15 + 16 + home.packages = [ pkgs.sops ]; 17 + 18 + sops = { 19 + age.keyFile = "${config.xdg.configHome}/sops/age/keys.txt"; 20 + age.sshKeyPaths = [ ]; 21 + age.generateKey = false; 22 + defaultSopsFile = ./secrets.yaml; 23 + validateSopsFiles = true; 24 + 25 + secrets = { 26 + "hello" = { }; 27 + "ssh/id_ed25519" = { 28 + format = "binary"; 29 + sopsFile = ./secrets/mordor; 30 + }; 31 + "ssh/sops_ssh_config" = { 32 + format = "binary"; 33 + sopsFile = ./secrets/ssh-conf; 34 + }; 35 + }; 36 + 37 + templates = { 38 + "hello.toml".content = '' 39 + hello = "Wooo ${config.sops.placeholder.hello} Hoo"; 40 + ''; 41 + }; 42 + }; 43 + 44 + }; 45 + }
+27
modules/vic/secrets.yaml
··· 1 + hello: ENC[AES256_GCM,data:AN4uGKrELLaCr67iBMZA5imhZX34PqNqMPcwxNgwR39s5zl1AHbC4tHX8TC8Rg==,iv:f8cgbppFfeESlcEwAxBQFVNVJP2EVib2uCiUw0zfwP8=,tag:ZM8g8Ol7bpeDg4HOpyDepw==,type:str] 2 + gh_actions_pat: ENC[AES256_GCM,data:8Y/XaUCMqk4tJlP3cAGZyBiATMuiSkyhedhVGCaTvA7WZ6r9GL6A4vKPw57aQW4jXh9fNIwjqezjyITcyqUAxzyS/mULgJCbO3W0k+YfJsr6OGMvyChsEaAR+gvU,iv:NONHWFikaQCiTz+gzrJ5dn9bKgo1NjbustcsNCRDUXI=,tag:pQiOl1YWAMbxdAhrS2wjNw==,type:str] 3 + cachix_personal: ENC[AES256_GCM,data:l25AEmy2igW+Dh7jAlytPdNQwguUXsq1dwWpt9MSx8t+NSEMXLf9XUxUvsRMC15BPkQydnHRp0t2ndhhcKl2ws4mlF3cIeIEMyn5D2hOgyKNGvc2zILykrfpCA73H8axq3Jt2p/iVWPGOha42JAIPo2fI3yi5t1dBK76pH1VkgxpqGAxyTQWQaMksT6bu8BqJQ==,iv:mymYXDiM7gheeCWR5vYJI3plVSIbT9g6l6oZGrB8k0Y=,tag:5LLFd3n7kVSeYzj6GElqew==,type:str] 4 + cachix_gleam_nix: ENC[AES256_GCM,data:VQaew65aPMhKDHlJuPloUpiAXF7cKSn9jSBbi+CIZ6INV6oyVvHSv6s/RfM6DUL1dkZRZZC3Qq/3gFCKW+5eRcLOa3F0TZ2FIGW8VcqHG+gp5RKGWZ2Jl+Auphg++/ra2dX5Mrm95cLQRi4/MPXfdRoTuX2tfYC3EqqAiuDoWsi87CG0DoYo/bFGsCMVhX+ZdrJlZVI=,iv:ylE+G++jSOEto2pipGxHZBb8doYR2gGiZ8ZcaD6sdq4=,tag:SDX/NIbX77iDRDsV3jnZyg==,type:str] 5 + cachix_vix: ENC[AES256_GCM,data:eMogJzuHslqWoRg689GKhwZL+A5cvcYradGiSH8kS8TpKzT/+ux6D1ZKKExNBUmiI9YXRo1KMrdkD16urk9KxAdCRwbzhEaUEdKdfAlZuXcnvcR7t1RUmRzuBFrEqW2zFLY0uF361GcVay1zDMEDnA1fajoj0COBQvNcuEmsbchBNmTFgFSNBqSd4eYB/7+vRgKUVaY=,iv:8xnWPN7l+5dg5NQhYMkqytQDHl+JKIBdM13HmmnlyEQ=,tag:HNGXe9B3E2OgK0ep9sTdqw==,type:str] 6 + alwaysdata_vic: ENC[AES256_GCM,data:6cEmxqbir07GsiIr63B2qwvUqPlS6WsMXxqXLJMS3RA=,iv:WevxrLrFeDe7T4b/t0+ETP1h0K8AXOmuASlszaaTdhE=,tag:b+JYA3sUktM853xPxybhWg==,type:str] 7 + alwaysdata_vix: ENC[AES256_GCM,data:6BoyXwOH72NN9YgM5kXshFD3HRycV/ixoFc=,iv:MPAh+oPqfgbYiZhLPq2YkxI2A0YevI6tQ63A4errBss=,tag:ywbr0h8yWN9GUmm5/cARKg==,type:str] 8 + alwaysdata_nix_versions: ENC[AES256_GCM,data:qMuKnCcNtqEFY4zkTtLhhpiaSTkFAM8=,iv:JblAEGt7rRmSkuIo4IJYfV2zFVIEVofThJcRb9dORv0=,tag:V6YHml/XRd2h6zgSqyy9RQ==,type:str] 9 + alwaysdata_nix_versions_api_key: ENC[AES256_GCM,data:HIDF+vskF37wevW21+4sc9cmSPeJZ+nAZY9/tCqcnJA=,iv:EcRH91F8r4FVonyy16ys+mOf2E4tx8qmZttU1CXEVr4=,tag:lKOKMIeP96KXFF+sLhxJmw==,type:str] 10 + alwaysdata_nix_versions_totp: ENC[AES256_GCM,data:BgdGKCyTAPvJRvA/Y5uHUOegJxfdmvRzX6N56FbDcew=,iv:5akqwLvFLePU0zs3LhLAE5pxWrdGwQdSZtMSWTI4XYY=,tag:WxqcaB2msM8SSexBQ4/iYQ==,type:str] 11 + nix_versions_ssh: ENC[AES256_GCM,data:2+n696Tm5CtHLmuOICWhGrwR1crTMQD6lYw=,iv:Xbe5TQhadHKtgJjDb2ncew4XfhLsD9pl4YVnkdv7na4=,tag:wQ1a+5Z0qHbvsjdad2emgA==,type:str] 12 + gemini_api_key: ENC[AES256_GCM,data:/9U1o9DBF3uE4hT0KnOUqOmLyrknI/MxgZ6HWwpGmVorLw0F4hfC,iv:3zsX3cvbnz1+PDSwGGjN9nX9gDC9hrzgFhG3VPzXb/E=,tag:v31KszmAZODyOJ5eo8/Vjg==,type:str] 13 + sops: 14 + age: 15 + - recipient: age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e 16 + enc: | 17 + -----BEGIN AGE ENCRYPTED FILE----- 18 + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwb3hUS1NyNlpvL0kycWhK 19 + V0lQR1dvZC9vNmFnSFB2T3laZ2E5VnpJN25nCm9TcjNaYVBOWVFBRE9XYkY5ZmVX 20 + aDNBcE01L0QrS0xaU2dFT2ptdEtsMEEKLS0tIHZyblRwNXpiYkhUZGs5dUw3ajZa 21 + TTJuZnhuaUU3bXZ6SmU5R1IzcWlqSmsK0Kxqki9294isfdxcB51BOGcZrlvOXVLa 22 + 2nfhZ+Dq5hby+o89JYVCVG/x/cZY73b+YMKISknD8TCF6MZLVJ8vzA== 23 + -----END AGE ENCRYPTED FILE----- 24 + lastmodified: "2025-05-07T14:39:15Z" 25 + mac: ENC[AES256_GCM,data:I5CBxmp8/HFuoSOcYF+Cq7qiITpYRXGkL6MJ5HRcP0weV06d61Hf7wtRJWQ92xl14AvQYAKIiXMDC3x2j0g8VmWqpa6hanRRljrlKsTCJ2BFjvlNo14aHazUAvlUTqTopPdUOh3/35Q2ocs5Gj3TpfOw35jjDE65ajs+HcSqjsE=,iv:A+D4Oh2iklXnWLy5qz6gOLL88OWTE2JrDQXoPayZPFI=,tag:B0ixmQBLZwtGTAaua8f0jw==,type:str] 26 + unencrypted_suffix: _unencrypted 27 + version: 3.10.1
+15
modules/vic/secrets/gh-recover
··· 1 + { 2 + "data": "ENC[AES256_GCM,data:+Tt37NNb3HMuRgTseJUImp2DdaPpDOjGw2aUAKYqolF7R5PxfcuBo0m5Lpzu+h5/2u+fTefrfkl7uFGKyVBw5aCXtYLT0HnBOjjhdQSXNpMo1OeuTPV4O+UE7seI91rhKZYeP9DKHYPMqOyQ2J5YXHZc//cf+pXuIobeV1W8AzLg5oVWxBHBKt3BNf/Q3YzWQuPAJprmPT7UeMuz7xm5D0A7AhFbbOuogjiQRIV7TzV+PVvpk63jDPEW3vMtP/68b7Hf5kgOcFA8QUTbYs0=,iv:aCjlCntFSHeb8iuJ+DAEzBPY7pRXCpFGZSBuhJiM3/M=,tag:igm2lskoqFZVerQ+L3jMMA==,type:str]", 3 + "sops": { 4 + "age": [ 5 + { 6 + "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBucTNPUDhxZmViNkRMNng0\nRWMxMEtYdTdJaC9Oa1Flb3NKVzRtZ0NnOWcwCjJwbEZlU2htU2tFVlRJRXRvQ09j\nYUdwWlhhTWJ1d1dkMlNMczY5TjFUZG8KLS0tIFZlZU5Ra1ZlK3ZqdzhpM3RRN05L\nVUhqb1hZVEV3TktuU0J1VEc3RmI3QWcKJMf+nwcx+T+U7vExsvIoQBNiGCF+19xw\nbplzbF+ker4AoDzpMCgbIZDam+vbVqABlbdWLAoTJyI4C5Q/VUPUug==\n-----END AGE ENCRYPTED FILE-----\n" 8 + } 9 + ], 10 + "lastmodified": "2025-05-07T14:39:15Z", 11 + "mac": "ENC[AES256_GCM,data:ILFahJJXtfPhxom7Anwlvq17J6zETAHQW7C8AejT4ukPXmK8UZkO0nFy8l/TbRv9uejXSVxpW150piUxyDWdUgja/eWl/gn/tbXoJlGOb30GSxgrxH9imkcXaR7CRsr2O+PGX8/b5R3dG9MQwAZqds0wc6iHS6LnkPG47nVKeYE=,iv:VA0wCaQWBZXn31rSy3oG2eXWYsNvMMkhZoB6nGx8Grs=,tag:ePsFnMuv6nYvOuxL+67YuQ==,type:str]", 12 + "unencrypted_suffix": "_unencrypted", 13 + "version": "3.9.4" 14 + } 15 + }
+15
modules/vic/secrets/mordor
··· 1 + { 2 + "data": "ENC[AES256_GCM,data:zzR4fExHoMFm26gg4Lax9TZ+X45G256mFTLYeZCzZ5s7070jcBNnyNKyIZmtvWSUje7/FVFIPqRVeeelcXrGEeIE+O8muzUeyl0gYwjbkcI6d8GihkvaGG+XzyRn32fdrl3p1DMf5+3vTxBLCUfzmbra7QzW4R54WxSMFZVaX3SD59kO2PRliAeKMdi8qIzO9VTBJ3SElwvnFJ4kVPCZKWOiuMx/C03jIfBODixey+R7G7icEYazxBdAl8K39E+Wr9cJBoRYboVaeti/+a1EXqLEIbJPiOssnGFygVMo84sGaChrwgs87FOYd5LXRIll4FRLuqCHo/wV7n+GfNYI2JwxWkGOYFoxilh6H6ACH5/Oo+9IOFVKSoVtoOAdM4QxgFfv9mCYQ6fvSjuLRDyUn0uYaxgQ+jiQwvz+JrB0JLhjB8PrizlVyxErD9qK8oOZNBmRi1Egr0Iq27qlYVwY+PGCZCnXEoXdBP4Mq+xQe+ZMxsUv+Y92g7WECENctObBHAL/xfsoFuNw13VLCv9TaGOw1rlWBc/Ih0j8QPtBGzFIGuPJtjTeTTWxCrOGGIJ8j/S81EoEspZ5/fX8,iv:+Zm1AEglKHEH/TIzrZnFH+vDFQtQKrdFBGVzGx+IjlU=,tag:6xH+25TZk6XUGmVcTd8l9Q==,type:str]", 3 + "sops": { 4 + "age": [ 5 + { 6 + "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUaUIrNkVVZk1tdXRwNUdk\nc0k2NWN6Z0E0aVlXenp2dzlpQTEzRkxiZEU0CjdjRmI2bGlOQ2FvdTFSSW1YR01m\nWTQyZDBzcnp5Q3QrN2hZSUxTMlJNNFUKLS0tIDd5Slg0QmFydDYwbEVRZVVIdVpp\nc0swZjArcE5uWWNsRWhwUDc0eW5hUjAKovcZhM/Broc9XMhOE2Qv9t47AvMxxPAl\nJKFmHBoBP7JLu9G1mRhBxBDYAOFuvHnXM424YUx9wX47Ls6RojWOXQ==\n-----END AGE ENCRYPTED FILE-----\n" 8 + } 9 + ], 10 + "lastmodified": "2025-05-07T14:39:15Z", 11 + "mac": "ENC[AES256_GCM,data:uf27wYN570E/2AXaQmU8tu7kAenOMlS3r6cVepi+MADrsnYhLgHmMumcGmQWhjOhItrfOipRtxKgBV80F5SRVS5pHbKz30GTN1jj7LCFAH2VwF/RYCBijvwowrkzlI8V20PvxtDq5z/S6m2FLGmWSGxs2TiypShZta5oaSlZ0mg=,iv:UyEvUj2FT/CFydVJ2F14/y5Qmu4ZrodEiQ63LMBGlR8=,tag:PWc9FBcU0AsVCdZ5pyi9Bw==,type:str]", 12 + "unencrypted_suffix": "_unencrypted", 13 + "version": "3.9.4" 14 + } 15 + }
+15
modules/vic/secrets/nix-versions
··· 1 + { 2 + "data": "ENC[AES256_GCM,data:qEM69BVg0UPfIj1FYSR9vSU19bnD+QJRT+ZE8wKgfvuA9xGH4BlkL2LCk9iXCg/5cdq8Yg20sCosIHNIu1Op+AF63hl9uON8vPr2MIplKJOA/Dgtl3rO+J9rUrkNkkdaOypdMaC19955mJyepwny0jIxE05wRLvtZcxWVqmrRbdXmb3R9Xg1WjulumfPiaA6VtLSY6X06/ZHhgfjmca0Btj8ynJPgjLI/bHOEBV8BA3KOIbL9Exv+bOQsILjqRX9UrZR13WmdMuLAQseZeYeNSCjo1FUdRMU8MafnjXto+ruNrLRmRddH/a79hcAboRNr6JNd9INKT4jLx0IaXVwGephvf6yfgQMTxE/CmAHZ5PeA9lT5plMkOR11fiPvVD+03yzFemeYMnhbiYf1dVVOkThTNlkCSodle+oZesievafzBSJ1p/fpIIXchY2scoQ99Q8kgSq2K6FwzV6JhUOovOlIDVsIsnyAx4jPUk7S8Z+Vuat8uBUNvshB3iAwj3cqYCX9d0xehQc3K/+GXKv,iv:crVwb2Sr694f047Dg35t86/gOy5XVzCKR7eyPB1v3CQ=,tag:QXLQ7Ka06+vffrWIRlioUA==,type:str]", 3 + "sops": { 4 + "age": [ 5 + { 6 + "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwNWpUQUM1SnVyZzIxVUxF\nSnVSUXdSNVEwamVSYVlkcWFLMXEzSHcrQjAwCmJyMVVyTWhHWE12MmNRZmYzeWlI\neDRNM0d6alF5bkJrdkdCR3JySDYyQzAKLS0tIFEzYWx1SzVCak1FYVZwY2ZuczBN\nTWRicXJESks3SjBIVVRIaVYwTzdlRUkKAV2PY4ztxXoK5M6RytO5c7JDBHVg3Hcl\ncp+HP/S7g+hZ27nfOojlTlbRQsTyo/StFHGx86wDqsHXCEXoF57VZw==\n-----END AGE ENCRYPTED FILE-----\n" 8 + } 9 + ], 10 + "lastmodified": "2025-05-07T14:39:15Z", 11 + "mac": "ENC[AES256_GCM,data:MrtGcNSsRPsodKfNOMlFeCFexytAAYGxwU1ZxSFYrNDaN/gDoUdCZaWjXmacNfy4tITSE91PHYXRMR6SBHf7xSrdgfAUxbobInc6gb7ixUPs35Mn0KlZDcPamK4qRZjCOvwntg4U6AqT0+o7N4XGU8SEVzOF6g3rMW+CEUf0OU4=,iv:a7WDImHF3bGcubHvIiV3tL6k29S6ZFnyUGYo/Sfr2e0=,tag:usZFYxWx8o5zReJXSTK4VQ==,type:str]", 12 + "unencrypted_suffix": "_unencrypted", 13 + "version": "3.9.4" 14 + } 15 + }
+15
modules/vic/secrets/ssh-conf
··· 1 + { 2 + "data": "ENC[AES256_GCM,data:/lZBsD9WZP6/EDszAYFmUr+N3kBduOmh2d1xVS+vTNPT0ypiiZ4Buaj1IskJFhevXAW1FsgC6d+/7oj4i52sSW569WbWEFRrCOyYNV7+3jM2ukHz/zgmV55G09c4QYGKEbenYii4e3Y/WgNe5hmRAK6F3cW901ykt9QjUrcwZbzOGPAQIyeC2B7Rn8kjX86cvROxKMWTcgLIV9Ez8s7+YsnQeXeB7EWhMzH/+PsFFABvp2cXN1WD9cL8t9lVZDTETgJ+FajfvW8AdgD/bWl1EpoNLeoEpjo4nZENyA9t44r/t8K+YNBTmEjrznAvnlDoejm0r4LqQYqy/A==,iv:iSlNo/WSvc2G31qmwXxFECC+gOH9YK2gA7mzvsdVoU8=,tag:74rrY6pgODbrzuFtrkSH4w==,type:str]", 3 + "sops": { 4 + "age": [ 5 + { 6 + "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGTFlFWCtIcEdhR3BaUHNj\nY3JsK2tYc21McTRkQ2xRbjgrUndDbm5SM21BCmJta1hSNmJkdjJtRW9iWnU0YW00\ncG05TXNaTkxJcFlSZjgrR1FsNXdtNncKLS0tIHpaWEFqcUVhdmYrY0JnKy9JSlFi\nUEFjVHFZbzBsNHZrYWtBeGdNQ01adTQKotr3rNIOt8HdUdFQIZMAuM/F0lJjbvrb\n4iFoS/lURQiueVJgwNkO+rT9sgh7YJdYu3zxh1e0c4Y32dx0p3q8Zw==\n-----END AGE ENCRYPTED FILE-----\n" 8 + } 9 + ], 10 + "lastmodified": "2025-05-07T14:39:15Z", 11 + "mac": "ENC[AES256_GCM,data:Lm3vA7clmlFGVN+awwoEZQwjZ3PrV8gd7cQ9DArmOyuSA+AQtU4xm8U9rQLAt5YaL+ZB7SgU4ANT9tvRuPpge5nJkCB8bKEN1n6wtAmaxrLP2hfOynqwt/xqBOSG6YUuzRan900z0NXYUyCd164BwEQVxVBxbqpfG4oWEbM+3l4=,iv:iyZht8s7C94ZvFniNSEbqeNg6wt770URZkAuz2j3aeU=,tag:NEIgDz0WQiKf1u0J/YO29g==,type:str]", 12 + "unencrypted_suffix": "_unencrypted", 13 + "version": "3.9.4" 14 + } 15 + }
+15
modules/vic/secrets/vix
··· 1 + { 2 + "data": "ENC[AES256_GCM,data:hyPnWSFKZ4sbBeGkFxm5iygScyIW/ZiQYV9maM/zzkyK6pMwj3VTicEAACBIbjxs+G4GhdmlRq24E6SzhlD6YOAlUtUwUxVir383+6LwtVKIugKQVhSNz7hjrktvZREleXaeOThOKUL/inwhTqmpkSDy15qh2C2l4KrtcTlzasGVWoLocyBEfMylslb8EsWqKBQAWxLtBCvgHCytTMEENIxFot9+xC+5uNTUug5ApVUqu5ZGDlsN9Br+RWEuyGa/m8zZN5k/tnb99cqa2aHXfzS1bT9YxYkYuLNuden+ViIY+Jhg/gy2/mZK0TCWcBIzD75XYkiEqTVVk6vl4MRuTbYqbQIXoPxp2iN0h3y+3oo9+UqgvvFG79tLwHuV8Ip3dvfcncKZT8Lmk5sGAnaGPbr9Lk8CL+xj9bwy5AIWcvP+XitbP1i3+lm0izT/lDLsxRjEAx0BchcJwzkP5jSQNxJ/qWnBgutHtXxMlXcS1dOWY1SqaVAvnwDSnYDk60l7dnwL,iv:A4LRsPwPU5uIkLFNE/tyqsTBJZmUa8FN3r7D7kS6hig=,tag:Yqyv0Yhd5juZS1jr26UYzQ==,type:str]", 3 + "sops": { 4 + "age": [ 5 + { 6 + "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1c0lQbFNRZGk3ajBVd1o5\nU2FqazNVQ3hkQTVERmhRcXdUaUVXQ25ydzBVCnROZ3BFaEVET05mYTZpVi9hdGNJ\ncGNsbDBMOU04Ny9XOUI5MDg2eUhvbU0KLS0tIGVQaFlMUVdxeFBnWnJFZENxclFj\nZmtHWXdzSHlWS1dZbXpjMEdSbnJuTDAKnVBRo8yFYQ+qXooIssxzT8xv6pEANPq+\n2QN2dfD/nzJwHD8q3MltAv4X6eJxg7f4P+AcsqfqHQVB3ZvL0Wfmlw==\n-----END AGE ENCRYPTED FILE-----\n" 8 + } 9 + ], 10 + "lastmodified": "2025-05-07T14:39:15Z", 11 + "mac": "ENC[AES256_GCM,data:Qdnfi52EcIlQVPFHDaEEcIaz5/oarJgn+eD3Bj3G308LFQfxz3Phojufw5VI17+4y4m/Yzk/Ud56BwUA4hxVKGPFWP5vFelh9UE8nQhlLRtO2kcZJtdc5/2lBW7xeEZRule3zrZ9wqAKEcdNUQiwS7v25ql8nq9cVb6MwS3hkS8=,iv:nBUoeEycbCmQYk+NNNEcegu1FsQfynYH8wJxta4iprM=,tag:cgFWeZDXz5XF7qhtZmW8VA==,type:str]", 12 + "unencrypted_suffix": "_unencrypted", 13 + "version": "3.10.1" 14 + } 15 + }
+60
modules/vic/ssh.nix
··· 1 + { 2 + flake.modules.homeManager.vic = 3 + { 4 + lib, 5 + config, 6 + pkgs, 7 + ... 8 + }: 9 + { 10 + programs.ssh = { 11 + enable = true; 12 + addKeysToAgent = "yes"; 13 + controlMaster = "auto"; 14 + controlPath = "~/.ssh/%r@%h:%p"; 15 + controlPersist = "10m"; 16 + includes = [ "~/.config/sops-nix/secrets/ssh/sops_ssh_config" ]; 17 + 18 + matchBlocks = { 19 + "github.com" = { 20 + identityFile = "~/.ssh/id_ed25519"; 21 + extraOptions.ControlPersist = "no"; 22 + }; 23 + 24 + "uptermd.upterm.dev" = { 25 + forwardAgent = true; 26 + serverAliveInterval = 10; 27 + serverAliveCountMax = 6; 28 + extraOptions.ControlPath = "~/.ssh/upterm-%C"; 29 + setEnv.TERM = "xterm-256color"; 30 + localForwards = [ 31 + { 32 + bind.port = 8000; # http 33 + host.address = "127.0.0.1"; 34 + host.port = 8000; 35 + } 36 + { 37 + bind.port = 5900; # vnc 38 + host.address = "127.0.0.1"; 39 + host.port = 5900; 40 + } 41 + ]; 42 + remoteForwards = [ 43 + { 44 + bind.port = 5000; # sops 45 + host.address = "127.0.0.1"; 46 + host.port = 5000; 47 + } 48 + ]; 49 + }; 50 + 51 + }; 52 + }; 53 + 54 + services.ssh-agent.enable = pkgs.stdenv.isLinux; 55 + 56 + home.activation.link-ssh-id = lib.hm.dag.entryAfter [ "link-flake" "sops-nix" "reloadSystemd" ] '' 57 + run ln -sf "${config.sops.secrets."ssh/id_ed25519".path}" $HOME/.ssh/id_ed25519 58 + ''; 59 + }; 60 + }
+15
modules/vic/unfree.nix
··· 1 + { inputs, ... }: 2 + let 3 + flake.modules.homeManager.vic.imports = [ 4 + unfree 5 + ]; 6 + 7 + unfree = inputs.self.lib.unfree-module [ 8 + "cursor" 9 + "vscode" 10 + "anydesk" 11 + ]; 12 + in 13 + { 14 + inherit flake; 15 + }
+57
modules/vic/user.nix
··· 1 + { inputs, ... }: 2 + let 3 + flake.modules.nixos.vic.imports = [ 4 + user 5 + linux 6 + autologin 7 + home 8 + ]; 9 + 10 + flake.modules.darwin.vic.imports = [ 11 + user 12 + home 13 + ]; 14 + 15 + home.home-manager.users.vic.imports = [ 16 + inputs.self.homeModules.vic 17 + ]; 18 + 19 + autologin = 20 + { config, lib, ... }: 21 + lib.mkIf config.services.displayManager.enable { 22 + services.displayManager.autoLogin.enable = true; 23 + services.displayManager.autoLogin.user = "vic"; 24 + }; 25 + 26 + linux = { 27 + users.users.vic = { 28 + isNormalUser = true; 29 + extraGroups = [ 30 + "networkmanager" 31 + "wheel" 32 + ]; 33 + }; 34 + }; 35 + 36 + user = 37 + { pkgs, ... }: 38 + { 39 + home-manager.backupFileExtension = "backup"; 40 + 41 + programs.fish.enable = true; 42 + 43 + fonts.packages = with pkgs.nerd-fonts; [ 44 + victor-mono 45 + jetbrains-mono 46 + inconsolata 47 + ]; 48 + 49 + users.users.vic = { 50 + description = "vic"; 51 + shell = pkgs.fish; 52 + }; 53 + }; 54 + in 55 + { 56 + inherit flake; 57 + }
-21
packages/copilot-language-server.nix
··· 1 - { pname, pkgs, ... }: 2 - let 3 - p = pkgs.${pname}.overrideAttrs ( 4 - _final: prev: { 5 - meta = prev.meta // { 6 - license = prev.meta.license // { 7 - free = true; # lies! 8 - }; 9 - }; 10 - } 11 - ); 12 - 13 - pkg = pkgs.buildFHSEnv { 14 - name = pname; 15 - targetPkgs = pkgs: [ pkgs.stdenv.cc.cc.lib ]; 16 - runScript = pkgs.lib.getExe p; 17 - meta.platforms = pkgs.lib.platforms.linux; 18 - }; 19 - 20 - in 21 - pkg
-7
packages/default.nix
··· 1 - { pkgs, inputs, ... }: 2 - pkgs.writeShellApplication { 3 - name = "os-rebuild"; 4 - text = '' 5 - ${inputs.self.devShells.${pkgs.system}.default}/entrypoint os-rebuild "''${@}" 6 - ''; 7 - }
-11
packages/devicon-lookup.nix
··· 1 - { 2 - pname, 3 - pkgs, 4 - inputs, 5 - }: 6 - pkgs.rustPlatform.buildRustPackage { 7 - name = pname; 8 - src = inputs.devicon-lookup; 9 - useFetchCargoVendor = true; 10 - cargoHash = "sha256-FYXInaJZhbDmE9NJKJijHfNqqaYOb5xeaZfKP4BOflE="; 11 - }
-13
packages/lazyjj.nix
··· 1 - { 2 - pname, 3 - pkgs, 4 - inputs, 5 - }: 6 - pkgs.rustPlatform.buildRustPackage { 7 - name = pname; 8 - src = inputs.lazyjj; 9 - useFetchCargoVendor = true; 10 - cargoHash = "sha256-1gaOUL+7PjleKMoEQ8ioVjT0thhX5Qe99QXYbOmXFiQ="; 11 - doCheck = false; # rust tests are failing 12 - meta.mainProgram = pname; 13 - }
-14
packages/leader.nix
··· 1 - { 2 - pname, 3 - pkgs, 4 - inputs, 5 - }: 6 - pkgs.buildGoModule rec { 7 - inherit pname; 8 - version = "0.3.2"; 9 - src = inputs.cli-leader; 10 - vendorHash = "sha256-boMBnBXOKLs7W267xjWe5AM5QInvRugz7oAUagSLrHc="; 11 - postPatch = '' 12 - cp ${./leader}/go.* . 13 - ''; 14 - }
-19
packages/leader/go.mod
··· 1 - module github.com/dhamidi/leader 2 - 3 - go 1.20 4 - 5 - require ( 6 - github.com/Nerdmaster/terminal v0.12.1 7 - github.com/gobuffalo/packr v1.30.1 8 - github.com/stretchr/testify v1.3.0 9 - ) 10 - 11 - require ( 12 - github.com/davecgh/go-spew v1.1.1 // indirect 13 - github.com/gobuffalo/envy v1.7.0 // indirect 14 - github.com/gobuffalo/packd v0.3.0 // indirect 15 - github.com/joho/godotenv v1.3.0 // indirect 16 - github.com/pmezard/go-difflib v1.0.0 // indirect 17 - github.com/rogpeppe/go-internal v1.3.0 // indirect 18 - golang.org/x/sys v0.30.0 // indirect 19 - )
-73
packages/leader/go.sum
··· 1 - github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= 2 - github.com/Nerdmaster/terminal v0.12.1 h1:DGb3ya55nZdqdBMjWQHNF5mHYHS2eJgYLqmw3KnE1cQ= 3 - github.com/Nerdmaster/terminal v0.12.1/go.mod h1:Dg6++m3aF+P/l8RdYb/2N6zK3CqvUfzhBreUNEWuQ8M= 4 - github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= 5 - github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= 6 - github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= 7 - github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= 8 - github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= 9 - github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 10 - github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 11 - github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 12 - github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= 13 - github.com/gobuffalo/envy v1.7.0 h1:GlXgaiBkmrYMHco6t4j7SacKO4XUjvh5pwXh0f4uxXU= 14 - github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= 15 - github.com/gobuffalo/logger v1.0.0/go.mod h1:2zbswyIUa45I+c+FLXuWl9zSWEiVuthsk8ze5s8JvPs= 16 - github.com/gobuffalo/packd v0.3.0 h1:eMwymTkA1uXsqxS0Tpoop3Lc0u3kTfiMBE6nKtQU4g4= 17 - github.com/gobuffalo/packd v0.3.0/go.mod h1:zC7QkmNkYVGKPw4tHpBQ+ml7W/3tIebgeo1b36chA3Q= 18 - github.com/gobuffalo/packr v1.30.1 h1:hu1fuVR3fXEZR7rXNW3h8rqSML8EVAf6KNm0NKO/wKg= 19 - github.com/gobuffalo/packr v1.30.1/go.mod h1:ljMyFO2EcrnzsHsN99cvbq055Y9OhRrIaviy289eRuk= 20 - github.com/gobuffalo/packr/v2 v2.5.1/go.mod h1:8f9c96ITobJlPzI44jj+4tHnEKNt0xXWSVlXRN9X1Iw= 21 - github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= 22 - github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= 23 - github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= 24 - github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= 25 - github.com/karrick/godirwalk v1.10.12/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= 26 - github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= 27 - github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= 28 - github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= 29 - github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= 30 - github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= 31 - github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= 32 - github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= 33 - github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= 34 - github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= 35 - github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 36 - github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 37 - github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= 38 - github.com/rogpeppe/go-internal v1.3.0 h1:RR9dF3JtopPvtkroDZuVD7qquD0bnHlKSqaQhgwt8yk= 39 - github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= 40 - github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= 41 - github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= 42 - github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= 43 - github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= 44 - github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= 45 - github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= 46 - github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= 47 - github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= 48 - github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 49 - github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 50 - github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= 51 - github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= 52 - github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= 53 - github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= 54 - github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= 55 - golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= 56 - golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 57 - golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 58 - golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 59 - golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 60 - golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 61 - golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 62 - golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 63 - golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 64 - golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 65 - golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 66 - golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= 67 - golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 68 - golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 69 - golang.org/x/tools v0.0.0-20190624180213-70d37148ca0c/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= 70 - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 71 - gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 72 - gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= 73 - gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-74
packages/os-rebuild.nix
··· 1 - { pkgs, inputs }: 2 - let 3 - 4 - inherit (pkgs) lib; 5 - 6 - same-system-oses = 7 - let 8 - has-same-system = _n: o: o.config.nixpkgs.hostPlatform.system == pkgs.system; 9 - all-oses = (inputs.self.nixosConfigurations or { }) // (inputs.self.darwinConfigurations or { }); 10 - in 11 - lib.filterAttrs has-same-system all-oses; 12 - 13 - os-builder = 14 - name: os: 15 - let 16 - platform = os.config.nixpkgs.hostPlatform; 17 - darwin-rebuild = lib.getExe inputs.nix-darwin.packages.${platform.system}.darwin-rebuild; 18 - nixos-rebuild = lib.getExe pkgs.nixos-rebuild; 19 - flake-param = ''--flake "path:${inputs.self}#${name}" ''; 20 - in 21 - pkgs.writeShellApplication { 22 - name = "${name}-os-rebuild"; 23 - text = '' 24 - ${if platform.isDarwin then darwin-rebuild else nixos-rebuild} ${flake-param} "''${@}" 25 - ''; 26 - }; 27 - 28 - os-builders = lib.mapAttrs os-builder same-system-oses; 29 - 30 - os-rebuild = pkgs.writeShellApplication { 31 - name = "os-rebuild"; 32 - text = '' 33 - export PATH="${ 34 - pkgs.lib.makeBinPath ( 35 - (lib.attrValues os-builders) 36 - ++ [ 37 - pkgs.coreutils 38 - ] 39 - ++ (lib.optionals pkgs.stdenv.isLinux [ pkgs.systemd ]) 40 - 41 - ) 42 - }" 43 - 44 - if [ "-h" = "''${1:-}" ] || [ "--help" = "''${1:-}" ]; then 45 - echo Usage: "$0" [HOSTNAME] [${ 46 - if pkgs.stdenv.isDarwin then "DARWIN" else "NIXOS" 47 - }-REBUILD OPTIONS ...] 48 - echo 49 - echo Default hostname: "$(uname -n)" 50 - echo Default ${if pkgs.stdenv.isDarwin then "darwin" else "nixos"}-rebuild options: switch 51 - echo 52 - echo Known hostnames on ${pkgs.system}: 53 - echo "${lib.concatStringsSep "\n" (lib.attrNames same-system-oses)}" 54 - exit 0 55 - fi 56 - 57 - if test "file" = "$(type -t "''${1:-_}-os-rebuild")"; then 58 - hostname="$1" 59 - shift 60 - else 61 - hostname="$(uname -n)" 62 - fi 63 - 64 - if test "file" = "$(type -t "$hostname-os-rebuild")"; then 65 - "$hostname-os-rebuild" "''${@:-switch}" 66 - else 67 - echo "No configuration found for host: $hostname" 68 - exit 1 69 - fi 70 - ''; 71 - }; 72 - 73 - in 74 - os-rebuild
-1
packages/shell.nix
··· 1 - { pkgs, inputs, ... }: inputs.self.devShells.${pkgs.system}.default
-79
packages/vic-sops-get.nix
··· 1 - { pname, pkgs, ... }: 2 - pkgs.writeShellApplication { 3 - name = pname; 4 - text = '' 5 - export PATH="${ 6 - pkgs.lib.makeBinPath [ 7 - pkgs.sops 8 - pkgs.ssh-to-age 9 - ] 10 - }:$PATH" 11 - declare -a args more 12 - 13 - file="" 14 - dry="" 15 - extract="" 16 - server="" 17 - setup="" 18 - 19 - while test -n "''${1:-}"; do 20 - first="$1" 21 - shift 22 - case "$first" in 23 - "--setup") 24 - setup="$1" 25 - shift 26 - ;; 27 - "--dry-run") 28 - dry="true" 29 - ;; 30 - "-f" | "--file") 31 - file="${./..}/modules/home/vic/secrets/$1" 32 - shift 33 - ;; 34 - "-a" | "--attr") 35 - file="${./..}/modules/home/vic/secrets.yaml" 36 - extract="[\"$1\"]" 37 - shift 38 - ;; 39 - "-s" | "--keyservice") 40 - server="$1" 41 - shift 42 - ;; 43 - *) 44 - more+=("$first") 45 - ;; 46 - esac 47 - done 48 - 49 - if test -n "$extract"; then 50 - args+=("--extract" "$extract") 51 - fi 52 - 53 - if test -n "$server"; then 54 - args+=("--enable-local-service=false" "--keyservice" "$server") 55 - fi 56 - 57 - args+=("''${more[@]}") 58 - 59 - if test -n "$file"; then 60 - args+=("$file") 61 - fi 62 - 63 - function perform_setup() { 64 - echo -n "Password: " >&2 65 - local pass 66 - read -r -s pass 67 - sops decrypt "''${args[@]}" | SSH_TO_AGE_PASSPHRASE="$pass" ssh-to-age -private-key -o "$setup" 2>/dev/null 68 - } 69 - 70 - if test -n "$dry"; then 71 - echo "sops decrypt" "''${args[@]}" 72 - exit 0 73 - elif test -n "$setup"; then 74 - perform_setup 75 - else 76 - exec sops decrypt "''${args[@]}" 77 - fi 78 - ''; 79 - }