this repo has no description
4
fork

Configure Feed

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

stuff

+1527 -1456
+15 -8
bud/default.nix
··· 1 - { pkgs, lib, budUtils, ... }: { 2 - bud.cmds = with pkgs; { 3 - get = { 4 - writer = budUtils.writeBashWithPaths [ nixUnstable git coreutils ]; 5 - synopsis = "get [DEST]"; 6 - help = "Copy the desired template to DEST"; 7 - script = ./get.bash; 1 + { 2 + pkgs, 3 + lib, 4 + budUtils, 5 + ... 6 + }: 7 + { 8 + bud.cmds = 9 + with pkgs; { 10 + get = { 11 + writer = budUtils.writeBashWithPaths [nixUnstable git coreutils]; 12 + synopsis = "get [DEST]"; 13 + help = "Copy the desired template to DEST"; 14 + script = ./get.bash; 15 + }; 8 16 }; 9 - }; 10 17 }
+11 -25
default.nix
··· 1 1 let 2 2 inherit (default.inputs.nixos) lib; 3 - 4 3 default = (import ./lib/compat).defaultNix; 5 - 6 - ciSystems = [ 7 - "aarch64-linux" 8 - "i686-linux" 9 - "x86_64-linux" 10 - ]; 11 - 12 - filterSystems = lib.filterAttrs 13 - (system: _: lib.elem system ciSystems); 14 - 15 - recurseIntoAttrsRecursive = lib.mapAttrs (_: v: 16 - if lib.isAttrs v 17 - then recurseIntoAttrsRecursive (lib.recurseIntoAttrs v) 18 - else v 19 - ); 20 - 21 - systemOutputs = lib.filterAttrs 22 - (name: set: lib.isAttrs set 23 - && lib.any 24 - (system: set ? ${system} && name != "legacyPackages") 25 - ciSystems 26 - ) 4 + ciSystems = ["aarch64-linux" "i686-linux" "x86_64-linux"]; 5 + filterSystems = lib.filterAttrs (system: _: lib.elem system ciSystems); 6 + recurseIntoAttrsRecursive = 7 + lib.mapAttrs (_: v: 8 + if lib.isAttrs v 9 + then recurseIntoAttrsRecursive (lib.recurseIntoAttrs v) 10 + else v); 11 + systemOutputs = 12 + lib.filterAttrs 13 + (name: set: lib.isAttrs set && lib.any (system: set ? ${system} && name != "legacyPackages") ciSystems) 27 14 default.outputs; 28 - 29 15 ciDrvs = lib.mapAttrs (_: system: filterSystems system) systemOutputs; 30 16 in 31 - (recurseIntoAttrsRecursive ciDrvs) // { shell = import ./shell.nix; } 17 + (recurseIntoAttrsRecursive ciDrvs) // { shell = import ./shell.nix; }
+88 -80
flake.lock
··· 1 1 { 2 2 "nodes": { 3 + "alejandra": { 4 + "inputs": { 5 + "flakeCompat": "flakeCompat", 6 + "nixpkgs": [ 7 + "nixos" 8 + ] 9 + }, 10 + "locked": { 11 + "lastModified": 1645204343, 12 + "narHash": "sha256-h/R5uZwiCPh/i8eOcGgAD1hRFF6gHvD1GYZxkKYXTaQ=", 13 + "owner": "kamadorueda", 14 + "repo": "alejandra", 15 + "rev": "4a7a938e8d29a9a3b7f45660f0f7a3f6247965bf", 16 + "type": "github" 17 + }, 18 + "original": { 19 + "owner": "kamadorueda", 20 + "repo": "alejandra", 21 + "type": "github" 22 + } 23 + }, 3 24 "blank": { 4 25 "locked": { 5 26 "lastModified": 1625557891, ··· 17 38 }, 18 39 "cachix": { 19 40 "locked": { 20 - "lastModified": 1637798660, 21 - "narHash": "sha256-MrPmoGeiOjlT17j3ZQx6iab07YVnomRiBFLcOCiCYnk=", 41 + "lastModified": 1642244250, 42 + "narHash": "sha256-vWpUEqQdVP4srj+/YLJRTN9vjpTs4je0cdWKXPbDItc=", 22 43 "owner": "nixos", 23 44 "repo": "nixpkgs", 24 - "rev": "91e6a9a6568f751bb10222a937507e7e151a035e", 45 + "rev": "0fd9ee1aa36ce865ad273f4f07fdc093adeb5c00", 25 46 "type": "github" 26 47 }, 27 48 "original": { ··· 34 55 "deploy": { 35 56 "inputs": { 36 57 "flake-compat": "flake-compat", 37 - "nixpkgs": "nixpkgs", 58 + "nixpkgs": [ 59 + "digga", 60 + "latest" 61 + ], 38 62 "utils": "utils" 39 63 }, 40 64 "locked": { ··· 71 95 "blank": "blank", 72 96 "deploy": "deploy", 73 97 "devshell": "devshell", 74 - "flake-utils": "flake-utils", 75 98 "flake-utils-plus": "flake-utils-plus", 76 99 "home-manager": [ 77 100 "home" ··· 86 109 ] 87 110 }, 88 111 "locked": { 89 - "lastModified": 1640031018, 90 - "narHash": "sha256-ZzyS803XuCl99XE4581m0Suni+q1Hz+Mpw6A9bs7VKM=", 112 + "lastModified": 1643510242, 113 + "narHash": "sha256-9C9DyJhQ5bevk0CEEjGct+U9EqUgHg8T70nxz47zjMI=", 91 114 "owner": "divnix", 92 115 "repo": "digga", 93 - "rev": "3157889810e51a1ae03f82bf6bf6657ba8cf93c6", 116 + "rev": "33bfb05b8a148d8ad6a842de74e22209bf9fe5d7", 94 117 "type": "github" 95 118 }, 96 119 "original": { ··· 133 156 }, 134 157 "flake-utils-plus": { 135 158 "inputs": { 136 - "flake-utils": "flake-utils_2" 159 + "flake-utils": "flake-utils" 137 160 }, 138 161 "locked": { 139 - "lastModified": 1638994888, 140 - "narHash": "sha256-iz/ynGNZlvqKCOnFrEKqGA+BVKGQMG+g2JT+e3OOLN8=", 141 - "owner": "divnix", 162 + "lastModified": 1639385028, 163 + "narHash": "sha256-oqorKz3mwf7UuDJwlbCEYCB2LfcWLL0DkeCWhRIL820=", 164 + "owner": "gytis-ivaskevicius", 142 165 "repo": "flake-utils-plus", 143 - "rev": "b4f9f517574cb7bd6ee3f19c72c19634c9f536e1", 166 + "rev": "be1be083af014720c14f3b574f57b6173b4915d0", 144 167 "type": "github" 145 168 }, 146 169 "original": { 147 - "owner": "divnix", 170 + "owner": "gytis-ivaskevicius", 148 171 "repo": "flake-utils-plus", 149 172 "type": "github" 150 173 } 151 174 }, 152 - "flake-utils_2": { 175 + "flakeCompat": { 176 + "flake": false, 153 177 "locked": { 154 - "lastModified": 1638122382, 155 - "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", 156 - "owner": "numtide", 157 - "repo": "flake-utils", 158 - "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", 178 + "lastModified": 1641205782, 179 + "narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=", 180 + "owner": "edolstra", 181 + "repo": "flake-compat", 182 + "rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7", 159 183 "type": "github" 160 184 }, 161 185 "original": { 162 - "owner": "numtide", 163 - "repo": "flake-utils", 186 + "owner": "edolstra", 187 + "repo": "flake-compat", 164 188 "type": "github" 165 189 } 166 190 }, ··· 171 195 ] 172 196 }, 173 197 "locked": { 174 - "lastModified": 1640417317, 175 - "narHash": "sha256-jT2uMARXs0Xm65ccroFsKyr4LTHSecw+9HAnmBdJO8U=", 198 + "lastModified": 1645140957, 199 + "narHash": "sha256-WTJzLSCDLBI537o2L/3kRyqEV5YRT7+1QSGryeKReHE=", 176 200 "owner": "nix-community", 177 201 "repo": "home-manager", 178 - "rev": "48f2b381dd397ec88040d3354ac9c036739ba139", 202 + "rev": "4f4165a8b9108818ab0193bbd1a252106870b2a2", 179 203 "type": "github" 180 204 }, 181 205 "original": { ··· 223 247 }, 224 248 "nixlib": { 225 249 "locked": { 226 - "lastModified": 1639874050, 227 - "narHash": "sha256-S4lNc3fb9UpYgVtTa/mZZXphq7+xGy74YGIlOWB1ceE=", 250 + "lastModified": 1641688481, 251 + "narHash": "sha256-6L+EU12xLDHby7y8elgFtRKVBxix+7qV8DhVgXqrKZo=", 228 252 "owner": "nix-community", 229 253 "repo": "nixpkgs.lib", 230 - "rev": "2762facc37b4f6f2bf61edc43dd63caef265f85a", 254 + "rev": "f697717b3d3a074ffc16c8c8227504f0db292886", 231 255 "type": "github" 232 256 }, 233 257 "original": { ··· 238 262 }, 239 263 "nixos": { 240 264 "locked": { 241 - "lastModified": 1640319671, 242 - "narHash": "sha256-ZkKmakwaOaLiZOpIZWbeJZwap5CzJ30s4UJTfydYIYc=", 265 + "lastModified": 1644525281, 266 + "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=", 243 267 "owner": "nixos", 244 268 "repo": "nixpkgs", 245 - "rev": "eac07edbd20ed4908b98790ba299250b5527ecdf", 269 + "rev": "48d63e924a2666baf37f4f14a18f19347fbd54a2", 246 270 "type": "github" 247 271 }, 248 272 "original": { ··· 255 279 "nixos-generators": { 256 280 "inputs": { 257 281 "nixlib": "nixlib", 258 - "nixpkgs": "nixpkgs_2" 282 + "nixpkgs": [ 283 + "digga", 284 + "blank" 285 + ] 259 286 }, 260 287 "locked": { 261 288 "lastModified": 1637655461, ··· 273 300 }, 274 301 "nixos-hardware": { 275 302 "locked": { 276 - "lastModified": 1639986101, 277 - "narHash": "sha256-Ow0+pkY7qMw6lMAvR1mEdUT9svJnrkbaRoqp4bkMTpg=", 303 + "lastModified": 1644870092, 304 + "narHash": "sha256-RLPD92lqXW98LDIbbwYqwAbt3R4iD1V1PiylfgBq5cU=", 278 305 "owner": "nixos", 279 306 "repo": "nixos-hardware", 280 - "rev": "3f92db38374b2977aea8daf4c4fe2fa0eddbd60c", 307 + "rev": "10eab1c4cd8e715c0b41d32c28af2b89fc67bed0", 281 308 "type": "github" 282 309 }, 283 310 "original": { ··· 288 315 }, 289 316 "nixosPersistence": { 290 317 "locked": { 291 - "lastModified": 1638981861, 292 - "narHash": "sha256-rDEn/hU9ayDig2HMYKN71InhY1LV5slxp9Zy2iPBysQ=", 318 + "lastModified": 1644791231, 319 + "narHash": "sha256-iDihsF1fUMK4xXiUudPnDM3veH1LXbbxfP9Lzekw9iU=", 293 320 "owner": "nix-community", 294 321 "repo": "impermanence", 295 - "rev": "df5038f20c9efd442944fe26b93f41c0dc5217da", 322 + "rev": "635bcd2d88739197a0b584aa9fadaa53c717a853", 296 323 "type": "github" 297 324 }, 298 325 "original": { ··· 301 328 "type": "github" 302 329 } 303 330 }, 304 - "nixpkgs": { 305 - "locked": { 306 - "lastModified": 1640328990, 307 - "narHash": "sha256-KQbvJx4qO9bo04tfTZuISyY4vRC5k3ZB3lyLS21XWIw=", 308 - "owner": "NixOS", 309 - "repo": "nixpkgs", 310 - "rev": "ab93217a2b74a1c36bc892c14f44ee5959c33f12", 311 - "type": "github" 312 - }, 313 - "original": { 314 - "owner": "NixOS", 315 - "ref": "nixpkgs-unstable", 316 - "repo": "nixpkgs", 317 - "type": "github" 318 - } 319 - }, 320 331 "nixpkgsWayland": { 321 332 "inputs": { 322 333 "cachix": "cachix", ··· 325 336 ] 326 337 }, 327 338 "locked": { 328 - "lastModified": 1637983357, 329 - "narHash": "sha256-kferWoUKAAJO17t2D2nsEMvjMmOH1zyJPFUHtm+Cgn4=", 339 + "lastModified": 1643841979, 340 + "narHash": "sha256-/TNrk/59NpBADaHzFVraQQlHLfIgAPCgoR3F3vIw0EA=", 330 341 "owner": "colemickens", 331 342 "repo": "nixpkgs-wayland", 332 - "rev": "1e481bafca9e03ead4b85e4f46d8d959c5f9b11c", 343 + "rev": "da0699ec283382fcc018072bafd573b4d7257d0e", 333 344 "type": "github" 334 345 }, 335 346 "original": { ··· 338 349 "type": "github" 339 350 } 340 351 }, 341 - "nixpkgs_2": { 342 - "locked": { 343 - "lastModified": 1640328990, 344 - "narHash": "sha256-KQbvJx4qO9bo04tfTZuISyY4vRC5k3ZB3lyLS21XWIw=", 345 - "owner": "NixOS", 346 - "repo": "nixpkgs", 347 - "rev": "ab93217a2b74a1c36bc892c14f44ee5959c33f12", 348 - "type": "github" 349 - }, 350 - "original": { 351 - "owner": "NixOS", 352 - "ref": "nixpkgs-unstable", 353 - "repo": "nixpkgs", 354 - "type": "github" 355 - } 356 - }, 357 352 "rnixLsp": { 358 353 "inputs": { 359 354 "naersk": [ ··· 362 357 "nixpkgs": [ 363 358 "nixos" 364 359 ], 365 - "utils": [ 366 - "digga", 367 - "flake-utils" 368 - ] 360 + "utils": "utils_2" 369 361 }, 370 362 "locked": { 371 - "lastModified": 1640347520, 372 - "narHash": "sha256-UkieGBW9ap0pQbumYoG60Ed+BpzMRGuLQ6Zb41u7Fkk=", 363 + "lastModified": 1643586450, 364 + "narHash": "sha256-BRIAc3+zavSlJPYSbov2n1W9/a4Iuh2swFPYRWjCm1g=", 373 365 "owner": "nix-community", 374 366 "repo": "rnix-lsp", 375 - "rev": "d7cc2887ac9e65dd01715aac472edbf46b93ed31", 367 + "rev": "41eb2f3366e3f351bf2563c2a7c46fd17e78dfe0", 376 368 "type": "github" 377 369 }, 378 370 "original": { ··· 383 375 }, 384 376 "root": { 385 377 "inputs": { 378 + "alejandra": "alejandra", 386 379 "digga": "digga", 387 380 "home": "home", 388 381 "naersk": "naersk", ··· 394 387 } 395 388 }, 396 389 "utils": { 390 + "locked": { 391 + "lastModified": 1638122382, 392 + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", 393 + "owner": "numtide", 394 + "repo": "flake-utils", 395 + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", 396 + "type": "github" 397 + }, 398 + "original": { 399 + "owner": "numtide", 400 + "repo": "flake-utils", 401 + "type": "github" 402 + } 403 + }, 404 + "utils_2": { 397 405 "locked": { 398 406 "lastModified": 1638122382, 399 407 "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
+98 -89
flake.nix
··· 1 1 { 2 2 description = "A highly structured configuration database."; 3 - 4 - inputs = 5 - { 6 - nixos.url = "github:nixos/nixpkgs/nixos-unstable"; 7 - 8 - digga.url = "github:divnix/digga/main"; 9 - digga.inputs.nixpkgs.follows = "nixos"; 10 - digga.inputs.nixlib.follows = "nixos"; 11 - digga.inputs.home-manager.follows = "home"; 12 - 13 - home.url = "github:nix-community/home-manager/master"; 14 - home.inputs.nixpkgs.follows = "nixos"; 15 - 16 - naersk.url = "github:nmattia/naersk"; 17 - naersk.inputs.nixpkgs.follows = "nixos"; 18 - 19 - nixos-hardware.url = "github:nixos/nixos-hardware"; 20 - 21 - rnixLsp = { 22 - url = "github:nix-community/rnix-lsp"; 23 - inputs.naersk.follows = "naersk"; 24 - inputs.nixpkgs.follows = "nixos"; 25 - inputs.utils.follows = "digga/flake-utils"; 26 - }; 27 - /*helix = { 28 - url = "https://github.com/helix-editor/helix.git"; 29 - type = "git"; 30 - submodules = true; 31 - inputs.nixpkgs.follows = "nixos"; 32 - };*/ 33 - nixosPersistence.url = "github:nix-community/impermanence"; 34 - nixpkgsWayland = { 35 - url = "github:colemickens/nixpkgs-wayland"; 36 - inputs.nixpkgs.follows = "nixos"; 37 - }; 3 + inputs = { 4 + nixos.url = "github:nixos/nixpkgs/nixos-unstable"; 5 + digga.url = "github:divnix/digga/main"; 6 + digga.inputs.nixpkgs.follows = "nixos"; 7 + digga.inputs.nixlib.follows = "nixos"; 8 + digga.inputs.home-manager.follows = "home"; 9 + home.url = "github:nix-community/home-manager/master"; 10 + home.inputs.nixpkgs.follows = "nixos"; 11 + naersk.url = "github:nmattia/naersk"; 12 + naersk.inputs.nixpkgs.follows = "nixos"; 13 + nixos-hardware.url = "github:nixos/nixos-hardware"; 14 + rnixLsp = { 15 + url = "github:nix-community/rnix-lsp"; 16 + inputs.naersk.follows = "naersk"; 17 + inputs.nixpkgs.follows = "nixos"; 38 18 }; 39 - 19 + alejandra = { 20 + url = "github:kamadorueda/alejandra"; 21 + inputs.nixpkgs.follows = "nixos"; 22 + }; 23 + /* 24 + helix = { 25 + url = "https://github.com/helix-editor/helix.git"; 26 + type = "git"; 27 + submodules = true; 28 + inputs.nixpkgs.follows = "nixos"; 29 + }; 30 + */ 31 + nixosPersistence.url = "github:nix-community/impermanence"; 32 + nixpkgsWayland = { 33 + url = "github:colemickens/nixpkgs-wayland"; 34 + inputs.nixpkgs.follows = "nixos"; 35 + }; 36 + }; 40 37 outputs = 41 - { self 42 - , digga 43 - , nixos 44 - , home 45 - , nixos-hardware 46 - , nixosPersistence 47 - , nixpkgsWayland 48 - , rnixLsp 49 - #, helix 50 - , ... 51 - } @ inputs: 52 - digga.lib.mkFlake 38 + { 39 + self, 40 + digga, 41 + nixos, 42 + home, 43 + nixos-hardware, 44 + nixosPersistence, 45 + nixpkgsWayland, 46 + rnixLsp, 47 + alejandra, 48 + ... 49 + } 50 + @ inputs: 51 + digga.lib.mkFlake 53 52 { 54 53 inherit self inputs; 55 - 56 54 channelsConfig = { allowUnfree = true; }; 57 - 58 55 channels = { 59 56 nixos = { 60 - imports = [ (digga.lib.importOverlays ./overlays) ]; 57 + imports = [(digga.lib.importOverlays ./overlays)]; 61 58 overlays = [ 62 59 #nixpkgsWayland.overlay 63 - (_: prev: { 64 - #helix = helix.packages.${prev.system}.helix; 65 - #helix-src = prev.helix.src; 66 - #rnix-lsp = rnixLsp.packages.${prev.system}.rnix-lsp; 67 - }) 60 + ( 61 + _: prev: { 62 + #helix = helix.packages.${prev.system}.helix; 63 + #helix-src = prev.helix.src; 64 + #rnix-lsp = rnixLsp.packages.${prev.system}.rnix-lsp; 65 + } 66 + ) 67 + ( 68 + _: prev: { 69 + alejandra = alejandra.defaultPackage.${prev.system}; 70 + remarshal = 71 + prev.remarshal.overrideAttrs 72 + ( 73 + old: { 74 + postPatch = 75 + '' 76 + substituteInPlace pyproject.toml \ 77 + --replace "poetry.masonry.api" "poetry.core.masonry.api" \ 78 + --replace 'PyYAML = "^5.3"' 'PyYAML = "*"' \ 79 + --replace 'tomlkit = "^0.7"' 'tomlkit = "*"' 80 + ''; 81 + } 82 + ); 83 + } 84 + ) 68 85 ./pkgs/default.nix 69 86 ]; 70 87 }; 71 88 }; 72 - 73 89 lib = import ./lib { lib = digga.lib // nixos.lib; }; 74 - 75 90 sharedOverlays = [ 76 - (_: prev: { 77 - __dontExport = true; 78 - lib = prev.lib.extend (_: _: { 79 - our = self.lib; 80 - }); 81 - }) 91 + ( 92 + _: prev: { 93 + __dontExport = true; 94 + lib = prev.lib.extend (_: _: { our = self.lib; }); 95 + } 96 + ) 82 97 ]; 83 - 84 98 nixos = { 85 99 hostDefaults = { 86 100 system = "x86_64-linux"; 87 101 channelName = "nixos"; 88 - imports = [ (digga.lib.importExportableModules ./modules) ]; 102 + imports = [(digga.lib.importExportableModules ./modules)]; 89 103 modules = [ 90 104 { lib.our = self.lib; } 91 105 digga.nixosModules.bootstrapIso ··· 94 108 nixosPersistence.nixosModules.impermanence 95 109 ]; 96 110 }; 97 - 98 - imports = [ (digga.lib.importHosts ./hosts) ]; 99 - hosts = { }; 111 + imports = [(digga.lib.importHosts ./hosts)]; 112 + hosts = {}; 100 113 importables = rec { 101 - profiles = (digga.lib.rakeLeaves ./profiles) // { 102 - users = digga.lib.rakeLeaves ./users; 103 - nixos-hardware = nixos-hardware.nixosModules; 104 - }; 105 - suites = with profiles; { 106 - base = [ cachix core users.root ]; 107 - work = [ users.patriot develop ]; 108 - }; 114 + profiles = 115 + (digga.lib.rakeLeaves ./profiles) 116 + // { 117 + users = digga.lib.rakeLeaves ./users; 118 + nixos-hardware = nixos-hardware.nixosModules; 119 + }; 120 + suites = 121 + with profiles; { 122 + base = [cachix core users.root]; 123 + work = [users.patriot develop]; 124 + }; 109 125 }; 110 126 }; 111 - 112 127 home = { 113 - imports = [ (digga.lib.importExportableModules ./users/modules) ]; 114 - modules = [ ]; 128 + imports = [(digga.lib.importExportableModules ./users/modules)]; 129 + modules = []; 115 130 importables = rec { 116 131 profiles = digga.lib.rakeLeaves ./users/profiles; 117 - suites = with profiles; rec { 118 - base = [ direnv git starship ]; 119 - }; 132 + suites = with profiles; rec { base = [direnv git starship]; }; 120 133 }; 121 134 }; 122 - 123 135 devshell = ./shell; 124 - 125 136 homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations; 126 - 127 - deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations { }; 128 - } 129 - ; 137 + deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations {}; 138 + }; 130 139 }
+4 -4
hosts/NixOS.nix
··· 1 - { suites, ... }: 1 + { 2 + suites, 3 + ... 4 + }: 2 5 { 3 6 ### root password is empty by default ### 4 7 imports = suites.base; 5 - 6 8 boot.loader.systemd-boot.enable = true; 7 9 boot.loader.efi.canTouchEfiVariables = true; 8 - 9 10 networking.networkmanager.enable = true; 10 - 11 11 fileSystems."/" = { device = "/dev/disk/by-label/nixos"; }; 12 12 }
+6 -4
hosts/bootstrap.nix
··· 1 - { profiles, ... }: 1 + { 2 + profiles, 3 + ... 4 + }: 2 5 { 3 6 # build with: `bud build bootstrap bootstrapIso` 4 7 # reachable on the local link via ssh root@fe80::47%eno1 ··· 7 10 imports = [ 8 11 # profiles.networking 9 12 profiles.core 10 - profiles.users.root # make sure to configure ssh keys 13 + profiles.users.root 14 + # make sure to configure ssh keys 11 15 profiles.users.nixos 12 16 ]; 13 - 14 17 boot.loader.systemd-boot.enable = true; 15 - 16 18 # will be overridden by the bootstrapIso instrumentation 17 19 fileSystems."/" = { device = "/dev/disk/by-label/nixos"; }; 18 20 }
+113 -126
hosts/lungmen.nix
··· 1 - { config, lib, pkgs, modulesPath, suites, profiles, ... }: 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + modulesPath, 6 + suites, 7 + profiles, 8 + ... 9 + }: 2 10 let 3 11 btrfsPartPath = "/dev/disk/by-label/NIXOS"; 4 - btrfsOptions = [ "compress-force=zstd" "noatime" ]; 5 - 6 - btrfsDiff = pkgs.writeScriptBin "btrfs-diff" '' 7 - #!${pkgs.bash}/bin/bash 8 - set -euo pipefail 12 + btrfsOptions = ["compress-force=zstd" "noatime"]; 13 + btrfsDiff = 14 + pkgs.writeScriptBin 15 + "btrfs-diff" 16 + '' 17 + #!${pkgs.bash}/bin/bash 18 + set -euo pipefail 9 19 10 - sudo mkdir -p /mnt 11 - sudo mount -o subvol=/ ${btrfsPartPath} /mnt 20 + sudo mkdir -p /mnt 21 + sudo mount -o subvol=/ ${btrfsPartPath} /mnt 12 22 13 - OLD_TRANSID=$(sudo btrfs subvolume find-new /mnt/root-blank 9999999) 14 - 15 - sudo btrfs subvolume find-new "/mnt/root" "$OLD_TRANSID" | 16 - sed '$d' | 17 - cut -f17- -d' ' | 18 - sort | 19 - uniq | 20 - while read path; do 21 - path="/$path" 22 - if [ -L "$path" ]; then 23 - : # The path is a symbolic link, so is probably handled by NixOS already 24 - elif [ -d "$path" ]; then 25 - : # The path is a directory, ignore 26 - else 27 - echo "$path" 28 - fi 29 - done 23 + OLD_TRANSID=$(sudo btrfs subvolume find-new /mnt/root-blank 9999999) 30 24 31 - sudo umount /mnt 32 - ''; 33 - in 34 - { 35 - imports = suites.base ++ suites.work ++ [ 36 - ../profiles/network/networkmanager 37 - (modulesPath + "/installer/scan/not-detected.nix") 38 - ] ++ (with profiles.nixos-hardware; [ common-pc-ssd common-pc common-gpu-amd common-cpu-amd ]); 25 + sudo btrfs subvolume find-new "/mnt/root" "$OLD_TRANSID" | 26 + sed '$d' | 27 + cut -f17- -d' ' | 28 + sort | 29 + uniq | 30 + while read path; do 31 + path="/$path" 32 + if [ -L "$path" ]; then 33 + : # The path is a symbolic link, so is probably handled by NixOS already 34 + elif [ -d "$path" ]; then 35 + : # The path is a directory, ignore 36 + else 37 + echo "$path" 38 + fi 39 + done 39 40 41 + sudo umount /mnt 42 + ''; 43 + in { 44 + imports = 45 + suites.base 46 + ++ suites.work 47 + ++ [../profiles/network/networkmanager (modulesPath + "/installer/scan/not-detected.nix")] 48 + ++ (with profiles.nixos-hardware; [common-pc-ssd common-pc common-gpu-amd common-cpu-amd]); 40 49 boot = { 41 50 loader = { 42 51 efi.canTouchEfiVariables = true; 43 52 systemd-boot.enable = true; 44 53 }; 45 54 kernelPackages = pkgs.linuxPackages_latest; 46 - supportedFilesystems = [ "btrfs" ]; 55 + supportedFilesystems = ["btrfs"]; 47 56 initrd = { 48 - availableKernelModules = 49 - [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; 50 - kernelModules = [ "amdgpu" ]; 57 + availableKernelModules = ["xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"]; 58 + kernelModules = ["amdgpu"]; 51 59 }; 52 - kernelModules = [ "kvm-amd" ]; 53 - extraModulePackages = [ ]; 54 - initrd.postDeviceCommands = pkgs.lib.mkBefore '' 55 - mkdir -p /mnt 56 - mount -o subvol=/ ${btrfsPartPath} /mnt 57 - btrfs subvolume list -o /mnt/root | 58 - cut -f9 -d' ' | 59 - while read subvolume; do 60 - echo "deleting /$subvolume subvolume..." 61 - btrfs subvolume delete "/mnt/$subvolume" 62 - done && 63 - echo "deleting /root subvolume..." && 64 - btrfs subvolume delete /mnt/root 65 - echo "restoring blank /root subvolume" 66 - btrfs subvolume snapshot /mnt/root-blank /mnt/root 67 - umount /mnt 68 - ''; 69 - kernel.sysctl = { 70 - "fs.inotify.max_user_watches" = 524288; 71 - }; 60 + kernelModules = ["kvm-amd"]; 61 + extraModulePackages = []; 62 + initrd.postDeviceCommands = 63 + pkgs.lib.mkBefore 64 + '' 65 + mkdir -p /mnt 66 + mount -o subvol=/ ${btrfsPartPath} /mnt 67 + btrfs subvolume list -o /mnt/root | 68 + cut -f9 -d' ' | 69 + while read subvolume; do 70 + echo "deleting /$subvolume subvolume..." 71 + btrfs subvolume delete "/mnt/$subvolume" 72 + done && 73 + echo "deleting /root subvolume..." && 74 + btrfs subvolume delete /mnt/root 75 + echo "restoring blank /root subvolume" 76 + btrfs subvolume snapshot /mnt/root-blank /mnt/root 77 + umount /mnt 78 + ''; 79 + kernel.sysctl = { "fs.inotify.max_user_watches" = 524288; }; 72 80 }; 73 - 74 81 security.pam.loginLimits = [ 75 82 { 76 83 domain = "*"; ··· 85 92 value = "524288"; 86 93 } 87 94 ]; 88 - 89 95 fileSystems."/" = { 90 96 device = btrfsPartPath; 91 97 fsType = "btrfs"; 92 - options = [ "subvol=root" ] ++ btrfsOptions; 98 + options = ["subvol=root"] ++ btrfsOptions; 93 99 }; 94 - 95 100 fileSystems."/home" = { 96 101 device = btrfsPartPath; 97 102 fsType = "btrfs"; 98 - options = [ "subvol=home" ] ++ btrfsOptions; 99 - }; 100 - 101 - fileSystems."/media/archive" = { 102 - device = "/dev/disk/by-uuid/f9b5f7f3-51e8-4357-8518-986b16311c71"; 103 - fsType = "btrfs"; 104 - options = btrfsOptions; 103 + options = ["subvol=home"] ++ btrfsOptions; 105 104 }; 106 - 105 + #fileSystems."/media/archive" = { 106 + # device = "/dev/disk/by-uuid/f9b5f7f3-51e8-4357-8518-986b16311c71"; 107 + # fsType = "btrfs"; 108 + # options = btrfsOptions; 109 + #}; 107 110 fileSystems."/nix" = { 108 111 device = btrfsPartPath; 109 112 fsType = "btrfs"; 110 - options = [ "subvol=nix" ] ++ btrfsOptions; 113 + options = ["subvol=nix"] ++ btrfsOptions; 111 114 }; 112 - 113 115 fileSystems."/persist" = { 114 116 device = btrfsPartPath; 115 117 fsType = "btrfs"; 116 - options = [ "subvol=persist" ] ++ btrfsOptions; 118 + options = ["subvol=persist"] ++ btrfsOptions; 117 119 neededForBoot = true; 118 120 }; 119 - 120 121 fileSystems."/boot" = { 121 122 device = "/dev/disk/by-uuid/5784-BBB1"; 122 123 fsType = "vfat"; 123 124 }; 124 - 125 - swapDevices = [ ]; 125 + swapDevices = []; 126 126 zramSwap = { 127 127 enable = true; 128 128 algorithm = "zstd"; 129 129 }; 130 - 131 - nix.maxJobs = lib.mkDefault 4; 132 - 130 + nix.settings.max-jobs = lib.mkDefault 4; 133 131 security = { 134 132 mitigations.disable = true; 135 133 allowSimultaneousMultithreading = false; 136 134 # Deleting root subvolume makes sudo show lecture every boot 137 - sudo.extraConfig = '' 138 - Defaults lecture = never 139 - ''; 135 + sudo.extraConfig = 136 + '' 137 + Defaults lecture = never 138 + ''; 140 139 rtkit.enable = true; 141 140 }; 142 - 143 141 sound.enable = false; 144 142 services.pipewire = { 145 143 enable = true; ··· 153 151 driSupport = true; 154 152 driSupport32Bit = true; 155 153 enable = true; 156 - extraPackages = with pkgs; [ 157 - amdvlk 158 - libvdpau-va-gl 159 - vaapiVdpau 160 - libva 161 - vulkan-loader 162 - pipewire 163 - ]; 164 - extraPackages32 = with pkgs.pkgsi686Linux; 165 - [ 166 - libvdpau-va-gl 167 - vaapiVdpau 168 - libva 169 - vulkan-loader 170 - pipewire 171 - ] 172 - ++ [ pkgs.driversi686Linux.amdvlk ]; 154 + extraPackages = with pkgs; [amdvlk libvdpau-va-gl vaapiVdpau libva vulkan-loader pipewire]; 155 + extraPackages32 = 156 + with pkgs.pkgsi686Linux; 157 + [libvdpau-va-gl vaapiVdpau libva vulkan-loader pipewire] ++ [pkgs.driversi686Linux.amdvlk]; 173 158 }; 174 159 pulseaudio = { 175 160 enable = false; 176 161 support32Bit = true; 177 162 }; 178 163 }; 179 - 180 164 fonts = { 181 165 enableDefaultFonts = true; 182 166 fontconfig.enable = true; 183 - fonts = [ pkgs.dejavu_fonts ]; 167 + fonts = [pkgs.dejavu_fonts]; 184 168 }; 185 - 186 169 environment = { 187 - systemPackages = [ btrfsDiff ]; 188 - pathsToLink = [ "/share/zsh" ]; 170 + systemPackages = [btrfsDiff]; 171 + pathsToLink = ["/share/zsh"]; 189 172 persistence."/persist" = { 190 - directories = [ "/etc/nixos" ]; 191 - files = [ "/etc/machine-id" ]; 173 + directories = ["/etc/nixos"]; 174 + files = ["/etc/machine-id"]; 192 175 }; 193 176 variables = { 194 - VK_ICD_FILENAMES = lib.mkForce "${pkgs.amdvlk}/share/vulkan/icd.d/amd_icd64.json:${pkgs.driversi686Linux.amdvlk}/share/vulkan/icd.d/amd_icd32.json"; 177 + VK_ICD_FILENAMES = 178 + lib.mkForce 179 + "${pkgs.amdvlk}/share/vulkan/icd.d/amd_icd64.json:${pkgs.driversi686Linux.amdvlk}/share/vulkan/icd.d/amd_icd32.json"; 195 180 }; 196 181 sessionVariables = { 197 - VK_ICD_FILENAMES = lib.mkForce "${pkgs.amdvlk}/share/vulkan/icd.d/amd_icd64.json:${pkgs.driversi686Linux.amdvlk}/share/vulkan/icd.d/amd_icd32.json"; 182 + VK_ICD_FILENAMES = 183 + lib.mkForce 184 + "${pkgs.amdvlk}/share/vulkan/icd.d/amd_icd64.json:${pkgs.driversi686Linux.amdvlk}/share/vulkan/icd.d/amd_icd32.json"; 198 185 }; 199 186 }; 200 187 networking.interfaces.enp6s0.useDHCP = true; 201 - 202 188 services = { 203 189 ipfs = { 204 190 enable = false; ··· 206 192 autoMount = true; 207 193 }; 208 194 flatpak.enable = false; 209 - xserver = { 210 - videoDrivers = [ "amdgpu" ]; 211 - }; 195 + xserver = { videoDrivers = ["amdgpu"]; }; 212 196 postgresql = { 213 197 enable = false; 214 198 enableTCPIP = true; 215 - authentication = lib.mkOverride 10 '' 216 - local all all trust 217 - host all all 0.0.0.0/0 md5 218 - ''; 219 - settings = { 220 - listen_addresses = "*"; 221 - }; 222 - initialScript = pkgs.writeText "backend-initScript" '' 223 - CREATE ROLE patriot WITH LOGIN PASSWORD 'patriot' CREATEDB; 224 - CREATE DATABASE harmony; 225 - GRANT ALL PRIVILEGES ON DATABASE harmony TO patriot; 226 - ''; 199 + authentication = 200 + lib.mkOverride 201 + 10 202 + '' 203 + local all all trust 204 + host all all 0.0.0.0/0 md5 205 + ''; 206 + settings = { listen_addresses = "*"; }; 207 + initialScript = 208 + pkgs.writeText 209 + "backend-initScript" 210 + '' 211 + CREATE ROLE patriot WITH LOGIN PASSWORD 'patriot' CREATEDB; 212 + CREATE DATABASE harmony; 213 + GRANT ALL PRIVILEGES ON DATABASE harmony TO patriot; 214 + ''; 227 215 }; 228 216 }; 229 217 virtualisation = { 230 - podman.enable = true; 218 + podman.enable = false; 231 219 libvirtd.enable = false; 232 220 }; 233 - 234 221 system.stateVersion = "20.09"; 235 222 }
+7 -6
lib/compat/default.nix
··· 1 1 let 2 2 rev = "e7e5d481a0e15dcd459396e55327749989e04ce0"; 3 - flake = (import 3 + flake = ( 4 + import 4 5 ( 5 - fetchTarball { 6 + fetchTarball 7 + { 6 8 url = "https://github.com/edolstra/flake-compat/archive/${rev}.tar.gz"; 7 9 sha256 = "0zd3x46fswh5n6faq4x2kkpy6p3c6j593xbdlbsl40ppkclwc80x"; 8 10 } 9 11 ) 10 - { 11 - src = ../../.; 12 - }); 12 + { src = ../../.; } 13 + ); 13 14 in 14 - flake 15 + flake
+1 -2
lib/compat/nixos/default.nix
··· 1 1 { ... }: 2 2 let 3 3 inherit (default.inputs.nixos) lib; 4 - 5 4 host = configs.${hostname} or configs.NixOS; 6 5 configs = default.nixosConfigurations; 7 6 default = (import ../.).defaultNix; 8 7 hostname = lib.fileContents /etc/hostname; 9 8 in 10 - host 9 + host
+7 -4
lib/default.nix
··· 1 1 { lib }: 2 - lib.makeExtensible (self: { 3 - pkgBinNoDep = pkgs: name: "${pkgs.${name}}/bin/${name}"; 4 - html = import ./html.nix { format = true; }; 5 - }) 2 + lib.makeExtensible 3 + ( 4 + self: { 5 + pkgBinNoDep = pkgs: name: "${pkgs.${name}}/bin/${name}"; 6 + html = import ./html.nix { format = true; }; 7 + } 8 + )
+26 -15
lib/html.nix
··· 1 1 { format ? false }: 2 2 let 3 3 inherit (builtins) isAttrs isList map; 4 - 5 - fmt = if format then "\n " else ""; 4 + fmt = 5 + if format 6 + then "\n " 7 + else ""; 6 8 mapAttrsToList = f: attrs: map (name: f name attrs.${name}) (builtins.attrNames attrs); 7 9 concatStrings = builtins.concatStringsSep ""; 8 - genAttrs = f: names: builtins.listToAttrs (map (n: { name = n; value = (f n); }) names); 9 - 10 10 evalAttrs = attrs: concatStrings (mapAttrsToList (name: value: " ${name}=\"${value}\"") attrs); 11 - evalChildren = children: if isList children then concatStrings children else children; 12 - tag = name: maybeAttrs: 13 - if isAttrs maybeAttrs 14 - then (children: "<${name}${evalAttrs maybeAttrs}>${fmt}${evalChildren children}${fmt}</${name}>") 15 - else tag name { } maybeAttrs; 16 - 17 - tags = (genAttrs tag [ "html" "head" "body" "div" "p" "a" ]); 11 + genAttrs = f: names: 12 + builtins.listToAttrs (map 13 + (n: { 14 + name = n; 15 + value = (f n); 16 + }) 17 + names); 18 + evalChildren = children: 19 + if isList children 20 + then concatStrings children 21 + else children; 22 + tag = 23 + name: maybeAttrs: 24 + if isAttrs maybeAttrs 25 + then (children: "<${name}${evalAttrs maybeAttrs}>${fmt}${evalChildren children}${fmt}</${name}>") 26 + else tag name {} maybeAttrs; 27 + tags = (genAttrs tag ["html" "head" "body" "div" "p" "a"]); 18 28 in 19 - tags // { 20 - inherit tag; 21 - link = url: tags.a { href = url; }; 22 - } 29 + tags 30 + // { 31 + inherit tag; 32 + link = url: tags.a { href = url; }; 33 + }
+3 -2
locale/default.nix
··· 1 - { ... }: { 1 + { ... }: 2 + { 2 3 console.keyMap = "trq"; 3 4 i18n = { 4 5 defaultLocale = "en_US.UTF-8"; 5 - supportedLocales = [ "en_US.UTF-8/UTF-8" ]; 6 + supportedLocales = ["en_US.UTF-8/UTF-8"]; 6 7 }; 7 8 time.timeZone = "Turkey"; 8 9 services.xserver.layout = "tr";
+7 -6
modules/hm-system-defaults.nix
··· 1 - { config, ... }: { 1 + { 2 + config, 3 + ... 4 + }: 5 + { 2 6 home-manager.sharedModules = [ 3 7 { 4 - home.sessionVariables = { 5 - inherit (config.environment.sessionVariables) NIX_PATH; 6 - }; 7 - xdg.configFile."nix/registry.json".text = 8 - config.environment.etc."nix/registry.json".text; 8 + home.sessionVariables = { inherit (config.environment.sessionVariables) NIX_PATH; }; 9 + xdg.configFile."nix/registry.json".text = config.environment.etc."nix/registry.json".text; 9 10 } 10 11 ]; 11 12 }
+7 -6
modules/nix-path.nix
··· 1 - { channel, inputs, ... }: { 2 - nix.nixPath = [ 3 - "nixpkgs=${channel.input}" 4 - "nixos-config=${../lib/compat/nixos}" 5 - "home-manager=${inputs.home}" 6 - ]; 1 + { 2 + channel, 3 + inputs, 4 + ... 5 + }: 6 + { 7 + nix.nixPath = ["nixpkgs=${channel.input}" "nixos-config=${../lib/compat/nixos}" "home-manager=${inputs.home}"]; 7 8 }
+23 -22
modules/security/mitigations.nix
··· 1 - { config, lib, ... }: 2 - with lib; 3 - let 1 + { 2 + config, 3 + lib, 4 + ... 5 + }: 6 + with lib; let 4 7 inherit (builtins) readFile fetchurl; 5 - 6 8 cfg = config.security.mitigations; 7 - 8 - cmdline = '' 9 - ibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off''; 10 - in 11 - { 9 + cmdline = 10 + '' 11 + ibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off''; 12 + in { 12 13 options = { 13 - security.mitigations.disable = mkOption { 14 - type = types.bool; 15 - default = false; 16 - description = '' 17 - Whether to disable spectre and meltdown mitigations in the kernel. Do 18 - not use this in mission critical deployments, or on any machine you do 19 - not have physical access to. 20 - ''; 21 - }; 22 - }; 23 - 24 - config = mkIf cfg.disable { 25 - boot.kernelParams = splitString " " cmdline; 14 + security.mitigations.disable = 15 + mkOption 16 + { 17 + type = types.bool; 18 + default = false; 19 + description = 20 + '' 21 + Whether to disable spectre and meltdown mitigations in the kernel. Do 22 + not use this in mission critical deployments, or on any machine you do 23 + not have physical access to. 24 + ''; 25 + }; 26 26 }; 27 + config = mkIf cfg.disable { boot.kernelParams = splitString " " cmdline; }; 27 28 }
+3 -9
overlays/chromium-wayland.nix
··· 1 - _: prev: 2 - let 1 + _: prev: let 3 2 cliArgs = 4 3 let 5 4 flags = [ ··· 16 15 "--process-per-site" 17 16 ]; 18 17 in 19 - prev.lib.concatStringsSep " " flags; 20 - in 21 - { 22 - chromium = prev.chromium.override { 23 - commandLineArgs = cliArgs; 24 - }; 25 - } 18 + prev.lib.concatStringsSep " " flags; 19 + in { chromium = prev.chromium.override { commandLineArgs = cliArgs; }; }
+203 -187
overlays/discord-canary-system.nix
··· 1 1 final: prev: rec { 2 - discord-canary-system = prev.callPackage mkDiscord (rec { 3 - pname = "discord-canary"; 4 - version = "0.0.131"; 5 - binaryName = "DiscordCanary"; 6 - desktopName = "Discord Canary"; 7 - src = prev.fetchurl { 8 - url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; 9 - sha256 = "sha256-ZYPdE02Jq79LmvXu7KIJFugJX++Nnj0Og/mBuaP/+SA="; 10 - }; 11 - isWayland = true; 12 - enableVulkan = false; 13 - extraOptions = [ 14 - "--ignore-gpu-blocklist" 15 - "--enable-gpu-rasterization" 16 - "--enable-zero-copy" 17 - "--disable-gpu-driver-bug-workarounds" 18 - ]; 19 - }); 2 + discord-canary-system = 3 + prev.callPackage 4 + mkDiscord 5 + ( 6 + rec { 7 + pname = "discord-canary"; 8 + version = "0.0.131"; 9 + binaryName = "DiscordCanary"; 10 + desktopName = "Discord Canary"; 11 + src = 12 + prev.fetchurl 13 + { 14 + url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; 15 + sha256 = "sha256-ZYPdE02Jq79LmvXu7KIJFugJX++Nnj0Og/mBuaP/+SA="; 16 + }; 17 + isWayland = true; 18 + enableVulkan = false; 19 + extraOptions = [ 20 + "--ignore-gpu-blocklist" 21 + "--enable-gpu-rasterization" 22 + "--enable-zero-copy" 23 + "--disable-gpu-driver-bug-workarounds" 24 + ]; 25 + } 26 + ); 20 27 mkDiscord = 21 - { pname 22 - , version 23 - , src 24 - , binaryName 25 - , desktopName 26 - , isWayland ? false 27 - , enableVulkan ? false 28 - , extraOptions ? [ ] 29 - , autoPatchelfHook 30 - , makeDesktopItem 31 - , lib 32 - , stdenv 33 - , wrapGAppsHook 34 - , alsaLib 35 - , at-spi2-atk 36 - , at-spi2-core 37 - , atk 38 - , cairo 39 - , cups 40 - , dbus 41 - , electron 42 - , expat 43 - , fontconfig 44 - , freetype 45 - , gdk-pixbuf 46 - , glib 47 - , gtk3 48 - , libcxx 49 - , libdrm 50 - , libnotify 51 - , libpulseaudio 52 - , libuuid 53 - , libX11 54 - , libXScrnSaver 55 - , libXcomposite 56 - , libXcursor 57 - , libXdamage 58 - , libXext 59 - , libXfixes 60 - , libXi 61 - , libXrandr 62 - , libXrender 63 - , libXtst 64 - , libxcb 65 - , mesa 66 - , nspr 67 - , nss 68 - , pango 69 - , systemd 70 - , libappindicator-gtk3 71 - , libdbusmenu 72 - , nodePackages 73 - , vulkan-loader 74 - , vulkan-extension-layer 75 - , libGL 76 - , pipewire 28 + { 29 + pname, 30 + version, 31 + src, 32 + binaryName, 33 + desktopName, 34 + isWayland ? false, 35 + enableVulkan ? false, 36 + extraOptions ? [], 37 + autoPatchelfHook, 38 + makeDesktopItem, 39 + lib, 40 + stdenv, 41 + wrapGAppsHook, 42 + alsaLib, 43 + at-spi2-atk, 44 + at-spi2-core, 45 + atk, 46 + cairo, 47 + cups, 48 + dbus, 49 + electron, 50 + expat, 51 + fontconfig, 52 + freetype, 53 + gdk-pixbuf, 54 + glib, 55 + gtk3, 56 + libcxx, 57 + libdrm, 58 + libnotify, 59 + libpulseaudio, 60 + libuuid, 61 + libX11, 62 + libXScrnSaver, 63 + libXcomposite, 64 + libXcursor, 65 + libXdamage, 66 + libXext, 67 + libXfixes, 68 + libXi, 69 + libXrandr, 70 + libXrender, 71 + libXtst, 72 + libxcb, 73 + mesa, 74 + nspr, 75 + nss, 76 + pango, 77 + systemd, 78 + libappindicator-gtk3, 79 + libdbusmenu, 80 + nodePackages, 81 + vulkan-loader, 82 + vulkan-extension-layer, 83 + libGL, 84 + pipewire, 77 85 }: 78 - stdenv.mkDerivation rec { 79 - inherit pname version src; 80 - 81 - nativeBuildInputs = [ 82 - nodePackages.asar 83 - alsaLib 84 - autoPatchelfHook 85 - cups 86 - libdrm 87 - libuuid 88 - libXdamage 89 - libX11 90 - libXScrnSaver 91 - libXtst 92 - libxcb 93 - mesa.drivers 94 - nss 95 - wrapGAppsHook 96 - ]; 97 - 98 - dontWrapGApps = true; 99 - 100 - libPath = lib.makeLibraryPath [ 101 - libcxx 102 - systemd 103 - libpulseaudio 104 - stdenv.cc.cc 105 - alsaLib 106 - atk 107 - at-spi2-atk 108 - at-spi2-core 109 - cairo 110 - cups 111 - dbus 112 - expat 113 - fontconfig 114 - freetype 115 - gdk-pixbuf 116 - glib 117 - gtk3 118 - libnotify 119 - libX11 120 - libXcomposite 121 - libuuid 122 - libXcursor 123 - libXdamage 124 - libXext 125 - libXfixes 126 - libXi 127 - libXrandr 128 - libXrender 129 - libXtst 130 - nspr 131 - nss 132 - libxcb 133 - pango 134 - systemd 135 - libXScrnSaver 136 - libappindicator-gtk3 137 - libdbusmenu 138 - vulkan-loader 139 - vulkan-extension-layer 140 - libGL 141 - pipewire 142 - ]; 86 + stdenv.mkDerivation 87 + rec { 88 + inherit pname version src; 89 + nativeBuildInputs = [ 90 + nodePackages.asar 91 + alsaLib 92 + autoPatchelfHook 93 + cups 94 + libdrm 95 + libuuid 96 + libXdamage 97 + libX11 98 + libXScrnSaver 99 + libXtst 100 + libxcb 101 + mesa.drivers 102 + nss 103 + wrapGAppsHook 104 + ]; 105 + dontWrapGApps = true; 106 + libPath = 107 + lib.makeLibraryPath 108 + [ 109 + libcxx 110 + systemd 111 + libpulseaudio 112 + stdenv.cc.cc 113 + alsaLib 114 + atk 115 + at-spi2-atk 116 + at-spi2-core 117 + cairo 118 + cups 119 + dbus 120 + expat 121 + fontconfig 122 + freetype 123 + gdk-pixbuf 124 + glib 125 + gtk3 126 + libnotify 127 + libX11 128 + libXcomposite 129 + libuuid 130 + libXcursor 131 + libXdamage 132 + libXext 133 + libXfixes 134 + libXi 135 + libXrandr 136 + libXrender 137 + libXtst 138 + nspr 139 + nss 140 + libxcb 141 + pango 142 + systemd 143 + libXScrnSaver 144 + libappindicator-gtk3 145 + libdbusmenu 146 + vulkan-loader 147 + vulkan-extension-layer 148 + libGL 149 + pipewire 150 + ]; 151 + flags = 152 + ( 153 + lib.optionals 154 + isWayland 155 + [ 156 + "--flag-switches-begin" 157 + "--enable-features=UseOzonePlatform,WebRTCPipeWireCapturer${ 158 + lib.optionalString enableVulkan ",Vulkan" 159 + }" 160 + "--flag-switches-end" 161 + "--ozone-platform=wayland" 162 + "--enable-webrtc-pipewire-capturer" 163 + ] 164 + ) 165 + ++ extraOptions; 166 + installPhase = 167 + '' 168 + mkdir -p $out/{bin,usr/lib/${pname},share/pixmaps} 169 + ln -s discord.png $out/share/pixmaps/${pname}.png 170 + ln -s "${desktopItem}/share/applications" $out/share/ 143 171 144 - flags = (lib.optionals isWayland [ 145 - "--flag-switches-begin" 146 - "--enable-features=UseOzonePlatform,WebRTCPipeWireCapturer${lib.optionalString enableVulkan ",Vulkan"}" 147 - "--flag-switches-end" 148 - "--ozone-platform=wayland" 149 - "--enable-webrtc-pipewire-capturer" 150 - ]) ++ extraOptions; 172 + # HACKS FOR SYSTEM ELECTRON 173 + asar e resources/app.asar resources/app 174 + rm resources/app.asar 175 + sed -i "s|process.resourcesPath|'$out/usr/lib/${pname}'|" resources/app/app_bootstrap/buildInfo.js 176 + sed -i "s|exeDir,|'$out/share/pixmaps',|" resources/app/app_bootstrap/autoStart/linux.js 177 + asar p resources/app resources/app.asar --unpack-dir '**' 178 + rm -rf resources/app 151 179 152 - installPhase = '' 153 - mkdir -p $out/{bin,usr/lib/${pname},share/pixmaps} 154 - ln -s discord.png $out/share/pixmaps/${pname}.png 155 - ln -s "${desktopItem}/share/applications" $out/share/ 180 + # Copy Relevanat data 181 + cp -r resources/* $out/usr/lib/${pname}/ 156 182 157 - # HACKS FOR SYSTEM ELECTRON 158 - asar e resources/app.asar resources/app 159 - rm resources/app.asar 160 - sed -i "s|process.resourcesPath|'$out/usr/lib/${pname}'|" resources/app/app_bootstrap/buildInfo.js 161 - sed -i "s|exeDir,|'$out/share/pixmaps',|" resources/app/app_bootstrap/autoStart/linux.js 162 - asar p resources/app resources/app.asar --unpack-dir '**' 163 - rm -rf resources/app 183 + # Create starter script for discord 184 + echo "#!${stdenv.shell}" > $out/bin/${pname} 185 + echo "exec ${electron}/bin/electron ${lib.concatStringsSep " " flags} $out/usr/lib/${pname}/app.asar \$@" >> $out/bin/${pname} 186 + chmod 755 $out/bin/${pname} 164 187 165 - # Copy Relevanat data 166 - cp -r resources/* $out/usr/lib/${pname}/ 167 - 168 - # Create starter script for discord 169 - echo "#!${stdenv.shell}" > $out/bin/${pname} 170 - echo "exec ${electron}/bin/electron ${lib.concatStringsSep " " flags} $out/usr/lib/${pname}/app.asar \$@" >> $out/bin/${pname} 171 - chmod 755 $out/bin/${pname} 172 - 173 - wrapProgram $out/bin/${pname} \ 174 - "''${gappsWrapperArgs[@]}" \ 175 - --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ 176 - --prefix LD_LIBRARY_PATH : ${libPath} 177 - ''; 178 - 179 - desktopItem = makeDesktopItem { 180 - name = pname; 181 - exec = pname; 182 - icon = pname; 183 - inherit desktopName; 184 - genericName = meta.description; 185 - categories = "Network;InstantMessaging;"; 186 - mimeType = "x-scheme-handler/discord"; 187 - }; 188 - 189 - meta = with lib; { 190 - description = "All-in-one cross-platform voice and text chat for gamers"; 191 - homepage = "https://discordapp.com/"; 192 - downloadPage = "https://discordapp.com/download"; 193 - platforms = [ "x86_64-linux" ]; 188 + wrapProgram $out/bin/${pname} \ 189 + "''${gappsWrapperArgs[@]}" \ 190 + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ 191 + --prefix LD_LIBRARY_PATH : ${libPath} 192 + ''; 193 + desktopItem = 194 + makeDesktopItem 195 + { 196 + name = pname; 197 + exec = pname; 198 + icon = pname; 199 + inherit desktopName; 200 + genericName = meta.description; 201 + categories = "Network;InstantMessaging;"; 202 + mimeType = "x-scheme-handler/discord"; 203 + }; 204 + meta = 205 + with lib; { 206 + description = "All-in-one cross-platform voice and text chat for gamers"; 207 + homepage = "https://discordapp.com/"; 208 + downloadPage = "https://discordapp.com/download"; 209 + platforms = ["x86_64-linux"]; 210 + }; 194 211 }; 195 - }; 196 212 }
+30 -23
overlays/discord-canary.nix
··· 1 1 final: prev: { 2 - discord-canary = prev.discord-canary.overrideAttrs (old: 3 - let binaryName = "DiscordCanary"; in 4 - rec { 5 - version = "0.0.123"; 6 - src = prev.fetchurl { 7 - url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; 8 - sha256 = "0bijwfsd9s4awqkgxd9c2cxh7y5r06vix98qjp0dkv63r6jig8ch"; 9 - }; 10 - installPhase = '' 11 - mkdir -p $out/{bin,opt/${binaryName},share/pixmaps} 12 - mv * $out/opt/${binaryName} 13 - chmod +x $out/opt/${binaryName}/${binaryName} 14 - patchelf --set-interpreter ${prev.stdenv.cc.bintools.dynamicLinker} \ 15 - $out/opt/${binaryName}/${binaryName} 16 - wrapProgram $out/opt/${binaryName}/${binaryName} \ 17 - "''${gappsWrapperArgs[@]}" \ 18 - --prefix XDG_DATA_DIRS : "${prev.gtk3}/share/gsettings-schemas/${prev.gtk3.name}/" \ 19 - --prefix LD_LIBRARY_PATH : "${old.libPath}:${prev.electron_9}/lib/electron:${prev.libdrm}/lib:${prev.libGL_driver.out}/lib" 20 - ln -s $out/opt/${binaryName}/${binaryName} $out/bin/ 21 - ln -s $out/opt/${binaryName}/discord.png $out/share/pixmaps/${old.pname}.png 22 - ln -s "${old.desktopItem}/share/applications" $out/share/ 23 - ''; 24 - }); 2 + discord-canary = 3 + prev.discord-canary.overrideAttrs 4 + ( 5 + old: let 6 + binaryName = "DiscordCanary"; 7 + in rec { 8 + version = "0.0.123"; 9 + src = 10 + prev.fetchurl 11 + { 12 + url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; 13 + sha256 = "0bijwfsd9s4awqkgxd9c2cxh7y5r06vix98qjp0dkv63r6jig8ch"; 14 + }; 15 + installPhase = 16 + '' 17 + mkdir -p $out/{bin,opt/${binaryName},share/pixmaps} 18 + mv * $out/opt/${binaryName} 19 + chmod +x $out/opt/${binaryName}/${binaryName} 20 + patchelf --set-interpreter ${prev.stdenv.cc.bintools.dynamicLinker} \ 21 + $out/opt/${binaryName}/${binaryName} 22 + wrapProgram $out/opt/${binaryName}/${binaryName} \ 23 + "''${gappsWrapperArgs[@]}" \ 24 + --prefix XDG_DATA_DIRS : "${prev.gtk3}/share/gsettings-schemas/${prev.gtk3.name}/" \ 25 + --prefix LD_LIBRARY_PATH : "${old.libPath}:${prev.electron_9}/lib/electron:${prev.libdrm}/lib:${prev.libGL_driver.out}/lib" 26 + ln -s $out/opt/${binaryName}/${binaryName} $out/bin/ 27 + ln -s $out/opt/${binaryName}/discord.png $out/share/pixmaps/${old.pname}.png 28 + ln -s "${old.desktopItem}/share/applications" $out/share/ 29 + ''; 30 + } 31 + ); 25 32 }
+1 -5
overlays/manix.nix
··· 1 - final: prev: { 2 - manix = prev.manix.overrideAttrs (o: rec{ 3 - inherit (prev.sources.manix) pname version src; 4 - }); 5 - } 1 + final: prev: { manix = prev.manix.overrideAttrs (o: rec { inherit (prev.sources.manix) pname version src; }); }
+2 -1
overlays/overrides.nix
··· 1 1 channels: final: prev: { 2 - __dontExport = true; # overrides clutter up actual creations 2 + __dontExport = true; 3 + # overrides clutter up actual creations 3 4 }
+23 -22
overlays/phantom.nix
··· 1 1 final: prev: { 2 - phantomstyle = prev.stdenv.mkDerivation { 3 - pname = "phantomstyle"; 4 - version = "6e9580b"; 5 - 6 - src = builtins.fetchGit { 7 - url = "https://github.com/randrew/phantomstyle.git"; 8 - rev = "6e9580b72e372b5acecd616434eaf441bf73bcf4"; 2 + phantomstyle = 3 + prev.stdenv.mkDerivation 4 + { 5 + pname = "phantomstyle"; 6 + version = "6e9580b"; 7 + src = 8 + builtins.fetchGit 9 + { 10 + url = "https://github.com/randrew/phantomstyle.git"; 11 + rev = "6e9580b72e372b5acecd616434eaf441bf73bcf4"; 12 + }; 13 + dontWrapQtApps = true; 14 + buildInputs = [prev.libsForQt5.qt5.qtbase]; 15 + buildPhase = 16 + '' 17 + cd src/styleplugin 18 + qmake && make 19 + ''; 20 + installPhase = 21 + '' 22 + mkdir -p $out/$qtPluginPrefix/styles 23 + mv libphantomstyleplugin.so $out/$qtPluginPrefix/styles 24 + ''; 9 25 }; 10 - 11 - dontWrapQtApps = true; 12 - 13 - buildInputs = [ prev.libsForQt5.qt5.qtbase ]; 14 - 15 - buildPhase = '' 16 - cd src/styleplugin 17 - qmake && make 18 - ''; 19 - 20 - installPhase = '' 21 - mkdir -p $out/$qtPluginPrefix/styles 22 - mv libphantomstyleplugin.so $out/$qtPluginPrefix/styles 23 - ''; 24 - }; 25 26 }
+1 -5
overlays/various-flake-fixes.nix
··· 2 2 # Since: https://github.com/NixOS/nixpkgs/pull/126137 3 3 nix-direnv = 4 4 if builtins.hasAttr "enableFlakes" prev.nix-direnv.override.__functionArgs 5 - then 6 - prev.nix-direnv.override 7 - { 8 - enableFlakes = true; 9 - } 5 + then prev.nix-direnv.override { enableFlakes = true; } 10 6 else prev.nix-direnv; 11 7 }
+43 -30
overlays/vscode-wayland.nix
··· 1 - _: prev: 2 - let 1 + _: prev: let 3 2 pkgs = prev; 4 3 lib = pkgs.lib; 5 4 vscodeWayland = ··· 16 15 "--disable-gpu-driver-bug-workarounds" 17 16 ]; 18 17 in 19 - pkgs.writeScriptBin "vscode-wayland" '' 20 - #!${pkgs.stdenv.shell} 21 - ${pkgs.vscode}/bin/code ${lib.concatStringsSep " " flags} 22 - ''; 23 - in 24 - { 18 + pkgs.writeScriptBin 19 + "vscode-wayland" 20 + '' 21 + #!${pkgs.stdenv.shell} 22 + ${pkgs.vscode}/bin/code ${lib.concatStringsSep " " flags} 23 + ''; 24 + in { 25 25 vscodeWayland = 26 26 let 27 27 pname = "vscode"; 28 - desktop = pkgs.makeDesktopItem { 29 - name = pname; 30 - exec = pname; 31 - icon = "vscode"; 32 - desktopName = "VSCode Wayland"; 33 - }; 28 + desktop = 29 + pkgs.makeDesktopItem 30 + { 31 + name = pname; 32 + exec = pname; 33 + icon = "vscode"; 34 + desktopName = "VSCode Wayland"; 35 + }; 34 36 in 35 - lib.hiPrio (pkgs.stdenv.mkDerivation { 36 - inherit pname; 37 - version = pkgs.vscode.version; 38 - 39 - nativeBuildInputs = [ pkgs.makeWrapper ]; 40 - phases = [ "installPhase" /*"fixupPhase"*/ ]; 41 - installPhase = '' 42 - mkdir -p $out/bin 43 - install -m755 ${vscodeWayland}/bin/${pname}-wayland $out/bin/${pname} 44 - cp -r ${desktop}/share $out/share 45 - ''; 46 - /*fixupPhase = '' 47 - wrapProgram $out/bin/${pname} \ 48 - --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath (with pkgs; [ vulkan-loader vulkan-extension-layer libGL ])} 49 - '';*/ 50 - }); 37 + lib.hiPrio 38 + ( 39 + pkgs.stdenv.mkDerivation 40 + { 41 + inherit pname; 42 + version = pkgs.vscode.version; 43 + nativeBuildInputs = [pkgs.makeWrapper]; 44 + phases = [ 45 + "installPhase" 46 + /* 47 + "fixupPhase" 48 + */ 49 + ]; 50 + installPhase = 51 + '' 52 + mkdir -p $out/bin 53 + install -m755 ${vscodeWayland}/bin/${pname}-wayland $out/bin/${pname} 54 + cp -r ${desktop}/share $out/share 55 + ''; 56 + /* 57 + fixupPhase = '' 58 + wrapProgram $out/bin/${pname} \ 59 + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath (with pkgs; [ vulkan-loader vulkan-extension-layer libGL ])} 60 + ''; 61 + */ 62 + } 63 + ); 51 64 }
+14 -9
pkgs/_sources/generated.nix
··· 1 1 # This file was generated by nvfetcher, please do not modify it manually. 2 - { fetchgit, fetchurl }: 2 + { 3 + fetchgit, 4 + fetchurl, 5 + }: 3 6 { 4 7 manix = { 5 8 pname = "manix"; 6 9 version = "d08e7ca185445b929f097f8bfb1243a8ef3e10e4"; 7 - src = fetchgit { 8 - url = "https://github.com/mlvzk/manix"; 9 - rev = "d08e7ca185445b929f097f8bfb1243a8ef3e10e4"; 10 - fetchSubmodules = false; 11 - deepClone = false; 12 - leaveDotGit = false; 13 - sha256 = "1b7xi8c2drbwzfz70czddc4j33s7g1alirv12dwl91hbqxifx8qs"; 14 - }; 10 + src = 11 + fetchgit 12 + { 13 + url = "https://github.com/mlvzk/manix"; 14 + rev = "d08e7ca185445b929f097f8bfb1243a8ef3e10e4"; 15 + fetchSubmodules = false; 16 + deepClone = false; 17 + leaveDotGit = false; 18 + sha256 = "1b7xi8c2drbwzfz70czddc4j33s7g1alirv12dwl91hbqxifx8qs"; 19 + }; 15 20 }; 16 21 }
+1 -1
pkgs/default.nix
··· 1 1 final: prev: { 2 2 # keep sources this first 3 - sources = prev.callPackage (import ./_sources/generated.nix) { }; 3 + sources = prev.callPackage (import ./_sources/generated.nix) {}; 4 4 # then, call packages with `final.callPackage` 5 5 }
+7 -4
profiles/cachix/default.nix
··· 1 - { pkgs, lib, ... }: 1 + { 2 + pkgs, 3 + lib, 4 + ... 5 + }: 2 6 let 3 7 folder = ./.; 4 8 toImport = name: value: folder + ("/" + name); 5 9 filterCaches = key: value: value == "regular" && lib.hasSuffix ".nix" key && key != "default.nix"; 6 10 imports = lib.mapAttrsToList toImport (lib.filterAttrs filterCaches (builtins.readDir folder)); 7 - in 8 - { 11 + in { 9 12 #inherit imports; 10 - nix.binaryCaches = [ "https://cache.nixos.org/" ]; 13 + nix.settings.substituters = ["https://cache.nixos.org/"]; 11 14 }
+2 -6
profiles/cachix/harmony.nix
··· 1 1 { 2 2 nix = { 3 - binaryCaches = [ 4 - "https://harmony.cachix.org" 5 - ]; 6 - binaryCachePublicKeys = [ 7 - "harmony.cachix.org-1:yv78QZHgS0UHkrMW56rccNghWHRz18fFRl8mWQ63M6E=" 8 - ]; 3 + settings.substituters = ["https://harmony.cachix.org"]; 4 + binaryCachePublicKeys = ["harmony.cachix.org-1:yv78QZHgS0UHkrMW56rccNghWHRz18fFRl8mWQ63M6E="]; 9 5 }; 10 6 }
+2 -6
profiles/cachix/nix-cargo-integration.nix
··· 1 1 { 2 2 nix = { 3 - binaryCaches = [ 4 - "https://nix-cargo-integration.cachix.org" 5 - ]; 6 - binaryCachePublicKeys = [ 7 - "nix-cargo-integration.cachix.org-1:wphySON/RyTC2DCzwKPBQGLEZv5mj0s1I1lsfQObaLs=" 8 - ]; 3 + settings.substituters = ["https://nix-cargo-integration.cachix.org"]; 4 + binaryCachePublicKeys = ["nix-cargo-integration.cachix.org-1:wphySON/RyTC2DCzwKPBQGLEZv5mj0s1I1lsfQObaLs="]; 9 5 }; 10 6 }
+2 -6
profiles/cachix/nix-community.nix
··· 1 1 { 2 2 nix = { 3 - binaryCaches = [ 4 - "https://nix-community.cachix.org" 5 - ]; 6 - binaryCachePublicKeys = [ 7 - "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" 8 - ]; 3 + settings.substituters = ["https://nix-community.cachix.org"]; 4 + binaryCachePublicKeys = ["nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="]; 9 5 }; 10 6 }
+2 -6
profiles/cachix/nixpkgs-wayland.nix
··· 1 1 { 2 2 nix = { 3 - binaryCaches = [ 4 - "https://nixpkgs-wayland.cachix.org" 5 - ]; 6 - binaryCachePublicKeys = [ 7 - "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=" 8 - ]; 3 + settings.substituters = ["https://nixpkgs-wayland.cachix.org"]; 4 + binaryCachePublicKeys = ["nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="]; 9 5 }; 10 6 }
+2 -6
profiles/cachix/nrdxp.nix
··· 1 1 { 2 2 nix = { 3 - binaryCaches = [ 4 - "https://nrdxp.cachix.org" 5 - ]; 6 - binaryCachePublicKeys = [ 7 - "nrdxp.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4=" 8 - ]; 3 + settings.substituters = ["https://nrdxp.cachix.org"]; 4 + binaryCachePublicKeys = ["nrdxp.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4="]; 9 5 }; 10 6 }
+2 -6
profiles/cachix/veloren-nix.nix
··· 1 1 { 2 2 nix = { 3 - binaryCaches = [ 4 - "https://veloren-nix.cachix.org" 5 - ]; 6 - binaryCachePublicKeys = [ 7 - "veloren-nix.cachix.org-1:zokfKJqVsNV6kI/oJdLF6TYBdNPYGSb+diMVQPn/5Rc=" 8 - ]; 3 + settings.substituters = ["https://veloren-nix.cachix.org"]; 4 + binaryCachePublicKeys = ["veloren-nix.cachix.org-1:zokfKJqVsNV6kI/oJdLF6TYBdNPYGSb+diMVQPn/5Rc="]; 9 5 }; 10 6 }
+103 -112
profiles/core/default.nix
··· 1 - { self, inputs, config, pkgs, lib, ... }: 1 + { 2 + self, 3 + inputs, 4 + config, 5 + pkgs, 6 + lib, 7 + ... 8 + }: 2 9 let 3 10 inherit (lib) fileContents mkIf; 4 11 pkgBin = lib.our.pkgBinNoDep pkgs; 5 - 6 12 coreBin = v: "${pkgs.coreutils}/bin/${v}"; 7 13 nixBin = "${config.nix.package}/bin/nix"; 8 - in 9 - { 10 - imports = [ ../cachix ../../locale ]; 11 - 14 + in { 15 + imports = [../cachix ../../locale]; 12 16 boot = { 13 17 tmpOnTmpfs = true; 14 18 loader.systemd-boot.configurationLimit = 10; 15 19 }; 16 - 17 20 console.font = "7x14"; 18 - 19 21 environment = { 20 - systemPackages = with pkgs; [ 21 - binutils 22 - coreutils 23 - curl 24 - direnv 25 - dnsutils 26 - dosfstools 27 - fd 28 - git 29 - bottom 30 - gptfdisk 31 - iputils 32 - jq 33 - manix 34 - moreutils 35 - nix-index 36 - nmap 37 - ripgrep 38 - skim 39 - tealdeer 40 - usbutils 41 - utillinux 42 - whois 43 - bat 44 - fzf 45 - exa 46 - git 47 - lm_sensors 48 - mkpasswd 49 - ntfs3g 50 - zoxide 51 - bottom 52 - amber 53 - unzip 54 - unrar 55 - grit 56 - hydra-check 57 - nix-index 58 - du-dust 59 - mosh 60 - ( 61 - pkgs.runCommand "0x0.sh" { } '' 62 - mkdir -p $out/bin 63 - cp ${pkgs.fetchurl { 64 - url = "https://raw.githubusercontent.com/Calinou/0x0/master/bin/0x0"; 65 - sha256 = "sha256-Fad+AKBuA49qtRQfnroqjaNWeuRaCekXZG9sS9JVeaM="; 66 - }} $out/bin/0x0 67 - chmod +x $out/bin/0x0 68 - '' 69 - ) 70 - ]; 71 - 22 + systemPackages = 23 + with pkgs; [ 24 + binutils 25 + coreutils 26 + curl 27 + direnv 28 + dnsutils 29 + dosfstools 30 + fd 31 + git 32 + bottom 33 + gptfdisk 34 + iputils 35 + jq 36 + manix 37 + moreutils 38 + nix-index 39 + nmap 40 + ripgrep 41 + skim 42 + tealdeer 43 + usbutils 44 + utillinux 45 + whois 46 + bat 47 + fzf 48 + exa 49 + git 50 + lm_sensors 51 + mkpasswd 52 + ntfs3g 53 + zoxide 54 + bottom 55 + amber 56 + unzip 57 + unrar 58 + grit 59 + hydra-check 60 + nix-index 61 + du-dust 62 + mosh 63 + ( 64 + pkgs.runCommand 65 + "0x0.sh" 66 + {} 67 + '' 68 + mkdir -p $out/bin 69 + cp ${ 70 + pkgs.fetchurl 71 + { 72 + url = "https://raw.githubusercontent.com/Calinou/0x0/master/bin/0x0"; 73 + sha256 = "sha256-Fad+AKBuA49qtRQfnroqjaNWeuRaCekXZG9sS9JVeaM="; 74 + } 75 + } $out/bin/0x0 76 + chmod +x $out/bin/0x0 77 + '' 78 + ) 79 + ]; 72 80 shellAliases = 73 - let ifSudo = string: mkIf config.security.sudo.enable string; 74 - in 75 - { 81 + let 82 + ifSudo = string: mkIf config.security.sudo.enable string; 83 + in { 76 84 gtw = "${pkgBin "grit"} tree wnv"; 77 85 gtwa = "${pkgBin "grit"} add -p wnv"; 78 86 gt = pkgBin "grit"; 79 - 80 87 g = pkgBin "git"; 81 88 git-optimize = "${pkgBin "git"} gc --aggressive --prune=now"; 82 - 83 89 cat = "${pkgBin "bat"} -pp --theme=base16"; 84 90 c = "cat"; 85 - 86 91 du = "${pkgs.du-dust}/bin/dust"; 87 92 df = "${coreBin "df"} -h"; 88 93 free = "${pkgs.procps}/bin/free -h"; 89 - 90 94 ls = pkgBin "exa"; 91 95 l = "${pkgBin "exa"} -lhg --git"; 92 96 la = "${pkgBin "exa"} -lhg --git -a"; 93 97 t = "${pkgBin "exa"} -lhg --git -T"; 94 98 ta = "${pkgBin "exa"} -lhg --git -a -T"; 95 - 96 99 n = nixBin; 97 100 nf = "${nixBin} flake"; 98 101 nfc = "${nixBin} flake check"; ··· 109 112 nsrp = "${nixBin} search nixpkgs"; 110 113 ndev = "${nixBin} develop"; 111 114 nrun = "${nixBin} run"; 112 - 113 115 nrefs = "nix-store -qR"; 114 - 115 116 noscd = "cd /etc/nixos"; 116 117 nosrs = ifSudo "sudo nixos-rebuild --fast switch"; 117 118 nosrb = ifSudo "sudo nixos-rebuild --fast boot"; 118 119 nosrt = ifSudo "sudo nixos-rebuild --fast test"; 119 120 ngc = ifSudo "sudo nix-collect-garbage"; 120 121 ngcdo = ifSudo "sudo nix-collect-garbage --delete-old"; 121 - 122 122 top = "${pkgs.bottom}/bin/btm"; 123 - 124 - myip = 125 - "${pkgs.dnsutils}/bin/dig +short myip.opendns.com @208.67.222.222 2>&1"; 126 - 123 + myip = "${pkgs.dnsutils}/bin/dig +short myip.opendns.com @208.67.222.222 2>&1"; 127 124 mn = 128 - let manix_preview = "manix '{}' | sed 's/type: /> type: /g' | bat -l Markdown --color=always --plain"; in 129 - ''manix "" | rg '^# ' | sed 's/^# \(.*\) (.*/\1/;s/ (.*//;s/^# //' | sk --preview="${manix_preview}" | xargs manix''; 130 - 131 - 125 + let 126 + manix_preview = "manix '{}' | sed 's/type: /> type: /g' | bat -l Markdown --color=always --plain"; 127 + in ''manix "" | rg '^# ' | sed 's/^# \(.*\) (.*/\1/;s/ (.*//;s/^# //' | sk --preview="${manix_preview}" | xargs manix''; 132 128 # fix nixos-option 133 129 nixos-option = "nixos-option -I nixpkgs=${self}/lib/compat"; 134 - 135 130 # sudo 136 131 s = ifSudo "sudo -E"; 137 132 si = ifSudo "sudo -i"; 138 133 se = ifSudo "sudoedit"; 139 - 140 134 # systemd 141 135 ctl = "systemctl"; 142 136 stl = ifSudo "s systemctl"; ··· 148 142 jtl = "journalctl"; 149 143 }; 150 144 }; 151 - 152 - system.activationScripts.diff = '' 153 - ${pkgs.nixUnstable}/bin/nix store \ 154 - --experimental-features 'nix-command' \ 155 - diff-closures /run/current-system "$systemConfig" 156 - ''; 157 - 145 + system.activationScripts.diff = 146 + '' 147 + ${pkgs.nixUnstable}/bin/nix store \ 148 + --experimental-features 'nix-command' \ 149 + diff-closures /run/current-system "$systemConfig" 150 + ''; 158 151 nix = 159 152 let 160 153 registry = 161 154 builtins.removeAttrs 162 - (builtins.mapAttrs 163 - (_: v: { flake = v; }) 164 - (lib.filterAttrs (_: v: v ? outputs) inputs)) 165 - [ "bud" ]; 166 - in 167 - { 155 + (builtins.mapAttrs (_: v: { flake = v; }) (lib.filterAttrs (_: v: v ? outputs) inputs)) 156 + ["bud"]; 157 + in { 168 158 package = pkgs.nixUnstable; 169 - autoOptimiseStore = true; 170 159 gc.automatic = true; 171 160 optimise.automatic = true; 172 - useSandbox = true; 173 - allowedUsers = [ "@wheel" ]; 174 - trustedUsers = [ "root" "@wheel" ]; 175 - extraOptions = '' 176 - min-free = 536870912 177 - keep-outputs = true 178 - keep-derivations = true 179 - fallback = true 180 - ''; 161 + extraOptions = 162 + '' 163 + min-free = 536870912 164 + keep-outputs = true 165 + keep-derivations = true 166 + fallback = true 167 + ''; 181 168 inherit registry; 169 + settings = { 170 + sandbox = true; 171 + allowed-users = ["@wheel"]; 172 + trusted-users = ["root" "@wheel"]; 173 + auto-optimise-store = true; 174 + }; 182 175 }; 183 - 184 176 programs.command-not-found.enable = false; 185 177 home-manager.useGlobalPkgs = true; 186 178 users.mutableUsers = false; 187 - 188 179 # For rage encryption, all hosts need a ssh key pair 189 - /*services.openssh = { 190 - enable = true; 191 - openFirewall = lib.mkDefault false; 192 - };*/ 193 - 180 + /* 181 + services.openssh = { 182 + enable = true; 183 + openFirewall = lib.mkDefault false; 184 + }; 185 + */ 194 186 services.earlyoom.enable = true; 195 187 } 196 -
+7 -5
profiles/develop/default.nix
··· 1 - { pkgs, ... }: { 2 - imports = [ ./editor ]; 3 - 4 - environment.systemPackages = with pkgs; [ git tokei ]; 5 - 1 + { 2 + pkgs, 3 + ... 4 + }: 5 + { 6 + imports = [./editor]; 7 + environment.systemPackages = with pkgs; [git tokei]; 6 8 documentation.dev.enable = true; 7 9 }
+8 -5
profiles/develop/editor/default.nix
··· 1 - { pkgs, ... }: { 2 - imports = [ ./helix.nix ]; 3 - 4 - environment.systemPackages = with pkgs; [ nixpkgs-fmt ]; 5 - environment.shellAliases = { nixf-all = "nixpkgs-fmt **/**.nix"; }; 1 + { 2 + pkgs, 3 + ... 4 + }: 5 + { 6 + imports = [./helix.nix]; 7 + environment.systemPackages = with pkgs; [alejandra]; 8 + environment.shellAliases = { nixf-all = "alejandra **/**.nix"; }; 6 9 }
+6 -6
profiles/develop/editor/helix.nix
··· 1 - { pkgs, ... }: 1 + { 2 + pkgs, 3 + ... 4 + }: 2 5 let 3 6 pkg = pkgs.helix; 4 7 bin = "${pkg}/bin/hx"; 5 - in 6 - { 7 - environment.systemPackages = [ pkg ]; 8 - 8 + in { 9 + environment.systemPackages = [pkg]; 9 10 environment.sessionVariables = { 10 11 EDITOR = bin; 11 12 VISUAL = bin; 12 13 }; 13 - 14 14 environment.shellAliases = { e = bin; }; 15 15 }
+6 -6
profiles/develop/editor/kakoune.nix
··· 1 - { pkgs, ... }: 1 + { 2 + pkgs, 3 + ... 4 + }: 2 5 let 3 6 pkg = pkgs.kakoune-unwrapped; 4 - in 5 - { 6 - environment.systemPackages = [ pkg ]; 7 - 7 + in { 8 + environment.systemPackages = [pkg]; 8 9 environment.sessionVariables = { 9 10 EDITOR = "${pkg}/bin/kak"; 10 11 VISUAL = "${pkg}/bin/kak"; 11 12 }; 12 - 13 13 environment.shellAliases = { k = "${pkg}/bin/kak"; }; 14 14 }
+5 -7
profiles/develop/godot.nix
··· 1 - { pkgs, ... }: { 2 - environment.systemPackages = with pkgs; [ 3 - godot-bin 4 - godot-headless-bin 5 - godot-server-bin 6 - ]; 7 - } 1 + { 2 + pkgs, 3 + ... 4 + }: 5 + { environment.systemPackages = with pkgs; [godot-bin godot-headless-bin godot-server-bin]; }
+6 -6
profiles/network/default.nix
··· 1 1 { 2 - imports = [ ./dns ]; 3 - 2 + imports = [./dns]; 4 3 networking.dhcpcd.enable = false; 5 4 networking.useDHCP = false; 6 - networking.dhcpcd.extraConfig = '' 7 - noarp 8 - nodelay 9 - ''; 5 + networking.dhcpcd.extraConfig = 6 + '' 7 + noarp 8 + nodelay 9 + ''; 10 10 }
+1 -2
profiles/network/dns/default.nix
··· 1 1 { 2 - imports = [ ./nextdns.nix ]; 3 - 2 + imports = [./nextdns.nix]; 4 3 networking.resolvconf.useLocalResolver = true; 5 4 }
+3 -2
profiles/network/dns/nextdns.nix
··· 1 - { ... }: { 1 + { ... }: 2 + { 2 3 services.nextdns = { 3 4 enable = true; 4 - arguments = [ "-config" "75e43d" ]; 5 + arguments = ["-config" "75e43d"]; 5 6 }; 6 7 }
+1 -2
profiles/network/dns/stubby/default.nix
··· 1 1 { 2 - imports = [ ./nextdns.nix ]; 3 - 2 + imports = [./nextdns.nix]; 4 3 networking.networkmanager.dns = "none"; 5 4 services.stubby.enable = true; 6 5 }
+3 -3
profiles/network/dns/stubby/nextdns.nix
··· 2 2 services.stubby = { 3 3 roundRobinUpstreams = false; 4 4 upstreamServers = 5 - let nextDnsId = "75e43d"; 6 - in 7 - '' 5 + let 6 + nextDnsId = "75e43d"; 7 + in '' 8 8 - address_data: 45.90.28.0 9 9 tls_auth_name: "${nextDnsId}.dns1.nextdns.io" 10 10 - address_data: 2a07:a8c0::0
+1 -2
profiles/network/iwd.nix
··· 1 1 { 2 - imports = [ ./dns ]; 3 - 2 + imports = [./dns]; 4 3 networking.wireless.iwd.enable = true; 5 4 networking.networkmanager.wifi.backend = "iwd"; 6 5 services.connman.wifi.backend = "iwd";
+1 -2
profiles/network/networkmanager/default.nix
··· 1 1 { 2 - imports = [ ../dns ]; 3 - 2 + imports = [../dns]; 4 3 networking.networkmanager.enable = true; 5 4 }
+1 -2
profiles/network/wpa_supplicant.nix
··· 1 1 { 2 - imports = [ ./dns ]; 3 - 2 + imports = [./dns]; 4 3 networking.wireless = { 5 4 enable = true; 6 5 userControlled.enable = true;
secrets/secrets.nix

This is a binary file and will not be displayed.

+10 -8
shell/default.nix
··· 1 - { self, inputs, ... }: 2 1 { 3 - modules = with inputs; [ 4 - #bud.devshellModules.bud 5 - ]; 6 - exportedModules = [ 7 - ./devos.nix 8 - ]; 2 + self, 3 + inputs, 4 + ... 5 + }: 6 + { 7 + modules = 8 + with inputs; [ 9 + #bud.devshellModules.bud 10 + ]; 11 + exportedModules = [./devos.nix]; 9 12 } 10 -
+46 -51
shell/devos.nix
··· 1 - { pkgs, extraModulesPath, ... }: 1 + { 2 + pkgs, 3 + extraModulesPath, 4 + ... 5 + }: 2 6 let 3 - 4 7 hooks = import ./hooks; 5 - 6 8 pkgWithCategory = category: package: { inherit package category; }; 7 9 linter = pkgWithCategory "linter"; 8 10 docs = pkgWithCategory "docs"; 9 11 devos = pkgWithCategory "devos"; 10 - 11 - in 12 - { 12 + in { 13 13 _file = toString ./.; 14 - 15 - imports = [ "${extraModulesPath}/git/hooks.nix" ]; 14 + imports = ["${extraModulesPath}/git/hooks.nix"]; 16 15 git = { inherit hooks; }; 17 - 18 16 # tempfix: remove when merged https://github.com/numtide/devshell/pull/123 19 - devshell.startup.load_profiles = pkgs.lib.mkForce (pkgs.lib.noDepEntry '' 20 - # PATH is devshell's exorbitant privilige: 21 - # fence against its pollution 22 - _PATH=''${PATH} 23 - # Load installed profiles 24 - for file in "$DEVSHELL_DIR/etc/profile.d/"*.sh; do 25 - # If that folder doesn't exist, bash loves to return the whole glob 26 - [[ -f "$file" ]] && source "$file" 27 - done 28 - # Exert exorbitant privilige and leave no trace 29 - export PATH=''${_PATH} 30 - unset _PATH 31 - ''); 32 - 33 - packages = with pkgs; [ 34 - git-crypt 35 - ]; 36 - 37 - commands = with pkgs; [ 38 - (devos nixUnstable) 39 - #(devos agenix) 40 - /*{ 41 - category = "devos"; 42 - name = pkgs.nvfetcher-bin.pname; 43 - help = pkgs.nvfetcher-bin.meta.description; 44 - command = "cd $PRJ_ROOT/pkgs; ${pkgs.nvfetcher-bin}/bin/nvfetcher -c ./sources.toml $@"; 45 - }*/ 46 - (linter nixpkgs-fmt) 47 - (linter editorconfig-checker) 48 - # (docs python3Packages.grip) too many deps 49 - # (docs mdbook) 50 - ] 51 - 52 - ++ lib.optional 53 - (pkgs ? deploy-rs) 54 - (devos deploy-rs.deploy-rs) 55 - 56 - ++ lib.optional 57 - (system != "i686-linux") 58 - (devos cachix) 59 - 60 - ; 17 + devshell.startup.load_profiles = 18 + pkgs.lib.mkForce 19 + ( 20 + pkgs.lib.noDepEntry 21 + '' 22 + # PATH is devshell's exorbitant privilige: 23 + # fence against its pollution 24 + _PATH=''${PATH} 25 + # Load installed profiles 26 + for file in "$DEVSHELL_DIR/etc/profile.d/"*.sh; do 27 + # If that folder doesn't exist, bash loves to return the whole glob 28 + [[ -f "$file" ]] && source "$file" 29 + done 30 + # Exert exorbitant privilige and leave no trace 31 + export PATH=''${_PATH} 32 + unset _PATH 33 + '' 34 + ); 35 + packages = with pkgs; [git-crypt]; 36 + commands = 37 + with pkgs; 38 + [ 39 + (devos nixUnstable) 40 + #(devos agenix) 41 + /* 42 + { 43 + category = "devos"; 44 + name = pkgs.nvfetcher-bin.pname; 45 + help = pkgs.nvfetcher-bin.meta.description; 46 + command = "cd $PRJ_ROOT/pkgs; ${pkgs.nvfetcher-bin}/bin/nvfetcher -c ./sources.toml $@"; 47 + } 48 + */ 49 + #(linter nixpkgs-fmt) 50 + #(linter editorconfig-checker) 51 + # (docs python3Packages.grip) too many deps 52 + # (docs mdbook) 53 + ] 54 + ++ lib.optional (pkgs ? deploy-rs) (devos deploy-rs.deploy-rs) 55 + ++ lib.optional (system != "i686-linux") (devos cachix); 61 56 }
+1 -1
shell/hooks/default.nix
··· 1 1 { 2 - enable = true; 2 + enable = false; 3 3 pre-commit.text = builtins.readFile ./pre-commit.sh; 4 4 }
+1 -1
users/nixos/default.nix
··· 5 5 password = "nixos"; 6 6 description = "default"; 7 7 isNormalUser = true; 8 - extraGroups = [ "wheel" ]; 8 + extraGroups = ["wheel"]; 9 9 }; 10 10 }
+381 -328
users/patriot/default.nix
··· 1 - { config, pkgs, lib, ... }: 1 + { 2 + config, 3 + pkgs, 4 + lib, 5 + ... 6 + }: 2 7 let 3 8 inherit (lib) mapAttrs' nameValuePair; 4 9 inherit (builtins) readDir fetchGit; 5 10 pkgBin = lib.our.pkgBinNoDep pkgs; 6 - 7 11 nixosConfig = config; 8 - in 9 - { 12 + in { 10 13 users.users.patriot = { 11 14 isNormalUser = true; 12 15 createHome = true; 13 16 home = "/home/patriot"; 14 - extraGroups = [ "wheel" "adbusers" "dialout" /* "wireshark" */ ]; 17 + extraGroups = [ 18 + "wheel" 19 + "adbusers" 20 + "dialout" 21 + /* 22 + "wireshark" 23 + */ 24 + ]; 15 25 shell = pkgs.zsh; 16 26 hashedPassword = 17 27 "$6$spzqhAyJfhHy$iHgLBlhjGn1l8PnbjJdWTn1GPvcjMqYNKUzdCe/7IrX6sHNgETSr/Nfpdmq9FCXLhrAfwHOd/q/8SvfeIeNX4/"; 18 28 }; 19 - 20 29 environment = { 21 - systemPackages = [ pkgs.qt5.qtwayland ]; 22 - shells = with pkgs; [ bashInteractive zsh ]; 30 + systemPackages = [pkgs.qt5.qtwayland]; 31 + shells = with pkgs; [bashInteractive zsh]; 23 32 }; 24 - 25 33 xdg.portal = { 26 34 enable = true; 27 35 gtkUsePortal = true; 28 - extraPortals = with pkgs; [ 29 - xdg-desktop-portal 30 - xdg-desktop-portal-wlr 31 - ]; 36 + extraPortals = with pkgs; [xdg-desktop-portal xdg-desktop-portal-wlr]; 32 37 }; 33 - 34 38 programs = { 35 39 adb.enable = true; 36 40 steam.enable = true; ··· 40 44 }; 41 45 wireshark.enable = false; 42 46 }; 43 - 44 47 security = { 45 48 pam.services.patriot = { 46 49 enableGnomeKeyring = true; ··· 48 51 }; 49 52 sudo.extraRules = [ 50 53 { 51 - users = [ "patriot" ]; 52 - commands = [{ 53 - command = "${pkgs.profile-sync-daemon}/bin/psd-overlay-helper"; 54 - options = [ "SETENV" "NOPASSWD" ]; 55 - }]; 54 + users = ["patriot"]; 55 + commands = [ 56 + { 57 + command = "${pkgs.profile-sync-daemon}/bin/psd-overlay-helper"; 58 + options = ["SETENV" "NOPASSWD"]; 59 + } 60 + ]; 56 61 } 57 62 ]; 58 63 }; ··· 86 91 }; 87 92 }; 88 93 }; 89 - 90 - systemd.user.services.gnome-session-restart-dbus.serviceConfig = { 91 - Slice = "-.slice"; 92 - }; 94 + systemd.user.services.gnome-session-restart-dbus.serviceConfig = { Slice = "-.slice"; }; 93 95 systemd = { 94 - targets = { 95 - network-online.enable = false; 96 - }; 96 + targets = { network-online.enable = false; }; 97 97 services = { 98 98 systemd-networkd-wait-online.enable = false; 99 99 NetworkManager-wait-online.enable = false; 100 100 }; 101 101 }; 102 - 103 102 home-manager.users.patriot = 104 - { config, pkgs, suites, ... }: 103 + { 104 + config, 105 + pkgs, 106 + suites, 107 + ... 108 + }: 105 109 let 106 110 personal = import ../../personal.nix; 107 111 name = personal.name; 108 112 email = personal.emails.primary; 109 - 110 - font = "Iosevka Term"; 111 - fontSize = 12; 113 + font = "Monoid"; 114 + fontSize = 10; 112 115 fontComb = "${font} ${toString fontSize}"; 113 - fontPackage = pkgs.iosevka; 114 - 116 + fontPackage = pkgs.monoid; 115 117 colorSchemeLight = { 116 118 primary = { 117 119 normal = { ··· 146 148 white = "3a4d53"; 147 149 }; 148 150 }; 149 - 150 151 colorSchemeDark = 151 152 let 152 153 normal = { ··· 171 172 cyan = "56d8c9"; 172 173 white = "dedede"; 173 174 }; 174 - in 175 - { 175 + in { 176 176 inherit normal bright; 177 - 178 177 primary = { 179 178 normal = { 180 179 background = "181818"; ··· 186 185 }; 187 186 }; 188 187 }; 189 - 190 188 colorScheme = 191 189 # if builtins.pathExists ./light then colorSchemeLight else colorSchemeDark; 192 190 colorSchemeDark; 193 - 194 191 bgColor = colorScheme.primary.normal.background; 195 192 fgColor = colorScheme.primary.bright.foreground; 196 193 acColor = colorScheme.normal.yellow; 197 194 acColor2 = colorScheme.normal.magenta; 198 - 199 195 alacrittyColors = { 200 196 primary = { 201 197 background = "0x${bgColor}"; ··· 204 200 normal = lib.mapAttrs (_: v: "0x${v}") colorScheme.normal; 205 201 bright = lib.mapAttrs (_: v: "0x${v}") colorScheme.bright; 206 202 }; 207 - 208 203 # sway attrs reused 209 204 focusedWorkspace = { 210 205 background = "#${bgColor}"; ··· 226 221 border = "#${acColor2}"; 227 222 text = "#${acColor2}"; 228 223 }; 229 - addIndSway = x: { 230 - background = x.background; 231 - border = x.border; 232 - childBorder = x.border; 233 - text = x.text; 234 - indicator = "#111111"; # don't care 235 - }; 236 - fonts = [ fontComb ]; 237 - 238 - extraEnv = '' 239 - export SDL_VIDEODRIVER=wayland 240 - # needs qt5.qtwayland in systemPackages 241 - export QT_QPA_PLATFORM=wayland 242 - #export QT_WAYLAND_DISABLE_WINDOWDECORATION="1" 243 - # Fix for some Java AWT applications (e.g. Android Studio), 244 - # use this if they aren't displayed properly: 245 - export _JAVA_AWT_WM_NONREPARENTING=1 246 - #export QT_QPA_PLATFORMTHEME=qt5ct 247 - #export QT_PLATFORM_PLUGIN=qt5ct 248 - ''; 249 - in 250 - { 224 + addIndSway = 225 + x: { 226 + background = x.background; 227 + border = x.border; 228 + childBorder = x.border; 229 + text = x.text; 230 + indicator = "#111111"; 231 + # don't care 232 + }; 233 + fonts = [fontComb]; 234 + extraEnv = 235 + '' 236 + export SDL_VIDEODRIVER=wayland 237 + # needs qt5.qtwayland in systemPackages 238 + export QT_QPA_PLATFORM=wayland 239 + #export QT_WAYLAND_DISABLE_WINDOWDECORATION="1" 240 + # Fix for some Java AWT applications (e.g. Android Studio), 241 + # use this if they aren't displayed properly: 242 + export _JAVA_AWT_WM_NONREPARENTING=1 243 + #export QT_QPA_PLATFORMTHEME=qt5ct 244 + #export QT_PLATFORM_PLUGIN=qt5ct 245 + ''; 246 + in { 251 247 imports = suites.base; 252 - 253 248 # needs to be fixed to use nix profile??? 254 - /*gtk = { 255 - enable = false; 256 - font = { 257 - package = pkgs.dejavu_fonts; 258 - name = "DejaVu Sans 12"; 259 - }; 260 - iconTheme = { 261 - package = pkgs.papirus-icon-theme; 262 - name = "Papirus Dark"; 263 - }; 264 - theme = { 265 - package = pkgs.numix-gtk-theme; 266 - name = "Numix Dark"; 267 - }; 268 - }; 269 - 270 - qt = { 271 - enable = false; 272 - style = { 273 - package = pkgs.adwaita-qt; 274 - name = "adwaita-dark"; 275 - }; 276 - };*/ 277 - 249 + /* 250 + gtk = { 251 + enable = false; 252 + font = { 253 + package = pkgs.dejavu_fonts; 254 + name = "DejaVu Sans 12"; 255 + }; 256 + iconTheme = { 257 + package = pkgs.papirus-icon-theme; 258 + name = "Papirus Dark"; 259 + }; 260 + theme = { 261 + package = pkgs.numix-gtk-theme; 262 + name = "Numix Dark"; 263 + }; 264 + }; 265 + 266 + qt = { 267 + enable = false; 268 + style = { 269 + package = pkgs.adwaita-qt; 270 + name = "adwaita-dark"; 271 + }; 272 + }; 273 + */ 278 274 fonts.fontconfig.enable = true; 279 275 home = { 280 276 homeDirectory = nixosConfig.users.users.patriot.home; 281 - packages = with pkgs; 282 - [ 277 + packages = 278 + with pkgs; [ 283 279 # Font stuff 284 280 fontPackage 285 281 noto-fonts-cjk 286 282 font-awesome 287 283 dejavu_fonts 288 - (nerdfonts.override { fonts = [ "Iosevka" ]; }) 284 + (nerdfonts.override { fonts = ["Monoid"]; }) 289 285 # Programs 290 - #discord-canary-system 291 286 vulkan-tools 292 - audacity 293 287 krita 294 - gimp 295 - kdenlive 296 288 gnome3.seahorse 297 - gnome3.gnome-boxes 298 289 cachix 299 290 appimage-run 300 - bitwarden 301 291 pfetch 302 292 gnupg 303 293 imv ··· 306 296 ffmpeg 307 297 mupdf 308 298 transmission-qt 309 - (lib.hiPrio (lutris.overrideAttrs (old: { 310 - profile = '' 311 - ${old.profile or ""} 312 - unset VK_ICD_FILENAMES 313 - export VK_ICD_FILENAMES=${nixosConfig.environment.variables.VK_ICD_FILENAMES}''; 314 - }))) 299 + ( 300 + lib.hiPrio 301 + ( 302 + lutris.overrideAttrs 303 + ( 304 + old: { 305 + profile = 306 + '' 307 + ${old.profile or ""} 308 + unset VK_ICD_FILENAMES 309 + export VK_ICD_FILENAMES=${nixosConfig.environment.variables.VK_ICD_FILENAMES}''; 310 + } 311 + ) 312 + ) 313 + ) 315 314 xdg_utils 316 315 tagref 317 - libreoffice-fresh 318 316 hydrus 319 317 papirus-icon-theme 320 318 wl-clipboard 321 319 rust-analyzer 322 - (lib.hiPrio (steam.override { 323 - extraLibraries = pkgs: [ pkgs.pipewire ]; 324 - extraProfile = '' 325 - unset VK_ICD_FILENAMES 326 - export VK_ICD_FILENAMES=${nixosConfig.environment.variables.VK_ICD_FILENAMES}''; 327 - })) 328 - /*(multimc.overrideAttrs (old: { 329 - src = builtins.fetchGit { url = "https://github.com/AfoninZ/MultiMC5-Cracked.git"; ref = "develop"; rev = "9069e9c9d0b7951c310fdcc8bdc70ebc422a7634"; submodules = true; }; 330 - }))*/ 320 + ( 321 + lib.hiPrio 322 + ( 323 + steam.override 324 + { 325 + extraLibraries = pkgs: [pkgs.pipewire]; 326 + extraProfile = 327 + '' 328 + unset VK_ICD_FILENAMES 329 + export VK_ICD_FILENAMES=${nixosConfig.environment.variables.VK_ICD_FILENAMES}''; 330 + } 331 + ) 332 + ) 333 + /* 334 + (multimc.overrideAttrs (old: { 335 + src = builtins.fetchGit { url = "https://github.com/AfoninZ/MultiMC5-Cracked.git"; ref = "develop"; rev = "9069e9c9d0b7951c310fdcc8bdc70ebc422a7634"; submodules = true; }; 336 + })) 337 + */ 338 + standardnotes 331 339 ]; 332 340 }; 333 - 334 341 wayland.windowManager = { 335 342 sway = { 336 343 enable = false; 337 344 extraSessionCommands = extraEnv; 338 345 wrapperFeatures.gtk = true; 339 - extraConfig = '' 340 - exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway 341 - ''; 346 + extraConfig = 347 + '' 348 + exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway 349 + ''; 342 350 config = { 343 351 fonts = { 344 - names = [ font ]; 352 + names = [font]; 345 353 size = fontSize + 0.0; 346 354 }; 347 - bars = [{ 348 - command = "${pkgBin "waybar"}"; 349 - }]; 355 + bars = [{ command = "${pkgBin "waybar"}"; }]; 350 356 colors = { 351 357 background = "#${bgColor}"; 352 358 focused = addIndSway focusedWorkspace; ··· 369 375 wf-recorder = pkgBin "wf-recorder"; 370 376 wl-copy = pkgs.wl-clipboard + "/bin/wl-copy"; 371 377 wl-paste = pkgs.wl-clipboard + "/bin/wl-paste"; 372 - shotFile = config.home.homeDirectory 373 - + "/shots/shot_$(date '+%Y_%m_%d_%H_%M')"; 378 + shotFile = config.home.homeDirectory + "/shots/shot_$(date '+%Y_%m_%d_%H_%M')"; 374 379 in 375 - lib.mkOptionDefault { 376 - "${mod}+q" = "kill"; 377 - "${mod}+Shift+e" = "exit"; 378 - "${mod}+Shift+r" = "reload"; 379 - # Screenshot and copy it to clipboard 380 - "Mod1+s" = '' 381 - exec export SFILE="${shotFile}.png" && ${grim} "$SFILE" && ${cat} "$SFILE" | ${wl-copy} -t image/png 382 - ''; 383 - # Save selected area as a picture and copy it to clipboard 384 - "Mod1+Shift+s" = '' 385 - exec export SFILE="${shotFile}.png" && ${grim} -g "$(${slurp})" "$SFILE" && ${cat} "$SFILE" | ${wl-copy} -t image/png 386 - ''; 387 - # Record screen 388 - "Mod1+r" = ''exec ${wf-recorder} -f "${shotFile}.mp4"''; 389 - # Record an area 390 - "Mod1+Shift+r" = 391 - ''exec ${wf-recorder} -g "$(${slurp})" -f "${shotFile}.mp4"''; 392 - # Stop recording 393 - "Mod1+c" = "exec pkill -INT wf-recorder"; 394 - "XF86AudioRaiseVolume" = "exec ${pactl} set-sink-volume 0 +5%"; 395 - "XF86AudioLowerVolume" = "exec ${pactl} set-sink-volume 0 -5%"; 396 - "XF86AudioMute" = "exec ${pactl} set-sink-mute 0 toggle"; 397 - "XF86AudioPlay" = "exec ${playerctl} play-pause"; 398 - "XF86AudioPrev" = "exec ${playerctl} previous"; 399 - "XF86AudioNext" = "exec ${playerctl} next"; 400 - "XF86AudioStop" = "exec ${playerctl} stop"; 401 - }; 380 + lib.mkOptionDefault 381 + { 382 + "${mod}+q" = "kill"; 383 + "${mod}+Shift+e" = "exit"; 384 + "${mod}+Shift+r" = "reload"; 385 + # Screenshot and copy it to clipboard 386 + "Mod1+s" = 387 + '' 388 + exec export SFILE="${shotFile}.png" && ${grim} "$SFILE" && ${cat} "$SFILE" | ${wl-copy} -t image/png 389 + ''; 390 + # Save selected area as a picture and copy it to clipboard 391 + "Mod1+Shift+s" = 392 + '' 393 + exec export SFILE="${shotFile}.png" && ${grim} -g "$(${slurp})" "$SFILE" && ${cat} "$SFILE" | ${wl-copy} -t image/png 394 + ''; 395 + # Record screen 396 + "Mod1+r" = ''exec ${wf-recorder} -f "${shotFile}.mp4"''; 397 + # Record an area 398 + "Mod1+Shift+r" = ''exec ${wf-recorder} -g "$(${slurp})" -f "${shotFile}.mp4"''; 399 + # Stop recording 400 + "Mod1+c" = "exec pkill -INT wf-recorder"; 401 + "XF86AudioRaiseVolume" = "exec ${pactl} set-sink-volume 0 +5%"; 402 + "XF86AudioLowerVolume" = "exec ${pactl} set-sink-volume 0 -5%"; 403 + "XF86AudioMute" = "exec ${pactl} set-sink-mute 0 toggle"; 404 + "XF86AudioPlay" = "exec ${playerctl} play-pause"; 405 + "XF86AudioPrev" = "exec ${playerctl} previous"; 406 + "XF86AudioNext" = "exec ${playerctl} next"; 407 + "XF86AudioStop" = "exec ${playerctl} stop"; 408 + }; 402 409 input = { 403 410 "*" = { 404 411 xkb_layout = nixosConfig.services.xserver.layout; 405 412 accel_profile = "flat"; 406 413 }; 407 414 }; 408 - output = { 409 - "*" = { 410 - bg = config.home.homeDirectory + "/wallpaper.png" + " fill"; 411 - }; 412 - }; 415 + output = { "*" = { bg = config.home.homeDirectory + "/wallpaper.png" + " fill"; }; }; 413 416 }; 414 417 }; 415 418 }; 416 - 417 419 programs = { 418 420 alacritty = { 419 421 enable = true; 420 422 settings = { 421 423 shell = { 422 424 program = "${pkgs.tmux}/bin/tmux"; 423 - args = [ "attach" ]; 425 + args = ["attach"]; 424 426 }; 425 427 font = { 426 428 normal = { family = font; }; ··· 437 439 escapeTime = 0; 438 440 keyMode = "vi"; 439 441 shortcut = "a"; 440 - extraConfig = '' 441 - set -g default-terminal "alacritty" 442 - set -ga terminal-overrides ",alacritty:Tc" 443 - set -g status off 444 - ''; 442 + extraConfig = 443 + '' 444 + set -g default-terminal "alacritty" 445 + set -ga terminal-overrides ",alacritty:Tc" 446 + set -g status off 447 + ''; 445 448 }; 446 449 chromium = { 447 450 enable = true; 448 451 package = pkgs.chromium; 449 452 extensions = [ 450 - "gcbommkclmclpchllfjekcdonpmejbdp" # https everywhere 451 - "cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock 452 - "nngceckbapebfimnlniiiahkandclblb" # bitwarden 453 - "ldpochfccmkkmhdbclfhpagapcfdljkj" # decentraleyes 454 - "annfbnbieaamhaimclajlajpijgkdblo" # dark theme 455 - "eimadpbcbfnmbkopoojfekhnkhdbieeh" # dark reader 456 - "hlepfoohegkhhmjieoechaddaejaokhf" # github refined 457 - "pmcmeagblkinmogikoikkdjiligflglb" # privacy redirect 453 + "gcbommkclmclpchllfjekcdonpmejbdp" 454 + # https everywhere 455 + "cjpalhdlnbpafiamejdnhcphjbkeiagm" 456 + # ublock 457 + "nngceckbapebfimnlniiiahkandclblb" 458 + # bitwarden 459 + "ldpochfccmkkmhdbclfhpagapcfdljkj" 460 + # decentraleyes 461 + "annfbnbieaamhaimclajlajpijgkdblo" 462 + # dark theme 463 + "eimadpbcbfnmbkopoojfekhnkhdbieeh" 464 + # dark reader 465 + "hlepfoohegkhhmjieoechaddaejaokhf" 466 + # github refined 467 + "pmcmeagblkinmogikoikkdjiligflglb" 468 + # privacy redirect 458 469 ]; 459 470 }; 460 471 qutebrowser = { ··· 480 491 "youtube.com" 481 492 "docker.com" 482 493 ]; 483 - enableJsForDomain = d: '' 484 - config.set('content.javascript.enabled', True, 'https://*.${d}') 485 - ''; 486 - in 487 - '' 494 + enableJsForDomain = 495 + d: '' 496 + config.set('content.javascript.enabled', True, 'https://*.${d}') 497 + ''; 498 + in '' 488 499 ${lib.concatStrings (map enableJsForDomain domains)} 489 500 ''; 490 501 }; ··· 520 531 plugins = 521 532 let 522 533 fast-syntax-highlighting = 523 - let name = "fast-syntax-highlighting"; in 524 - { 534 + let 535 + name = "fast-syntax-highlighting"; 536 + in { 525 537 inherit name; 526 538 src = pkgs."zsh-${name}".out; 527 539 }; 528 540 per-directory-history = { 529 541 name = "per-directory-history"; 530 - src = pkgs.fetchFromGitHub { 531 - owner = "jimhester"; 532 - repo = "per-directory-history"; 533 - rev = "d2e291dd6434e340d9be0e15e1f5b94f32771c06"; 534 - hash = "sha256-VHRgrVCqzILqOes8VXGjSgLek38BFs9eijmp0JHtD5Q="; 535 - }; 542 + src = 543 + pkgs.fetchFromGitHub 544 + { 545 + owner = "jimhester"; 546 + repo = "per-directory-history"; 547 + rev = "d2e291dd6434e340d9be0e15e1f5b94f32771c06"; 548 + hash = "sha256-VHRgrVCqzILqOes8VXGjSgLek38BFs9eijmp0JHtD5Q="; 549 + }; 536 550 }; 537 - in 538 - [ fast-syntax-highlighting per-directory-history ]; 551 + in [fast-syntax-highlighting per-directory-history]; 539 552 # xdg compliant 540 553 dotDir = ".config/zsh"; 541 554 history.path = ".local/share/zsh/history"; 542 555 envExtra = extraEnv; 543 - /*loginExtra = 556 + /* 557 + loginExtra = 558 + '' 559 + if [ "$(${pkgs.coreutils}/bin/tty)" = "/dev/tty1" ]; then 560 + exec sway 561 + fi 562 + ''; 563 + */ 564 + initExtra = 544 565 '' 545 - if [ "$(${pkgs.coreutils}/bin/tty)" = "/dev/tty1" ]; then 546 - exec sway 547 - fi 548 - '';*/ 549 - initExtra = '' 550 - export TERM=alacritty 551 - export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) 566 + export TERM=alacritty 567 + export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) 552 568 553 - function tomp4 () { 554 - ${pkgs.ffmpeg}/bin/ffmpeg -i $1 -c:v libx264 -preset slow -crf 30 -c:a aac -b:a 128k "$1.mp4" 555 - } 569 + function tomp4 () { 570 + ${pkgs.ffmpeg}/bin/ffmpeg -i $1 -c:v libx264 -preset slow -crf 30 -c:a aac -b:a 128k "$1.mp4" 571 + } 556 572 557 - function topng () { 558 - ${pkgs.ffmpeg}/bin/ffmpeg -i $1 "$1.png" 559 - } 573 + function topng () { 574 + ${pkgs.ffmpeg}/bin/ffmpeg -i $1 "$1.png" 575 + } 560 576 561 - bindkey "$terminfo[kRIT5]" forward-word 562 - bindkey "$terminfo[kLFT5]" backward-word 563 - zstyle ':completion:*' menu select 577 + bindkey "$terminfo[kRIT5]" forward-word 578 + bindkey "$terminfo[kLFT5]" backward-word 579 + zstyle ':completion:*' menu select 564 580 565 - eval "$(zoxide init zsh)" 566 - ''; 567 - shellAliases = nixosConfig.environment.shellAliases // { 568 - harmony-ssh = '' 569 - ${pkgs.mosh}/bin/mosh root@chat.harmonyapp.io 581 + eval "$(zoxide init zsh)" 570 582 ''; 571 - }; 583 + shellAliases = 584 + nixosConfig.environment.shellAliases 585 + // { 586 + harmony-ssh = 587 + '' 588 + ${pkgs.mosh}/bin/mosh root@chat.harmonyapp.io 589 + ''; 590 + }; 572 591 }; 573 592 fzf.enable = true; 574 593 rofi = ··· 576 595 bgc = "#${bgColor}"; 577 596 fgc = "#${fgColor}"; 578 597 acc = "#${acColor}"; 579 - in 580 - { 598 + in { 581 599 enable = false; 582 600 cycle = true; 583 601 font = fontComb; ··· 588 606 package = pkgs.vscodeWayland; 589 607 extensions = 590 608 let 591 - mkExt = n: v: p: s: { name = n; version = v; publisher = p; sha256 = s; }; 609 + mkExt = 610 + n: v: p: s: { 611 + name = n; 612 + version = v; 613 + publisher = p; 614 + sha256 = s; 615 + }; 592 616 in 593 - (pkgs.vscode-utils.extensionsFromVscodeMarketplace [ 594 - # Rust 595 - (mkExt "rust-analyzer" "0.2.760" "matklad" "sha256-M+eFqIFwiKkiwqFRwkX5h6mc/W+NBqkXcNUdTewwkCI=") 596 - (mkExt "even-better-toml" "0.14.2" "tamasfe" "sha256-lE2t+KUfClD/xjpvexTJlEr7Kufo+22DUM9Ju4Tisp0=") 597 - (mkExt "crates" "0.5.9" "serayuzgur" "sha256-YHIbnl2R7lqwJHi8qUQImClx9MWm+5Pc12vYw7e/RlA=") 598 - # Nix 599 - (mkExt "nix-env-selector" "1.0.7" "arrterian" "sha256-DnaIXJ27bcpOrIp1hm7DcrlIzGSjo4RTJ9fD72ukKlc=") 600 - # Go 601 - (mkExt "Go" "0.25.1" "golang" "sha256-ZDUWN9lzDnR77W7xcMFQaaFl/6Lf/x1jgaBkwZPqGGw=") 602 - # Flutter and dart 603 - (mkExt "flutter" "3.22.0" "Dart-Code" "sha256-woygN6hOWlP2UayqwDhJh9KcZk1GzH7mDF5IueDRxs4=") 604 - (mkExt "dart-code" "3.22.0" "Dart-Code" "sha256-1nTewVmlrxbXdRR1EPts46u24LHdnP5BblFsMaGlNYg=") 605 - # protobuf 606 - (mkExt "vscode-proto3" "0.5.4" "zxh404" "sha256-S89qRRlfiTsJ+fJuwdNkZywe6mei48KxIEWbGWChriE=") 607 - (mkExt "vscode-buf" "0.3.1" "bufbuild" "sha256-KjU6WlDxYPPJjh45mCq6Kczi6odYwnLaGj4RHe3fc2w=") 608 - # git 609 - (mkExt "gitlens" "11.6.0" "eamodio" "sha256-JxCNE/IL/v94xWmhebsRZo1Gw+nSSpDgZ41ZGongGVI=") 610 - (mkExt "vscode-commitizen" "0.14.1" "KnisterPeter" "sha256-yw8XKGL7Ul9wV+C0yL1LFJCE3+E8u/sR9s3TjkGJPZM=") 611 - # Customization 612 - # (mkExt "dance" "0.3.2" "gregoire" "sha256-+g8EXeCkPOPvZ60JoXkGTeSXYWrXmKrcbUaEfDppdgA=") 613 - (mkExt "material-icon-theme" "4.6.0" "PKief" "sha256-i+3lrw3mDqK2vTMDhJYTACW5JleA+lN1XAC2imgQLUo=") 614 - (mkExt "github-vscode-theme" "4.1.1" "GitHub" "sha256-yLySHOx6pe7w2cyi95pQlKkn/o4VMCTkrTYHu8ASn5M=") 615 - (mkExt "koka" "0.0.1" "maelvalais" "sha256-ty8Mql19HgUWForggeZuHQpzTbmmB/eBFHqof5ZMKr0=") 616 - (mkExt "vscode-rhai" "0.6.3" "rhaiscript" "sha256-gEdpM/TkkiZ50bG9qDU6BH04AJLRDcHLquniRs6m0mg=") 617 - (mkExt "copilot" "1.2.1991" "GitHub" "sha256-pGb5xfjuy+g646doZEuKhQalkOte5dH+I+1op+vZY48=") 618 - ]) ++ (with pkgs.vscode-extensions; [ a5huynh.vscode-ron /* vadimcn.vscode-lldb */ jnoortheen.nix-ide ]); 617 + ( 618 + pkgs.vscode-utils.extensionsFromVscodeMarketplace 619 + [ 620 + # Rust 621 + (mkExt "rust-analyzer" "0.2.760" "matklad" "sha256-M+eFqIFwiKkiwqFRwkX5h6mc/W+NBqkXcNUdTewwkCI=") 622 + (mkExt "even-better-toml" "0.14.2" "tamasfe" "sha256-lE2t+KUfClD/xjpvexTJlEr7Kufo+22DUM9Ju4Tisp0=") 623 + (mkExt "crates" "0.5.9" "serayuzgur" "sha256-YHIbnl2R7lqwJHi8qUQImClx9MWm+5Pc12vYw7e/RlA=") 624 + # Nix 625 + ( 626 + mkExt "nix-env-selector" "1.0.7" "arrterian" "sha256-DnaIXJ27bcpOrIp1hm7DcrlIzGSjo4RTJ9fD72ukKlc=" 627 + ) 628 + # Go 629 + (mkExt "Go" "0.25.1" "golang" "sha256-ZDUWN9lzDnR77W7xcMFQaaFl/6Lf/x1jgaBkwZPqGGw=") 630 + # Flutter and dart 631 + (mkExt "flutter" "3.22.0" "Dart-Code" "sha256-woygN6hOWlP2UayqwDhJh9KcZk1GzH7mDF5IueDRxs4=") 632 + (mkExt "dart-code" "3.22.0" "Dart-Code" "sha256-1nTewVmlrxbXdRR1EPts46u24LHdnP5BblFsMaGlNYg=") 633 + # protobuf 634 + (mkExt "vscode-proto3" "0.5.4" "zxh404" "sha256-S89qRRlfiTsJ+fJuwdNkZywe6mei48KxIEWbGWChriE=") 635 + (mkExt "vscode-buf" "0.3.1" "bufbuild" "sha256-KjU6WlDxYPPJjh45mCq6Kczi6odYwnLaGj4RHe3fc2w=") 636 + # git 637 + (mkExt "gitlens" "11.6.0" "eamodio" "sha256-JxCNE/IL/v94xWmhebsRZo1Gw+nSSpDgZ41ZGongGVI=") 638 + ( 639 + mkExt 640 + "vscode-commitizen" 641 + "0.14.1" 642 + "KnisterPeter" 643 + "sha256-yw8XKGL7Ul9wV+C0yL1LFJCE3+E8u/sR9s3TjkGJPZM=" 644 + ) 645 + # Customization 646 + # (mkExt "dance" "0.3.2" "gregoire" "sha256-+g8EXeCkPOPvZ60JoXkGTeSXYWrXmKrcbUaEfDppdgA=") 647 + (mkExt "material-icon-theme" "4.6.0" "PKief" "sha256-i+3lrw3mDqK2vTMDhJYTACW5JleA+lN1XAC2imgQLUo=") 648 + ( 649 + mkExt "github-vscode-theme" "4.1.1" "GitHub" "sha256-yLySHOx6pe7w2cyi95pQlKkn/o4VMCTkrTYHu8ASn5M=" 650 + ) 651 + (mkExt "koka" "0.0.1" "maelvalais" "sha256-ty8Mql19HgUWForggeZuHQpzTbmmB/eBFHqof5ZMKr0=") 652 + (mkExt "vscode-rhai" "0.6.3" "rhaiscript" "sha256-gEdpM/TkkiZ50bG9qDU6BH04AJLRDcHLquniRs6m0mg=") 653 + (mkExt "copilot" "1.2.1991" "GitHub" "sha256-pGb5xfjuy+g646doZEuKhQalkOte5dH+I+1op+vZY48=") 654 + ] 655 + ) 656 + ++ ( 657 + with pkgs.vscode-extensions; [ 658 + a5huynh.vscode-ron 659 + /* 660 + vadimcn.vscode-lldb 661 + */ 662 + jnoortheen.nix-ide 663 + ] 664 + ); 619 665 userSettings = { 620 666 "workbench.iconTheme" = "material-icon-theme"; 621 667 "workbench.colorTheme" = "GitHub Dark"; 622 668 "rust-analyzer.cargo.loadOutDirsFromCheck" = true; 623 669 "rust-analyzer.procMacro.enable" = true; 670 + "rust-analyzer.server.path" = "${pkgs.rust-analyzer}/bin/rust-analyzer"; 624 671 "rust-analyzer.updates.channel" = "nightly"; 625 672 "editor.fontFamily" = "'${font}'"; 626 673 "debug.console.fontFamily" = "${font}"; ··· 634 681 }; 635 682 }; 636 683 }; 637 - 638 684 services = { 639 685 gpg-agent = 640 686 let 641 687 defaultCacheTtl = 3600 * 6; 642 688 maxCacheTtl = 3600 * 24; 643 - in 644 - { 689 + in { 645 690 inherit defaultCacheTtl maxCacheTtl; 646 - 647 691 enable = true; 648 692 enableSshSupport = true; 649 - sshKeys = [ "8369D9CA26C3EAAAB8302A88CEE6FD14B58AA965" ]; 693 + sshKeys = ["8369D9CA26C3EAAAB8302A88CEE6FD14B58AA965"]; 650 694 defaultCacheTtlSsh = defaultCacheTtl; 651 695 maxCacheTtlSsh = maxCacheTtl; 652 696 grabKeyboardAndMouse = false; 653 697 pinentryFlavor = "qt"; 654 698 }; 655 699 }; 656 - 657 700 xdg = { 658 701 enable = true; 659 702 configFile = { 660 - "helix/themes/mytheme.toml".text = '' 661 - "attribute" = { fg = "#${colorScheme.bright.yellow}]" } 662 - "comment" = { fg = "#${colorScheme.normal.gray}", modifiers = ['italic'] } 663 - "constant" = { fg = "#${colorScheme.normal.blue}" } 664 - "constant.builtin" = { fg = "#${colorScheme.bright.blue}" } 665 - "constructor" = { fg = "#${colorScheme.bright.blue}" } 666 - "escape" = { fg = "#${colorScheme.bright.yellow}" } 667 - "function" = { fg = "#${colorScheme.bright.blue}" } 668 - "function.builtin" = { fg = "#${colorScheme.bright.blue}" } 669 - "function.macro" = { fg = "#${colorScheme.bright.magenta}" } 670 - "keyword" = { fg = "#${colorScheme.normal.magenta}", modifiers = ['italic'] } 671 - "keyword.directive" = { fg = "#${colorScheme.normal.magenta}" } 672 - "label" = { fg = "#${colorScheme.bright.magenta}" } 673 - "namespace" = { fg = "#${colorScheme.bright.blue}" } 674 - "number" = { fg = "#${colorScheme.normal.cyan}" } 675 - "operator" = { fg = "#${colorScheme.bright.magenta}", modifiers = ['italic'] } 676 - "property" = { fg = "#${colorScheme.normal.red}" } 677 - "special" = { fg = "#${colorScheme.bright.blue}" } 678 - "string" = { fg = "#${colorScheme.normal.green}" } 679 - "type" = { fg = "#${colorScheme.normal.cyan}", modifiers = ['bold'] } 680 - "type.builtin" = { fg = "#${colorScheme.normal.cyan}", modifiers = ['bold'] } 681 - "variable" = { fg = "#${colorScheme.bright.blue}", modifiers = ['italic'] } 682 - "variable.builtin" = { fg = "#${colorScheme.bright.blue}", modifiers = ['italic'] } 683 - "variable.parameter" = { fg = "#${colorScheme.bright.red}", modifiers = ['italic'] } 684 - "ui.menu.selected" = { fg = "#${bgColor}", bg = "#${acColor}" } 685 - "ui.background" = { fg = "#${fgColor}", bg = "#${bgColor}" } 686 - "ui.help" = { bg = "#${colorScheme.normal.black}" } 687 - "ui.linenr" = { fg = "#${colorScheme.primary.bright.background}", modifiers = ['bold'] } 688 - "ui.linenr.selected" = { fg = "#${fgColor}", modifiers = ['bold'] } 689 - "ui.popup" = { bg = "#${colorScheme.normal.black}" } 690 - "ui.statusline" = { fg = "#${fgColor}", bg = "#${bgColor}" } 691 - "ui.statusline.inactive" = { fg = "#${fgColor}", bg = "#${bgColor}" } 692 - "ui.selection" = { bg = "#${colorScheme.primary.bright.background}" } 693 - "ui.text" = { fg = "#${fgColor}", bg = "#${bgColor}" } 694 - "ui.text.focus" = { fg = "#${fgColor}", bg = "#${bgColor}", modifiers = ['bold'] } 695 - "ui.window" = { bg = "#${bgColor}" } 696 - "ui.cursor.primary" = { fg = "#${fgColor}", modifiers = ["reversed"] } 703 + "helix/themes/mytheme.toml".text = 704 + '' 705 + "attribute" = { fg = "#${colorScheme.bright.yellow}]" } 706 + "comment" = { fg = "#${colorScheme.normal.gray}", modifiers = ['italic'] } 707 + "constant" = { fg = "#${colorScheme.normal.blue}" } 708 + "constant.builtin" = { fg = "#${colorScheme.bright.blue}" } 709 + "constructor" = { fg = "#${colorScheme.bright.blue}" } 710 + "escape" = { fg = "#${colorScheme.bright.yellow}" } 711 + "function" = { fg = "#${colorScheme.bright.blue}" } 712 + "function.builtin" = { fg = "#${colorScheme.bright.blue}" } 713 + "function.macro" = { fg = "#${colorScheme.bright.magenta}" } 714 + "keyword" = { fg = "#${colorScheme.normal.magenta}", modifiers = ['italic'] } 715 + "keyword.directive" = { fg = "#${colorScheme.normal.magenta}" } 716 + "label" = { fg = "#${colorScheme.bright.magenta}" } 717 + "namespace" = { fg = "#${colorScheme.bright.blue}" } 718 + "number" = { fg = "#${colorScheme.normal.cyan}" } 719 + "operator" = { fg = "#${colorScheme.bright.magenta}", modifiers = ['italic'] } 720 + "property" = { fg = "#${colorScheme.normal.red}" } 721 + "special" = { fg = "#${colorScheme.bright.blue}" } 722 + "string" = { fg = "#${colorScheme.normal.green}" } 723 + "type" = { fg = "#${colorScheme.normal.cyan}", modifiers = ['bold'] } 724 + "type.builtin" = { fg = "#${colorScheme.normal.cyan}", modifiers = ['bold'] } 725 + "variable" = { fg = "#${colorScheme.bright.blue}", modifiers = ['italic'] } 726 + "variable.builtin" = { fg = "#${colorScheme.bright.blue}", modifiers = ['italic'] } 727 + "variable.parameter" = { fg = "#${colorScheme.bright.red}", modifiers = ['italic'] } 728 + "ui.menu.selected" = { fg = "#${bgColor}", bg = "#${acColor}" } 729 + "ui.background" = { fg = "#${fgColor}", bg = "#${bgColor}" } 730 + "ui.help" = { bg = "#${colorScheme.normal.black}" } 731 + "ui.linenr" = { fg = "#${colorScheme.primary.bright.background}", modifiers = ['bold'] } 732 + "ui.linenr.selected" = { fg = "#${fgColor}", modifiers = ['bold'] } 733 + "ui.popup" = { bg = "#${colorScheme.normal.black}" } 734 + "ui.statusline" = { fg = "#${fgColor}", bg = "#${bgColor}" } 735 + "ui.statusline.inactive" = { fg = "#${fgColor}", bg = "#${bgColor}" } 736 + "ui.selection" = { bg = "#${colorScheme.primary.bright.background}" } 737 + "ui.text" = { fg = "#${fgColor}", bg = "#${bgColor}" } 738 + "ui.text.focus" = { fg = "#${fgColor}", bg = "#${bgColor}", modifiers = ['bold'] } 739 + "ui.window" = { bg = "#${bgColor}" } 740 + "ui.cursor.primary" = { fg = "#${fgColor}", modifiers = ["reversed"] } 697 741 698 - "info" = { fg = "#${colorScheme.normal.blue}", modifiers = ['bold'] } 699 - "hint" = { fg = "#${colorScheme.bright.green}", modifiers = ['bold'] } 700 - "warning" = { fg = "#${colorScheme.normal.yellow}", modifiers = ['bold'] } 701 - "error" = { fg = "#${colorScheme.bright.red}", modifiers = ['bold'] } 702 - ''; 703 - "helix/config.toml".text = '' 704 - theme = "mytheme" 705 - [editor] 706 - line-number = "relative" 707 - [lsp] 708 - display-messages = true 709 - ''; 710 - "helix/languages.toml".text = '' 711 - [[language]] 712 - name = "nix" 713 - language-server = { command = "${pkgBin "rnix-lsp"}" } 714 - ''; 742 + "info" = { fg = "#${colorScheme.normal.blue}", modifiers = ['bold'] } 743 + "hint" = { fg = "#${colorScheme.bright.green}", modifiers = ['bold'] } 744 + "warning" = { fg = "#${colorScheme.normal.yellow}", modifiers = ['bold'] } 745 + "error" = { fg = "#${colorScheme.bright.red}", modifiers = ['bold'] } 746 + ''; 747 + "helix/config.toml".text = 748 + '' 749 + theme = "mytheme" 750 + [editor] 751 + line-number = "relative" 752 + [lsp] 753 + display-messages = true 754 + ''; 755 + "helix/languages.toml".text = 756 + '' 757 + [[language]] 758 + name = "nix" 759 + language-server = { command = "${pkgBin "rnix-lsp"}" } 760 + ''; 715 761 "waybar/config".text = 716 - let swayEnabled = config.wayland.windowManager.sway.enable; in 717 - builtins.toJSON { 718 - layer = "top"; 719 - position = "top"; 720 - modules-left = if swayEnabled then [ "sway/workspaces" ] else [ ]; 721 - modules-center = if swayEnabled then [ "sway/window" ] else [ ]; 722 - modules-right = 723 - [ "pulseaudio" "cpu" "memory" "temperature" "clock" "tray" ]; 724 - tray = { spacing = 8; }; 725 - cpu = { format = "/cpu {usage}/"; }; 726 - memory = { format = "/mem {}/"; }; 727 - temperature = { 728 - hwmon-path = "/sys/class/hwmon/hwmon1/temp2_input"; 729 - format = "/tmp {temperatureC}C/"; 730 - }; 731 - pulseaudio = { 732 - format = "/vol {volume}/ {format_source}"; 733 - format-bluetooth = "/volb {volume}/ {format_source}"; 734 - format-bluetooth-muted = "/volb/ {format_source}"; 735 - format-muted = "/vol/ {format_source}"; 736 - format-source = "/mic {volume}/"; 737 - format-source-muted = "/mic/"; 762 + let 763 + swayEnabled = config.wayland.windowManager.sway.enable; 764 + in 765 + builtins.toJSON 766 + { 767 + layer = "top"; 768 + position = "top"; 769 + modules-left = 770 + if swayEnabled 771 + then ["sway/workspaces"] 772 + else []; 773 + modules-center = 774 + if swayEnabled 775 + then ["sway/window"] 776 + else []; 777 + modules-right = ["pulseaudio" "cpu" "memory" "temperature" "clock" "tray"]; 778 + tray = { spacing = 8; }; 779 + cpu = { format = "/cpu {usage}/"; }; 780 + memory = { format = "/mem {}/"; }; 781 + temperature = { 782 + hwmon-path = "/sys/class/hwmon/hwmon1/temp2_input"; 783 + format = "/tmp {temperatureC}C/"; 784 + }; 785 + pulseaudio = { 786 + format = "/vol {volume}/ {format_source}"; 787 + format-bluetooth = "/volb {volume}/ {format_source}"; 788 + format-bluetooth-muted = "/volb/ {format_source}"; 789 + format-muted = "/vol/ {format_source}"; 790 + format-source = "/mic {volume}/"; 791 + format-source-muted = "/mic/"; 792 + }; 738 793 }; 739 - }; 740 794 "waybar/style.css".text = 741 795 let 742 796 makeBorder = color: "border-bottom: 3px solid #${color};"; 743 - makeInfo = color: '' 744 - color: #${color}; 745 - ${makeBorder color} 746 - ''; 747 - 797 + makeInfo = 798 + color: '' 799 + color: #${color}; 800 + ${makeBorder color} 801 + ''; 748 802 clockColor = colorScheme.bright.magenta; 749 803 cpuColor = colorScheme.bright.green; 750 804 memColor = colorScheme.bright.blue; ··· 756 810 normal = colorScheme.bright.yellow; 757 811 critical = colorScheme.bright.red; 758 812 }; 759 - in 760 - '' 813 + in '' 761 814 * { 762 815 border: none; 763 816 border-radius: 0;
+2 -7
users/profiles/git/default.nix
··· 25 25 ssp = "stash pop"; 26 26 ssl = "stash list"; 27 27 ssd = "stash drop"; 28 - 29 28 # reset 30 29 rsoft = "reset --soft"; 31 30 rhard = "reset --hard"; 32 31 rs1ft = "soft HEAD~1"; 33 32 rh1rd = "hard HEAD~1"; 34 - 35 33 # logging 36 34 l = 37 35 "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"; 38 - plog = 39 - "log --graph --pretty='format:%C(red)%d%C(reset) %C(yellow)%h%C(reset) %ar %C(green)%aN%C(reset) %s'"; 40 - tlog = 41 - "log --stat --since='1 Day Ago' --graph --pretty=oneline --abbrev-commit --date=relative"; 36 + plog = "log --graph --pretty='format:%C(red)%d%C(reset) %C(yellow)%h%C(reset) %ar %C(green)%aN%C(reset) %s'"; 37 + tlog = "log --stat --since='1 Day Ago' --graph --pretty=oneline --abbrev-commit --date=relative"; 42 38 rank = "shortlog -sn --no-merges"; 43 - 44 39 # delete merged branches 45 40 bdm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d"; 46 41 };
+171 -163
users/profiles/hikari/default.nix
··· 1 - { fontComb ? "Iosevka 10", config, pkgs, ... }: 1 + { 2 + fontComb ? "Iosevka 10", 3 + config, 4 + pkgs, 5 + ... 6 + }: 2 7 { 3 - home.packages = with pkgs; [ hikari xwayland ]; 4 - 8 + home.packages = with pkgs; [hikari xwayland]; 5 9 xdg = { 6 10 enable = true; 7 11 configFile = { 8 - "hikari/hikari.conf".text = '' 9 - ui { 10 - border = 1 11 - gap = 0 12 - step = 120 13 - font = "${fontComb}" 12 + "hikari/hikari.conf".text = 13 + '' 14 + ui { 15 + border = 1 16 + gap = 0 17 + step = 120 18 + font = "${fontComb}" 14 19 15 - colorscheme { 16 - background = 0x282C34 17 - foreground = 0x000000 18 - selected = 0xF5E094 19 - grouped = 0xFDAF53 20 - first = 0xB8E673 21 - conflict = 0xED6B32 22 - insert = 0xE3C3FA 23 - active = 0xFFFFFF 24 - inactive = 0x465457 20 + colorscheme { 21 + background = 0x282C34 22 + foreground = 0x000000 23 + selected = 0xF5E094 24 + grouped = 0xFDAF53 25 + first = 0xB8E673 26 + conflict = 0xED6B32 27 + insert = 0xE3C3FA 28 + active = 0xFFFFFF 29 + inactive = 0x465457 30 + } 25 31 } 26 - } 27 32 28 - outputs { 29 - "*" { 30 - background = "${config.home.homeDirectory}/wallpaper.png" 33 + outputs { 34 + "*" { 35 + background = "${config.home.homeDirectory}/wallpaper.png" 36 + } 31 37 } 32 - } 33 38 34 - inputs { 35 - keyboards { 36 - "*" { 37 - xkb = { 38 - layout = "tr" 39 + inputs { 40 + keyboards { 41 + "*" { 42 + xkb = { 43 + layout = "tr" 44 + } 45 + } 46 + } 47 + pointers { 48 + "*" { 49 + accel-profile = "flat" 39 50 } 40 51 } 41 52 } 42 - pointers { 43 - "*" { 44 - accel-profile = "flat" 53 + 54 + layouts { 55 + # main stack 56 + s = { 57 + scale = { 58 + min = 0.5 59 + max = 0.75 60 + } 61 + left = single 62 + right = stack 45 63 } 46 - } 47 - } 48 64 49 - layouts { 50 - # main stack 51 - s = { 52 - scale = { 53 - min = 0.5 54 - max = 0.75 65 + # main queue 66 + q = { 67 + scale = 0.75 68 + top = single 69 + bottom = queue 55 70 } 56 - left = single 57 - right = stack 71 + 72 + f = full 73 + h = stack 74 + v = queue 75 + g = grid 58 76 } 59 77 60 - # main queue 61 - q = { 62 - scale = 0.75 63 - top = single 64 - bottom = queue 78 + actions { 79 + terminal = "${pkgs.alacritty}/bin/alacritty" 80 + run = "${pkgs.wofi}/bin/wofi --show drun" 65 81 } 66 82 67 - f = full 68 - h = stack 69 - v = queue 70 - g = grid 71 - } 72 - 73 - actions { 74 - terminal = "${pkgs.alacritty}/bin/alacritty" 75 - run = "${pkgs.wofi}/bin/wofi --show drun" 76 - } 77 - 78 - bindings { 79 - keyboard { 80 - "L+0" = workspace-switch-to-sheet-0 81 - "L+1" = workspace-switch-to-sheet-1 82 - "L+2" = workspace-switch-to-sheet-2 83 - "L+3" = workspace-switch-to-sheet-3 84 - "L+4" = workspace-switch-to-sheet-4 85 - "L+5" = workspace-switch-to-sheet-5 86 - "L+6" = workspace-switch-to-sheet-6 87 - "L+7" = workspace-switch-to-sheet-7 88 - "L+8" = workspace-switch-to-sheet-8 89 - "L+9" = workspace-switch-to-sheet-9 90 - "L+numbersign" = workspace-switch-to-sheet-alternate 91 - "L+Period" = workspace-switch-to-sheet-current 92 - "L+j" = workspace-switch-to-sheet-next 93 - "L+k" = workspace-switch-to-sheet-prev 94 - "L+Comma" = workspace-switch-to-sheet-next-inhabited 95 - "LS+Comma" = workspace-switch-to-sheet-prev-inhabited 96 - "LSC+g" = workspace-show-group 97 - "LSC+i" = workspace-show-invisible 98 - "LSC+Period" = workspace-show-all 99 - "LC+n" = workspace-cycle-next 100 - "LC+p" = workspace-cycle-prev 83 + bindings { 84 + keyboard { 85 + "L+0" = workspace-switch-to-sheet-0 86 + "L+1" = workspace-switch-to-sheet-1 87 + "L+2" = workspace-switch-to-sheet-2 88 + "L+3" = workspace-switch-to-sheet-3 89 + "L+4" = workspace-switch-to-sheet-4 90 + "L+5" = workspace-switch-to-sheet-5 91 + "L+6" = workspace-switch-to-sheet-6 92 + "L+7" = workspace-switch-to-sheet-7 93 + "L+8" = workspace-switch-to-sheet-8 94 + "L+9" = workspace-switch-to-sheet-9 95 + "L+numbersign" = workspace-switch-to-sheet-alternate 96 + "L+Period" = workspace-switch-to-sheet-current 97 + "L+j" = workspace-switch-to-sheet-next 98 + "L+k" = workspace-switch-to-sheet-prev 99 + "L+Comma" = workspace-switch-to-sheet-next-inhabited 100 + "LS+Comma" = workspace-switch-to-sheet-prev-inhabited 101 + "LSC+g" = workspace-show-group 102 + "LSC+i" = workspace-show-invisible 103 + "LSC+Period" = workspace-show-all 104 + "LC+n" = workspace-cycle-next 105 + "LC+p" = workspace-cycle-prev 101 106 102 - "LC+i" = sheet-show-invisible 103 - "LC+Period" = sheet-show-all 104 - "LC+g" = sheet-show-group 107 + "LC+i" = sheet-show-invisible 108 + "LC+Period" = sheet-show-all 109 + "LC+g" = sheet-show-group 105 110 106 - "LA+r" = layout-reset 107 - "LA+Return" = layout-restack-append 108 - "LAS+Return" = layout-restack-prepend 109 - "L+Home" = layout-cycle-view-first 110 - "L+End" = layout-cycle-view-last 111 - "L+n" = layout-cycle-view-next 112 - "L+p" = layout-cycle-view-prev 113 - "L+x" = layout-exchange-view-next 114 - "LS+x" = layout-exchange-view-prev 115 - "LA+x" = layout-exchange-view-main 111 + "LA+r" = layout-reset 112 + "LA+Return" = layout-restack-append 113 + "LAS+Return" = layout-restack-prepend 114 + "L+Home" = layout-cycle-view-first 115 + "L+End" = layout-cycle-view-last 116 + "L+n" = layout-cycle-view-next 117 + "L+p" = layout-cycle-view-prev 118 + "L+x" = layout-exchange-view-next 119 + "LS+x" = layout-exchange-view-prev 120 + "LA+x" = layout-exchange-view-main 116 121 117 - "LS+0" = view-pin-to-sheet-0 118 - "LS+1" = view-pin-to-sheet-1 119 - "LS+2" = view-pin-to-sheet-2 120 - "LS+3" = view-pin-to-sheet-3 121 - "LS+4" = view-pin-to-sheet-4 122 - "LS+5" = view-pin-to-sheet-5 123 - "LS+6" = view-pin-to-sheet-6 124 - "LS+7" = view-pin-to-sheet-7 125 - "LS+8" = view-pin-to-sheet-8 126 - "LS+9" = view-pin-to-sheet-9 127 - "LS+numbersign" = view-pin-to-sheet-alternate 128 - "LS+Period" = view-pin-to-sheet-current 129 - "LS+j" = view-pin-to-sheet-next 130 - "LS+k" = view-pin-to-sheet-prev 122 + "LS+0" = view-pin-to-sheet-0 123 + "LS+1" = view-pin-to-sheet-1 124 + "LS+2" = view-pin-to-sheet-2 125 + "LS+3" = view-pin-to-sheet-3 126 + "LS+4" = view-pin-to-sheet-4 127 + "LS+5" = view-pin-to-sheet-5 128 + "LS+6" = view-pin-to-sheet-6 129 + "LS+7" = view-pin-to-sheet-7 130 + "LS+8" = view-pin-to-sheet-8 131 + "LS+9" = view-pin-to-sheet-9 132 + "LS+numbersign" = view-pin-to-sheet-alternate 133 + "LS+Period" = view-pin-to-sheet-current 134 + "LS+j" = view-pin-to-sheet-next 135 + "LS+k" = view-pin-to-sheet-prev 131 136 132 - "L+q" = view-quit 133 - "L+Tab" = view-cycle-next 134 - "LS+Tab" = view-cycle-prev 137 + "L+q" = view-quit 138 + "L+Tab" = view-cycle-next 139 + "LS+Tab" = view-cycle-prev 135 140 136 - "L+Up" = view-move-up 137 - "L+Down" = view-move-down 138 - "L+Left" = view-move-left 139 - "L+Right" = view-move-right 140 - "LA+Up" = view-decrease-size-up 141 - "LAS+Up" = view-increase-size-up 142 - "LA+Down" = view-increase-size-down 143 - "LAS+Down" = view-decrease-size-down 144 - "LA+Left" = view-decrease-size-left 145 - "LAS+Left" = view-increase-size-left 146 - "LA+Right" = view-increase-size-right 147 - "LAS+Right" = view-decrease-size-right 148 - "LS+Up" = view-snap-up 149 - "LS+Down" = view-snap-down 150 - "LS+Left" = view-snap-left 151 - "LS+Right" = view-snap-right 152 - "L+r" = view-reset-geometry 141 + "L+Up" = view-move-up 142 + "L+Down" = view-move-down 143 + "L+Left" = view-move-left 144 + "L+Right" = view-move-right 145 + "LA+Up" = view-decrease-size-up 146 + "LAS+Up" = view-increase-size-up 147 + "LA+Down" = view-increase-size-down 148 + "LAS+Down" = view-decrease-size-down 149 + "LA+Left" = view-decrease-size-left 150 + "LAS+Left" = view-increase-size-left 151 + "LA+Right" = view-increase-size-right 152 + "LAS+Right" = view-decrease-size-right 153 + "LS+Up" = view-snap-up 154 + "LS+Down" = view-snap-down 155 + "LS+Left" = view-snap-left 156 + "LS+Right" = view-snap-right 157 + "L+r" = view-reset-geometry 153 158 154 - "L+minus" = view-toggle-maximize-vertical 155 - "L+less" = view-toggle-maximize-horizontal 156 - "L+f" = view-toggle-maximize-full 157 - "L5+plus" = view-toggle-floating 158 - "L+i" = view-toggle-invisible 159 - "L5+p" = view-toggle-public 159 + "L+minus" = view-toggle-maximize-vertical 160 + "L+less" = view-toggle-maximize-horizontal 161 + "L+f" = view-toggle-maximize-full 162 + "L5+plus" = view-toggle-floating 163 + "L+i" = view-toggle-invisible 164 + "L5+p" = view-toggle-public 160 165 161 - "L+l" = mode-enter-layout 162 - "L+s" = mode-enter-sheet-assign 163 - "L+g" = mode-enter-group-assign 164 - "L+m" = mode-enter-mark-assign 165 - "L+acute" = mode-enter-mark-select 166 - "LS+acute" = mode-enter-mark-switch-select 167 - "LCA+g" = mode-enter-input-grab 166 + "L+l" = mode-enter-layout 167 + "L+s" = mode-enter-sheet-assign 168 + "L+g" = mode-enter-group-assign 169 + "L+m" = mode-enter-mark-assign 170 + "L+acute" = mode-enter-mark-select 171 + "LS+acute" = mode-enter-mark-switch-select 172 + "LCA+g" = mode-enter-input-grab 168 173 169 - "LS+Backspace" = lock 170 - "LCA+q" = quit 171 - "LCA+r" = reload 174 + "LS+Backspace" = lock 175 + "LCA+q" = quit 176 + "LCA+r" = reload 172 177 173 - "L+Return" = action-terminal 174 - "L+d" = action-run 178 + "L+Return" = action-terminal 179 + "L+d" = action-run 175 180 176 - "A+F1" = vt-switch-to-1 177 - "A+F2" = vt-switch-to-2 178 - "A+F3" = vt-switch-to-3 179 - "A+F4" = vt-switch-to-4 180 - "A+F5" = vt-switch-to-5 181 - "A+F6" = vt-switch-to-6 182 - "A+F7" = vt-switch-to-7 183 - "A+F8" = vt-switch-to-8 184 - "A+F9" = vt-switch-to-9 185 - } 181 + "A+F1" = vt-switch-to-1 182 + "A+F2" = vt-switch-to-2 183 + "A+F3" = vt-switch-to-3 184 + "A+F4" = vt-switch-to-4 185 + "A+F5" = vt-switch-to-5 186 + "A+F6" = vt-switch-to-6 187 + "A+F7" = vt-switch-to-7 188 + "A+F8" = vt-switch-to-8 189 + "A+F9" = vt-switch-to-9 190 + } 186 191 187 - mouse { 188 - "L+left" = mode-enter-move 189 - "L+right" = mode-enter-resize 192 + mouse { 193 + "L+left" = mode-enter-move 194 + "L+right" = mode-enter-resize 195 + } 190 196 } 191 - } 192 - ''; 193 - "hikari/autostart".source = "${ 194 - pkgs.writeScriptBin "hikari-autostart" '' 197 + ''; 198 + "hikari/autostart".source = 199 + "${ 200 + pkgs.writeScriptBin 201 + "hikari-autostart" 202 + '' 195 203 #!${pkgs.stdenv.shell} 196 204 ${pkgs.waybar}/bin/waybar & 197 205 ''
+2 -1
users/profiles/starship/default.nix
··· 1 - { ... }: { 1 + { ... }: 2 + { 2 3 programs.starship = { 3 4 enable = true; 4 5 settings = {
+5 -3
users/profiles/wtf/default.nix
··· 1 - { pkgs, ... }: { 2 - home.packages = [ pkgs.wtf ]; 3 - } 1 + { 2 + pkgs, 3 + ... 4 + }: 5 + { home.packages = [pkgs.wtf]; }