Vic's *Nix config.

upgrade den

moar

+2060 -371
-4
.envrc
··· 1 - source_env .envrc.local 2 - # use flake 3 - 4 -
+3
.gitignore
··· 1 1 cha 2 2 result 3 3 old 4 + .envrc 5 + .envrc.local 4 6 .devenv 5 7 .direnv 6 8 .DS_Store 9 + .jj 7 10 *cow*
+10 -116
README.md
··· 2 2 3 3 My repo serves as an educational example showing how [den](https://github.com/vic/den) and my related [libs](https://vic.github.io/dendrix/Dendritic-Ecosystem.html#vics-dendritic-libraries) structure a [Dendritic](https://vic.github.io/dendrix/Dendritic.html) NixOS setup with **named, composable aspects** instead of file imports. This is just one of many possible ways to organize a dendritic implementation. Feel free to explore, and share how you do things. 4 4 5 - 6 5 This specific setup is powered by **[den](https://github.com/vic/den) · [flake-aspects](https://github.com/vic/flake-aspects) · [denful](https://github.com/vic/denful) · [flake-file](https://github.com/vic/flake-file) · [import-tree](https://github.com/vic/import-tree) · [flake-parts](https://github.com/hercules-ci/flake-parts)** 7 6 8 7 -- ··· 23 22 24 23 ``` 25 24 modules/ 26 - ├── dendritic.nix # Bootstraps dendritic libs 27 - ├── community/vix.nix # Creates vix.* namespace 28 - ├── hosts.nix # Declares hosts, wires default profiles 29 - ├── community/ 30 - │ └── profile.nix # Defines host-profile and user-profile hooks 31 - ├── hosts/ 32 - │ └── nargun.nix # Composes aspects for nargun host 33 - └── vic/ 34 - └── common-host-env.nix # Composes user environment aspects 35 - ``` 36 - 37 - ## Key Patterns 38 - 39 - ### 1. Custom Namespace ([`vix.nix`](modules/community/vix.nix)) 40 - ```nix 41 - den.aspects.vix = { }; # you can also use flake.aspects to expose all to flake.modules. 42 - flake.vix = config.den.aspects.vix._; # I just want to expose the vix aspect tree. 43 - _module.args.vix = config.den.aspects.vix._; 44 - ``` 45 - 46 - Creates `vix.*` namespace. Everything under `vix` belongs to this config. 47 - 48 - The `vix` namespace is written to directly, and read from module args, it is also shared as a flake output. 49 - Meaning other people can do `_module.args.vix = inputs.vix.vix`, and re-use modules from this repository's `community/` exactly as they are. Adopting a namespace for your aspects allows re-use for people using import-tree to load files from community repos. 50 - 51 - 52 - 53 - ### 2. Central Host Declaration ([`hosts.nix`](modules/hosts.nix)) 54 - ```nix 55 - den.hosts.x86_64-linux.nargun.users.vic = { }; 56 - 57 - den.default.host._.host.includes = [ vix.host-profile ]; 58 - den.default.user._.user.includes = [ vix.user-profile ]; 59 - ``` 60 - All hosts declared here. Default profiles automatically applied to every host/user. 61 - 62 - ### 3. Dynamic Profile Routing ([`profile.nix`](modules/community/profile.nix)) 63 - ```nix 64 - vix.host-profile = { host }: { 65 - # access host profile from vix, many modules can contribute to the same aspect. 66 - includes = [ vix.${host.name} ]; 67 - }; 68 - 69 - vix.user-profile = { host, user }: { 70 - # users can enhance the host they are part of, by providing aspects to it. 71 - includes = [ (vix.${user.name}._.common-host-env { inherit host user; }) ]; 72 - }; 73 - ``` 74 - Profiles select aspects by host/user name. `vix.nargun` wired automatically for nargun host. 75 - 76 - ### 4. Aspect Composition with Variants ([`nargun.nix`](modules/hosts/nargun.nix)) 77 - ```nix 78 - vix.nargun._ = { 79 - base.includes = [ vix.dev-laptop ]; 80 - hw.includes = [ vix.kvm-amd vix.niri-desktop ]; 81 - }; 82 - 83 - vix.nargun.includes = [ vix.nargun._.base vix.nargun._.hw ]; 84 - vix.nargun-vm.includes = [ vix.nargun._.base vix.nargun._.vm ]; 85 - ``` 86 - Sub-aspects via `provides.X` become `_.X`. Hardware and VM share `base`. 87 - 88 - ### 5. User Environment Assembly ([`common-host-env.nix`](modules/vic/common-host-env.nix)) 89 - ```nix 90 - vix.vic._.common-host-env = { host, user }: { 91 - includes = map (f: f { inherit host user; }) [ 92 - vix.vic._.admin 93 - vix.vic._.fish 94 - // ... more aspects 95 - ]; 96 - }; 97 - ``` 98 - User profile calls this with context. Each aspect receives `{ host, user }`. 99 - 100 - ### 6. Multi-Class Aspects ([`fish.nix`](modules/vic/fish.nix)) 101 - ```nix 102 - vix.vic._.fish = { user, ... }: { 103 - nixos.users.users.${user.userName}.shell = pkgs.fish; 104 - homeManager.programs.fish.enable = true; 105 - }; 25 + ├── dendritic.nix # Bootstraps dendritic libs 26 + ├── namespace.nix # Creates `vix`, `vic`, `my` namespaces. 27 + ├── my/ # Infra related aspects 28 + │ |── hosts.nix # Declares hosts, wires default profiles 29 + │ |── user.nix # Composes aspect used across all hosts. 30 + │ └── workstation.nix # Composes host setup. 31 + ├── vic/ # User aspects and user settings. 32 + │ └── *.nix # many home-manager and os-config from vic. 33 + └── community/vix/ # Community shared aspects 34 + └── *.nix # Exposed at flake.denful.vix 106 35 ``` 107 - Single aspect configures both system and home-manager. 108 - 109 - ## The Flow 110 - 111 - 1. **[`dendritic.nix`](modules/dendritic.nix)** loads dendritic libs 112 - 2. **[`vix.nix`](modules/vix.nix)** creates namespace (`vix.*`) 113 - 3. **[`hosts.nix`](modules/hosts.nix)** declares hosts and wires profiles: 114 - - `den.hosts.x86_64-linux.nargun.users.vic = { }` 115 - - Every host includes `vix.host-profile` 116 - - Every user includes `vix.user-profile` 117 - 4. **[`profile.nix`](modules/community/profile.nix)** routes by name: 118 - - `vix.host-profile` → `vix.${host.name}` (e.g., `vix.nargun`) 119 - - `vix.user-profile` → `vix.${user.name}._.common-host-env` 120 - 5. **[`nargun.nix`](modules/hosts/nargun.nix)** composes host aspects 121 - 6. **[`common-host-env.nix`](modules/vic/common-host-env.nix)** composes user aspects 122 - 123 - Result: Declare a host in one place, everything wires automatically via naming convention. 124 - 125 - ## Learning Path 126 - 127 - Follow the flow above, then explore: 128 - - **[`fish.nix`](modules/vic/fish.nix)** - Simple parametric aspect 129 - - **[`unfree.nix`](modules/community/unfree.nix)** - Aspect factory pattern 130 - - **[`vm.nix`](modules/vm.nix)** - Package system as VM: `nix run github:vic/vix/den#vm` 131 - 132 - ## Why Dendritic? 133 - 134 - 135 - - Named aspects instead of manual imports. 136 - 137 - - Functional Composition instead of Duplication. 138 - 139 - - Parameters intead of Hardcoding. 140 - 141 - - Sharing instead of Copy+Pasting.
+352 -36
flake.lock
··· 78 78 }, 79 79 "den": { 80 80 "locked": { 81 - "lastModified": 1761868207, 82 - "narHash": "sha256-7SFc4wObbOSKsqopFN6HuAZP6OZp6ORwVlKURCKl6OM=", 81 + "lastModified": 1763036570, 82 + "narHash": "sha256-HXcnYkYz8ZXkQYH87Rf5YcRODA6YflTv0OTm+Kwrd3A=", 83 83 "owner": "vic", 84 84 "repo": "den", 85 - "rev": "4e505fe86821776357c2c13a567e1628f974db21", 85 + "rev": "0b4cbcd882e3d0017b5ae4f8714e85406890aaa7", 86 86 "type": "github" 87 87 }, 88 88 "original": { ··· 94 94 "doom-emacs": { 95 95 "flake": false, 96 96 "locked": { 97 - "lastModified": 1760602791, 98 - "narHash": "sha256-voIvrHMgs2zFNtYDxVnyBpmSCE3NFZAhhcZsUneDMLw=", 97 + "lastModified": 1762312706, 98 + "narHash": "sha256-R3I8NErGSCd6kSTUBNe7SNcRDUtJ1xl8zvD13C6SrRg=", 99 99 "owner": "doomemacs", 100 100 "repo": "doomemacs", 101 - "rev": "f9664ae058d67b8d97cb8a9c40744fefc3e5479f", 101 + "rev": "ead254e15269bf8564625df4c8d2af6690a0df49", 102 102 "type": "github" 103 103 }, 104 104 "original": { ··· 107 107 "type": "github" 108 108 } 109 109 }, 110 + "enthium": { 111 + "flake": false, 112 + "locked": { 113 + "lastModified": 1760892647, 114 + "narHash": "sha256-/bsC7paA1XZgFRo9Ro5EjEq+Ci0WoiCCiW9JZlAXYQE=", 115 + "owner": "sunaku", 116 + "repo": "enthium", 117 + "rev": "e8a622a52db518c41c32d0c3446469f250b16099", 118 + "type": "github" 119 + }, 120 + "original": { 121 + "owner": "sunaku", 122 + "ref": "v10", 123 + "repo": "enthium", 124 + "type": "github" 125 + } 126 + }, 110 127 "flake-aspects": { 111 128 "locked": { 112 - "lastModified": 1761855217, 113 - "narHash": "sha256-hw/JcRW+th/7wm2W3cj3Iy8gLZhshtbaq26v8J15dGM=", 129 + "lastModified": 1762465224, 130 + "narHash": "sha256-jfXLTwngKXwFOCVfCupHGcCw/OIpgy5lMYIF8KPfMN8=", 114 131 "owner": "vic", 115 132 "repo": "flake-aspects", 116 - "rev": "c1773064daef959c3eb3b002b785a713691aa524", 133 + "rev": "4cbae79bc642311f45c211f9c20d20226544b6f9", 117 134 "type": "github" 118 135 }, 119 136 "original": { ··· 122 139 "type": "github" 123 140 } 124 141 }, 142 + "flake-compat": { 143 + "flake": false, 144 + "locked": { 145 + "lastModified": 1761588595, 146 + "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", 147 + "owner": "edolstra", 148 + "repo": "flake-compat", 149 + "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", 150 + "type": "github" 151 + }, 152 + "original": { 153 + "owner": "edolstra", 154 + "repo": "flake-compat", 155 + "type": "github" 156 + } 157 + }, 125 158 "flake-file": { 126 159 "locked": { 127 - "lastModified": 1761535278, 128 - "narHash": "sha256-OPZ7XpG778i9CIJfchAwgrZGZ9z1dWJzfN18VFxCyS4=", 160 + "lastModified": 1762327726, 161 + "narHash": "sha256-00lK6KafFqVRZIHOdaP+U/VUlvAY+yjcGCyDjPYeVdg=", 129 162 "owner": "vic", 130 163 "repo": "flake-file", 131 - "rev": "57b2a65831ae49e4f9218dbba1c2dc9700f6cd68", 164 + "rev": "49560458c1a77662fbd8158167dfe03d51e3d0ee", 132 165 "type": "github" 133 166 }, 134 167 "original": { ··· 144 177 ] 145 178 }, 146 179 "locked": { 147 - "lastModified": 1760948891, 148 - "narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=", 180 + "lastModified": 1762040540, 181 + "narHash": "sha256-z5PlZ47j50VNF3R+IMS9LmzI5fYRGY/Z5O5tol1c9I4=", 149 182 "owner": "hercules-ci", 150 183 "repo": "flake-parts", 151 - "rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04", 184 + "rev": "0010412d62a25d959151790968765a70c436598b", 152 185 "type": "github" 153 186 }, 154 187 "original": { ··· 157 190 "type": "github" 158 191 } 159 192 }, 193 + "flake-parts_2": { 194 + "inputs": { 195 + "nixpkgs-lib": [ 196 + "nixpkgs-lib" 197 + ] 198 + }, 199 + "locked": { 200 + "lastModified": 1762040540, 201 + "narHash": "sha256-z5PlZ47j50VNF3R+IMS9LmzI5fYRGY/Z5O5tol1c9I4=", 202 + "owner": "hercules-ci", 203 + "repo": "flake-parts", 204 + "rev": "0010412d62a25d959151790968765a70c436598b", 205 + "type": "github" 206 + }, 207 + "original": { 208 + "owner": "hercules-ci", 209 + "repo": "flake-parts", 210 + "type": "github" 211 + } 212 + }, 213 + "flake-utils": { 214 + "inputs": { 215 + "systems": "systems_4" 216 + }, 217 + "locked": { 218 + "lastModified": 1681202837, 219 + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", 220 + "owner": "numtide", 221 + "repo": "flake-utils", 222 + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", 223 + "type": "github" 224 + }, 225 + "original": { 226 + "owner": "numtide", 227 + "repo": "flake-utils", 228 + "type": "github" 229 + } 230 + }, 160 231 "home-manager": { 161 232 "inputs": { 162 233 "nixpkgs": [ ··· 164 235 ] 165 236 }, 166 237 "locked": { 167 - "lastModified": 1761878381, 168 - "narHash": "sha256-lCRaipHgszaFZ1Cs8fdGJguVycCisBAf2HEFgip5+xU=", 238 + "lastModified": 1762787259, 239 + "narHash": "sha256-t2U/GLLXHa2+kJkwnFNRVc2fEJ/lUfyZXBE5iKzJdcs=", 169 240 "owner": "nix-community", 170 241 "repo": "home-manager", 171 - "rev": "4ac96eb21c101a3e5b77ba105febc5641a8959aa", 242 + "rev": "37a3d97f2873e0f68711117c34d04b7c7ead8f4e", 172 243 "type": "github" 173 244 }, 174 245 "original": { ··· 179 250 }, 180 251 "import-tree": { 181 252 "locked": { 182 - "lastModified": 1761120675, 183 - "narHash": "sha256-TEbh9zISiQcU82VwVoEbmXHnSGlUxTwvjJA9g9ErSDA=", 253 + "lastModified": 1762327901, 254 + "narHash": "sha256-AJ96FNj50DU0bTyIzAPkPOjCZTHqjURVjok8qoXvmqM=", 184 255 "owner": "vic", 185 256 "repo": "import-tree", 186 - "rev": "a037ed2a58fc0ebed9e93b9ef79b0646e648f719", 257 + "rev": "90fa129798be99cde036b78658e89475710966a1", 187 258 "type": "github" 188 259 }, 189 260 "original": { ··· 192 263 "type": "github" 193 264 } 194 265 }, 266 + "jjui": { 267 + "inputs": { 268 + "flake-parts": "flake-parts_2", 269 + "nixpkgs": "nixpkgs_2", 270 + "systems": "systems_2" 271 + }, 272 + "locked": { 273 + "lastModified": 1762979787, 274 + "narHash": "sha256-XVe1PEW+60fFLj9VGt7FG839faKtKq2vinAiyFrD2LQ=", 275 + "owner": "idursun", 276 + "repo": "jjui", 277 + "rev": "1356d11a3fc193f9ed142028010cbef34b128ee3", 278 + "type": "github" 279 + }, 280 + "original": { 281 + "owner": "idursun", 282 + "repo": "jjui", 283 + "type": "github" 284 + } 285 + }, 195 286 "nix-auto-follow": { 196 287 "inputs": { 197 288 "nixpkgs": [ ··· 212 303 "type": "github" 213 304 } 214 305 }, 306 + "nix-darwin": { 307 + "inputs": { 308 + "nixpkgs": "nixpkgs_3" 309 + }, 310 + "locked": { 311 + "lastModified": 1762627886, 312 + "narHash": "sha256-/QLk1bzmbcqJt9sU43+y/3tHtXhAy0l8Ck0MoO2+evQ=", 313 + "owner": "LnL7", 314 + "repo": "nix-darwin", 315 + "rev": "5125a3cd414dc98bbe2c528227aa6b62ee61f733", 316 + "type": "github" 317 + }, 318 + "original": { 319 + "owner": "LnL7", 320 + "repo": "nix-darwin", 321 + "type": "github" 322 + } 323 + }, 324 + "nix-index-database": { 325 + "inputs": { 326 + "nixpkgs": "nixpkgs_4" 327 + }, 328 + "locked": { 329 + "lastModified": 1762660502, 330 + "narHash": "sha256-C9F1C31ys0V7mnp4EcDy7L1cLZw/sCTEXqqTtGnvu08=", 331 + "owner": "nix-community", 332 + "repo": "nix-index-database", 333 + "rev": "15c5451c63f4c612874a43846bfe3fa828b03eee", 334 + "type": "github" 335 + }, 336 + "original": { 337 + "owner": "nix-community", 338 + "repo": "nix-index-database", 339 + "type": "github" 340 + } 341 + }, 342 + "nixos-wsl": { 343 + "inputs": { 344 + "flake-compat": "flake-compat", 345 + "nixpkgs": "nixpkgs_5" 346 + }, 347 + "locked": { 348 + "lastModified": 1762908663, 349 + "narHash": "sha256-HqdYfzBaidYX+EYAcXDFCggXJPZBv2fusMwhc7/4+cI=", 350 + "owner": "nix-community", 351 + "repo": "nixos-wsl", 352 + "rev": "debc562c48c445f9f08778ecb9fc6b35197623ad", 353 + "type": "github" 354 + }, 355 + "original": { 356 + "owner": "nix-community", 357 + "repo": "nixos-wsl", 358 + "type": "github" 359 + } 360 + }, 215 361 "nixpkgs": { 216 362 "locked": { 217 - "lastModified": 1761849641, 218 - "narHash": "sha256-b8mTUdmB80tHcvvVD+Gf+X2HMMxHGiD/UmOr5nYDAmY=", 363 + "lastModified": 1762604901, 364 + "narHash": "sha256-Pr2jpryIaQr9Yx8p6QssS03wqB6UifnnLr3HJw9veDw=", 219 365 "owner": "nixos", 220 366 "repo": "nixpkgs", 221 - "rev": "45ebaee5d90bab997812235564af4cf5107bde89", 367 + "rev": "f6b44b2401525650256b977063dbcf830f762369", 222 368 "type": "github" 223 369 }, 224 370 "original": { ··· 230 376 }, 231 377 "nixpkgs_2": { 232 378 "locked": { 233 - "lastModified": 1761849641, 234 - "narHash": "sha256-b8mTUdmB80tHcvvVD+Gf+X2HMMxHGiD/UmOr5nYDAmY=", 379 + "lastModified": 1762604901, 380 + "narHash": "sha256-Pr2jpryIaQr9Yx8p6QssS03wqB6UifnnLr3HJw9veDw=", 381 + "owner": "nixos", 382 + "repo": "nixpkgs", 383 + "rev": "f6b44b2401525650256b977063dbcf830f762369", 384 + "type": "github" 385 + }, 386 + "original": { 387 + "owner": "nixos", 388 + "ref": "nixpkgs-unstable", 389 + "repo": "nixpkgs", 390 + "type": "github" 391 + } 392 + }, 393 + "nixpkgs_3": { 394 + "locked": { 395 + "lastModified": 1762604901, 396 + "narHash": "sha256-Pr2jpryIaQr9Yx8p6QssS03wqB6UifnnLr3HJw9veDw=", 397 + "owner": "nixos", 398 + "repo": "nixpkgs", 399 + "rev": "f6b44b2401525650256b977063dbcf830f762369", 400 + "type": "github" 401 + }, 402 + "original": { 403 + "owner": "nixos", 404 + "ref": "nixpkgs-unstable", 405 + "repo": "nixpkgs", 406 + "type": "github" 407 + } 408 + }, 409 + "nixpkgs_4": { 410 + "locked": { 411 + "lastModified": 1762604901, 412 + "narHash": "sha256-Pr2jpryIaQr9Yx8p6QssS03wqB6UifnnLr3HJw9veDw=", 413 + "owner": "nixos", 414 + "repo": "nixpkgs", 415 + "rev": "f6b44b2401525650256b977063dbcf830f762369", 416 + "type": "github" 417 + }, 418 + "original": { 419 + "owner": "nixos", 420 + "ref": "nixpkgs-unstable", 421 + "repo": "nixpkgs", 422 + "type": "github" 423 + } 424 + }, 425 + "nixpkgs_5": { 426 + "locked": { 427 + "lastModified": 1762604901, 428 + "narHash": "sha256-Pr2jpryIaQr9Yx8p6QssS03wqB6UifnnLr3HJw9veDw=", 235 429 "owner": "nixos", 236 430 "repo": "nixpkgs", 237 - "rev": "45ebaee5d90bab997812235564af4cf5107bde89", 431 + "rev": "f6b44b2401525650256b977063dbcf830f762369", 432 + "type": "github" 433 + }, 434 + "original": { 435 + "owner": "nixos", 436 + "ref": "nixpkgs-unstable", 437 + "repo": "nixpkgs", 438 + "type": "github" 439 + } 440 + }, 441 + "nixpkgs_6": { 442 + "locked": { 443 + "lastModified": 1762604901, 444 + "narHash": "sha256-Pr2jpryIaQr9Yx8p6QssS03wqB6UifnnLr3HJw9veDw=", 445 + "owner": "nixos", 446 + "repo": "nixpkgs", 447 + "rev": "f6b44b2401525650256b977063dbcf830f762369", 448 + "type": "github" 449 + }, 450 + "original": { 451 + "owner": "nixos", 452 + "ref": "nixpkgs-unstable", 453 + "repo": "nixpkgs", 454 + "type": "github" 455 + } 456 + }, 457 + "nixpkgs_7": { 458 + "locked": { 459 + "lastModified": 1762604901, 460 + "narHash": "sha256-Pr2jpryIaQr9Yx8p6QssS03wqB6UifnnLr3HJw9veDw=", 461 + "owner": "nixos", 462 + "repo": "nixpkgs", 463 + "rev": "f6b44b2401525650256b977063dbcf830f762369", 464 + "type": "github" 465 + }, 466 + "original": { 467 + "owner": "nixos", 468 + "ref": "nixpkgs-unstable", 469 + "repo": "nixpkgs", 470 + "type": "github" 471 + } 472 + }, 473 + "nixpkgs_8": { 474 + "locked": { 475 + "lastModified": 1762604901, 476 + "narHash": "sha256-Pr2jpryIaQr9Yx8p6QssS03wqB6UifnnLr3HJw9veDw=", 477 + "owner": "nixos", 478 + "repo": "nixpkgs", 479 + "rev": "f6b44b2401525650256b977063dbcf830f762369", 238 480 "type": "github" 239 481 }, 240 482 "original": { ··· 249 491 "SPC": "SPC", 250 492 "den": "den", 251 493 "doom-emacs": "doom-emacs", 494 + "enthium": "enthium", 252 495 "flake-aspects": "flake-aspects", 253 496 "flake-file": "flake-file", 254 497 "flake-parts": "flake-parts", 255 498 "home-manager": "home-manager", 256 499 "import-tree": "import-tree", 500 + "jjui": "jjui", 257 501 "nix-auto-follow": "nix-auto-follow", 258 - "nixpkgs": "nixpkgs_2", 502 + "nix-darwin": "nix-darwin", 503 + "nix-index-database": "nix-index-database", 504 + "nixos-wsl": "nixos-wsl", 505 + "nixpkgs": "nixpkgs_6", 259 506 "nixpkgs-lib": [ 260 507 "nixpkgs" 261 508 ], 262 - "systems": "systems_2", 263 - "treefmt-nix": "treefmt-nix_2" 509 + "sops-nix": "sops-nix", 510 + "systems": "systems_3", 511 + "treefmt-nix": "treefmt-nix_2", 512 + "vscode-server": "vscode-server" 513 + } 514 + }, 515 + "sops-nix": { 516 + "inputs": { 517 + "nixpkgs": "nixpkgs_7" 518 + }, 519 + "locked": { 520 + "lastModified": 1763023272, 521 + "narHash": "sha256-TCVNCn/GcKhwm+WlSJEZEPW4ISQdU9ICIU3lTiOLBYc=", 522 + "owner": "Mic92", 523 + "repo": "sops-nix", 524 + "rev": "b80c966e70fa0615352c9596315678df1de75801", 525 + "type": "github" 526 + }, 527 + "original": { 528 + "owner": "Mic92", 529 + "repo": "sops-nix", 530 + "type": "github" 264 531 } 265 532 }, 266 533 "systems": { ··· 293 560 "type": "github" 294 561 } 295 562 }, 563 + "systems_3": { 564 + "locked": { 565 + "lastModified": 1681028828, 566 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 567 + "owner": "nix-systems", 568 + "repo": "default", 569 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 570 + "type": "github" 571 + }, 572 + "original": { 573 + "owner": "nix-systems", 574 + "repo": "default", 575 + "type": "github" 576 + } 577 + }, 578 + "systems_4": { 579 + "locked": { 580 + "lastModified": 1681028828, 581 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 582 + "owner": "nix-systems", 583 + "repo": "default", 584 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 585 + "type": "github" 586 + }, 587 + "original": { 588 + "owner": "nix-systems", 589 + "repo": "default", 590 + "type": "github" 591 + } 592 + }, 296 593 "treefmt-nix": { 297 594 "inputs": { 298 595 "nixpkgs": [ ··· 300 597 ] 301 598 }, 302 599 "locked": { 303 - "lastModified": 1761311587, 304 - "narHash": "sha256-Msq86cR5SjozQGCnC6H8C+0cD4rnx91BPltZ9KK613Y=", 600 + "lastModified": 1762305549, 601 + "narHash": "sha256-iHxl8YwQsCX9QyB0ImEvmr+C3FuZP0BR/9vMmjbaITA=", 305 602 "owner": "numtide", 306 603 "repo": "treefmt-nix", 307 - "rev": "2eddae033e4e74bf581c2d1dfa101f9033dbd2dc", 604 + "rev": "144d1e80d642c50c71846c0cb674e86c956e9a24", 308 605 "type": "github" 309 606 }, 310 607 "original": { ··· 320 617 ] 321 618 }, 322 619 "locked": { 323 - "lastModified": 1761311587, 324 - "narHash": "sha256-Msq86cR5SjozQGCnC6H8C+0cD4rnx91BPltZ9KK613Y=", 620 + "lastModified": 1762305549, 621 + "narHash": "sha256-iHxl8YwQsCX9QyB0ImEvmr+C3FuZP0BR/9vMmjbaITA=", 325 622 "owner": "numtide", 326 623 "repo": "treefmt-nix", 327 - "rev": "2eddae033e4e74bf581c2d1dfa101f9033dbd2dc", 624 + "rev": "144d1e80d642c50c71846c0cb674e86c956e9a24", 328 625 "type": "github" 329 626 }, 330 627 "original": { 331 628 "owner": "numtide", 332 629 "repo": "treefmt-nix", 630 + "type": "github" 631 + } 632 + }, 633 + "vscode-server": { 634 + "inputs": { 635 + "flake-utils": "flake-utils", 636 + "nixpkgs": "nixpkgs_8" 637 + }, 638 + "locked": { 639 + "lastModified": 1753541826, 640 + "narHash": "sha256-foGgZu8+bCNIGeuDqQ84jNbmKZpd+JvnrL2WlyU4tuU=", 641 + "owner": "nix-community", 642 + "repo": "nixos-vscode-server", 643 + "rev": "6d5f074e4811d143d44169ba4af09b20ddb6937d", 644 + "type": "github" 645 + }, 646 + "original": { 647 + "owner": "nix-community", 648 + "repo": "nixos-vscode-server", 333 649 "type": "github" 334 650 } 335 651 }
+22
flake.nix
··· 15 15 flake = false; 16 16 url = "github:doomemacs/doomemacs"; 17 17 }; 18 + enthium = { 19 + flake = false; 20 + url = "github:sunaku/enthium/v10"; 21 + }; 18 22 flake-aspects = { 19 23 url = "github:vic/flake-aspects"; 20 24 }; ··· 40 44 import-tree = { 41 45 url = "github:vic/import-tree"; 42 46 }; 47 + jjui = { 48 + url = "github:idursun/jjui"; 49 + }; 43 50 nix-auto-follow = { 44 51 inputs = { 45 52 nixpkgs = { ··· 48 55 }; 49 56 url = "github:fzakaria/nix-auto-follow"; 50 57 }; 58 + nix-darwin = { 59 + url = "github:LnL7/nix-darwin"; 60 + }; 61 + nix-index-database = { 62 + url = "github:nix-community/nix-index-database"; 63 + }; 64 + nixos-wsl = { 65 + url = "github:nix-community/nixos-wsl"; 66 + }; 51 67 nixpkgs = { 52 68 url = "github:nixos/nixpkgs/nixpkgs-unstable"; 53 69 }; 54 70 nixpkgs-lib = { 55 71 follows = "nixpkgs"; 56 72 }; 73 + sops-nix = { 74 + url = "github:Mic92/sops-nix"; 75 + }; 57 76 systems = { 58 77 url = "github:nix-systems/default"; 59 78 }; ··· 64 83 }; 65 84 }; 66 85 url = "github:numtide/treefmt-nix"; 86 + }; 87 + vscode-server = { 88 + url = "github:nix-community/nixos-vscode-server"; 67 89 }; 68 90 }; 69 91
-11
modules/_local-inputs.nix
··· 1 - # override inputs with vic's development repos. 2 - { lib, ... }: 3 - { 4 - 5 - flake-file.inputs = lib.mkIf (builtins.pathExists ../../den) { 6 - den.url = "path:/home/vic/hk/den"; 7 - denful.url = "path:/home/vic/hk/denful"; 8 - flake-aspects.url = "path:/home/vic/hk/flake-aspects"; 9 - }; 10 - 11 - }
+23
modules/ci.nix
··· 1 + { ... }: 2 + { 3 + perSystem = 4 + { pkgs, self', ... }: 5 + let 6 + checkCond = name: cond: pkgs.runCommandLocal name { } (if cond then "touch $out" else ""); 7 + # apple = inputs.self.darwinConfigurations.apple.config; 8 + # igloo = inputs.self.nixosConfigurations.igloo.config; 9 + # alice-at-igloo = igloo.home-manager.users.alice; 10 + vmBuilds = !pkgs.stdenvNoCC.isLinux || builtins.pathExists (self'.packages.vm + "/bin/vm"); 11 + # iglooBuilds = !pkgs.stdenvNoCC.isLinux || builtins.pathExists (igloo.system.build.toplevel); 12 + # appleBuilds = !pkgs.stdenvNoCC.isDarwin || builtins.pathExists (apple.system.build.toplevel); 13 + in 14 + { 15 + # checks."igloo builds" = checkCond "igloo-builds" iglooBuilds; 16 + # checks."apple builds" = checkCond "apple-builds" appleBuilds; 17 + checks."vm builds" = checkCond "vm-builds" vmBuilds; 18 + 19 + # checks."alice enabled igloo nh" = checkCond "alice.provides.igloo" igloo.programs.nh.enable; 20 + # checks."igloo enabled alice helix" = 21 + # checkCond "igloo.provides.alice" alice-at-igloo.programs.helix.enable; 22 + }; 23 + }
+1 -1
modules/community/autologin.nix modules/community/vix/autologin.nix
··· 1 1 { 2 - vix.autologin = user: { 2 + vix.autologin = { user, ... }: { 3 3 nixos = 4 4 { config, lib, ... }: 5 5 lib.mkIf config.services.displayManager.enable {
modules/community/bluetooth.nix modules/community/vix/bluetooth.nix
modules/community/bootable.nix modules/community/vix/bootable.nix
+1
modules/community/dev-laptop.nix modules/community/vix/dev-laptop.nix
··· 7 7 vix.sound 8 8 vix.xserver 9 9 vix.hw-detect 10 + vix.macos-keys 10 11 ]; 11 12 nixos = { 12 13 security.rtkit.enable = true;
+1 -1
modules/community/host-name.nix modules/community/vix/hostname.nix
··· 1 1 { 2 - vix.host-name = host: { 2 + vix.hostname = { host, ... }: { 3 3 ${host.class}.networking.hostName = host.hostName; 4 4 }; 5 5 }
modules/community/hw-detect.nix modules/community/vix/hw-detect.nix
modules/community/kde-desktop.nix modules/community/vix/kde-desktop.nix
modules/community/kvm-amd.nix modules/community/vix/kvm-amd.nix
modules/community/mexico.nix modules/community/vix/mexico.nix
modules/community/networking.nix modules/community/vix/networking.nix
modules/community/niri-desktop.nix modules/community/vix/niri-desktop.nix
-22
modules/community/profile.nix
··· 1 - { vix, ... }: 2 - { 3 - vix.host-profile = 4 - { host }: 5 - { 6 - includes = [ 7 - (vix.${host.name} or { }) 8 - (vix.host-name host) 9 - vix.state-version 10 - ]; 11 - }; 12 - 13 - vix.user-profile = 14 - { host, user }@ctx: 15 - { 16 - includes = [ 17 - (vix."${user.name}@${host.name}" or { }) 18 - ((vix.${host.name}._.common-user-env or (_: { })) ctx) 19 - ((vix.${user.name}._.common-host-env or (_: { })) ctx) 20 - ]; 21 - }; 22 - }
modules/community/sound.nix modules/community/vix/sound.nix
+1 -1
modules/community/state-version.nix modules/my/state-version.nix
··· 1 1 { 2 - vix.state-version = { 2 + my.state-version = { 3 3 nixos.system.stateVersion = "25.11"; 4 4 homeManager.home.stateVersion = "25.11"; 5 5 darwin.system.stateVersion = 6;
-23
modules/community/unfree.nix
··· 1 - { 2 - 3 - # Creates an aspect that allows 4 - # unfree packages on dynamic nix clases. 5 - # 6 - # usage: 7 - # den.aspects.my-laptop.includes = [ 8 - # (vix.unfree [ "cursor" ]) 9 - # ] 10 - vix.unfree = allowed-names: { 11 - __functor = 12 - _: 13 - { class, aspect-chain }: 14 - { 15 - ${class} = 16 - { lib, ... }: 17 - { 18 - nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) allowed-names; 19 - }; 20 - }; 21 - }; 22 - 23 - }
-15
modules/community/vix.nix
··· 1 - { 2 - config, 3 - lib, 4 - ... 5 - }: 6 - { 7 - # create namespace 8 - den.aspects.vix.provides = { }; 9 - # expose aspect-tree to public 10 - flake.vix = config.den.aspects.vix.provides; 11 - # easy access on modules 12 - _module.args.vix = config.den.aspects.vix.provides; 13 - # write directly to vix attribute 14 - imports = [ (lib.mkAliasOptionModule [ "vix" ] [ "den" "aspects" "vix" "provides" ]) ]; 15 - }
+74
modules/community/vix/_macos-keys.nix
··· 1 + # see https://raw.githubusercontent.com/rvaiya/keyd/refs/heads/master/docs/keyd.scdoc 2 + # see https://github.com/rvaiya/keyd/blob/master/examples/macos.conf 3 + { ... }: 4 + let 5 + 6 + # MacOS Command (⌘) 7 + mac_leftcmd = { 8 + tab = "swapm(altgr, G-tab)"; 9 + 10 + # Switch directly to an open tab (e.g. Firefox, VS code) 11 + "1" = "A-1"; 12 + "2" = "A-2"; 13 + "3" = "A-3"; 14 + "4" = "A-4"; 15 + "5" = "A-5"; 16 + "6" = "A-6"; 17 + "7" = "A-7"; 18 + "8" = "A-8"; 19 + "9" = "A-9"; 20 + 21 + # clipboard 22 + c = "C-S-c"; 23 + v = "C-S-v"; 24 + t = "C-S-t"; 25 + w = "C-S-w"; 26 + 27 + q = "A-f4"; 28 + }; 29 + 30 + mac_rightcmd = { 31 + }; 32 + 33 + # MacOS Option (⌥ 34 + 35 + mac_opt = { }; 36 + 37 + # Macos Meh (⌃⌥⇧) 38 + mac_meh = { }; 39 + 40 + # Hyper (⌃⌥⇧⌘) 41 + mac_hyper = { 42 + h = "left"; 43 + j = "down"; 44 + k = "up"; 45 + l = "right"; 46 + }; 47 + 48 + in 49 + { 50 + main.shift = "oneshot(shift)"; 51 + main.meta = "oneshot(meta)"; 52 + main.control = "oneshot(control)"; 53 + 54 + main.capslock = "overload(control, esc)"; 55 + 56 + # Left Alt (left from spacebar) becomes MacOS Command 57 + main.leftalt = "overload(mac_leftcmd, oneshot(mac_leftcmd))"; 58 + "mac_leftcmd:C" = mac_leftcmd; # Keep as Ctrl 59 + 60 + # Right Alt (right from spacebar) becomes MacOS Command 61 + main.rightalt = "overload(mac_rightcmd, oneshot(mac_rightcmd))"; 62 + "mac_rightcmd:A" = mac_rightcmd; # Keep original Alt 63 + 64 + # Left Meta (two left from spacebar) becomes MacOS Option 65 + main.leftmeta = "overload(mac_leftopt, oneshot(mac_leftopt))"; 66 + "mac_leftopt:M" = mac_opt; # inherit from original Meta layer 67 + 68 + main.rightcontrol = "overload(mac_meh, oneshot(mac_meh))"; 69 + "mac_meh:C-A-M" = mac_meh; 70 + 71 + main.leftcontrol = "overload(mac_hyper, oneshot(control))"; 72 + "mac_hyper:C-A" = mac_hyper; 73 + 74 + }
+7
modules/community/vix/all-firmware.nix
··· 1 + { 2 + vix.all-firmware.nixos = { 3 + hardware.enableAllFirmware = true; 4 + hardware.enableRedistributableFirmware = true; 5 + nixpkgs.config.allowUnfree = true; # enableAllFirmware depends on this 6 + }; 7 + }
+42
modules/community/vix/darwin.nix
··· 1 + { inputs, ... }: 2 + let 3 + 4 + flake-file.inputs = { 5 + nix-darwin.url = "github:LnL7/nix-darwin"; 6 + }; 7 + 8 + vix.darwin.darwin.imports = [ 9 + inputs.home-manager.darwinModules.home-manager 10 + inputs.self.modules.darwin.nix-settings 11 + nix-darwin-pkgs 12 + darwin-cfg 13 + ]; 14 + 15 + darwin-cfg = { 16 + # Determinate uses its own daemon to manage the Nix installation 17 + # nix.enable = false; 18 + 19 + system.defaults.trackpad.Clicking = true; 20 + system.defaults.trackpad.TrackpadThreeFingerDrag = true; 21 + system.defaults.NSGlobalDomain.ApplePressAndHoldEnabled = false; 22 + 23 + system.keyboard.enableKeyMapping = true; 24 + system.keyboard.remapCapsLockToControl = true; 25 + }; 26 + 27 + nix-darwin-pkgs = 28 + { pkgs, ... }: 29 + { 30 + environment.systemPackages = with inputs.nix-darwin.packages.${pkgs.system}; [ 31 + darwin-option 32 + darwin-rebuild 33 + darwin-version 34 + darwin-uninstaller 35 + ]; 36 + }; 37 + 38 + # TODO: link home-manager apps. 39 + in 40 + { 41 + inherit vix flake-file; 42 + }
+19
modules/community/vix/enthium-kbd-layout.nix
··· 1 + { inputs, ... }: 2 + { 3 + 4 + flake-file.inputs.enthium = { 5 + url = "github:sunaku/enthium/v10"; 6 + flake = false; 7 + }; 8 + 9 + vix.enthium.nixos = { 10 + 11 + services.xserver.xkb.extraLayouts.enthium = { 12 + description = "Enthium"; 13 + languages = [ "eng" ]; 14 + symbolsFile = "${inputs.enthium}/linux/usr-share-X11-xkb-symbols-us"; 15 + }; 16 + 17 + }; 18 + 19 + }
+11
modules/community/vix/gnome-desktop.nix
··· 1 + { 2 + vix.gnome-desktop.nixos = { 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 + }
+7
modules/community/vix/installer.nix
··· 1 + { 2 + vix.installer.nixos = 3 + { modulesPath, ... }: 4 + { 5 + imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-graphical-base.nix") ]; 6 + }; 7 + }
+8
modules/community/vix/kvm+intel.nix
··· 1 + { 2 + vix.kvm-intel.nixos = 3 + { lib, config, ... }: 4 + { 5 + boot.kernelModules = [ "kvm-intel" ]; 6 + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 7 + }; 8 + }
+14
modules/community/vix/macos-keys.nix
··· 1 + { 2 + vix.macos-keys.nixos = 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 + }
+15
modules/community/vix/nix-index.nix
··· 1 + { inputs, ... }: 2 + { 3 + 4 + flake-file.inputs.nix-index-database.url = "github:nix-community/nix-index-database"; 5 + 6 + vix.nix-index.homeManager = { 7 + imports = [ 8 + inputs.nix-index-database.homeModules.nix-index 9 + ]; 10 + 11 + programs.nix-index.enable = true; 12 + programs.nix-index.enableFishIntegration = true; 13 + programs.nix-index-database.comma.enable = true; 14 + }; 15 + }
+8
modules/community/vix/nix-registry.nix
··· 1 + { inputs, lib, ... }: 2 + { 3 + 4 + vix.nix-registry.homeManager.nix.registry = lib.mapAttrs (_name: v: { flake = v; }) ( 5 + lib.filterAttrs (_name: value: value ? outputs) inputs 6 + ); 7 + 8 + }
+29
modules/community/vix/nvidia.nix
··· 1 + { 2 + 3 + vix.nvidia.nixos = 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 + }
+23
modules/community/vix/vscode-server.nix
··· 1 + { inputs, ... }: 2 + { 3 + flake-file.inputs = { 4 + vscode-server.url = "github:nix-community/nixos-vscode-server"; 5 + }; 6 + 7 + vix.vscode-server.homeManager = 8 + { pkgs, ... }: 9 + { 10 + imports = [ 11 + inputs.vscode-server.homeModules.default 12 + ]; 13 + 14 + services.vscode-server = { 15 + enable = true; 16 + nodejsPackage = pkgs.nodejs_latest; 17 + extraRuntimeDependencies = with pkgs; [ 18 + curl 19 + wget 20 + ]; 21 + }; 22 + }; 23 + }
+13
modules/community/vix/wl-broadcom.nix
··· 1 + { 2 + vix.wl-broadcom.nixos = 3 + { lib, config, ... }: 4 + { 5 + boot.kernelModules = [ "wl" ]; 6 + boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; 7 + nixpkgs.config.allowInsecurePredicate = 8 + pkg: 9 + builtins.elem (lib.getName pkg) [ 10 + "broadcom-sta" 11 + ]; 12 + }; 13 + }
+18
modules/community/vix/wsl.nix
··· 1 + { inputs, vix, ... }: 2 + { 3 + flake-file.inputs = { 4 + nixos-wsl.url = "github:nix-community/nixos-wsl"; 5 + }; 6 + 7 + vix.wsl.includes = [ 8 + vix.unfree 9 + vix.nix-settings 10 + ]; 11 + 12 + vix.wsl.nixos = { 13 + imports = [ 14 + inputs.nixos-wsl.nixosModules.default 15 + ]; 16 + wsl.enable = true; 17 + }; 18 + }
modules/community/xfce-desktop.nix modules/community/vix/xfce-desktop.nix
modules/community/xserver.nix modules/community/vix/xserver.nix
+9
modules/defaults.nix
··· 1 + { __findFile, ... }: 2 + { 3 + den.default.includes = [ 4 + <my/nix-settings> 5 + <my/state-version> 6 + <den/define-user> 7 + <vix/hostname> 8 + ]; 9 + }
+7
modules/home-manager.nix
··· 1 + { den, ... }: 2 + { 3 + flake-file.inputs.home-manager.url = "github:nix-community/home-manager"; 4 + flake-file.inputs.home-manager.inputs.nixpkgs.follows = "nixpkgs"; 5 + 6 + den.default.includes = [ den._.home-manager ]; 7 + }
-18
modules/hosts.nix
··· 1 - { vix, den, ... }: 2 - { 3 - den.hosts.x86_64-linux.nargun.users.vic = { }; 4 - den.hosts.x86_64-linux.nargun-vm.users.vic = { }; 5 - 6 - den.default.host._.host.includes = [ 7 - vix.host-profile 8 - den.home-manager 9 - (den.import-tree._.host { root = ../non-dendritic/hosts; }) 10 - ]; 11 - 12 - den.default.user._.user.includes = [ 13 - vix.user-profile 14 - ]; 15 - 16 - flake-file.inputs.home-manager.url = "github:nix-community/home-manager"; 17 - flake-file.inputs.home-manager.inputs.nixpkgs.follows = "nixpkgs"; 18 - }
-31
modules/hosts/nargun.nix
··· 1 - { vix, ... }: 2 - { 3 - vix.nargun.includes = [ 4 - vix.nargun._.base 5 - vix.nargun._.hw 6 - ]; 7 - 8 - vix.nargun-vm.includes = [ 9 - vix.nargun._.base 10 - vix.nargun._.vm 11 - ]; 12 - 13 - vix.nargun.provides = { 14 - # for real-world hw machine 15 - hw.includes = [ 16 - vix.mexico 17 - vix.bootable 18 - vix.kvm-amd 19 - vix.niri-desktop 20 - vix.kde-desktop 21 - ]; 22 - 23 - vm.includes = [ 24 - vix.xfce-desktop 25 - ]; 26 - 27 - base.includes = [ 28 - vix.dev-laptop 29 - ]; 30 - }; 31 - }
+12
modules/my/hosts.nix
··· 1 + { __findFile, ... }: 2 + { 3 + den.hosts.x86_64-linux.nargun.users.vic.aspect = "oeiuwq"; 4 + den.hosts.x86_64-linux.nargun-vm.users.vic.aspect = "oeiuwq"; 5 + 6 + den.aspects = { 7 + oeiuwq.includes = [ <my/user> ]; 8 + 9 + nargun.includes = [ <my/workstation/hw> ]; 10 + nargun-vm.includes = [ <my/workstation/vm> ]; 11 + }; 12 + }
+42
modules/my/nix-setttings.nix
··· 1 + let 2 + my.nix-settings = { 3 + nixos = nix-settings; 4 + darwin = nix-settings; 5 + }; 6 + 7 + nix-settings = 8 + { pkgs, config, ... }: 9 + { 10 + nix = { 11 + optimise.automatic = true; 12 + settings = { 13 + substituters = [ 14 + "https://vix.cachix.org" 15 + "https://devenv.cachix.org" 16 + ]; 17 + trusted-public-keys = [ 18 + "vix.cachix.org-1:hP/Lpdsi1dB3AxK9o6coWh+xHzvAc4ztdDYuG7lC6dI=" 19 + "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" 20 + ]; 21 + 22 + experimental-features = [ 23 + "nix-command" 24 + "flakes" 25 + # "allow-import-from-derivation" 26 + ]; 27 + trusted-users = [ 28 + "root" 29 + "@wheel" 30 + ]; 31 + }; 32 + gc = pkgs.lib.optionalAttrs config.nix.enable { 33 + automatic = true; 34 + # interval = "weekly"; # TODO! 35 + options = "--delete-older-than 7d"; 36 + }; 37 + }; 38 + }; 39 + in 40 + { 41 + inherit my; 42 + }
+29
modules/my/user.nix
··· 1 + # this module configures my user over all my hosts. 2 + { __findFile, ... }: 3 + { 4 + my.user.__functor = <den>.lib.parametric.atLeast; 5 + my.user.includes = [ 6 + <den/primary-user> 7 + (<den/user-shell> "fish") 8 + <vix/autologin> 9 + <vic/fonts> 10 + <vic/browser> 11 + <vic/hm-backup> 12 + <vic/fish> 13 + <vic/terminals> 14 + <vic/cli-tui> 15 + <vic/editors> # for normal people not btw'ing. 16 + <vic/doom-btw> 17 + <vic/vim-btw> 18 + <vic/nix-btw> 19 + <vic/dots> 20 + <vic/secrets> 21 + <vic/jujutsu> 22 + <vic/git> 23 + <vic/direnv> 24 + (x: builtins.trace (builtins.attrNames x) { }) 25 + ({ OS, HM, user, ... }: <vix/nix-index>) 26 + ({ OS, HM, user, ... }: <vix/nix-registry>) 27 + ({ OS, HM, user, ... }: <vix/vscode-server>) 28 + ]; 29 + }
+24
modules/my/workstation.nix
··· 1 + { __findFile, ... }: 2 + { 3 + my.workstation.provides = { 4 + # for real-world hw machine 5 + hw.includes = [ 6 + <my.workstation/base> 7 + <vix.mexico> 8 + <vix.bootable> 9 + <vix.kvm-amd> 10 + <vix.niri-desktop> 11 + <vix.kde-desktop> 12 + ]; 13 + 14 + vm.includes = [ 15 + <my.workstation/base> 16 + <vix.installer> 17 + ]; 18 + 19 + base.includes = [ 20 + <vix.xfce-desktop> 21 + <vix.dev-laptop> 22 + ]; 23 + }; 24 + }
+9
modules/namespace.nix
··· 1 + { inputs, den, ... }: 2 + { 3 + _module.args.__findFile = den.lib.__findFile; 4 + imports = [ 5 + (inputs.den.namespace "vix" true) 6 + (inputs.den.namespace "vic" false) 7 + (inputs.den.namespace "my" false) 8 + ]; 9 + }
+6
modules/non-dendritic.nix
··· 1 + { den, ... }: 2 + { 3 + den.default.includes = [ 4 + (den._.import-tree._.host ../nix/hosts) 5 + ]; 6 + }
+39
modules/treefmt.nix
··· 1 + { inputs, lib, ... }: 2 + { 3 + 4 + imports = [ 5 + inputs.flake-file.flakeModules.nix-auto-follow 6 + inputs.treefmt-nix.flakeModule 7 + ]; 8 + 9 + flake-file.inputs = { 10 + treefmt-nix.url = lib.mkDefault "github:numtide/treefmt-nix"; 11 + treefmt-nix.inputs.nixpkgs.follows = lib.mkDefault "nixpkgs"; 12 + }; 13 + 14 + perSystem = 15 + { self', ... }: 16 + { 17 + packages.fmt = self'.formatter; 18 + treefmt = { 19 + projectRoot = inputs.flake-file; 20 + programs = { 21 + nixfmt.enable = true; 22 + deadnix.enable = true; 23 + nixf-diagnose.enable = true; 24 + prettier.enable = true; 25 + }; 26 + settings.on-unmatched = lib.mkDefault "fatal"; 27 + settings.global.excludes = [ 28 + "modules/*" 29 + "LICENSE" 30 + "flake.lock" 31 + "*/flake.lock" 32 + ".envrc" 33 + ".direnv/*" 34 + "*/.gitignore" 35 + ]; 36 + }; 37 + }; 38 + 39 + }
+90
modules/vic/_fish/abbrs.nix
··· 1 + { 2 + ls = "exa"; 3 + top = "btm"; 4 + cat = "bat"; 5 + grep = "rg"; 6 + find = "fd"; 7 + nr = "nix run"; 8 + nf = "fd --glob '*.nix' -X nixfmt {}"; 9 + 10 + vir = { 11 + expansion = "nvim -c \"'0%\""; 12 + setCursor = true; 13 + }; 14 + 15 + vt = { 16 + expansion = "nvim -c \":Tv %\""; 17 + setCursor = true; 18 + }; 19 + 20 + # jj 21 + jz = "jj-fzf"; 22 + lj = "lazyjj"; 23 + jb = "jj bookmark"; 24 + jc = "jj commit -i"; 25 + jd = { 26 + expansion = "jj describe -m \"%\""; 27 + setCursor = true; 28 + }; 29 + jdd = "jj diff"; 30 + jdt = "jj show --tool difft"; 31 + je = "jj edit"; 32 + jf = "jj git fetch"; 33 + jg = "jj git"; 34 + jl = "jj log"; 35 + jll = "jj ll"; 36 + jm = "jj bookmark set main -r @"; 37 + jm- = "jj bookmark set main -r @-"; 38 + jn = "jj new"; 39 + jN = { 40 + expansion = "jj new -m \"%\""; 41 + setCursor = true; 42 + }; 43 + jp = "jj git push"; 44 + jP = "jj git push && jj new -A main"; 45 + jr = "jj rebase"; 46 + jR = "jj restore -i"; 47 + jS = "jj squash -i"; 48 + js = "jj show --stat --no-pager"; 49 + jss = "jj show --summary --no-pager"; 50 + ju = "jjui"; 51 + jdp = "jj-desc && jj bookmark set main -r @ && jj git push -r main"; 52 + jcp = "jj commit -i && jj bookmark set main -r @- && jj git push -r main"; 53 + 54 + # git 55 + lg = "lazygit"; 56 + gr = "git recents"; 57 + gc = "git commit"; 58 + gb = "git branch"; 59 + gd = "git dff"; 60 + gs = "git status"; 61 + gco = "git checkout"; 62 + gcb = "git checkout -b"; 63 + gp = "git pull --rebase --no-commit"; 64 + gz = "git stash"; 65 + gza = "git stash apply"; 66 + gfp = "git push --force-with-lease"; 67 + gfap = "git fetch --all -p"; 68 + groh = "git rebase remotes/origin/HEAD"; 69 + grih = "git rebase -i remotes/origin/HEAD"; 70 + grom = "git rebase remotes/origin/master"; 71 + grim = "git rebase -i remotes/origin/master"; 72 + gpfh = "git push --force-with-lease origin HEAD"; 73 + gfix = "git commit --all --fixup amend:HEAD"; 74 + gcm = "git commit --all --message"; 75 + ga = "git commit --amend --reuse-message HEAD --all"; 76 + gcam = "git commit --amend --all --message"; 77 + gbDm = "git rm-merged"; 78 + # Magit 79 + ms = "mg SPC g g"; 80 + # status 81 + mc = "mg SPC g / c"; 82 + # commit 83 + md = "mg SPC g / d u"; 84 + # diff unstaged 85 + ml = "mg SPC g / l l"; 86 + # log 87 + mr = "mg SPC g / r i"; 88 + # rebase interactive 89 + mz = "mg SPC g / Z l"; 90 + }
+15
modules/vic/_fish/aliases.nix
··· 1 + { 2 + y = "EDITOR=d yazi"; 3 + l = "exa -l"; 4 + ll = "exa -l -@ --git"; 5 + tree = "exa -T"; 6 + # "." = "exa -g"; 7 + ".." = "cd .."; 8 + vs = ''vim -c "lua Snacks.picker.smart()"''; 9 + vf = ''vim -c "lua Snacks.picker.files()"''; 10 + vg = ''vim -c "lua Snacks.picker.grep()"''; 11 + vr = ''vim -c "lua Snacks.picker.recent()"''; 12 + vd = ''vim -c "DiffEditor $left $right $output"''; 13 + av = ''astrovim''; 14 + lv = ''lazyvim''; 15 + }
+58
modules/vic/_fish/functions.nix
··· 1 + { 2 + lib, 3 + inputs, 4 + ... 5 + }: 6 + { 7 + jj-git-init.description = "init jj to follow git branch"; 8 + jj-git-init.argumentNames = [ "branch" ]; 9 + jj-git-init.body = '' 10 + jj git init --colocate 11 + jj bookmark track "$branch@origin" 12 + jj config set --repo "revset-aliases.'trunk()'" "$branch@origin" 13 + ''; 14 + 15 + jj-desc.body = '' 16 + jj describe --edit -m "$(echo -e "\n")$(jj status --color never | awk '{print "JJ: " $0}')$(echo -e "\n")$(jj show --git --color never | awk '{print "JJ: " $0}')" 17 + ''; 18 + 19 + mg.body = "spc u SPC gg -r \"$PWD\" RET"; 20 + spc.body = "SPC $argv -- -nw"; 21 + vspc.body = "SPC $argv -- -c"; 22 + fish_hybrid_key_bindings.description = "Vi-style bindings that inherit emacs-style bindings in all modes"; 23 + fish_hybrid_key_bindings.body = '' 24 + for mode in default insert visual 25 + fish_default_key_bindings -M $mode 26 + end 27 + fish_vi_key_bindings --no-erase 28 + ''; 29 + vix-activate.description = "Activate a new vix system generation"; 30 + vix-activate.body = "nix run /hk/vix"; 31 + vix-shell.description = "Run nix shell with vix's nixpkgs"; 32 + vix-shell.body = "nix shell --inputs-from $HOME/.nix-out/nixpkgs"; 33 + vix-nixpkg-search.description = "Nix search on vix's nixpkgs input"; 34 + vix-nixpkg-search.body = "nix search --inputs-from $HOME/.nix-out/vix nixpkgs $argv"; 35 + rg-vix-inputs.description = "Search on vix flake inputs"; 36 + rg-vix-inputs.body = 37 + let 38 + maybeFlakePaths = f: if builtins.hasAttr "inputs" f then flakePaths f else [ ]; 39 + flakePaths = 40 + flake: [ flake.outPath ] ++ lib.flatten (lib.mapAttrsToList (_: maybeFlakePaths) flake.inputs); 41 + paths = builtins.concatStringsSep " " (flakePaths inputs.self); 42 + in 43 + "rg $argv ${paths}"; 44 + rg-vix.description = "Search on current vix"; 45 + rg-vix.body = "rg $argv $HOME/.nix-out/vix"; 46 + rg-nixpkgs.description = "Search on current nixpkgs"; 47 + rg-nixpkgs.body = "rg $argv $HOME/.nix-out/nixpkgs"; 48 + rg-home-manager.description = "Search on current home-manager"; 49 + rg-home-manager.body = "rg $argv $HOME/.nix-out/home-manager"; 50 + rg-nix-darwin.description = "Search on current nix-darwin"; 51 + rg-nix-darwin.body = "rg $argv $HOME/.nix-out/nix-darwin"; 52 + nixos-opt.description = "Open a browser on search.nixos.org for options"; 53 + nixos-opt.body = ''open "https://search.nixos.org/options?sort=relevance&query=$argv"''; 54 + nixos-pkg.description = "Open a browser on search.nixos.org for packages"; 55 + nixos-pkg.body = ''open "https://search.nixos.org/packages?sort=relevance&query=$argv"''; 56 + repology-nixpkgs.description = "Open a browser on search for nixpkgs on repology.org"; 57 + repology-nixpkgs.body = ''open "https://repology.org/projects/?inrepo=nix_unstable&search=$argv"''; 58 + }
+60
modules/vic/_fish/tv.fish
··· 1 + bind \t __tv_complete 2 + 3 + function __tv_complete -d 'fish completion widget with tv' 4 + # modified from https://github.com/junegunn/fzf/wiki/Examples-(fish)#completion 5 + # As of 2.6, fish's "complete" function does not understand 6 + # subcommands. Instead, we use the same hack as __fish_complete_subcommand and 7 + # extract the subcommand manually. 8 + set -l cmd (commandline -co) (commandline -ct) 9 + 10 + switch $cmd[1] 11 + case env sudo 12 + for i in (seq 2 (count $cmd)) 13 + switch $cmd[$i] 14 + case '-*' 15 + case '*=*' 16 + case '*' 17 + set cmd $cmd[$i..-1] 18 + break 19 + end 20 + end 21 + end 22 + 23 + set -l cmd_lastw $cmd[-1] 24 + set cmd (string join -- ' ' $cmd) 25 + 26 + set -l complist (complete -C$cmd) 27 + set -l result 28 + 29 + # do nothing if there is nothing to select from 30 + test -z "$complist"; and return 31 + 32 + set -l compwc (echo $complist | wc -w) 33 + if test $compwc -eq 1 34 + # if there is only one option dont open fzf 35 + set result "$complist" 36 + else 37 + set result (string join -- \n $complist | column -t -l 2 -o \t | tv --select-1 --no-status-bar --keybindings='tab="confirm_selection"' --inline --input-header "$cmd" | string split -m 2 -f 1 \t | string trim --right) 38 + end 39 + 40 + set -l prefix (string sub -s 1 -l 1 -- (commandline -t)) 41 + for i in (seq (count $result)) 42 + set -l r $result[$i] 43 + switch $prefix 44 + case "'" 45 + commandline -t -- (string escape -- $r) 46 + case '"' 47 + if string match '*"*' -- $r >/dev/null 48 + commandline -t -- (string escape -- $r) 49 + else 50 + commandline -t -- '"'$r'"' 51 + end 52 + case '~' 53 + commandline -t -- (string sub -s 2 (string escape -n -- $r)) 54 + case '*' 55 + commandline -t -- $r 56 + end 57 + commandline -i ' ' 58 + end 59 + commandline -f repaint 60 + end
+1 -1
modules/vic/admin.nix
··· 1 1 { 2 2 3 - vix.vic.provides.admin = 3 + vic.admin = 4 4 { user, ... }: 5 5 { 6 6 darwin.system.primaryUser = user.userName;
+1 -1
modules/vic/browser.nix
··· 1 1 { 2 - vix.vic.provides.browser = _: { 2 + vic.browser = _: { 3 3 4 4 homeManager = 5 5 { pkgs, ... }:
+2 -1
modules/vic/cli-tui.nix
··· 1 1 { 2 - vix.vic.provides.cli-tui = _: { 2 + vic.cli-tui = _: { 3 3 4 4 homeManager = 5 5 { pkgs, ... }: ··· 14 14 pkgs.fd # find 15 15 pkgs.jq 16 16 pkgs.television 17 + pkgs.diffnav 17 18 ]; 18 19 }; 19 20
-27
modules/vic/common-host-env.nix
··· 1 - { vix, ... }: 2 - let 3 - env-providers = with vix.vic.provides; [ 4 - admin # vic is admin in all hosts 5 - ({ user, ... }: vix.autologin user) 6 - (_: vix.state-version) # for hm 7 - fonts 8 - browser 9 - hm-backup 10 - fish 11 - terminals 12 - cli-tui 13 - editors # for normal people not btw'ing. 14 - doom-btw 15 - vim-btw 16 - nix-btw 17 - dots 18 - ]; 19 - in 20 - { 21 - # for all hosts that include vic. 22 - vix.vic._.common-host-env = 23 - { host, user }: 24 - { 25 - includes = map (f: f { inherit host user; }) env-providers; 26 - }; 27 - }
+39
modules/vic/direnv.nix
··· 1 + { inputs, ... }: 2 + let 3 + vic.direnv.homeManager = { 4 + programs.direnv.enable = true; 5 + programs.direnv.nix-direnv.enable = true; 6 + 7 + home.file.".config/direnv/lib/use_nix_installables.sh".text = use_nix_installables; 8 + home.file.".config/direnv/lib/use_vix_go.sh".text = use_vix_go; 9 + home.file.".config/direnv/lib/use_vix_llm.sh".text = use_vix_llm; 10 + home.file.".envrc".text = home_envrc; 11 + 12 + }; 13 + 14 + use_nix_installables = '' 15 + use_nix_installables() { 16 + direnv_load nix shell "''${@}" -c $direnv dump 17 + } 18 + ''; 19 + 20 + use_vix_go = '' 21 + use_vix_go() { 22 + use nix_installables ${inputs.nixpkgs}#go ${inputs.nixpkgs}#gopls 23 + } 24 + ''; 25 + 26 + use_vix_llm = '' 27 + use_vix_llm() { 28 + source $HOME/.config/sops-nix/secrets/rendered/llm_apis.env 29 + } 30 + ''; 31 + 32 + home_envrc = '' 33 + use vix_llm 34 + ''; 35 + 36 + in 37 + { 38 + inherit vic; 39 + }
+2 -36
modules/vic/doom-btw.nix
··· 7 7 SPC.url = "github:vic/SPC"; 8 8 }; 9 9 10 - vix.vic.provides.doom-btw = _: { 10 + vic.doom-btw = { HM, user, OS, ... }: { 11 11 homeManager = 12 - { pkgs, lib, ... }: 12 + { pkgs, ... }: 13 13 let 14 14 emacsPkg = pkgs.emacs30; 15 - 16 - doom-install = pkgs.writeShellApplication { 17 - name = "doom-install"; 18 - runtimeInputs = with pkgs; [ 19 - git 20 - emacsPkg 21 - ripgrep 22 - openssh 23 - ]; 24 - text = '' 25 - set -e 26 - if test -f "$HOME"/.config/emacs/.local/etc/@/init*.el; then 27 - doom_rev="$(rg "put 'doom-version 'ref '\"(\w+)\"" "$HOME"/.config/emacs/.local/etc/@/init*.el -or '$1')" 28 - fi 29 - 30 - if test "''${doom_rev:-}" = "${inputs.doom-emacs.rev}"; then 31 - echo "DOOM Emacs already at revision ${inputs.doom-emacs.rev}" 32 - exit 0 # doom already pointing to same revision 33 - fi 34 - 35 - ( 36 - echo "DOOM Emacs obtaining revision ${inputs.doom-emacs.rev}" 37 - if ! test -d "$HOME/.config/emacs/.git"; then 38 - git clone --depth 1 https://github.com/doomemacs/doomemacs "$HOME/.config/emacs" 39 - fi 40 - cd "$HOME/.config/emacs" 41 - git fetch --depth 1 origin "${inputs.doom-emacs.rev}" 42 - git reset --hard "${inputs.doom-emacs.rev}" 43 - bin/doom install --no-config --no-env --no-install --no-fonts --no-hooks --force 44 - echo "DOOM Emacs updated to revision ${inputs.doom-emacs.rev}" 45 - bin/doom sync -e --force 46 - ) 47 - ''; 48 - }; 49 15 50 16 SPC = inputs.SPC.packages.${pkgs.system}.SPC.override { emacs = emacsPkg; }; 51 17
+1 -1
modules/vic/dots.nix
··· 1 1 { 2 2 # Use hjem instead of mkOutOfStoreSymlink ! 3 - vix.vic.provides.dots = _: { 3 + vic.dots = _: { 4 4 homeManager = 5 5 { config, pkgs, ... }: 6 6 let
+1 -1
modules/vic/dots/config/Code/User/settings.json
··· 326 326 "remote.SSH.configFile": "/home/vic/.ssh/config.local", 327 327 "file-browser.labelIgnoredFiles": true, 328 328 "file-browser.hideDotfiles": false, 329 - "workbench.preferredLightColorTheme": "Palenight Italic" 329 + "workbench.preferredLightColorTheme": "Default Dark Modern" 330 330 }
+1 -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":"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":"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":"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":"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":"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":"usernamehw.errorlens","uuid":"9d8c32ab-354c-4daf-a9bf-20b633734435"},"version":"3.26.0","location":{"$mid":1,"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}},{"identifier":{"id":"scala-lang.scala","uuid":"c6f87c08-f5ca-4f59-8cee-bc29464dcbfb"},"version":"0.5.9","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/scala-lang.scala-0.5.9","scheme":"file"},"relativeLocation":"scala-lang.scala-0.5.9","metadata":{"installedTimestamp":1747372492850,"pinned":false,"source":"gallery","id":"c6f87c08-f5ca-4f59-8cee-bc29464dcbfb","publisherId":"2ffc6e5b-e6aa-408c-98b4-47db120356c8","publisherDisplayName":"scala-lang","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"sanaajani.taskrunnercode","uuid":"2e19ddff-cc5a-4840-9f43-b45371d0c09d"},"version":"0.3.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/sanaajani.taskrunnercode-0.3.0","scheme":"file"},"relativeLocation":"sanaajani.taskrunnercode-0.3.0","metadata":{"installedTimestamp":1747375915641,"pinned":false,"source":"gallery","id":"2e19ddff-cc5a-4840-9f43-b45371d0c09d","publisherId":"60bc378d-7290-4490-873d-5212f6a32882","publisherDisplayName":"Sana Ajani","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"virejdasani.in-your-face","uuid":"c2436335-4b8a-4530-9f45-e0a8315325c2"},"version":"1.1.3","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/virejdasani.in-your-face-1.1.3","scheme":"file"},"relativeLocation":"virejdasani.in-your-face-1.1.3","metadata":{"installedTimestamp":1747376489763,"pinned":false,"source":"gallery","id":"c2436335-4b8a-4530-9f45-e0a8315325c2","publisherId":"91638527-c61c-44ed-8007-7469d95df049","publisherDisplayName":"Virej Dasani","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"akamud.vscode-theme-onedark","uuid":"9b2c953d-6ad4-46d1-b18e-7e5992d1d8a6"},"version":"2.3.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/akamud.vscode-theme-onedark-2.3.0","scheme":"file"},"relativeLocation":"akamud.vscode-theme-onedark-2.3.0","metadata":{"installedTimestamp":1747775771341,"source":"gallery","id":"9b2c953d-6ad4-46d1-b18e-7e5992d1d8a6","publisherId":"1a680e61-b64e-4eff-bbbb-2085b0618f52","publisherDisplayName":"Mahmoud Ali","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode.test-adapter-converter","uuid":"47210ec2-0324-4cbb-9523-9dff02a5f9ec"},"version":"0.2.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.test-adapter-converter-0.2.1","scheme":"file"},"relativeLocation":"ms-vscode.test-adapter-converter-0.2.1","metadata":{"installedTimestamp":1747953994821,"pinned":false,"source":"gallery","id":"47210ec2-0324-4cbb-9523-9dff02a5f9ec","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"swellaby.vscode-rust-test-adapter","uuid":"c167848c-fc11-496e-b432-1fd0a578a408"},"version":"0.11.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/swellaby.vscode-rust-test-adapter-0.11.0","scheme":"file"},"relativeLocation":"swellaby.vscode-rust-test-adapter-0.11.0","metadata":{"installedTimestamp":1747953994807,"pinned":false,"source":"gallery","id":"c167848c-fc11-496e-b432-1fd0a578a408","publisherId":"48c64ea1-db35-4e9e-8977-84495a6cc789","publisherDisplayName":"Swellaby","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"hbenl.vscode-test-explorer","uuid":"ff96f1b4-a4b8-45ef-8ecf-c232c0cb75c8"},"version":"2.22.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/hbenl.vscode-test-explorer-2.22.1","scheme":"file"},"relativeLocation":"hbenl.vscode-test-explorer-2.22.1","metadata":{"installedTimestamp":1747953994813,"pinned":false,"source":"gallery","id":"ff96f1b4-a4b8-45ef-8ecf-c232c0cb75c8","publisherId":"3356f11a-6798-4f03-a93f-3d929b7fca7c","publisherDisplayName":"Holger Benl","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"vadimcn.vscode-lldb","uuid":"bee31e34-a44b-4a76-9ec2-e9fd1439a0f6"},"version":"1.11.4","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/vadimcn.vscode-lldb-1.11.4","scheme":"file"},"relativeLocation":"vadimcn.vscode-lldb-1.11.4","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1747954011953,"pinned":true,"source":"vsix","id":"bee31e34-a44b-4a76-9ec2-e9fd1439a0f6","publisherDisplayName":"Vadim Chugunov","publisherId":"3b05d186-6311-4caa-99b5-09032a9d3cf5","isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"panicbit.cargo","uuid":"ca2ba891-775c-480a-9764-414b06f6e114"},"version":"0.3.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/panicbit.cargo-0.3.0","scheme":"file"},"relativeLocation":"panicbit.cargo-0.3.0","metadata":{"installedTimestamp":1747954004156,"pinned":false,"source":"gallery","id":"ca2ba891-775c-480a-9764-414b06f6e114","publisherId":"87b278c0-dad0-48eb-9013-47f418b56e72","publisherDisplayName":"panicbit","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"jscearcy.rust-doc-viewer","uuid":"eb6486a2-2c35-4e5b-956b-e320c44f732a"},"version":"4.2.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/jscearcy.rust-doc-viewer-4.2.0","scheme":"file"},"relativeLocation":"jscearcy.rust-doc-viewer-4.2.0","metadata":{"installedTimestamp":1747954004153,"pinned":false,"source":"gallery","id":"eb6486a2-2c35-4e5b-956b-e320c44f732a","publisherId":"b2cab060-96e8-4793-836b-317b1e884253","publisherDisplayName":"JScearcy","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"tamasfe.even-better-toml","uuid":"b2215d5f-675e-4a2b-b6ac-1ca737518b78"},"version":"0.21.2","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/tamasfe.even-better-toml-0.21.2","scheme":"file"},"relativeLocation":"tamasfe.even-better-toml-0.21.2","metadata":{"installedTimestamp":1747954004144,"pinned":false,"source":"gallery","id":"b2215d5f-675e-4a2b-b6ac-1ca737518b78","publisherId":"78c2102e-13a2-49ea-ac79-8d1bbacbbf0e","publisherDisplayName":"tamasfe","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"kevinkassimo.cargo-toml-snippets","uuid":"ead9e178-3ef8-4788-999f-bab7a412524f"},"version":"0.1.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/kevinkassimo.cargo-toml-snippets-0.1.1","scheme":"file"},"relativeLocation":"kevinkassimo.cargo-toml-snippets-0.1.1","metadata":{"installedTimestamp":1747954004163,"pinned":false,"source":"gallery","id":"ead9e178-3ef8-4788-999f-bab7a412524f","publisherId":"344316b0-132a-41f9-a82a-ac88b5f3361c","publisherDisplayName":"Kevin (Kassimo) Qian","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"willroe.base16-rebecca","uuid":"97c3f9b5-0aed-445e-a12a-765ae71657ad"},"version":"0.0.3","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/willroe.base16-rebecca-0.0.3","scheme":"file"},"relativeLocation":"willroe.base16-rebecca-0.0.3","metadata":{"installedTimestamp":1748968644749,"source":"gallery","id":"97c3f9b5-0aed-445e-a12a-765ae71657ad","publisherId":"c929070a-5ab8-46c3-a191-3a53e4ccd85a","publisherDisplayName":"William Roe","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"kahole.magit","uuid":"4d965b97-6bfd-43d8-882c-d4dfce310168"},"version":"0.6.67","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/kahole.magit-0.6.67","scheme":"file"},"relativeLocation":"kahole.magit-0.6.67","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1750400699458,"pinned":false,"source":"gallery","id":"4d965b97-6bfd-43d8-882c-d4dfce310168","publisherId":"74af81ef-7bda-475b-bfe0-ccf6aa9b34dc","publisherDisplayName":"Kristian Andersen Hole","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"vspacecode.vspacecode","uuid":"1c81ab96-0424-43c4-b356-fe408a1bd1cf"},"version":"0.10.20","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/vspacecode.vspacecode-0.10.20","scheme":"file"},"relativeLocation":"vspacecode.vspacecode-0.10.20","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1752784997556,"pinned":false,"source":"gallery","id":"1c81ab96-0424-43c4-b356-fe408a1bd1cf","publisherId":"60415ab6-4581-4e73-a7e0-6fc6b3369f12","publisherDisplayName":"VSpaceCode","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"jjk.jjk","uuid":"27fecc3e-093e-4ff1-b130-b3ccf371337d"},"version":"0.8.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/jjk.jjk-0.8.1","scheme":"file"},"relativeLocation":"jjk.jjk-0.8.1","metadata":{"installedTimestamp":1752544123150,"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}},{"identifier":{"id":"auiworks.amvim","uuid":"55783e24-aad5-4679-b3ec-d048c905c0d0"},"version":"1.37.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/auiworks.amvim-1.37.0","scheme":"file"},"relativeLocation":"auiworks.amvim-1.37.0","metadata":{"installedTimestamp":1753762699375,"pinned":false,"source":"gallery","id":"55783e24-aad5-4679-b3ec-d048c905c0d0","publisherId":"c1a486df-076f-49ae-b795-abcc614f5584","publisherDisplayName":"auiWorks","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"goofygoobers.color-blind-themes","uuid":"2f1c4eec-257d-4360-890a-4c457ecb3535"},"version":"2.2.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/goofygoobers.color-blind-themes-2.2.0","scheme":"file"},"relativeLocation":"goofygoobers.color-blind-themes-2.2.0","metadata":{"installedTimestamp":1755151684906,"source":"gallery","id":"2f1c4eec-257d-4360-890a-4c457ecb3535","publisherId":"2761bd8f-5545-4286-808c-267df1251875","publisherDisplayName":"Goofygoobers","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"saahilclaypool.blind-themes","uuid":"18136ff1-1a9c-4602-ae24-891631acbd8a"},"version":"0.16.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/saahilclaypool.blind-themes-0.16.0","scheme":"file"},"relativeLocation":"saahilclaypool.blind-themes-0.16.0","metadata":{"installedTimestamp":1755155089132,"source":"gallery","id":"18136ff1-1a9c-4602-ae24-891631acbd8a","publisherId":"e855d536-29af-4c0e-86dd-b33570ee92f8","publisherDisplayName":"saahilclaypool","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"harai.light-theme-for-color-blind-people","uuid":"ee3ca637-387d-4c1b-95ac-f3e598abceba"},"version":"0.0.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/harai.light-theme-for-color-blind-people-0.0.1","scheme":"file"},"relativeLocation":"harai.light-theme-for-color-blind-people-0.0.1","metadata":{"installedTimestamp":1755194728184,"source":"gallery","id":"ee3ca637-387d-4c1b-95ac-f3e598abceba","publisherId":"4973c7cf-b856-44f9-949f-8bce144095fd","publisherDisplayName":"harai","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"robbowen.synthwave-vscode","uuid":"e5fd2b56-1637-4d4f-8252-6c9d416f9a28"},"version":"0.1.20","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/robbowen.synthwave-vscode-0.1.20","scheme":"file"},"relativeLocation":"robbowen.synthwave-vscode-0.1.20","metadata":{"installedTimestamp":1757114956744,"source":"gallery","id":"e5fd2b56-1637-4d4f-8252-6c9d416f9a28","publisherId":"561257c5-26a1-41f1-944f-17639b7b9c87","publisherDisplayName":"Robb Owen","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"enkia.tokyo-night","uuid":"1cac7443-911e-48b9-8341-49f3880c288a"},"version":"1.1.2","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/enkia.tokyo-night-1.1.2","scheme":"file"},"relativeLocation":"enkia.tokyo-night-1.1.2","metadata":{"installedTimestamp":1757222775832,"source":"gallery","id":"1cac7443-911e-48b9-8341-49f3880c288a","publisherId":"745c7670-02e7-4a27-b662-e1b5719f2ba7","publisherDisplayName":"enkia","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"sdras.night-owl","uuid":"e58f546c-babc-455f-a265-ba40dbd140d4"},"version":"2.1.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/sdras.night-owl-2.1.1","scheme":"file"},"relativeLocation":"sdras.night-owl-2.1.1","metadata":{"installedTimestamp":1757223091021,"source":"gallery","id":"e58f546c-babc-455f-a265-ba40dbd140d4","publisherId":"addae8ad-0041-44f2-a2d4-cbebe4912d50","publisherDisplayName":"sarah.drasner","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"mickaellherminez.365-daynight-vscode-theme-ext","uuid":"7cbd8c01-3b16-4f95-aee4-19985f404526"},"version":"0.9.7","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/mickaellherminez.365-daynight-vscode-theme-ext-0.9.7","scheme":"file"},"relativeLocation":"mickaellherminez.365-daynight-vscode-theme-ext-0.9.7","metadata":{"installedTimestamp":1757278152614,"source":"gallery","id":"7cbd8c01-3b16-4f95-aee4-19985f404526","publisherId":"69c634fe-9de1-4edb-bd69-423d27360ff2","publisherDisplayName":"Mickael Lherminez","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode.vscode-speech","uuid":"e6610e16-9699-4e1d-a5d7-9bb1643db131"},"version":"0.16.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.vscode-speech-0.16.0-linux-x64","scheme":"file"},"relativeLocation":"ms-vscode.vscode-speech-0.16.0-linux-x64","metadata":{"installedTimestamp":1757278355064,"pinned":false,"source":"gallery","id":"e6610e16-9699-4e1d-a5d7-9bb1643db131","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"linux-x64","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"undefined_publisher.delta-nets-vscode-extension"},"version":"0.1.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/undefined_publisher.delta-nets-vscode-extension-0.1.0","scheme":"file"},"relativeLocation":"undefined_publisher.delta-nets-vscode-extension-0.1.0","metadata":{"installedTimestamp":1757457290758,"pinned":true,"source":"vsix"}},{"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":1757481534711,"pinned":false,"source":"gallery","id":"d5eafbee-176a-421a-b74d-fbc51bd86a21","publisherId":"f002c5e6-5db9-4df2-8791-8800b44272a4","publisherDisplayName":"Tom Rijndorp","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ehabhelaly.summer-night","uuid":"f8c49484-1baf-4459-a2ed-4094c48fc6c3"},"version":"1.0.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ehabhelaly.summer-night-1.0.1","scheme":"file"},"relativeLocation":"ehabhelaly.summer-night-1.0.1","metadata":{"installedTimestamp":1757573022724,"source":"gallery","id":"f8c49484-1baf-4459-a2ed-4094c48fc6c3","publisherId":"18266100-3872-4466-ad31-3f6b187fd1d0","publisherDisplayName":"Ehab Helaly","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode-remote.remote-containers","uuid":"93ce222b-5f6f-49b7-9ab1-a0463c6238df"},"version":"0.427.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode-remote.remote-containers-0.427.0","scheme":"file"},"relativeLocation":"ms-vscode-remote.remote-containers-0.427.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1757616838626,"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":"ms-vscode.remote-server","uuid":"105c0b3c-07a9-4156-a4fc-4141040eb07e"},"version":"1.5.3","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.remote-server-1.5.3","scheme":"file"},"relativeLocation":"ms-vscode.remote-server-1.5.3","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1757616838825,"pinned":false,"source":"gallery","id":"105c0b3c-07a9-4156-a4fc-4141040eb07e","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"rhighs.summerrelax","uuid":"0c50c577-e40e-47ae-9144-c3e250269fc0"},"version":"0.0.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/rhighs.summerrelax-0.0.1","scheme":"file"},"relativeLocation":"rhighs.summerrelax-0.0.1","metadata":{"installedTimestamp":1757629649149,"source":"gallery","id":"0c50c577-e40e-47ae-9144-c3e250269fc0","publisherId":"41bedfb1-a868-4a4e-8dfa-37bc9aa2f731","publisherDisplayName":"rhighs","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"krueger71.crt-themes","uuid":"46ed7e19-d635-4ec8-97f8-783097fe5d22"},"version":"0.5.2","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/krueger71.crt-themes-0.5.2","scheme":"file"},"relativeLocation":"krueger71.crt-themes-0.5.2","metadata":{"installedTimestamp":1757642747179,"source":"gallery","id":"46ed7e19-d635-4ec8-97f8-783097fe5d22","publisherId":"6e72b3df-4b07-480c-ba3b-30d472abe33d","publisherDisplayName":"krueger71","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"rickonono3.docpanel","uuid":"ebdbecf2-30d6-4ac1-8cbc-c2824a7ca53d"},"version":"1.0.10","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/rickonono3.docpanel-1.0.10","scheme":"file"},"relativeLocation":"rickonono3.docpanel-1.0.10","metadata":{"installedTimestamp":1757695117543,"pinned":false,"source":"gallery","id":"ebdbecf2-30d6-4ac1-8cbc-c2824a7ca53d","publisherId":"adb53dd0-9cdf-4be3-a2bc-d80a60760814","publisherDisplayName":"rickonono3","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"alefragnani.bookmarks","uuid":"b689fcc8-d494-4dbf-a228-2c694a578afc"},"version":"13.5.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/alefragnani.bookmarks-13.5.0","scheme":"file"},"relativeLocation":"alefragnani.bookmarks-13.5.0","metadata":{"installedTimestamp":1757709656579,"pinned":false,"source":"gallery","id":"b689fcc8-d494-4dbf-a228-2c694a578afc","publisherId":"3fbdef65-bdf5-4723-aeaf-9e12a50546ef","publisherDisplayName":"Alessandro Fragnani","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"asvetliakov.vscode-neovim","uuid":"caf8995c-5426-4bf7-9d01-f7968ebd49bb"},"version":"1.18.24","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/asvetliakov.vscode-neovim-1.18.24","scheme":"file"},"relativeLocation":"asvetliakov.vscode-neovim-1.18.24","metadata":{"installedTimestamp":1757714293122,"pinned":false,"source":"gallery","id":"caf8995c-5426-4bf7-9d01-f7968ebd49bb","publisherId":"ce6190db-6762-4c9c-99c7-1717b9504159","publisherDisplayName":"Alexey Svetliakov","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"fill-labs.dependi","uuid":"456278dd-7f50-4cbe-8314-ab06540c1057"},"version":"0.7.15","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/fill-labs.dependi-0.7.15","scheme":"file"},"relativeLocation":"fill-labs.dependi-0.7.15","metadata":{"installedTimestamp":1757715369175,"pinned":false,"source":"gallery","id":"456278dd-7f50-4cbe-8314-ab06540c1057","publisherId":"250a42ca-96a3-4224-91b7-caf37e830adb","publisherDisplayName":"Fill Labs","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"alexpasmantier.television","uuid":"4b553b38-4723-423c-9aa2-ac4396fbdb8c"},"version":"0.4.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/alexpasmantier.television-0.4.0","scheme":"file"},"relativeLocation":"alexpasmantier.television-0.4.0","metadata":{"installedTimestamp":1757752703364,"source":"gallery","id":"4b553b38-4723-423c-9aa2-ac4396fbdb8c","publisherId":"d4dec780-bedb-448a-bd30-67d5465c2a5c","publisherDisplayName":"alexpasmantier","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"foam.foam-vscode","uuid":"b85c6625-454b-4b61-8a22-c42f3d0f2e1e"},"version":"0.27.6","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/foam.foam-vscode-0.27.6","scheme":"file"},"relativeLocation":"foam.foam-vscode-0.27.6","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1757898672542,"pinned":false,"source":"gallery","id":"b85c6625-454b-4b61-8a22-c42f3d0f2e1e","publisherId":"34339645-24f0-4619-9917-12157fd92446","publisherDisplayName":"Foam","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"github.remotehub","uuid":"fc7d7e85-2e58-4c1c-97a3-2172ed9a77cd"},"version":"0.64.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.remotehub-0.64.0","scheme":"file"},"relativeLocation":"github.remotehub-0.64.0","metadata":{"installedTimestamp":1757903322287,"pinned":false,"source":"gallery","id":"fc7d7e85-2e58-4c1c-97a3-2172ed9a77cd","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode.remote-repositories","uuid":"cf5142f0-3701-4992-980c-9895a750addf"},"version":"0.42.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.remote-repositories-0.42.0","scheme":"file"},"relativeLocation":"ms-vscode.remote-repositories-0.42.0","metadata":{"installedTimestamp":1757903322267,"pinned":false,"source":"gallery","id":"cf5142f0-3701-4992-980c-9895a750addf","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","uuid":"607fd052-be03-4363-b657-2bd62b83d28a"},"version":"0.120.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode-remote.remote-ssh-0.120.0","scheme":"file"},"relativeLocation":"ms-vscode-remote.remote-ssh-0.120.0","metadata":{"installedTimestamp":1757903411566,"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-explorer","uuid":"11858313-52cc-4e57-b3e4-d7b65281e34b"},"version":"0.5.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.remote-explorer-0.5.0","scheme":"file"},"relativeLocation":"ms-vscode.remote-explorer-0.5.0","metadata":{"installedTimestamp":1757903411572,"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":1757903411579,"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":"elmtooling.elm-ls-vscode","uuid":"85f62745-7ea6-4f23-8aa0-521c0732f664"},"version":"2.8.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/elmtooling.elm-ls-vscode-2.8.0","scheme":"file"},"relativeLocation":"elmtooling.elm-ls-vscode-2.8.0","metadata":{"installedTimestamp":1758887948232,"pinned":false,"source":"gallery","id":"85f62745-7ea6-4f23-8aa0-521c0732f664","publisherId":"e2da53e0-c6b6-4bd2-9b30-15175ab16fb4","publisherDisplayName":"Elm tooling","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ziglang.vscode-zig","uuid":"9f528315-746c-44d9-97ba-d4d505cca308"},"version":"0.6.14","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ziglang.vscode-zig-0.6.14","scheme":"file"},"relativeLocation":"ziglang.vscode-zig-0.6.14","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1759266379332,"pinned":false,"source":"gallery","id":"9f528315-746c-44d9-97ba-d4d505cca308","publisherId":"cefd71b0-991b-4e5d-bcad-e691066ed199","publisherDisplayName":"ziglang","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"raits.rust-development","uuid":"6ea362b4-b01e-4fc9-96b8-078103f808e0"},"version":"0.0.6","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/raits.rust-development-0.0.6","scheme":"file"},"relativeLocation":"raits.rust-development-0.0.6","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1759266379669,"pinned":false,"source":"gallery","id":"6ea362b4-b01e-4fc9-96b8-078103f808e0","publisherId":"ae82625c-b501-42ca-919e-e5a6ca09932e","publisherDisplayName":"René André IT-Services GmbH","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"google.gemini-cli-vscode-ide-companion","uuid":"3f22f99d-2695-4d6c-9a37-0450025dc16b"},"version":"0.7.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/google.gemini-cli-vscode-ide-companion-0.7.0","scheme":"file"},"relativeLocation":"google.gemini-cli-vscode-ide-companion-0.7.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1759474061765,"pinned":false,"source":"gallery","id":"3f22f99d-2695-4d6c-9a37-0450025dc16b","publisherId":"93a45bde-b507-401c-9deb-7a098ebcded8","publisherDisplayName":"Google","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"github.vscode-github-actions","uuid":"04f49bfc-8330-4eee-8237-ea938fb755ef"},"version":"0.28.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.vscode-github-actions-0.28.0","scheme":"file"},"relativeLocation":"github.vscode-github-actions-0.28.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1759474061761,"pinned":false,"source":"gallery","id":"04f49bfc-8330-4eee-8237-ea938fb755ef","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"vscodevim.vim","uuid":"d96e79c6-8b25-4be3-8545-0e0ecefcae03"},"version":"1.31.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/vscodevim.vim-1.31.0","scheme":"file"},"relativeLocation":"vscodevim.vim-1.31.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1759772947568,"pinned":false,"source":"gallery","id":"d96e79c6-8b25-4be3-8545-0e0ecefcae03","publisherId":"5d63889b-1b67-4b1f-8350-4f1dce041a26","publisherDisplayName":"vscodevim","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.5.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/jnoortheen.nix-ide-0.5.0","scheme":"file"},"relativeLocation":"jnoortheen.nix-ide-0.5.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1760251960235,"pinned":false,"source":"gallery","id":"0ffebccd-4265-4f2d-a855-db1adcf278c7","publisherId":"3a7c13d8-8768-454a-be53-290c25bd0f85","publisherDisplayName":"Noortheen","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"ahmadawais.shades-of-purple","uuid":"431aa1a8-74f4-43d5-a83b-f4960510da5f"},"version":"7.3.6","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ahmadawais.shades-of-purple-7.3.6","scheme":"file"},"relativeLocation":"ahmadawais.shades-of-purple-7.3.6","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1760564934598,"pinned":false,"source":"gallery","id":"431aa1a8-74f4-43d5-a83b-f4960510da5f","publisherId":"530c7464-efca-4776-9142-c6f0aeb4084e","publisherDisplayName":"Ahmad Awais ⚡","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"kamen.noctis-high-contrast","uuid":"d91aef70-2e68-4a66-84d6-d6f61a8d8945"},"version":"10.39.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/kamen.noctis-high-contrast-10.39.1","scheme":"file"},"relativeLocation":"kamen.noctis-high-contrast-10.39.1","metadata":{"installedTimestamp":1760994306748,"source":"gallery","id":"d91aef70-2e68-4a66-84d6-d6f61a8d8945","publisherId":"7aef037f-8f06-4326-98b0-8c461b7ce9b5","publisherDisplayName":"Kamen","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"loilo.snazzy-light","uuid":"20077bb9-6134-4ff3-8f68-23555bb241f3"},"version":"1.4.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/loilo.snazzy-light-1.4.1","scheme":"file"},"relativeLocation":"loilo.snazzy-light-1.4.1","metadata":{"installedTimestamp":1761069553707,"source":"gallery","id":"20077bb9-6134-4ff3-8f68-23555bb241f3","publisherId":"541949d0-3bea-4547-a4de-f7c108b6c624","publisherDisplayName":"Florian Reuschel","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"scalameta.metals","uuid":"d56562ae-394d-46cd-a26d-2eafab4ce5a2"},"version":"1.59.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/scalameta.metals-1.59.0","scheme":"file"},"relativeLocation":"scalameta.metals-1.59.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761244318029,"pinned":false,"source":"gallery","id":"d56562ae-394d-46cd-a26d-2eafab4ce5a2","publisherId":"5b1ac358-daf6-4046-980b-bb94d2c94e8a","publisherDisplayName":"Scalameta","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"github.codespaces","uuid":"4023d3e5-c840-4cdd-8b54-51c77548aa3f"},"version":"1.17.5","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.codespaces-1.17.5","scheme":"file"},"relativeLocation":"github.codespaces-1.17.5","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761244318024,"pinned":false,"source":"gallery","id":"4023d3e5-c840-4cdd-8b54-51c77548aa3f","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"whizkydee.material-palenight-theme","uuid":"7f147721-ec06-4043-9e37-c9ffbecbccd1"},"version":"2.0.4","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/whizkydee.material-palenight-theme-2.0.4","scheme":"file"},"relativeLocation":"whizkydee.material-palenight-theme-2.0.4","metadata":{"installedTimestamp":1761286091545,"source":"gallery","id":"7f147721-ec06-4043-9e37-c9ffbecbccd1","publisherId":"942a68c7-9bce-4e1c-9bb0-828710897a61","publisherDisplayName":"Olaolu Olawuyi","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"github.copilot","uuid":"23c4aeee-f844-43cd-b53e-1113e483f1a6"},"version":"1.388.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.copilot-1.388.0","scheme":"file"},"relativeLocation":"github.copilot-1.388.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761349625010,"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":"golang.go","uuid":"d6f6cfea-4b6f-41f4-b571-6ad2ab7918da"},"version":"0.51.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/golang.go-0.51.1","scheme":"file"},"relativeLocation":"golang.go-0.51.1","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761589873539,"pinned":false,"source":"gallery","id":"d6f6cfea-4b6f-41f4-b571-6ad2ab7918da","publisherId":"dbf6ae0a-da75-4167-ac8b-75b4512f2153","publisherDisplayName":"Go Team at Google","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":true,"hasPreReleaseVersion":true,"preRelease":true}},{"identifier":{"id":"visualjj.visualjj","uuid":"338d7429-21f3-449d-acdf-8518eae43a72"},"version":"0.19.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/visualjj.visualjj-0.19.1-linux-x64","scheme":"file"},"relativeLocation":"visualjj.visualjj-0.19.1-linux-x64","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761589873547,"pinned":false,"source":"gallery","id":"338d7429-21f3-449d-acdf-8518eae43a72","publisherId":"828fee6d-3c80-4fdc-9b0e-a9a8d09fb856","publisherDisplayName":"VisualJJ","targetPlatform":"linux-x64","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.2660","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/rust-lang.rust-analyzer-0.3.2660-linux-x64","scheme":"file"},"relativeLocation":"rust-lang.rust-analyzer-0.3.2660-linux-x64","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761674633013,"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":"google.geminicodeassist","uuid":"51643712-2cb2-4384-b7cc-d55b01b8274b"},"version":"2.56.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/google.geminicodeassist-2.56.0","scheme":"file"},"relativeLocation":"google.geminicodeassist-2.56.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761871725101,"pinned":false,"source":"gallery","id":"51643712-2cb2-4384-b7cc-d55b01b8274b","publisherId":"93a45bde-b507-401c-9deb-7a098ebcded8","publisherDisplayName":"Google","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"jeff-hykin.better-nix-syntax","uuid":"233db2c9-69d8-4d47-a1b0-7b8c6210c1b2"},"version":"2.3.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/jeff-hykin.better-nix-syntax-2.3.0","scheme":"file"},"relativeLocation":"jeff-hykin.better-nix-syntax-2.3.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761871725105,"pinned":false,"source":"gallery","id":"233db2c9-69d8-4d47-a1b0-7b8c6210c1b2","publisherId":"b734936b-6cc4-40c1-b17a-c6a7e1f680cd","publisherDisplayName":"Jeff Hykin","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"github.vscode-pull-request-github","uuid":"69ddd764-339a-4ecc-97c1-9c4ece58e36d"},"version":"0.120.2","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.vscode-pull-request-github-0.120.2","scheme":"file"},"relativeLocation":"github.vscode-pull-request-github-0.120.2","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761871725340,"pinned":false,"source":"gallery","id":"69ddd764-339a-4ecc-97c1-9c4ece58e36d","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"github.copilot-chat"},"version":"0.32.4","location":{"$mid":1,"fsPath":"/home/vic/.vscode/extensions/github.copilot-chat-0.32.4","path":"/home/vic/.vscode/extensions/github.copilot-chat-0.32.4","scheme":"file"},"relativeLocation":"github.copilot-chat-0.32.4","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761871725344,"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}}] 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":"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":"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":"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":"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":"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":"usernamehw.errorlens","uuid":"9d8c32ab-354c-4daf-a9bf-20b633734435"},"version":"3.26.0","location":{"$mid":1,"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}},{"identifier":{"id":"scala-lang.scala","uuid":"c6f87c08-f5ca-4f59-8cee-bc29464dcbfb"},"version":"0.5.9","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/scala-lang.scala-0.5.9","scheme":"file"},"relativeLocation":"scala-lang.scala-0.5.9","metadata":{"installedTimestamp":1747372492850,"pinned":false,"source":"gallery","id":"c6f87c08-f5ca-4f59-8cee-bc29464dcbfb","publisherId":"2ffc6e5b-e6aa-408c-98b4-47db120356c8","publisherDisplayName":"scala-lang","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"sanaajani.taskrunnercode","uuid":"2e19ddff-cc5a-4840-9f43-b45371d0c09d"},"version":"0.3.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/sanaajani.taskrunnercode-0.3.0","scheme":"file"},"relativeLocation":"sanaajani.taskrunnercode-0.3.0","metadata":{"installedTimestamp":1747375915641,"pinned":false,"source":"gallery","id":"2e19ddff-cc5a-4840-9f43-b45371d0c09d","publisherId":"60bc378d-7290-4490-873d-5212f6a32882","publisherDisplayName":"Sana Ajani","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"virejdasani.in-your-face","uuid":"c2436335-4b8a-4530-9f45-e0a8315325c2"},"version":"1.1.3","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/virejdasani.in-your-face-1.1.3","scheme":"file"},"relativeLocation":"virejdasani.in-your-face-1.1.3","metadata":{"installedTimestamp":1747376489763,"pinned":false,"source":"gallery","id":"c2436335-4b8a-4530-9f45-e0a8315325c2","publisherId":"91638527-c61c-44ed-8007-7469d95df049","publisherDisplayName":"Virej Dasani","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"akamud.vscode-theme-onedark","uuid":"9b2c953d-6ad4-46d1-b18e-7e5992d1d8a6"},"version":"2.3.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/akamud.vscode-theme-onedark-2.3.0","scheme":"file"},"relativeLocation":"akamud.vscode-theme-onedark-2.3.0","metadata":{"installedTimestamp":1747775771341,"source":"gallery","id":"9b2c953d-6ad4-46d1-b18e-7e5992d1d8a6","publisherId":"1a680e61-b64e-4eff-bbbb-2085b0618f52","publisherDisplayName":"Mahmoud Ali","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode.test-adapter-converter","uuid":"47210ec2-0324-4cbb-9523-9dff02a5f9ec"},"version":"0.2.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.test-adapter-converter-0.2.1","scheme":"file"},"relativeLocation":"ms-vscode.test-adapter-converter-0.2.1","metadata":{"installedTimestamp":1747953994821,"pinned":false,"source":"gallery","id":"47210ec2-0324-4cbb-9523-9dff02a5f9ec","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"swellaby.vscode-rust-test-adapter","uuid":"c167848c-fc11-496e-b432-1fd0a578a408"},"version":"0.11.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/swellaby.vscode-rust-test-adapter-0.11.0","scheme":"file"},"relativeLocation":"swellaby.vscode-rust-test-adapter-0.11.0","metadata":{"installedTimestamp":1747953994807,"pinned":false,"source":"gallery","id":"c167848c-fc11-496e-b432-1fd0a578a408","publisherId":"48c64ea1-db35-4e9e-8977-84495a6cc789","publisherDisplayName":"Swellaby","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"hbenl.vscode-test-explorer","uuid":"ff96f1b4-a4b8-45ef-8ecf-c232c0cb75c8"},"version":"2.22.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/hbenl.vscode-test-explorer-2.22.1","scheme":"file"},"relativeLocation":"hbenl.vscode-test-explorer-2.22.1","metadata":{"installedTimestamp":1747953994813,"pinned":false,"source":"gallery","id":"ff96f1b4-a4b8-45ef-8ecf-c232c0cb75c8","publisherId":"3356f11a-6798-4f03-a93f-3d929b7fca7c","publisherDisplayName":"Holger Benl","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"vadimcn.vscode-lldb","uuid":"bee31e34-a44b-4a76-9ec2-e9fd1439a0f6"},"version":"1.11.4","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/vadimcn.vscode-lldb-1.11.4","scheme":"file"},"relativeLocation":"vadimcn.vscode-lldb-1.11.4","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1747954011953,"pinned":true,"source":"vsix","id":"bee31e34-a44b-4a76-9ec2-e9fd1439a0f6","publisherDisplayName":"Vadim Chugunov","publisherId":"3b05d186-6311-4caa-99b5-09032a9d3cf5","isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"panicbit.cargo","uuid":"ca2ba891-775c-480a-9764-414b06f6e114"},"version":"0.3.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/panicbit.cargo-0.3.0","scheme":"file"},"relativeLocation":"panicbit.cargo-0.3.0","metadata":{"installedTimestamp":1747954004156,"pinned":false,"source":"gallery","id":"ca2ba891-775c-480a-9764-414b06f6e114","publisherId":"87b278c0-dad0-48eb-9013-47f418b56e72","publisherDisplayName":"panicbit","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"jscearcy.rust-doc-viewer","uuid":"eb6486a2-2c35-4e5b-956b-e320c44f732a"},"version":"4.2.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/jscearcy.rust-doc-viewer-4.2.0","scheme":"file"},"relativeLocation":"jscearcy.rust-doc-viewer-4.2.0","metadata":{"installedTimestamp":1747954004153,"pinned":false,"source":"gallery","id":"eb6486a2-2c35-4e5b-956b-e320c44f732a","publisherId":"b2cab060-96e8-4793-836b-317b1e884253","publisherDisplayName":"JScearcy","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"tamasfe.even-better-toml","uuid":"b2215d5f-675e-4a2b-b6ac-1ca737518b78"},"version":"0.21.2","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/tamasfe.even-better-toml-0.21.2","scheme":"file"},"relativeLocation":"tamasfe.even-better-toml-0.21.2","metadata":{"installedTimestamp":1747954004144,"pinned":false,"source":"gallery","id":"b2215d5f-675e-4a2b-b6ac-1ca737518b78","publisherId":"78c2102e-13a2-49ea-ac79-8d1bbacbbf0e","publisherDisplayName":"tamasfe","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"kevinkassimo.cargo-toml-snippets","uuid":"ead9e178-3ef8-4788-999f-bab7a412524f"},"version":"0.1.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/kevinkassimo.cargo-toml-snippets-0.1.1","scheme":"file"},"relativeLocation":"kevinkassimo.cargo-toml-snippets-0.1.1","metadata":{"installedTimestamp":1747954004163,"pinned":false,"source":"gallery","id":"ead9e178-3ef8-4788-999f-bab7a412524f","publisherId":"344316b0-132a-41f9-a82a-ac88b5f3361c","publisherDisplayName":"Kevin (Kassimo) Qian","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"willroe.base16-rebecca","uuid":"97c3f9b5-0aed-445e-a12a-765ae71657ad"},"version":"0.0.3","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/willroe.base16-rebecca-0.0.3","scheme":"file"},"relativeLocation":"willroe.base16-rebecca-0.0.3","metadata":{"installedTimestamp":1748968644749,"source":"gallery","id":"97c3f9b5-0aed-445e-a12a-765ae71657ad","publisherId":"c929070a-5ab8-46c3-a191-3a53e4ccd85a","publisherDisplayName":"William Roe","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"kahole.magit","uuid":"4d965b97-6bfd-43d8-882c-d4dfce310168"},"version":"0.6.67","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/kahole.magit-0.6.67","scheme":"file"},"relativeLocation":"kahole.magit-0.6.67","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1750400699458,"pinned":false,"source":"gallery","id":"4d965b97-6bfd-43d8-882c-d4dfce310168","publisherId":"74af81ef-7bda-475b-bfe0-ccf6aa9b34dc","publisherDisplayName":"Kristian Andersen Hole","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"vspacecode.vspacecode","uuid":"1c81ab96-0424-43c4-b356-fe408a1bd1cf"},"version":"0.10.20","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/vspacecode.vspacecode-0.10.20","scheme":"file"},"relativeLocation":"vspacecode.vspacecode-0.10.20","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1752784997556,"pinned":false,"source":"gallery","id":"1c81ab96-0424-43c4-b356-fe408a1bd1cf","publisherId":"60415ab6-4581-4e73-a7e0-6fc6b3369f12","publisherDisplayName":"VSpaceCode","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"jjk.jjk","uuid":"27fecc3e-093e-4ff1-b130-b3ccf371337d"},"version":"0.8.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/jjk.jjk-0.8.1","scheme":"file"},"relativeLocation":"jjk.jjk-0.8.1","metadata":{"installedTimestamp":1752544123150,"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}},{"identifier":{"id":"auiworks.amvim","uuid":"55783e24-aad5-4679-b3ec-d048c905c0d0"},"version":"1.37.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/auiworks.amvim-1.37.0","scheme":"file"},"relativeLocation":"auiworks.amvim-1.37.0","metadata":{"installedTimestamp":1753762699375,"pinned":false,"source":"gallery","id":"55783e24-aad5-4679-b3ec-d048c905c0d0","publisherId":"c1a486df-076f-49ae-b795-abcc614f5584","publisherDisplayName":"auiWorks","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"goofygoobers.color-blind-themes","uuid":"2f1c4eec-257d-4360-890a-4c457ecb3535"},"version":"2.2.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/goofygoobers.color-blind-themes-2.2.0","scheme":"file"},"relativeLocation":"goofygoobers.color-blind-themes-2.2.0","metadata":{"installedTimestamp":1755151684906,"source":"gallery","id":"2f1c4eec-257d-4360-890a-4c457ecb3535","publisherId":"2761bd8f-5545-4286-808c-267df1251875","publisherDisplayName":"Goofygoobers","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"saahilclaypool.blind-themes","uuid":"18136ff1-1a9c-4602-ae24-891631acbd8a"},"version":"0.16.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/saahilclaypool.blind-themes-0.16.0","scheme":"file"},"relativeLocation":"saahilclaypool.blind-themes-0.16.0","metadata":{"installedTimestamp":1755155089132,"source":"gallery","id":"18136ff1-1a9c-4602-ae24-891631acbd8a","publisherId":"e855d536-29af-4c0e-86dd-b33570ee92f8","publisherDisplayName":"saahilclaypool","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"harai.light-theme-for-color-blind-people","uuid":"ee3ca637-387d-4c1b-95ac-f3e598abceba"},"version":"0.0.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/harai.light-theme-for-color-blind-people-0.0.1","scheme":"file"},"relativeLocation":"harai.light-theme-for-color-blind-people-0.0.1","metadata":{"installedTimestamp":1755194728184,"source":"gallery","id":"ee3ca637-387d-4c1b-95ac-f3e598abceba","publisherId":"4973c7cf-b856-44f9-949f-8bce144095fd","publisherDisplayName":"harai","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"robbowen.synthwave-vscode","uuid":"e5fd2b56-1637-4d4f-8252-6c9d416f9a28"},"version":"0.1.20","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/robbowen.synthwave-vscode-0.1.20","scheme":"file"},"relativeLocation":"robbowen.synthwave-vscode-0.1.20","metadata":{"installedTimestamp":1757114956744,"source":"gallery","id":"e5fd2b56-1637-4d4f-8252-6c9d416f9a28","publisherId":"561257c5-26a1-41f1-944f-17639b7b9c87","publisherDisplayName":"Robb Owen","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"enkia.tokyo-night","uuid":"1cac7443-911e-48b9-8341-49f3880c288a"},"version":"1.1.2","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/enkia.tokyo-night-1.1.2","scheme":"file"},"relativeLocation":"enkia.tokyo-night-1.1.2","metadata":{"installedTimestamp":1757222775832,"source":"gallery","id":"1cac7443-911e-48b9-8341-49f3880c288a","publisherId":"745c7670-02e7-4a27-b662-e1b5719f2ba7","publisherDisplayName":"enkia","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"sdras.night-owl","uuid":"e58f546c-babc-455f-a265-ba40dbd140d4"},"version":"2.1.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/sdras.night-owl-2.1.1","scheme":"file"},"relativeLocation":"sdras.night-owl-2.1.1","metadata":{"installedTimestamp":1757223091021,"source":"gallery","id":"e58f546c-babc-455f-a265-ba40dbd140d4","publisherId":"addae8ad-0041-44f2-a2d4-cbebe4912d50","publisherDisplayName":"sarah.drasner","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"mickaellherminez.365-daynight-vscode-theme-ext","uuid":"7cbd8c01-3b16-4f95-aee4-19985f404526"},"version":"0.9.7","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/mickaellherminez.365-daynight-vscode-theme-ext-0.9.7","scheme":"file"},"relativeLocation":"mickaellherminez.365-daynight-vscode-theme-ext-0.9.7","metadata":{"installedTimestamp":1757278152614,"source":"gallery","id":"7cbd8c01-3b16-4f95-aee4-19985f404526","publisherId":"69c634fe-9de1-4edb-bd69-423d27360ff2","publisherDisplayName":"Mickael Lherminez","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode.vscode-speech","uuid":"e6610e16-9699-4e1d-a5d7-9bb1643db131"},"version":"0.16.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.vscode-speech-0.16.0-linux-x64","scheme":"file"},"relativeLocation":"ms-vscode.vscode-speech-0.16.0-linux-x64","metadata":{"installedTimestamp":1757278355064,"pinned":false,"source":"gallery","id":"e6610e16-9699-4e1d-a5d7-9bb1643db131","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"linux-x64","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"undefined_publisher.delta-nets-vscode-extension"},"version":"0.1.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/undefined_publisher.delta-nets-vscode-extension-0.1.0","scheme":"file"},"relativeLocation":"undefined_publisher.delta-nets-vscode-extension-0.1.0","metadata":{"installedTimestamp":1757457290758,"pinned":true,"source":"vsix"}},{"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":1757481534711,"pinned":false,"source":"gallery","id":"d5eafbee-176a-421a-b74d-fbc51bd86a21","publisherId":"f002c5e6-5db9-4df2-8791-8800b44272a4","publisherDisplayName":"Tom Rijndorp","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ehabhelaly.summer-night","uuid":"f8c49484-1baf-4459-a2ed-4094c48fc6c3"},"version":"1.0.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ehabhelaly.summer-night-1.0.1","scheme":"file"},"relativeLocation":"ehabhelaly.summer-night-1.0.1","metadata":{"installedTimestamp":1757573022724,"source":"gallery","id":"f8c49484-1baf-4459-a2ed-4094c48fc6c3","publisherId":"18266100-3872-4466-ad31-3f6b187fd1d0","publisherDisplayName":"Ehab Helaly","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.3","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.remote-server-1.5.3","scheme":"file"},"relativeLocation":"ms-vscode.remote-server-1.5.3","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1757616838825,"pinned":false,"source":"gallery","id":"105c0b3c-07a9-4156-a4fc-4141040eb07e","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"rhighs.summerrelax","uuid":"0c50c577-e40e-47ae-9144-c3e250269fc0"},"version":"0.0.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/rhighs.summerrelax-0.0.1","scheme":"file"},"relativeLocation":"rhighs.summerrelax-0.0.1","metadata":{"installedTimestamp":1757629649149,"source":"gallery","id":"0c50c577-e40e-47ae-9144-c3e250269fc0","publisherId":"41bedfb1-a868-4a4e-8dfa-37bc9aa2f731","publisherDisplayName":"rhighs","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"krueger71.crt-themes","uuid":"46ed7e19-d635-4ec8-97f8-783097fe5d22"},"version":"0.5.2","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/krueger71.crt-themes-0.5.2","scheme":"file"},"relativeLocation":"krueger71.crt-themes-0.5.2","metadata":{"installedTimestamp":1757642747179,"source":"gallery","id":"46ed7e19-d635-4ec8-97f8-783097fe5d22","publisherId":"6e72b3df-4b07-480c-ba3b-30d472abe33d","publisherDisplayName":"krueger71","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"rickonono3.docpanel","uuid":"ebdbecf2-30d6-4ac1-8cbc-c2824a7ca53d"},"version":"1.0.10","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/rickonono3.docpanel-1.0.10","scheme":"file"},"relativeLocation":"rickonono3.docpanel-1.0.10","metadata":{"installedTimestamp":1757695117543,"pinned":false,"source":"gallery","id":"ebdbecf2-30d6-4ac1-8cbc-c2824a7ca53d","publisherId":"adb53dd0-9cdf-4be3-a2bc-d80a60760814","publisherDisplayName":"rickonono3","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"alefragnani.bookmarks","uuid":"b689fcc8-d494-4dbf-a228-2c694a578afc"},"version":"13.5.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/alefragnani.bookmarks-13.5.0","scheme":"file"},"relativeLocation":"alefragnani.bookmarks-13.5.0","metadata":{"installedTimestamp":1757709656579,"pinned":false,"source":"gallery","id":"b689fcc8-d494-4dbf-a228-2c694a578afc","publisherId":"3fbdef65-bdf5-4723-aeaf-9e12a50546ef","publisherDisplayName":"Alessandro Fragnani","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"asvetliakov.vscode-neovim","uuid":"caf8995c-5426-4bf7-9d01-f7968ebd49bb"},"version":"1.18.24","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/asvetliakov.vscode-neovim-1.18.24","scheme":"file"},"relativeLocation":"asvetliakov.vscode-neovim-1.18.24","metadata":{"installedTimestamp":1757714293122,"pinned":false,"source":"gallery","id":"caf8995c-5426-4bf7-9d01-f7968ebd49bb","publisherId":"ce6190db-6762-4c9c-99c7-1717b9504159","publisherDisplayName":"Alexey Svetliakov","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"alexpasmantier.television","uuid":"4b553b38-4723-423c-9aa2-ac4396fbdb8c"},"version":"0.4.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/alexpasmantier.television-0.4.0","scheme":"file"},"relativeLocation":"alexpasmantier.television-0.4.0","metadata":{"installedTimestamp":1757752703364,"source":"gallery","id":"4b553b38-4723-423c-9aa2-ac4396fbdb8c","publisherId":"d4dec780-bedb-448a-bd30-67d5465c2a5c","publisherDisplayName":"alexpasmantier","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"foam.foam-vscode","uuid":"b85c6625-454b-4b61-8a22-c42f3d0f2e1e"},"version":"0.27.6","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/foam.foam-vscode-0.27.6","scheme":"file"},"relativeLocation":"foam.foam-vscode-0.27.6","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1757898672542,"pinned":false,"source":"gallery","id":"b85c6625-454b-4b61-8a22-c42f3d0f2e1e","publisherId":"34339645-24f0-4619-9917-12157fd92446","publisherDisplayName":"Foam","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"github.remotehub","uuid":"fc7d7e85-2e58-4c1c-97a3-2172ed9a77cd"},"version":"0.64.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.remotehub-0.64.0","scheme":"file"},"relativeLocation":"github.remotehub-0.64.0","metadata":{"installedTimestamp":1757903322287,"pinned":false,"source":"gallery","id":"fc7d7e85-2e58-4c1c-97a3-2172ed9a77cd","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode.remote-repositories","uuid":"cf5142f0-3701-4992-980c-9895a750addf"},"version":"0.42.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.remote-repositories-0.42.0","scheme":"file"},"relativeLocation":"ms-vscode.remote-repositories-0.42.0","metadata":{"installedTimestamp":1757903322267,"pinned":false,"source":"gallery","id":"cf5142f0-3701-4992-980c-9895a750addf","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","uuid":"607fd052-be03-4363-b657-2bd62b83d28a"},"version":"0.120.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode-remote.remote-ssh-0.120.0","scheme":"file"},"relativeLocation":"ms-vscode-remote.remote-ssh-0.120.0","metadata":{"installedTimestamp":1757903411566,"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-explorer","uuid":"11858313-52cc-4e57-b3e4-d7b65281e34b"},"version":"0.5.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode.remote-explorer-0.5.0","scheme":"file"},"relativeLocation":"ms-vscode.remote-explorer-0.5.0","metadata":{"installedTimestamp":1757903411572,"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":1757903411579,"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":"elmtooling.elm-ls-vscode","uuid":"85f62745-7ea6-4f23-8aa0-521c0732f664"},"version":"2.8.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/elmtooling.elm-ls-vscode-2.8.0","scheme":"file"},"relativeLocation":"elmtooling.elm-ls-vscode-2.8.0","metadata":{"installedTimestamp":1758887948232,"pinned":false,"source":"gallery","id":"85f62745-7ea6-4f23-8aa0-521c0732f664","publisherId":"e2da53e0-c6b6-4bd2-9b30-15175ab16fb4","publisherDisplayName":"Elm tooling","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"raits.rust-development","uuid":"6ea362b4-b01e-4fc9-96b8-078103f808e0"},"version":"0.0.6","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/raits.rust-development-0.0.6","scheme":"file"},"relativeLocation":"raits.rust-development-0.0.6","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1759266379669,"pinned":false,"source":"gallery","id":"6ea362b4-b01e-4fc9-96b8-078103f808e0","publisherId":"ae82625c-b501-42ca-919e-e5a6ca09932e","publisherDisplayName":"René André IT-Services GmbH","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"google.gemini-cli-vscode-ide-companion","uuid":"3f22f99d-2695-4d6c-9a37-0450025dc16b"},"version":"0.7.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/google.gemini-cli-vscode-ide-companion-0.7.0","scheme":"file"},"relativeLocation":"google.gemini-cli-vscode-ide-companion-0.7.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1759474061765,"pinned":false,"source":"gallery","id":"3f22f99d-2695-4d6c-9a37-0450025dc16b","publisherId":"93a45bde-b507-401c-9deb-7a098ebcded8","publisherDisplayName":"Google","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"github.vscode-github-actions","uuid":"04f49bfc-8330-4eee-8237-ea938fb755ef"},"version":"0.28.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.vscode-github-actions-0.28.0","scheme":"file"},"relativeLocation":"github.vscode-github-actions-0.28.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1759474061761,"pinned":false,"source":"gallery","id":"04f49bfc-8330-4eee-8237-ea938fb755ef","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.5.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/jnoortheen.nix-ide-0.5.0","scheme":"file"},"relativeLocation":"jnoortheen.nix-ide-0.5.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1760251960235,"pinned":false,"source":"gallery","id":"0ffebccd-4265-4f2d-a855-db1adcf278c7","publisherId":"3a7c13d8-8768-454a-be53-290c25bd0f85","publisherDisplayName":"Noortheen","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"ahmadawais.shades-of-purple","uuid":"431aa1a8-74f4-43d5-a83b-f4960510da5f"},"version":"7.3.6","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ahmadawais.shades-of-purple-7.3.6","scheme":"file"},"relativeLocation":"ahmadawais.shades-of-purple-7.3.6","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1760564934598,"pinned":false,"source":"gallery","id":"431aa1a8-74f4-43d5-a83b-f4960510da5f","publisherId":"530c7464-efca-4776-9142-c6f0aeb4084e","publisherDisplayName":"Ahmad Awais ⚡","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"kamen.noctis-high-contrast","uuid":"d91aef70-2e68-4a66-84d6-d6f61a8d8945"},"version":"10.39.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/kamen.noctis-high-contrast-10.39.1","scheme":"file"},"relativeLocation":"kamen.noctis-high-contrast-10.39.1","metadata":{"installedTimestamp":1760994306748,"source":"gallery","id":"d91aef70-2e68-4a66-84d6-d6f61a8d8945","publisherId":"7aef037f-8f06-4326-98b0-8c461b7ce9b5","publisherDisplayName":"Kamen","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"loilo.snazzy-light","uuid":"20077bb9-6134-4ff3-8f68-23555bb241f3"},"version":"1.4.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/loilo.snazzy-light-1.4.1","scheme":"file"},"relativeLocation":"loilo.snazzy-light-1.4.1","metadata":{"installedTimestamp":1761069553707,"source":"gallery","id":"20077bb9-6134-4ff3-8f68-23555bb241f3","publisherId":"541949d0-3bea-4547-a4de-f7c108b6c624","publisherDisplayName":"Florian Reuschel","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"scalameta.metals","uuid":"d56562ae-394d-46cd-a26d-2eafab4ce5a2"},"version":"1.59.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/scalameta.metals-1.59.0","scheme":"file"},"relativeLocation":"scalameta.metals-1.59.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761244318029,"pinned":false,"source":"gallery","id":"d56562ae-394d-46cd-a26d-2eafab4ce5a2","publisherId":"5b1ac358-daf6-4046-980b-bb94d2c94e8a","publisherDisplayName":"Scalameta","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"github.codespaces","uuid":"4023d3e5-c840-4cdd-8b54-51c77548aa3f"},"version":"1.17.5","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.codespaces-1.17.5","scheme":"file"},"relativeLocation":"github.codespaces-1.17.5","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761244318024,"pinned":false,"source":"gallery","id":"4023d3e5-c840-4cdd-8b54-51c77548aa3f","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"whizkydee.material-palenight-theme","uuid":"7f147721-ec06-4043-9e37-c9ffbecbccd1"},"version":"2.0.4","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/whizkydee.material-palenight-theme-2.0.4","scheme":"file"},"relativeLocation":"whizkydee.material-palenight-theme-2.0.4","metadata":{"installedTimestamp":1761286091545,"source":"gallery","id":"7f147721-ec06-4043-9e37-c9ffbecbccd1","publisherId":"942a68c7-9bce-4e1c-9bb0-828710897a61","publisherDisplayName":"Olaolu Olawuyi","targetPlatform":"undefined","updated":false,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"github.copilot","uuid":"23c4aeee-f844-43cd-b53e-1113e483f1a6"},"version":"1.388.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.copilot-1.388.0","scheme":"file"},"relativeLocation":"github.copilot-1.388.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761349625010,"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":"golang.go","uuid":"d6f6cfea-4b6f-41f4-b571-6ad2ab7918da"},"version":"0.51.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/golang.go-0.51.1","scheme":"file"},"relativeLocation":"golang.go-0.51.1","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761589873539,"pinned":false,"source":"gallery","id":"d6f6cfea-4b6f-41f4-b571-6ad2ab7918da","publisherId":"dbf6ae0a-da75-4167-ac8b-75b4512f2153","publisherDisplayName":"Go Team at Google","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":true,"hasPreReleaseVersion":true,"preRelease":true}},{"identifier":{"id":"jeff-hykin.better-nix-syntax","uuid":"233db2c9-69d8-4d47-a1b0-7b8c6210c1b2"},"version":"2.3.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/jeff-hykin.better-nix-syntax-2.3.0","scheme":"file"},"relativeLocation":"jeff-hykin.better-nix-syntax-2.3.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761871725105,"pinned":false,"source":"gallery","id":"233db2c9-69d8-4d47-a1b0-7b8c6210c1b2","publisherId":"b734936b-6cc4-40c1-b17a-c6a7e1f680cd","publisherDisplayName":"Jeff Hykin","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"github.vscode-pull-request-github","uuid":"69ddd764-339a-4ecc-97c1-9c4ece58e36d"},"version":"0.120.2","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.vscode-pull-request-github-0.120.2","scheme":"file"},"relativeLocation":"github.vscode-pull-request-github-0.120.2","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1761871725340,"pinned":false,"source":"gallery","id":"69ddd764-339a-4ecc-97c1-9c4ece58e36d","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"vscodevim.vim","uuid":"d96e79c6-8b25-4be3-8545-0e0ecefcae03"},"version":"1.32.1","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/vscodevim.vim-1.32.1","scheme":"file"},"relativeLocation":"vscodevim.vim-1.32.1","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1763041895386,"pinned":false,"source":"gallery","id":"d96e79c6-8b25-4be3-8545-0e0ecefcae03","publisherId":"5d63889b-1b67-4b1f-8350-4f1dce041a26","publisherDisplayName":"vscodevim","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"ms-vscode-remote.remote-containers","uuid":"93ce222b-5f6f-49b7-9ab1-a0463c6238df"},"version":"0.431.0","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ms-vscode-remote.remote-containers-0.431.0","scheme":"file"},"relativeLocation":"ms-vscode-remote.remote-containers-0.431.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1763041895383,"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.32.5","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/github.copilot-chat-0.32.5","scheme":"file"},"relativeLocation":"github.copilot-chat-0.32.5","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1763041895376,"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.2675","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/rust-lang.rust-analyzer-0.3.2675-linux-x64","scheme":"file"},"relativeLocation":"rust-lang.rust-analyzer-0.3.2675-linux-x64","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1763041895381,"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":"visualjj.visualjj","uuid":"338d7429-21f3-449d-acdf-8518eae43a72"},"version":"0.19.4","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/visualjj.visualjj-0.19.4-linux-x64","scheme":"file"},"relativeLocation":"visualjj.visualjj-0.19.4-linux-x64","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1763041895420,"pinned":false,"source":"gallery","id":"338d7429-21f3-449d-acdf-8518eae43a72","publisherId":"828fee6d-3c80-4fdc-9b0e-a9a8d09fb856","publisherDisplayName":"VisualJJ","targetPlatform":"linux-x64","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"ziglang.vscode-zig","uuid":"9f528315-746c-44d9-97ba-d4d505cca308"},"version":"0.6.15","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/ziglang.vscode-zig-0.6.15","scheme":"file"},"relativeLocation":"ziglang.vscode-zig-0.6.15","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1763041895389,"pinned":false,"source":"gallery","id":"9f528315-746c-44d9-97ba-d4d505cca308","publisherId":"cefd71b0-991b-4e5d-bcad-e691066ed199","publisherDisplayName":"ziglang","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"fill-labs.dependi","uuid":"456278dd-7f50-4cbe-8314-ab06540c1057"},"version":"0.7.17","location":{"$mid":1,"path":"/home/vic/.vscode/extensions/fill-labs.dependi-0.7.17","scheme":"file"},"relativeLocation":"fill-labs.dependi-0.7.17","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1763041895501,"pinned":false,"source":"gallery","id":"456278dd-7f50-4cbe-8314-ab06540c1057","publisherId":"250a42ca-96a3-4224-91b7-caf37e830adb","publisherDisplayName":"Fill Labs","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"google.geminicodeassist"},"version":"2.58.0","location":{"$mid":1,"fsPath":"/home/vic/.vscode/extensions/google.geminicodeassist-2.58.0","path":"/home/vic/.vscode/extensions/google.geminicodeassist-2.58.0","scheme":"file"},"relativeLocation":"google.geminicodeassist-2.58.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1763041895378,"pinned":false,"source":"gallery","id":"51643712-2cb2-4384-b7cc-d55b01b8274b","publisherId":"93a45bde-b507-401c-9deb-7a098ebcded8","publisherDisplayName":"Google","targetPlatform":"undefined","updated":true,"private":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}}]
+3 -6
modules/vic/editors.nix
··· 1 - { vix, ... }: 1 + { __findFile, ... }: 2 2 { 3 - vix.vic.provides.editors = _: { 3 + vic.editors = _: { 4 4 includes = [ 5 - (vix.unfree [ 6 - "cursor" 7 - "vscode" 8 - ]) 5 + (<den/unfree> [ "cursor" "vscode" ]) 9 6 ]; 10 7 11 8 homeManager =
+32 -12
modules/vic/fish.nix
··· 1 + { inputs, ... }: 1 2 { 2 - vix.vic.provides.fish = 3 - { user, ... }: 3 + vic.fish.homeManager = 4 + { pkgs, ... }: 5 + let 6 + inherit (pkgs) lib; 7 + 8 + code-visual = '' 9 + if test "$VSCODE_INJECTION" = "1" 10 + set -x VISUAL code 11 + end 12 + ''; 13 + in 4 14 { 5 - nixos = 6 - { pkgs, ... }: 7 - { 8 - programs.fish.enable = true; 9 - users.users.${user.userName}.shell = pkgs.fish; 10 - }; 11 15 12 - homeManager = { 13 - programs.fzf.enable = true; 14 - # programs.fzf.enableFishIntegration = true; 15 - programs.fish.enable = true; 16 + #home.file.".config/fish/conf.d/init-leader.fish".source = 17 + # "${inputs.cli-leader.outPath}/assets/leader.fish.sh"; 18 + home.file.".config/fish/conf.d/vscode-vim.fish".text = code-visual; 19 + home.file.".config/fish/conf.d/tv.fish".text = '' 20 + ${pkgs.television}/bin/tv init fish | source 21 + ''; 22 + home.file.".config/fish/conf.d/tvtab.fish".source = ./_fish/tv.fish; 23 + 24 + programs.fzf.enable = true; 25 + # programs.fzf.enableFishIntegration = true; 26 + 27 + programs.fish = { 28 + enable = true; 29 + 30 + functions = import ./_fish/functions.nix { inherit inputs lib; }; 31 + shellAliases = import ./_fish/aliases.nix; 32 + shellAbbrs = import ./_fish/abbrs.nix; 33 + 34 + plugins = [ ]; # pure done fzf.fish pisces z 16 35 }; 36 + 17 37 }; 18 38 }
+1 -1
modules/vic/fonts.nix
··· 1 1 { 2 - vix.vic.provides.fonts = _: { 2 + vic.fonts = _: { 3 3 nixos = 4 4 { pkgs, ... }: 5 5 {
+75
modules/vic/git.nix
··· 1 + { 2 + vic.git.homeManager = 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 + "/.github/chatmodes" 47 + "/.github/instructions" 48 + "/vic" 49 + "*.key" 50 + "target" 51 + "result" 52 + "out" 53 + "old" 54 + "*~" 55 + ".aider*" 56 + ".crush*" 57 + "CRUSH.md" 58 + "GEMINI.md" 59 + "CLAUDE.md" 60 + ]; 61 + includes = [ ]; 62 + # { path = "${DOTS}/git/something"; } 63 + 64 + lfs.enable = true; 65 + 66 + delta.enable = true; 67 + delta.options = { 68 + line-numbers = true; 69 + side-by-side = false; 70 + }; 71 + }; 72 + 73 + }; 74 + 75 + }
+1 -1
modules/vic/hm-backup.nix
··· 1 1 { 2 - vix.vic.provides.hm-backup = _: { 2 + vic.hm-backup = _: { 3 3 nixos.home-manager.backupFileExtension = "hm-backup"; 4 4 }; 5 5 }
+224
modules/vic/jujutsu.nix
··· 1 + # https://oppi.li/posts/configuring_jujutsu/ 2 + # https://github.com/jj-vcs/jj/discussions/5812 3 + # https://gist.github.com/thoughtpolice/8f2fd36ae17cd11b8e7bd93a70e31ad6 4 + { inputs, ... }: 5 + { 6 + flake-file.inputs.jjui.url = "github:idursun/jjui"; 7 + 8 + vic.jujutsu.homeManager = 9 + { pkgs, ... }: 10 + let 11 + jjui = inputs.jjui.packages.${pkgs.system}.jjui; 12 + jjui-wrapped = pkgs.writeShellApplication { 13 + name = "jjui"; 14 + text = '' 15 + # ask for password if key is not loaded, before jjui 16 + ssh-add -l || ssh-add 17 + ${pkgs.lib.getExe jjui} "$@" 18 + ''; 19 + }; 20 + in 21 + { 22 + home.packages = [ 23 + pkgs.lazyjj 24 + pkgs.jj-fzf 25 + jjui-wrapped 26 + ]; 27 + 28 + programs.jujutsu = 29 + let 30 + diff-formatter = [ 31 + (pkgs.lib.getExe pkgs.difftastic) 32 + # "--pager" 33 + # (pkgs.lib.getExe pkgs.bat) 34 + # "--side-by-side" 35 + "$left" 36 + "$right" 37 + ]; 38 + in 39 + { 40 + enable = true; 41 + 42 + # See https://jj-vcs.github.io/jj/v0.17.0/config 43 + settings = { 44 + user.name = "Victor Borja"; 45 + user.email = "vborja@apache.org"; 46 + 47 + revsets.log = "default()"; 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 + "immutable_heads()" = "builtin_immutable_heads() | remote_bookmarks()"; 59 + 60 + "closest_bookmark(to)" = "heads(::to & bookmarks())"; 61 + 62 + # jjui default 63 + "default_log()" = "present(@) | ancestors(immutable_heads().., 2) | present(trunk())"; 64 + 65 + "default()" = "coalesce(trunk(),root())::present(@) | ancestors(visible_heads() & recent(), 2)"; 66 + 67 + "recent()" = "committer_date(after:'1 week ago')"; 68 + }; 69 + 70 + template-aliases = { 71 + "format_short_id(id)" = "id.shortest().upper()"; # default is shortest(12) 72 + "format_short_change_id(id)" = "format_short_id(id)"; 73 + "format_short_signature(signature)" = "signature.email()"; 74 + "format_timestamp(timestamp)" = "timestamp.ago()"; 75 + }; 76 + 77 + "--scope" = [ 78 + { 79 + "--when".commands = [ 80 + "diff" 81 + "show" 82 + ]; 83 + ui.pager = (pkgs.lib.getExe pkgs.bat); 84 + ui.diff-formatter = diff-formatter; 85 + } 86 + { 87 + "--when".repositories = [ "~/hk/jjui" ]; 88 + revsets.log = "default()"; 89 + revset-aliases = { 90 + "trunk()" = "main@idursun"; 91 + "vic" = "remote_bookmarks('', 'vic')"; 92 + "idursun" = "remote_bookmarks('', 'idursun')"; 93 + "default()" = 94 + "coalesce( trunk(), root() )::present(@) | ancestors(visible_heads() & recent(), 2) | idursun | vic"; 95 + }; 96 + aliases = { 97 + "n" = [ 98 + "new" 99 + "main@idursun" 100 + ]; 101 + }; 102 + } 103 + ]; 104 + 105 + ui = { 106 + default-command = [ 107 + "status" 108 + ]; 109 + inherit diff-formatter; 110 + # pager = ":builtin"; 111 + # editor = "nvim"; 112 + # merge-editor = pkgs.meld; # meld 113 + diff-editor = [ 114 + "nvim" 115 + "-c" 116 + "DiffEditor $left $right $output" 117 + ]; 118 + conflict-marker-style = "git"; 119 + movement.edit = false; 120 + }; 121 + 122 + signing = { 123 + behaviour = "own"; 124 + backend = "ssh"; 125 + key = "~/.ssh/id_ed25519.pub"; 126 + }; 127 + 128 + templates = { 129 + git_push_bookmark = "vic/jj-change-"; 130 + }; 131 + 132 + aliases = { 133 + tug = [ 134 + "bookmark" 135 + "move" 136 + "--from" 137 + "closest_bookmark(@-)" 138 + "--to" 139 + "@-" 140 + ]; 141 + lr = [ 142 + "log" 143 + "-r" 144 + "default() & recent()" 145 + ]; 146 + 147 + s = [ "show" ]; 148 + 149 + sq = [ 150 + "squash" 151 + "-i" 152 + ]; 153 + sU = [ 154 + "squash" 155 + "-i" 156 + "-f" 157 + "@+" 158 + "-t" 159 + "@" 160 + ]; 161 + su = [ 162 + "squash" 163 + "-i" 164 + "-f" 165 + "@" 166 + "-t" 167 + "@+" 168 + ]; 169 + sd = [ 170 + "squash" 171 + "-i" 172 + "-f" 173 + "@" 174 + "-t" 175 + "@-" 176 + ]; 177 + sD = [ 178 + "squash" 179 + "-i" 180 + "-f" 181 + "@-" 182 + "-t" 183 + "@" 184 + ]; 185 + 186 + l = [ 187 + "log" 188 + "-r" 189 + "compared_to_trunk()" 190 + "--config" 191 + "template-aliases.'format_short_id(id)'='id.shortest().upper()'" 192 + "--config" 193 + "template-aliases.'format_short_change_id(id)'='id.shortest().upper()'" 194 + "--config" 195 + "template-aliases.'format_timestamp(timestamp)'='timestamp.ago()'" 196 + ]; 197 + 198 + # like git log, all visible commits in the repo 199 + ll = [ 200 + "log" 201 + "-r" 202 + ".." 203 + ]; 204 + }; 205 + 206 + }; 207 + }; 208 + 209 + home.file.".config/jjui/config.toml".source = 210 + let 211 + # https://github.com/idursun/jjui/wiki/Configuration 212 + toml = { 213 + leader.e.help = "Edit file"; 214 + leader.e.send = [ 215 + "$" 216 + "jj edit $change_id && $VISUAL $file" 217 + "enter" 218 + ]; 219 + }; 220 + fmt = pkgs.formats.toml { }; 221 + in 222 + fmt.generate "config.toml" toml; 223 + }; 224 + }
+1 -1
modules/vic/nix-btw.nix
··· 1 1 { 2 2 # flake-file.inputs.ntv.url = "github:vic/ntv"; 3 3 4 - vix.vic.provides.nix-btw = _: { 4 + vic.nix-btw = _: { 5 5 6 6 homeManager = 7 7 { pkgs, ... }:
+71
modules/vic/secrets.nix
··· 1 + { inputs, ... }: 2 + let 3 + 4 + flake-file.inputs.sops-nix.url = "github:Mic92/sops-nix"; 5 + 6 + vic.secrets.homeManager = 7 + { 8 + config, 9 + pkgs, 10 + ... 11 + }: 12 + { 13 + 14 + imports = [ 15 + inputs.sops-nix.homeManagerModules.sops 16 + ]; 17 + 18 + home.packages = [ pkgs.sops ]; 19 + 20 + sops = { 21 + age.keyFile = "${config.xdg.configHome}/sops/age/keys.txt"; 22 + age.sshKeyPaths = [ ]; 23 + age.generateKey = false; 24 + defaultSopsFile = ./secrets.yaml; 25 + validateSopsFiles = true; 26 + 27 + secrets = { 28 + "hello" = { }; 29 + "groq_api_key" = { }; 30 + "openrouter_api_key" = { }; 31 + "gemini_eco_key" = { }; 32 + "copilot_api_key" = { }; 33 + "anthropic_api_key" = { }; 34 + "edge.token" = { 35 + format = "binary"; 36 + sopsFile = ./secrets/edge.token; 37 + }; 38 + "ssh/id_ed25519" = { 39 + format = "binary"; 40 + sopsFile = ./secrets/mordor; 41 + }; 42 + "ssh/sops_ssh_config" = { 43 + format = "binary"; 44 + sopsFile = ./secrets/ssh-conf; 45 + }; 46 + "ssh/localhost_run" = { 47 + format = "binary"; 48 + sopsFile = ./secrets/localhost_run; 49 + }; 50 + }; 51 + 52 + templates = { 53 + "hello.toml".content = '' 54 + hello = "Wooo ${config.sops.placeholder.hello} Hoo"; 55 + ''; 56 + "llm_apis.env".content = '' 57 + export OPENROUTER_API_KEY="${config.sops.placeholder.openrouter_api_key}" 58 + export GEMINI_API_KEY="${config.sops.placeholder.gemini_eco_key}" 59 + export OPENAI_API_KEY="${config.sops.placeholder.copilot_api_key}" 60 + export ANTHROPIC_API_KEY="${config.sops.placeholder.anthropic_api_key}" 61 + export GROQ_API_KEY="${config.sops.placeholder.groq_api_key}" 62 + ''; 63 + }; 64 + }; 65 + 66 + }; 67 + in 68 + { 69 + inherit flake-file; 70 + inherit vic; 71 + }
+38
modules/vic/secrets.yaml
··· 1 + hello: ENC[AES256_GCM,data:6bqz3LftXaUYtW8FNm6Jw7+7k7GjxgX1GD0jNqvLf6KLtqJVbh770F5dxwdjHg==,iv:f8cgbppFfeESlcEwAxBQFVNVJP2EVib2uCiUw0zfwP8=,tag:wtjxBckxr6l72CCvEpV72A==,type:str] 2 + gemini_eco_key: ENC[AES256_GCM,data:cvtR8MwOx6rBg3n30b6NMWpoDRy7GcgDItobDIOqO3iqVcRiCXmW,iv:EF2lAGOZWN3cWu/Xn+VpwSzyxIDam4j7mpTbsY8vhIA=,tag:HmlhtrCBv2HLXKSdDrrqxA==,type:str] 3 + egdevnc: ENC[AES256_GCM,data:CG0uK84HCtHhAXZw,iv:dBu3dLlYFRhTiXOXfnY8tQAi7X9vIepV/BHh2TGghgA=,tag:Ydh7y7N6lSjH/e3rjBDFoQ==,type:str] 4 + gh_actions_pat: ENC[AES256_GCM,data:SqCxpMtXX7jBG0toAHru5TLyKr121dZDZun1Bc/hBj3eJV31axs8o9HyL4by9NttfaYbg+5AEXZQqwHF3a0Upo8dsxv90dCJLWzz+vc2iDsl6uPktZtiN6aPLMsI,iv:NONHWFikaQCiTz+gzrJ5dn9bKgo1NjbustcsNCRDUXI=,tag:iPru+5wgFvk+OMfrB0KSaQ==,type:str] 5 + cachix_personal: ENC[AES256_GCM,data:0YQp5ClidOxfeq0rDhZl3Ia9JGK8OIZWBaQhvrJmLDpRUlw8aENdT2vVaoXNljw8idd3vmZ/Dk5rOCghQrDibLNUgI991JvQNfvAukD02kjbE+Fg/pBmDWYiafuacQd5e/SYpth/IojEP76yF9AEn7JHS2hs3DNlOHpNjYwPyXROlRax7CXKIxwASThOxmZoMw==,iv:mymYXDiM7gheeCWR5vYJI3plVSIbT9g6l6oZGrB8k0Y=,tag:gGfvSZrrVlaufHnqU9Hg5Q==,type:str] 6 + cachix_gleam_nix: ENC[AES256_GCM,data:MzEI/ql0DCEY0xVadsC+Njiy0mFhJzI5vUrYuce4dvmjAWsDbL0lCBHamRFGWmCPqiRTOqWcSgdo7B9xfkPyJ6QHV1JDKtWP/TGFDITRVG/E1NYOp7oiEEe/dEw1VbKNQq+PAumjLtwBFA6h5iJDaGOkNUwbVCkLWN8PGcPx5VkjQKObaXt0dBclUb1dexwoW1qeqD8=,iv:ylE+G++jSOEto2pipGxHZBb8doYR2gGiZ8ZcaD6sdq4=,tag:igtHU6VITpl4uQTwT5F7Kg==,type:str] 7 + cachix_vix: ENC[AES256_GCM,data:tWkRHHpWFMSv1Nn9be2zF0tH/e5zmTyWQ0SyHggq/hhRaK/jnZkjHB68LxwvUDaavwwkIwhXGguqnByzmlP73v8hZPH3RRU8K49HEeHxnUp8DaHVbVo+WEJyQ1MAy0qxzH8u8QPlg1a3z2qaXZ+tC4oKcCiHUELhqYmYV+v8X5NYzYEAmrIHeDut0vIjyMJaMtgcxjo=,iv:8xnWPN7l+5dg5NQhYMkqytQDHl+JKIBdM13HmmnlyEQ=,tag:0Oa/d8B3vRRLHnHGVGV22g==,type:str] 8 + alwaysdata_tuiter: ENC[AES256_GCM,data:Mjh3M3Pjd4aTHnzcuNfG06jZsHWLFhee,iv:7F9mSmWTm4Ou6Ll13P8zwSaeT4l/qvDPxX87C4lAlzM=,tag:zzSKVGiS33QpoTx/zVCRKA==,type:str] 9 + alwaysdata_vic: ENC[AES256_GCM,data:yGvBaClubO/cjmqbHmJLsveLnUk4sO9VTual01m62kw=,iv:WevxrLrFeDe7T4b/t0+ETP1h0K8AXOmuASlszaaTdhE=,tag:22JgDBkYJFqIT/yQTh3jiw==,type:str] 10 + alwaysdata_vix: ENC[AES256_GCM,data:i4HlGhqWTEWY50IQMkjexWn7ZB8MqaNBVm0=,iv:MPAh+oPqfgbYiZhLPq2YkxI2A0YevI6tQ63A4errBss=,tag:WaLIGyeABKPcVvNSiCaAYQ==,type:str] 11 + alwaysdata_nix_versions: ENC[AES256_GCM,data:SY+SiXcPDTbL4iJldDKWfQd/TpgASRo=,iv:JblAEGt7rRmSkuIo4IJYfV2zFVIEVofThJcRb9dORv0=,tag:43cCy1fiN/c03XOtT7E2hA==,type:str] 12 + alwaysdata_nix_versions_api_key: ENC[AES256_GCM,data:IDLXfolXSbSEJNlYUNvU7gGzHcWdhEz0GMvgPHPbjW4=,iv:EcRH91F8r4FVonyy16ys+mOf2E4tx8qmZttU1CXEVr4=,tag:HX+vTJthW566fo5K3mlJEQ==,type:str] 13 + alwaysdata_nix_versions_totp: ENC[AES256_GCM,data:z8xv5bvrQ/xT84L5QjTq8z2FZ4viG9aA74p0KiqhzP8=,iv:5akqwLvFLePU0zs3LhLAE5pxWrdGwQdSZtMSWTI4XYY=,tag:2oz1lpmnp81jglieS6RBsQ==,type:str] 14 + nix_versions_ssh: ENC[AES256_GCM,data:oVLETHffJGIQBIoXq1kFv6Nbe/DbykplG7c=,iv:Xbe5TQhadHKtgJjDb2ncew4XfhLsD9pl4YVnkdv7na4=,tag:+ZSRakfB66xTUeJwhwuxMg==,type:str] 15 + gemini_api_key: ENC[AES256_GCM,data:TkZUBjmpn4gj4nS/8sUzr5VFDKbvAsg+yaGg7Xg9WGPIss4OMxLv,iv:3zsX3cvbnz1+PDSwGGjN9nX9gDC9hrzgFhG3VPzXb/E=,tag:02pn6COVs4zVs3U0PIvw0A==,type:str] 16 + CARGO_REGISTRY_TOKEN: ENC[AES256_GCM,data:7Kvv94HRZomAwCJkrlcqUGqVn/DXalyLDpTfzotbz5QjsgY=,iv:P72DnhI9DUHV9kbUB40mIi2jzHhs9MXT+++cg05rD6M=,tag:unKHWsszgniicLn7ocjI9w==,type:str] 17 + gh_models_pat: ENC[AES256_GCM,data:bM9WqGMFQuS4hb1gznq7rje3BALO4nUw8/rWyZackThf35GscAKo5j1wmiheBoi/piqXoK/dB21NHQKBoJSEUkh88FgME+9Aq/RefS62Lu5Z7qAW1SNA1Mti6882,iv:+3hoL9CgtTGSeK43UaAL09azywmY2m6QLjRCaR2p7hQ=,tag:7sNfOU2So8+7aBjrz5BhVg==,type:str] 18 + copilot_api_key: ENC[AES256_GCM,data:mSh74YgZT+K3jd7/JPrzFpGdaGHo5bjpmmZccXuzXjtY5hXvlTvnPg==,iv:5PgEg3g6p8pZk6krZozDApPVIzuv9pbd1xQ+X4Qibi4=,tag:HkWtWM0eqULe6mkpdT56sQ==,type:str] 19 + anthropic_api_key: ENC[AES256_GCM,data:gdl2HTeCCDukqZ/12Xlcq/Dn1WH8HqWjAG2R6nBUEVd07awRqoaNXQ7PGXemcIWtn1+sU08SPHJmt6VIWC67/ZfIoUqnzN6+krj1Xr03dci4HqCatp3NtxSNh54moSeb7rPlemisxuPXTZEx,iv:e3smLUJUY0d8Q/ZOrMjRgCeYaIuRam6zPJinyuZ1rS0=,tag:ZUxXh5a4UkHpUt5NCElE2A==,type:str] 20 + groq_api_key: ENC[AES256_GCM,data:M+FM3qfxwIzmsfnMhky5/JKEqk40h7hxXv54hzfi3d5InLJDg2kkq0xjTHXTA3JyWPekbsiqxoY=,iv:vI491WqAMkju68zyVm6aJYGtCYbzzc0JALEv9DnCMEM=,tag:Pz5EWNl8gX8I+0dvdYxFAA==,type:str] 21 + tinted_jjui_pat: ENC[AES256_GCM,data:zaihfuoHS4CNc9BgI9Vjz4tzlr6j9c4T7eIE6SadCFR0mJNcj/zeWmg6pgB8WlAjXs6Pn8uzKDTHMi4RJzVXTZ2uFPu21ZVpUZv7FKvgLw4n30EwuxO15TRzDWGn,iv:2/3tvdFg1u+JT9deJxbzc9Ir3xDINTYBQxSikXds1rk=,tag:mqwfCH/koM6geWuYsoBPCg==,type:str] 22 + openrouter_crush: ENC[AES256_GCM,data:TMX3gBilaQdrONyq1C7WhDUwjnZymys5SCKsd0bxiHdK+oRLHQnSbQ4SS+NNDI2zaV+XcbCQ3RcTji9DvfnOE+UHRmnQWadpag==,iv:MJtX7pAP436z30v+NfSf40rqIYB6VRHMOYO1W6noXSA=,tag:/OZL06A2hsoMIpPTzJJp9Q==,type:str] 23 + openrouter_api_key: ENC[AES256_GCM,data:GOyO0PuXPEhJv+Fp//on/sWLABQ4oEUKSIKI/eTEu46B4ZM/fWVGa5JvQ2NNETZt9dddnw2ehzgUY1UahjzNPO3LMiQZ4s9TXg==,iv:iVDIHqDzBhHTcLdFffYo/O5IufIb/7QAsWOqaFwl940=,tag:yzEvoiXMQdWmG8mQBZjQmw==,type:str] 24 + sops: 25 + age: 26 + - recipient: age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e 27 + enc: | 28 + -----BEGIN AGE ENCRYPTED FILE----- 29 + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4bHFkOFFEd0RuY3pKTDY5 30 + V1haRXpvRmZXWE9BV3BURDJvei9qVXF5RkRZCllpc3Njbk9mQzk2R2MvK0RZQk1V 31 + M2xDOTNvUWNTRzVIOWlPR3MxRHRlTGsKLS0tIG9QQXB0aFF1dU4rV0tRTFdqWW1P 32 + M3J3SzU1bW1TZmp0a2FRb2Nsekl5QXMKaqjyNio/N+LfBTWM+TjvFBUVDgCLlKW/ 33 + 0n7iA/34zefZLHe2sPjCIX1IT8aN6CHhzJNBysNHEzMfRni2w4zrvQ== 34 + -----END AGE ENCRYPTED FILE----- 35 + lastmodified: "2025-10-12T19:41:00Z" 36 + mac: ENC[AES256_GCM,data:HRd/j62siyMzx2emp1shkKHNCboQYq7SP4+ev1mHl1x7IX1E4exNq+HasbTQgCK100oJt50MstRl8IyRQUuIAxCBik6NiylVQ7bUW8EDHJikVFqQo/Ii1Ae3HDyn97ZRrR+NpZvCK5fAML7sPRDXzkmCTOXulfvIGLrve/lDiYo=,iv:zgVc5qDs0IXxt7iWRxACMn4Ns4i+tqvOSd0ZiVJjUto=,tag:PHbWiA7X2OkaZhe480qv0w==,type:str] 37 + unencrypted_suffix: _unencrypted 38 + version: 3.10.2
+15
modules/vic/secrets/edge.token
··· 1 + { 2 + "data": "ENC[AES256_GCM,data:0+CeXmPMx6cbSDOVnvpSZE0jfz3t8asaVRpbj8Hesaun3S5+0CDEf51EcHGK3hx++Qx3/V1fYv77fjpC482bfv73hu1YuqmkJGmrRsj9kJBkoF/pNe+1EhzVfzguSnAawNr43f57aSwghubljgMDMl6ooQ5niDgrv92pu5GKHVLPnYhoTG/JA2kOIca0Of9+LbhwcXKO3uQhVPdykujGlvjaKVoPW0feYhpszXVcoyXgBC5lxYNLLsl162UeDlvQfJl2tM8dl3Uv83TbuL3FpkO+K/9S+Au+5Tmcp4phFaHSYd183mWBr0/sRoXdKKY5gCzjmYdMFfgoFaRlb+dZPXg5Ho357W1ChgSaKKt9ftfMzsT7F+kvRdktEeRmfuN6iq1buoox6RTJGKHcbLGVR0LzhARd5lOX2Hyiv5cHCIEB10+GLHLLHN61AZGOBhV2QaNwGALjdOS6boQ/d4+r2c8IAKucdchfa3wjNebr+IbhGLKJ2pW3OfpU7p9f8+NuXBxNAIEExvUnDQMYk28wyqfbzI9hv6z0NhhjGLX2FtSYnJMZM0jZIkjLOroRb7SCoADT3rDH9IQAdskdzkUfNscJPGuMK7zqJHPoqjBbPZovvdfVcjCBeuyVOQwJOM9U6JWVPGKL168A/eFHbPKOqtvY5qjrE2xVsw==,iv:5OT0BE0gPmn7Rko/h3J/14llCf+w3GNmCS5GqcWw/e8=,tag:ns9TSA0iUVeIfHTTr47YKg==,type:str]", 3 + "sops": { 4 + "age": [ 5 + { 6 + "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtWXIvdVdVMXc1eTBlZmJE\nZkdpQjM5cWNIdDZGcUxWdG9uUnNWOGlCK1ZvClJGWTduRWFDeTN3TUtiRlYzOWJp\nYU05WUdoVXhWZTlSSjJrcmg5VDRZUUUKLS0tIGhSREFTdXROb3FqcjBGMHdIanYr\ncFUrdU8rMzhwc2xVUlRwVFhoek5DcFUKV1nzXQnrBwyLvqGsLSIRJ+NWmZz0knvK\n2nyeKvUzbfe3nQ5Bulk5uoD805Ms+nd2snYF3Ul/q6nceWXiM6bKyg==\n-----END AGE ENCRYPTED FILE-----\n" 8 + } 9 + ], 10 + "lastmodified": "2025-10-12T19:41:00Z", 11 + "mac": "ENC[AES256_GCM,data:2V53Z7aoBTjV3OEk8MkMphVjMv6NY2PIfq6MueEYzP7nsKmt5c94AlRY3RPvK0WYuqSMpZfQpy0Da5g83NUjA/ez0gxohs5UnXvKG2joSkLwneji2csX1K3WaUeUweFB2M3rypgN4HnUr73n6Wk7KceSRpgiJJJ92XbMFdSHGl4=,iv:18zTXjIL8StwrHdGnDgdttWmOmdBdlMJkN57uQ7OXpE=,tag:0E7ywqiriHtqx+Yh31f8ZQ==,type:str]", 12 + "unencrypted_suffix": "_unencrypted", 13 + "version": "3.10.2" 14 + } 15 + }
+15
modules/vic/secrets/gh-recover
··· 1 + { 2 + "data": "ENC[AES256_GCM,data:h9VKAU31/V/u8wwJS8w1wQydxWP+BEJOuthKdROx1+923lyh4DSewkn5xDxz1ddFT8sgzazNUmJHo+dXFm4uhQiwiKws6Gr42ArrgoJfhvLWqdKA7S2bWMqW5V1PiVYlkd+ARG+PuLl4C600rSOF/TY3N3R3I7gZAGYT11oK2UBbhwz24HYaRUdVywoOnKG7UaAaRi/CJFu4+NBTJP1vJM0j1DKiw8b0+3qzlTjld3nb/RgNaz80e82V62T6jAYpmjrxEY8Tedpke8nEMQ0=,iv:aCjlCntFSHeb8iuJ+DAEzBPY7pRXCpFGZSBuhJiM3/M=,tag:QQxOYyU3hInOb61zx2MUzQ==,type:str]", 3 + "sops": { 4 + "age": [ 5 + { 6 + "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsY1FmenhhTzJTQTZoSlFP\nUUpCd3R0a1NETEFFaGoxTDdpSFNkSElvTzI4CjB0Tno2dTdjQ3FhR1NIRFVBRFYr\ncDZjT3JsanFhWGRHbFlnc0dSakV0SE0KLS0tIHlYYTRGelFDb1NWMUxLWHNITHFv\ndUo2YUdWdzBZZHl1bVVYaUJYMWorcE0K9pPRMxqBthTtVwLqRU+2xgfirH2Yyqwn\nn/wQ6sV+lXFhwNWg+ldtcSFW85NtKlzURwu4lt/h7zLZX1fVeFB5sw==\n-----END AGE ENCRYPTED FILE-----\n" 8 + } 9 + ], 10 + "lastmodified": "2025-10-12T19:41:00Z", 11 + "mac": "ENC[AES256_GCM,data:LXirYDG+DGwmxhN0BEtVhlRpy2RogY7Rv+n0V2tIr3vJCVprUhVTaYZCZ1y/e25+P5EbaIl0xkTlnJoxZxKLDCvtktDD95mU6J+qU70wBA/zLv/Wvx9M/zCNYc946x13fJi45T8MgSCgYLFKlNj0OF2guRZfS//zaumvjSmhkZg=,iv:xwc61gRZi+qoYoN+J4u2JlZjRc7PlcCKVtT4vfqKD/s=,tag:B6X+xkKD+3lgP4eLuRK9lw==,type:str]", 12 + "unencrypted_suffix": "_unencrypted", 13 + "version": "3.9.4" 14 + } 15 + }
+15
modules/vic/secrets/localhost_run
··· 1 + { 2 + "data": "ENC[AES256_GCM,data:sX+Yft27rNP5/DPPM2k2sLBZUU4sCBzvCjLUQHPMP86ck6EroHQMemn+Mz45ZJdagM3L35XgHperMHeBK5asQhdMMoXDyzmfq84S1ajkRC9TblNUw53/sKT/AFXEqzg/WocUKmW5yjiyIkM9Zxkk5crPSJX1VJv5etkdnbpKIKnBGj15HvYw3IFsCr0MXxQPvnYG9E2NabgCL2Qi6hbQALXhll0jgCfMLJ5esfWV/EhqPd9t1VCntUlRUaOH6PLxQ57GQal23d6hOL/Qcyl8o2pu+zHLO+C6f/6FMIzn4p8Yho5ZCe9WjSYoJrjAePDuaSGkqmNcxdH4/dmioYaCR1yWsWQrmdPiiy+VLDOG90lTuGPFTUV/yZI5KfDtyBCaIdM67CB/ZuPp5LASRwXGVa/3LG7YfyK0K+aX7em5Y3+l9gHHkmYRdu3S7oxzeGa42C/zNsnUdg0vK1ulnUuriMMtHWdjy4Ce/k+QEeHausdv7yprXes9+6hQgtn01iU4jLbrRpazNKKhlIui+8HT,iv:sEwoROZF2d5WGb1maAMkpZwb95+4UdmWxoVVyYRnX3M=,tag:3cF2rFzc+5eqlpTUnIgK5g==,type:str]", 3 + "sops": { 4 + "age": [ 5 + { 6 + "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYVEc5QXRBb2tOSWhieU5I\ncDg4ejRTVFpGOWpKMlBtTk1kenpGVytybUNZCjVkMHBVSFdDQlJYaXJ1MnN2TkZz\nYWJhR3JLU0FxbWJ0WEdvaU9BWEVxSVEKLS0tIEsxRGZFVHNPMzBSWmFmMmtXZXFO\nMFZyVkY0RVgzMVBBZHExeTcweHIyL2MKabkz85+0QlO3I/G3C232qD5Uiq3pwTXr\ntl8P3LJ3UeoMzzdWCbKHyAh8T4zgP+DsQ2ZiYu6zSm4jGR8u6Hsm8w==\n-----END AGE ENCRYPTED FILE-----\n" 8 + } 9 + ], 10 + "lastmodified": "2025-10-12T19:41:00Z", 11 + "mac": "ENC[AES256_GCM,data:DXJXpoC1KYfx3IjTr/GCo13zyrxr9eB/izP9MqDn/Tz0Cc07ILvbuDXc7OHhvhTr5IWr52RnxeuEYTI6qhZb+/FbfjGrsoMqfujYMPJ+ScBKvJiAPzF9l0eDCofoOjSBW3k39JPjf180B79wzV2TvFncx7hCUtMZRnbKBICESIY=,iv:AINLlEH8U/Iqxih2dmQQsfY2mhRNAh8tIRfL54vWyP8=,tag:1yqcrNHxfCSoxY4hPJqkmQ==,type:str]", 12 + "unencrypted_suffix": "_unencrypted", 13 + "version": "3.10.2" 14 + } 15 + }
+15
modules/vic/secrets/mordor
··· 1 + { 2 + "data": "ENC[AES256_GCM,data:K/RYRgQO5jf0Ax3pLZyVl8qEpFoDAZsPf0KkRJd/MpI8A92cSSz8jsfzfzNjsMhib0/x5S9f/AEm0G2uunWXjFjj5d0UQwii2lbrHWBuCfaXxK1CQxa1C5Pv0+ZO0hzP3Dt4ZsezHlxyg6D+ot27j5m2xZ+zhWyyhjp/mlDEEaxv9ntaqAe1LdL0mLliTVoQXrWN3IfNR9b0EokEeavdLMWKQjxQzZp06z6uxHpRxH1B+nZ4T7qQE4jbvNQxb5MawM9wj5fIVKfeK4DMPZBHNUwTXutNtnTuuSvlQZd37Ww4ObWJ34V7m0QniQWUwiWj7CXdBJ5HMSxJDu48HcPwV6ym/wcxyqMy0tD0pSQna6Z0MX93yc2Y+wAp8zylevPSQ1u9AzJ7mzlHc0w2xXaNpy/rO92BHGeCF/L+aKJ9Cn2ROkGaeLyDk9SFKu9uAEYDBHzfDCz5SyczT5cX4WC/J0y0ZBqV2J0fTyPXkI5c4fmtsGqBmJCLciQBXv4wiWEfCN5TW1hTOH24UdCJYSH4aJ2x/xuyK54sogGs8UB1M1hnnijBwccbuB2+TlPZA7rjNiqdAHxGbS49AMWF,iv:+Zm1AEglKHEH/TIzrZnFH+vDFQtQKrdFBGVzGx+IjlU=,tag:ZB/8m+UmOsWMVYCUX7fAlA==,type:str]", 3 + "sops": { 4 + "age": [ 5 + { 6 + "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuRWlBMFBsZGs2WmcxVWMz\nTXV0aXpsUXA2UXhUVXV1UEh1dmtNYkJiVm4wCnU3eGNwRlNnNmE0OTV2em1LbVdz\naGl4TzdqbHczaHZ0L2FoNGd5ZGI1T0kKLS0tIDluQ3A3b3dYU21HaXo2TUtmK0U2\nRzRLS3BudmFMUHFrdGgzbUhEbDVnZ0kKaSaXwyPFpEsYVyRHOHbl/Zj+rXvXKqAu\nJiAwh39Rf/rXd9XGLC3C3qetvLM7T+dbiZ5+sA2W8mkoWOpO2I0igA==\n-----END AGE ENCRYPTED FILE-----\n" 8 + } 9 + ], 10 + "lastmodified": "2025-10-12T19:41:00Z", 11 + "mac": "ENC[AES256_GCM,data:l1H4ZwfdFb+PSAaRBCQpfR/era/l2YhZncojquHOBcvz8nmx0DmhxLf4iGrBrNwT/Kg1NLaAB8hfLKnf5aO1VjyEPkIL5BzhhHJoDb3Wxs0fnhrXIfR3j3CfqEcbruX3/2PgqzXXkMg6kJhKidhgefyak9Mnv9JrprHytrA5vXk=,iv:CJ2xXfB3cw6HuDqGo7EBOL7hOjDwCl6zefhfaNrjmvs=,tag:QtsKxaGnxe2Q9uTzMw5DnA==,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:agiWDhFLwRVQ5T4M0Ziwg347236ZJHmfYkMgl+xYUNqA4EQap9DxguCyZasA5l6mUxELLe0QFG27aWhzoAiBeRHVEF5pTbJICUpdmm8amauN54GATGM+5AO2jEd63XdOdWwsrDGG3Eu0Wvpf/Fm7AS7iqHENvcPKOiUSWKwnDO11U+6aH0Jm/9bTg3fTiogFhreNkVYGHJ9KcIkSpbmH4l7CEE0iORCzkqSzcPLZNVpel7lj8HBnhSSna9gYcInJWgrn9ncWmiO+0DfYSgw9qongamM6vHcEi+5Ozb9tidRRR/RUL6invuMQiD4UnFgt+HicTIuDQSDV5DvqGv+gPlkHStk75X6OaOLDQ/OE/uViPqg1abeJWiGU7Xigfz/LhhT+2jjFcqgcP9OwnzqADxVO0atSXuikXUhwA5D5ZAD/d/+4/fQZ9EyDGSa2VNhaGneWcUP6cmkAEt0Pr9Teg9g9hbycscVhgWhC/zAKzD2cBHefc/yBqb6USfe4Ivt/6DyTfnIB3UsmATta7eIl,iv:crVwb2Sr694f047Dg35t86/gOy5XVzCKR7eyPB1v3CQ=,tag:qUdrSXzZS8C/FCDq7vZCCA==,type:str]", 3 + "sops": { 4 + "age": [ 5 + { 6 + "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzT0hzOUNUMGdCVFJvVTQ1\nTlB4TVlpTE9uK3hjb0FqQ1pmMDBZcS9tdVVBCjJHekJNQXVOemR5RnZnNmVkOWFz\nQzFZSmZxb2ptWDlFMzh2TS9wY285TTAKLS0tIFVRdGZTRXFZNFE4L0Mvd2M1eVda\ncjV5MzFVek5KakRNc0FISC9HR2YwbGcKplpwbSoniheE/F3Ppn/jHm3+LY9lZOkp\nVO+78jwE6dDn/rPjzaQGm2NlZDaKwq10Z+oE4Y8aBU6K3HUHEaes1g==\n-----END AGE ENCRYPTED FILE-----\n" 8 + } 9 + ], 10 + "lastmodified": "2025-10-12T19:41:00Z", 11 + "mac": "ENC[AES256_GCM,data:XmtsxFFysd47M0sW0ABIB6H1gDNVbQuCvZzt6DamtMfehgdAGdtqCmB73sRTtph8slKItuO40ZWwSCTC+WbNc6qtYo2jCACVi/1EIldbQzZhsZKHx1SxgbyZpqImD9D5NOur0O1zYG/13QI+0wZLyM4BAWhSW0L/dHfdydTZ/2s=,iv:PHEFZ47IjyPLOz9GTzB3YsyetlcHLoxMialTBxVTGco=,tag:YPbu0U1qURuiZAMVW2K9Gg==,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:NiKpZtn2S1K8oH9VcjOQh9SdeiVMwUD72tOXTBh3geYbJTFg7Bqcyy3hb3esGO3CgVNo3e55ZMXPy2qnCsVZtplcaAbzS0UvX5R1jjadPkuwKTeyn6gfuCpgENhUFnuo/1rPFJYetcWY1kn0Oo5c0B4WI9+cWbY+r2Pn5b7bNYgqoPPD4UlrSq8aZ0hXc3Z/S8mO+ikrkazYnkIeKKqdbY7IDKRtUut3Vgqsj4GYpw1tYf2bAKr45KZoGtd19cmoES4crWfhQiyxNk9FY5qdC2K8KRRIczrl5RVQcPpWXmrbaclbs13uYW/aPIiPnXqCETrcm0u1bfS/0g==,iv:iSlNo/WSvc2G31qmwXxFECC+gOH9YK2gA7mzvsdVoU8=,tag:xYKPca8JlmSYwcfKMqk0Zg==,type:str]", 3 + "sops": { 4 + "age": [ 5 + { 6 + "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUQVFHWmlWWkVCKzdPblB4\nc2U1MlVYS3NRQkE4Wjg1cWk1RUlFRGV5bUdzClNXWWpsdnY3dFhVYmk4b2FaU2V1\nK1FjRTh5UTh6VW1GUVJncmx6NG94N1UKLS0tIG5NQlBQZ0lHWFd6Y3ZNbUlHdk1x\nLytVOVZpdkV4NHBtaHh0dzNaZWs2b1UK67ygAcelFVispPIzjfWepJ6edImPSQG6\n4qDpB61hO2Uc46FTaSf6d9dtdeuMK/uSVdZAodoL0ASB4F0fddm2UQ==\n-----END AGE ENCRYPTED FILE-----\n" 8 + } 9 + ], 10 + "lastmodified": "2025-10-12T19:41:00Z", 11 + "mac": "ENC[AES256_GCM,data:IBFKDMEcr3Pmk4yl6ZGSmmq9bA2cXnb+8cfqWacjnWmHz3laS0I0u7EVe6AyT823Sidsc7bm/vuprRlE4XxRernxQ9MKGpSXwMFAbcAenqQoq/FSvNy4WX2QLJQFqtr6J4joU1fhrtKBF5nb4n45Kz8hfdT+KOvxrdUYPiNAdl4=,iv:Bz04c2pU1MQtLIT1ayWmaxB9tfIFHnv0z43wRczeRbM=,tag:d8tfIqRWfWn/48MKrgbv4g==,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:zHRABg1DaObXkLitsWh3cD6e3fYbPfBXyX6laXNW2y/6xtgQxXA3F8yanPRO/r8o3Z6MEx7v8n6BVhtICp7dRsLGiJ85d8OcmmtZY5RHMbHkPZXyuJjbErgQS1WNucY63x0XZheaiIHPZN+hV7CXw0EkFmYc7ij5fAMCGWu6U75LxUG4+mbCXIoGXmztrAVkdwFAIUwgwiobOld8fDqpC6lUs7Sph0gwXtkcCoVvein4d2CPFEHVTkg4r7AKSSZUPEq+L1zEimSusZkW3uHCCO8TsWhKS37uTVbLQBymQ8d+MJOZqNp7t+cCu9GRnEL/mKR7Yg3irRHrPh8HNyJVpIue5iBz8yqKf6BYJn6reKVY0qAtxbbOG3oYZbAFgN0OoM7h/Tz3uXx8hRATuiwIWcwr0YHKW5S7DFbc1Epr2skmTFUggQGPPugHN5QXtAanOQwWjNQtrKu78aeQjzmcX5qLzYfnWXwFGkHr2TLHer6zeEd5OYlwJS74VWQcaapDh0Bs,iv:A4LRsPwPU5uIkLFNE/tyqsTBJZmUa8FN3r7D7kS6hig=,tag:evfqlXKFgeItf6jVF7W5cw==,type:str]", 3 + "sops": { 4 + "age": [ 5 + { 6 + "recipient": "age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e", 7 + "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLNHVzcmhmTzk4ZnpZdDR1\nTXFtMW9wZTBLbkdlWHB0ZGNwKzJrTEJBWGlvCnBsamU4SlpUSnJtRXNPdFlJM3dJ\nLzc2Tlkzd3Z6MVl2dnJhMXU5bDBESncKLS0tIGV6UW9nc01BbXV5dlBkRHBHZkdX\nYy9xWUc5QzNkYUhwYnVDUzBjMEVjc0EK5eCTPOekxLuCDMh81yF5UmS311IgX1cu\nT9qX0go7nKb8gRrXI4utFFWNvSqp64U2jGNh3I+rFgha1q4LHzzjUQ==\n-----END AGE ENCRYPTED FILE-----\n" 8 + } 9 + ], 10 + "lastmodified": "2025-10-12T19:41:00Z", 11 + "mac": "ENC[AES256_GCM,data:y3c7siKyJ4+hhPbQ2r3pzo8iG2/AGoW6WLPPMMRU1h6fmg8bUcfPhu8EYpEe19yaq5nUNlfxSqZOycg/WWc3Nx3u1j4MIHVJr5C4Yf5ODEr/CWwL4WaSOwBLFpS0gT72DTDKMdkOAoY6el9YtSz0wC+aO61MbDlAXMskWbXVWas=,iv:GlAye+exTA2p/NjJKWZGb1q/s6w+iOERkrN4WfwFzX4=,tag:QZdtaUUKspwytttFvVh5vA==,type:str]", 12 + "unencrypted_suffix": "_unencrypted", 13 + "version": "3.10.1" 14 + } 15 + }
+7
modules/vic/sops.yaml
··· 1 + keys: 2 + - &vic age1wmg6gkfar8nl9tr2y409vac6zqwnfjvjh6rxh2fl6x3tx4rzwdxqwj2r9e 3 + creation_rules: 4 + - path_regex: ^.*$ 5 + key_groups: 6 + - age: 7 + - *vic
+72
modules/vic/ssh.nix
··· 1 + let 2 + vic.ssh.homeManager = 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/socket-%r@%h:%p"; 15 + controlPersist = "10m"; 16 + includes = [ 17 + "~/.config/sops-nix/secrets/ssh/sops_ssh_config" 18 + "~/.ssh/config.local" 19 + ]; 20 + 21 + matchBlocks = { 22 + "github.com" = { 23 + identityFile = "~/.ssh/id_ed25519"; 24 + extraOptions.ControlPersist = "no"; 25 + }; 26 + 27 + "edge" = { 28 + host = "edge"; 29 + hostname = "192.168.192.168"; 30 + }; 31 + 32 + "uptermd.upterm.dev" = { 33 + forwardAgent = true; 34 + serverAliveInterval = 10; 35 + serverAliveCountMax = 6; 36 + extraOptions.ControlPath = "~/.ssh/upterm-%C"; 37 + setEnv.TERM = "xterm-256color"; 38 + localForwards = [ 39 + { 40 + bind.port = 8000; # http 41 + host.address = "127.0.0.1"; 42 + host.port = 8000; 43 + } 44 + { 45 + bind.port = 5900; # vnc 46 + host.address = "127.0.0.1"; 47 + host.port = 5900; 48 + } 49 + ]; 50 + remoteForwards = [ 51 + { 52 + bind.port = 5000; # sops 53 + host.address = "127.0.0.1"; 54 + host.port = 5000; 55 + } 56 + ]; 57 + }; 58 + 59 + }; 60 + }; 61 + 62 + services.ssh-agent.enable = pkgs.stdenv.isLinux; 63 + 64 + home.activation.link-ssh-id = lib.hm.dag.entryAfter [ "link-flake" "sops-nix" "reloadSystemd" ] '' 65 + run ln -sf "${config.sops.secrets."ssh/id_ed25519".path}" $HOME/.ssh/id_ed25519 66 + run ln -sf "${config.sops.secrets."ssh/localhost_run".path}" $HOME/.ssh/id_localhost_run 67 + ''; 68 + }; 69 + in 70 + { 71 + inherit vic; 72 + }
+1 -1
modules/vic/terminals.nix
··· 1 1 { 2 - vix.vic.provides.terminals = _: { 2 + vic.terminals = _: { 3 3 4 4 darwin = 5 5 { pkgs, ... }:
+1 -1
modules/vic/vim-btw.nix
··· 1 1 { 2 - vix.vic.provides.vim-btw = _: { 2 + vic.vim-btw = { 3 3 4 4 homeManager = 5 5 {
+10
nix/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 + }
+6
nix/hosts/bert/darwin-configuration.nix
··· 1 + { 2 + flake.modules.darwin.bert = { 3 + users.users.runner.home = "/Users/runner"; 4 + system.primaryUser = "runner"; 5 + }; 6 + }
+7
nix/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
nix/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
nix/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
nix/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
nix/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 + }
+24
nix/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 + }
+24
nix/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/389d7756-a765-4be8-81eb-6712e893e705"; 9 + fsType = "ext4"; 10 + }; 11 + 12 + fileSystems."/boot" = { 13 + device = "/dev/disk/by-uuid/67E3-17ED"; 14 + fsType = "vfat"; 15 + options = [ 16 + "fmask=0077" 17 + "dmask=0077" 18 + ]; 19 + }; 20 + 21 + swapDevices = [ ]; 22 + 23 + }; 24 + }
+19
nix/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
nix/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
nix/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
nix/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
nix/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
nix/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
nix/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 = "/Users/vic"; } 6 + ]; 7 + 8 + }
non-dendritic/hosts/nargun/_nixos/filesystems.nix nix/hosts/nargun/_nixos/filesystems.nix
non-dendritic/hosts/nargun/_nixos/hardware-configuration.nix nix/hosts/nargun/_nixos/hardware-configuration.nix