nix machine / user configurations

add chernobog host

+76 -27
_sources/generated.json
··· 1 1 { 2 2 "agenix": { 3 3 "cargoLocks": null, 4 - "date": "2025-10-18", 4 + "date": "2025-10-28", 5 5 "extract": null, 6 6 "name": "agenix", 7 7 "passthru": null, ··· 13 13 "name": null, 14 14 "owner": "ryantm", 15 15 "repo": "agenix", 16 - "rev": "2f0f812f69f3eb4140157fe15e12739adf82e32a", 17 - "sha256": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=", 16 + "rev": "9ba0d85de3eaa7afeab493fed622008b6e4924f5", 17 + "sha256": "sha256-lsNWuj4Z+pE7s0bd2OKicOFq9bK86JE0ZGeKJbNqb94=", 18 18 "sparseCheckout": [], 19 19 "type": "github" 20 20 }, 21 - "version": "2f0f812f69f3eb4140157fe15e12739adf82e32a" 21 + "version": "9ba0d85de3eaa7afeab493fed622008b6e4924f5" 22 22 }, 23 23 "blog": { 24 24 "cargoLocks": null, ··· 104 104 }, 105 105 "home": { 106 106 "cargoLocks": null, 107 - "date": "2025-10-21", 107 + "date": "2025-10-28", 108 108 "extract": null, 109 109 "name": "home", 110 110 "passthru": null, ··· 116 116 "name": null, 117 117 "owner": "nix-community", 118 118 "repo": "home-manager", 119 - "rev": "9b4a2a7c4fbd75b422f00794af02d6edb4d9d315", 120 - "sha256": "sha256-IwpfaKg5c/WWQiy8b5QGaVPMvoEQ2J6kpwRFdpVpBNQ=", 119 + "rev": "ca2ab1d877a24d5a437dad62f56b8b2c02e964e9", 120 + "sha256": "sha256-fHr+tIYBJccNF8QWqgowfRmEAtAMSt1deZIRNKL8A7c=", 121 121 "sparseCheckout": [], 122 122 "type": "github" 123 123 }, 124 - "version": "9b4a2a7c4fbd75b422f00794af02d6edb4d9d315" 124 + "version": "ca2ab1d877a24d5a437dad62f56b8b2c02e964e9" 125 125 }, 126 126 "limbusart": { 127 127 "cargoLocks": null, ··· 143 143 }, 144 144 "version": "7f29ab57b73eb8a4db7163fc7d19a71cf89c3d8b" 145 145 }, 146 - "lix-module": { 146 + "moonlight": { 147 147 "cargoLocks": null, 148 - "date": null, 148 + "date": "2025-10-23", 149 149 "extract": null, 150 - "name": "lix-module", 150 + "name": "moonlight", 151 151 "passthru": null, 152 152 "pinned": false, 153 153 "src": { 154 - "sha256": "sha256-KYMUrTV7H/RR5/HRnjV5R3rRIuBXMemyJzTLi50NFTs=", 155 - "type": "tarball", 156 - "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-1.tar.gz" 154 + "deepClone": false, 155 + "fetchSubmodules": false, 156 + "leaveDotGit": false, 157 + "name": null, 158 + "owner": "moonlight-mod", 159 + "repo": "moonlight", 160 + "rev": "0b927a86a447a145f20bb5ee43fac79a724640f2", 161 + "sha256": "sha256-lQpl6ecQfQ7KzEIytH3k4hLtvq+KkTL+3IR2ZukdZWM=", 162 + "sparseCheckout": [], 163 + "type": "github" 157 164 }, 158 - "version": "2.93.3-1" 165 + "version": "0b927a86a447a145f20bb5ee43fac79a724640f2" 159 166 }, 160 167 "ncr": { 161 168 "cargoLocks": null, ··· 177 184 }, 178 185 "version": "4660aa9cd9b24bef569696eee46dbe7e8df3e237" 179 186 }, 180 - "nixos-wsl": { 187 + "nixos-hardware": { 181 188 "cargoLocks": null, 182 - "date": "2025-10-15", 189 + "date": "2025-10-20", 183 190 "extract": null, 184 - "name": "nixos-wsl", 191 + "name": "nixos-hardware", 185 192 "passthru": null, 186 193 "pinned": false, 187 194 "src": { ··· 189 196 "fetchSubmodules": false, 190 197 "leaveDotGit": false, 191 198 "name": null, 192 - "owner": "nix-community", 193 - "repo": "NixOS-WSL", 194 - "rev": "f98ee1de1fa36eca63c67b600f5d617e184e82ea", 195 - "sha256": "sha256-wfWqt+igns/VazjPLkyb4Z/wpn4v+XIjUeI3xY/1ENg=", 199 + "owner": "NixOS", 200 + "repo": "nixos-hardware", 201 + "rev": "d6645c340ef7d821602fd2cd199e8d1eed10afbc", 202 + "sha256": "sha256-2m1S4jl+GEDtlt2QqeHil8Ny456dcGSKJAM7q3j/BFU=", 196 203 "sparseCheckout": [], 197 204 "type": "github" 198 205 }, 199 - "version": "f98ee1de1fa36eca63c67b600f5d617e184e82ea" 206 + "version": "d6645c340ef7d821602fd2cd199e8d1eed10afbc" 200 207 }, 201 208 "nsid-tracker": { 202 209 "cargoLocks": null, ··· 218 225 }, 219 226 "version": "2683e619932808b8aa78ec7100de6324c8216daf" 220 227 }, 228 + "stylix": { 229 + "cargoLocks": null, 230 + "date": "2025-10-28", 231 + "extract": null, 232 + "name": "stylix", 233 + "passthru": null, 234 + "pinned": false, 235 + "src": { 236 + "deepClone": false, 237 + "fetchSubmodules": false, 238 + "leaveDotGit": false, 239 + "name": null, 240 + "owner": "nix-community", 241 + "repo": "stylix", 242 + "rev": "f8f4e3c3658ee962f8f332a56720c8dfc2836f7a", 243 + "sha256": "sha256-nKOOPeblDcebtYfBjHo+PHXHKNSNKuifn1EGcBEgKWs=", 244 + "sparseCheckout": [], 245 + "type": "github" 246 + }, 247 + "version": "f8f4e3c3658ee962f8f332a56720c8dfc2836f7a" 248 + }, 221 249 "tangled": { 222 250 "cargoLocks": null, 223 - "date": "2025-10-22", 251 + "date": "2025-10-28", 224 252 "extract": null, 225 253 "name": "tangled", 226 254 "passthru": null, ··· 230 258 "fetchSubmodules": false, 231 259 "leaveDotGit": false, 232 260 "name": null, 233 - "rev": "0a2ae70c248e8b880b6c109e3af8eddc0d69212b", 234 - "sha256": "sha256-CEIJqCphXGAt1zzc/Q316G+sfYmpCtJ9ZVWNoXa1mk4=", 261 + "rev": "7949848c82215f1fffa948bf5e61f7e8eff94a71", 262 + "sha256": "sha256-yng1Usbmcwrcz3H214CF9Xp/zr58qr2578yw26YrTGk=", 235 263 "sparseCheckout": [], 236 264 "type": "git", 237 265 "url": "https://tangled.org/@tangled.org/core" 238 266 }, 239 - "version": "0a2ae70c248e8b880b6c109e3af8eddc0d69212b" 267 + "version": "7949848c82215f1fffa948bf5e61f7e8eff94a71" 240 268 }, 241 269 "tangled-sqlite-lib": { 242 270 "cargoLocks": null, ··· 251 279 "url": "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip" 252 280 }, 253 281 "version": "3450100" 282 + }, 283 + "zen-browser": { 284 + "cargoLocks": null, 285 + "date": "2025-10-27", 286 + "extract": null, 287 + "name": "zen-browser", 288 + "passthru": null, 289 + "pinned": false, 290 + "src": { 291 + "deepClone": false, 292 + "fetchSubmodules": false, 293 + "leaveDotGit": false, 294 + "name": null, 295 + "owner": "0xc000022070", 296 + "repo": "zen-browser-flake", 297 + "rev": "79a94872a3e6993a051c4e22a2dcb02c1d088acf", 298 + "sha256": "sha256-E1PobJMiFmVUX2YdqYk/MpKb0LXavOYvlg8DCBBzlHc=", 299 + "sparseCheckout": [], 300 + "type": "github" 301 + }, 302 + "version": "79a94872a3e6993a051c4e22a2dcb02c1d088acf" 254 303 } 255 304 }
+54 -26
_sources/generated.nix
··· 3 3 { 4 4 agenix = { 5 5 pname = "agenix"; 6 - version = "2f0f812f69f3eb4140157fe15e12739adf82e32a"; 6 + version = "9ba0d85de3eaa7afeab493fed622008b6e4924f5"; 7 7 src = fetchFromGitHub { 8 8 owner = "ryantm"; 9 9 repo = "agenix"; 10 - rev = "2f0f812f69f3eb4140157fe15e12739adf82e32a"; 10 + rev = "9ba0d85de3eaa7afeab493fed622008b6e4924f5"; 11 11 fetchSubmodules = false; 12 - sha256 = "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ="; 12 + sha256 = "sha256-lsNWuj4Z+pE7s0bd2OKicOFq9bK86JE0ZGeKJbNqb94="; 13 13 }; 14 - date = "2025-10-18"; 14 + date = "2025-10-28"; 15 15 }; 16 16 blog = { 17 17 pname = "blog"; ··· 67 67 }; 68 68 home = { 69 69 pname = "home"; 70 - version = "9b4a2a7c4fbd75b422f00794af02d6edb4d9d315"; 70 + version = "ca2ab1d877a24d5a437dad62f56b8b2c02e964e9"; 71 71 src = fetchFromGitHub { 72 72 owner = "nix-community"; 73 73 repo = "home-manager"; 74 - rev = "9b4a2a7c4fbd75b422f00794af02d6edb4d9d315"; 74 + rev = "ca2ab1d877a24d5a437dad62f56b8b2c02e964e9"; 75 75 fetchSubmodules = false; 76 - sha256 = "sha256-IwpfaKg5c/WWQiy8b5QGaVPMvoEQ2J6kpwRFdpVpBNQ="; 76 + sha256 = "sha256-fHr+tIYBJccNF8QWqgowfRmEAtAMSt1deZIRNKL8A7c="; 77 77 }; 78 - date = "2025-10-21"; 78 + date = "2025-10-28"; 79 79 }; 80 80 limbusart = { 81 81 pname = "limbusart"; ··· 91 91 }; 92 92 date = "2025-07-22"; 93 93 }; 94 - lix-module = { 95 - pname = "lix-module"; 96 - version = "2.93.3-1"; 97 - src = fetchTarball { 98 - url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-1.tar.gz"; 99 - sha256 = "sha256-KYMUrTV7H/RR5/HRnjV5R3rRIuBXMemyJzTLi50NFTs="; 94 + moonlight = { 95 + pname = "moonlight"; 96 + version = "0b927a86a447a145f20bb5ee43fac79a724640f2"; 97 + src = fetchFromGitHub { 98 + owner = "moonlight-mod"; 99 + repo = "moonlight"; 100 + rev = "0b927a86a447a145f20bb5ee43fac79a724640f2"; 101 + fetchSubmodules = false; 102 + sha256 = "sha256-lQpl6ecQfQ7KzEIytH3k4hLtvq+KkTL+3IR2ZukdZWM="; 100 103 }; 104 + date = "2025-10-23"; 101 105 }; 102 106 ncr = { 103 107 pname = "ncr"; ··· 113 117 }; 114 118 date = "2025-07-18"; 115 119 }; 116 - nixos-wsl = { 117 - pname = "nixos-wsl"; 118 - version = "f98ee1de1fa36eca63c67b600f5d617e184e82ea"; 120 + nixos-hardware = { 121 + pname = "nixos-hardware"; 122 + version = "d6645c340ef7d821602fd2cd199e8d1eed10afbc"; 119 123 src = fetchFromGitHub { 120 - owner = "nix-community"; 121 - repo = "NixOS-WSL"; 122 - rev = "f98ee1de1fa36eca63c67b600f5d617e184e82ea"; 124 + owner = "NixOS"; 125 + repo = "nixos-hardware"; 126 + rev = "d6645c340ef7d821602fd2cd199e8d1eed10afbc"; 123 127 fetchSubmodules = false; 124 - sha256 = "sha256-wfWqt+igns/VazjPLkyb4Z/wpn4v+XIjUeI3xY/1ENg="; 128 + sha256 = "sha256-2m1S4jl+GEDtlt2QqeHil8Ny456dcGSKJAM7q3j/BFU="; 125 129 }; 126 - date = "2025-10-15"; 130 + date = "2025-10-20"; 127 131 }; 128 132 nsid-tracker = { 129 133 pname = "nsid-tracker"; ··· 138 142 sha256 = "sha256-utNIYZiuPql6gvM8k8T/NuLomFRWknfbFvvHpXPei3k="; 139 143 }; 140 144 date = "2025-09-11"; 145 + }; 146 + stylix = { 147 + pname = "stylix"; 148 + version = "f8f4e3c3658ee962f8f332a56720c8dfc2836f7a"; 149 + src = fetchFromGitHub { 150 + owner = "nix-community"; 151 + repo = "stylix"; 152 + rev = "f8f4e3c3658ee962f8f332a56720c8dfc2836f7a"; 153 + fetchSubmodules = false; 154 + sha256 = "sha256-nKOOPeblDcebtYfBjHo+PHXHKNSNKuifn1EGcBEgKWs="; 155 + }; 156 + date = "2025-10-28"; 141 157 }; 142 158 tangled = { 143 159 pname = "tangled"; 144 - version = "0a2ae70c248e8b880b6c109e3af8eddc0d69212b"; 160 + version = "7949848c82215f1fffa948bf5e61f7e8eff94a71"; 145 161 src = fetchgit { 146 162 url = "https://tangled.org/@tangled.org/core"; 147 - rev = "0a2ae70c248e8b880b6c109e3af8eddc0d69212b"; 163 + rev = "7949848c82215f1fffa948bf5e61f7e8eff94a71"; 148 164 fetchSubmodules = false; 149 165 deepClone = false; 150 166 leaveDotGit = false; 151 167 sparseCheckout = [ ]; 152 - sha256 = "sha256-CEIJqCphXGAt1zzc/Q316G+sfYmpCtJ9ZVWNoXa1mk4="; 168 + sha256 = "sha256-yng1Usbmcwrcz3H214CF9Xp/zr58qr2578yw26YrTGk="; 153 169 }; 154 - date = "2025-10-22"; 170 + date = "2025-10-28"; 155 171 }; 156 172 tangled-sqlite-lib = { 157 173 pname = "tangled-sqlite-lib"; ··· 160 176 url = "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip"; 161 177 sha256 = "sha256-bJoMjirsBjm2Qk9KPiy3yV3+8b/POlYe76/FQbciHro="; 162 178 }; 179 + }; 180 + zen-browser = { 181 + pname = "zen-browser"; 182 + version = "79a94872a3e6993a051c4e22a2dcb02c1d088acf"; 183 + src = fetchFromGitHub { 184 + owner = "0xc000022070"; 185 + repo = "zen-browser-flake"; 186 + rev = "79a94872a3e6993a051c4e22a2dcb02c1d088acf"; 187 + fetchSubmodules = false; 188 + sha256 = "sha256-E1PobJMiFmVUX2YdqYk/MpKb0LXavOYvlg8DCBBzlHc="; 189 + }; 190 + date = "2025-10-27"; 163 191 }; 164 192 }
+4 -4
flake.lock
··· 3 3 "nixpkgs": { 4 4 "flake": false, 5 5 "locked": { 6 - "lastModified": 1761164809, 7 - "narHash": "sha256-3uM91Lx9WZomE6MMEBorJyEyBNiHWRIxza/GganDxew=", 6 + "lastModified": 1761512058, 7 + "narHash": "sha256-FYDC/VM/Tu7bJ9uwxmZqIhkz7QblCcp65+LMb4StGTY=", 8 8 "owner": "NixOS", 9 9 "repo": "nixpkgs", 10 - "rev": "3d2db9755e7815937fb7b8f089fad9b44bc416d8", 10 + "rev": "42060c40fd43c114af7010980168f8dcba734d3b", 11 11 "type": "github" 12 12 }, 13 13 "original": { 14 14 "owner": "NixOS", 15 - "ref": "nixos-unstable-small", 16 15 "repo": "nixpkgs", 16 + "rev": "42060c40fd43c114af7010980168f8dcba734d3b", 17 17 "type": "github" 18 18 } 19 19 },
+1 -1
flake.nix
··· 1 1 { 2 2 description = "config!!!"; 3 3 4 - inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small"; 4 + inputs.nixpkgs.url = "github:NixOS/nixpkgs/42060c40fd43c114af7010980168f8dcba734d3b"; 5 5 inputs.nixpkgs.flake = false; 6 6 7 7 outputs =
+63
hosts/chernobog/default.nix
··· 1 + { 2 + config, 3 + lib, 4 + tlib, 5 + pkgs, 6 + inputs, 7 + ... 8 + }: 9 + { 10 + imports = 11 + with inputs; 12 + [ 13 + "${inputs.disko}/module.nix" 14 + "${inputs.home}/nixos" 15 + "${inputs.nixos-hardware}/common/pc" 16 + "${inputs.nixos-hardware}/common/pc/ssd" 17 + "${inputs.nixos-hardware}/common/cpu/amd" 18 + "${inputs.nixos-hardware}/common/cpu/amd/pstate.nix" 19 + "${inputs.nixos-hardware}/common/cpu/amd/zenpower.nix" 20 + "${inputs.nixos-hardware}/common/gpu/amd" 21 + ../../users/root 22 + ../../users/mayer 23 + ../../modules/base 24 + ] 25 + ++ (tlib.importFolder (toString ./modules)); 26 + 27 + security = { 28 + pam.loginLimits = [ 29 + { 30 + domain = "*"; 31 + type = "soft"; 32 + item = "nofile"; 33 + value = "16777216"; 34 + } 35 + { 36 + domain = "*"; 37 + type = "hard"; 38 + item = "nofile"; 39 + value = "16777216"; 40 + } 41 + ]; 42 + }; 43 + 44 + services.pipewire = { 45 + enable = true; 46 + audio.enable = true; 47 + alsa.enable = true; 48 + alsa.support32Bit = true; 49 + pulse.enable = true; 50 + jack.enable = true; 51 + }; 52 + 53 + fonts = { 54 + enableDefaultPackages = true; 55 + packages = [ pkgs.dejavu_fonts ]; 56 + }; 57 + 58 + services.earlyoom.enable = true; 59 + 60 + hardware.enableRedistributableFirmware = true; 61 + 62 + system.stateVersion = "25.05"; 63 + }
+8
hosts/chernobog/modules/boot.nix
··· 1 + { 2 + boot.loader.systemd-boot = { 3 + enable = true; 4 + editor = false; 5 + configurationLimit = 20; 6 + }; 7 + boot.loader.efi.canTouchEfiVariables = true; 8 + }
+3
hosts/chernobog/modules/cosmic.disabled
··· 1 + { 2 + imports = [ ../../../modules/de/cosmic.nix ]; 3 + }
+47
hosts/chernobog/modules/disk-config.nix
··· 1 + { 2 + disko.devices = { 3 + disk = { 4 + main = { 5 + type = "disk"; 6 + device = "/dev/nvme0n1"; 7 + content = { 8 + type = "gpt"; 9 + partitions = { 10 + ESP = { 11 + priority = 1; 12 + size = "500M"; 13 + type = "EF00"; 14 + content = { 15 + type = "filesystem"; 16 + format = "vfat"; 17 + mountpoint = "/boot"; 18 + mountOptions = [ "umask=0077" ]; 19 + }; 20 + }; 21 + root = { 22 + priority = 2; 23 + end = "-14G"; 24 + content = { 25 + type = "btrfs"; 26 + extraArgs = [ "-f" ]; 27 + mountpoint = "/"; 28 + mountOptions = [ 29 + "compress=zstd" 30 + "noatime" 31 + ]; 32 + }; 33 + }; 34 + plainSwap = { 35 + priority = 3; 36 + size = "100%"; 37 + content = { 38 + type = "swap"; 39 + discardPolicy = "both"; 40 + }; 41 + }; 42 + }; 43 + }; 44 + }; 45 + }; 46 + }; 47 + }
+5
hosts/chernobog/modules/fix-wake.nix
··· 1 + { 2 + services.udev.extraRules = '' 3 + ACTION=="add", KERNELS=="0000:00:01.1", ATTR{power/wakeup}="disabled" 4 + ''; 5 + }
+17
hosts/chernobog/modules/greetd.nix
··· 1 + { pkgs, ... }: 2 + { 3 + services.greetd = { 4 + enable = true; 5 + settings = { 6 + terminal.vt = 1; 7 + default_session = { 8 + command = "${pkgs.tuigreet}/bin/tuigreet --issue --time --cmd sway"; 9 + user = "greeter"; 10 + }; 11 + }; 12 + }; 13 + systemd.services = { 14 + "getty@tty1".enable = false; 15 + "autovt@tty1".enable = false; 16 + }; 17 + }
+1
hosts/chernobog/modules/keychron-v4.nix
··· 1 + ../../../modules/keyboards/keychron-v4/default.nix
+46
hosts/chernobog/modules/lact.nix/config.yaml
··· 1 + version: 5 2 + daemon: 3 + log_level: info 4 + admin_group: wheel 5 + disable_clocks_cleanup: false 6 + apply_settings_timer: 5 7 + gpus: 8 + 1002:7480-1DA2:E482-0000:07:00.0: 9 + fan_control_enabled: false 10 + pmfw_options: 11 + minimum_pwm: 30 12 + zero_rpm: true 13 + zero_rpm_threshold: 43 14 + power_cap: 198.0 15 + performance_level: auto 16 + max_core_clock: 3200 17 + max_memory_clock: 1250 18 + voltage_offset: -50 19 + profiles: 20 + oc: 21 + gpus: 22 + 1002:7480-1DA2:E482-0000:07:00.0: 23 + fan_control_enabled: false 24 + fan_control_settings: 25 + mode: static 26 + static_speed: 1.0 27 + temperature_key: edge 28 + interval_ms: 500 29 + curve: 30 + 40: 0.3 31 + 50: 0.35 32 + 60: 0.5 33 + 70: 0.75 34 + 80: 1.0 35 + pmfw_options: 36 + minimum_pwm: 15 37 + target_temperature: 88 38 + zero_rpm: false 39 + zero_rpm_threshold: 40 40 + power_cap: 198.0 41 + performance_level: auto 42 + max_core_clock: 3200 43 + max_memory_clock: 1250 44 + voltage_offset: -50 45 + current_profile: oc 46 + auto_switch_profiles: false
+4
hosts/chernobog/modules/lact.nix/default.nix
··· 1 + { 2 + services.lact.enable = true; 3 + environment.etc."lact/config.yaml".source = ./config.yaml; 4 + }
+5
hosts/chernobog/modules/network.nix
··· 1 + { 2 + imports = [ ../../../modules/network/dns ]; 3 + 4 + networking.useDHCP = true; 5 + }
+5
hosts/chernobog/modules/tailscale.nix
··· 1 + { config, ... }: 2 + { 3 + imports = [ ../../../modules/network/tailscale.nix ]; 4 + networking.firewall.checkReversePath = "loose"; 5 + }
+18
hosts/chernobog/modules/vr.nix
··· 1 + { pkgs, ... }: 2 + { 3 + services.monado = { 4 + enable = true; 5 + defaultRuntime = false; 6 + }; 7 + 8 + services.wivrn = { 9 + enable = true; 10 + openFirewall = true; 11 + defaultRuntime = true; 12 + autoStart = true; 13 + }; 14 + 15 + # programs.envision.enable = true; 16 + 17 + environment.systemPackages = [ pkgs.wlx-overlay-s ]; 18 + }
+9
hosts/chernobog/modules/zswap.nix
··· 1 + { 2 + boot.initrd.systemd.enable = true; 3 + boot.kernelParams = [ 4 + "zswap.enabled=1" # enables zswap 5 + "zswap.compressor=lz4" # compression algorithm 6 + "zswap.max_pool_percent=13" # maximum percentage of RAM that zswap is allowed to use 7 + "zswap.shrinker_enabled=1" # whether to shrink the pool proactively on high memory pressure 8 + ]; 9 + }
+1
hosts/default.nix
··· 28 28 # wsl = allPkgsSets.x86_64-linux; 29 29 dzwonek = allPkgsSets.x86_64-linux; 30 30 volsinii = allPkgsSets.x86_64-linux; 31 + chernobog = allPkgsSets.x86_64-linux; 31 32 }; 32 33 in 33 34 lib.mapAttrs mkSystem systems
+10 -52
modules/base/default.nix
··· 23 23 systemPackages = with pkgs; [ 24 24 binutils 25 25 coreutils 26 + dnsutils 27 + moreutils 28 + iputils 26 29 curl 27 30 direnv 28 - dnsutils 29 - dosfstools 30 31 fd 31 - bottom 32 - gptfdisk 33 - iputils 34 - jq 35 - manix 36 - moreutils 37 - nix-index 38 32 nmap 39 33 ripgrep 40 - skim 41 34 tealdeer 42 35 usbutils 43 36 util-linux 44 - whois 45 - bat 46 - fzf 47 - eza 48 - lm_sensors 49 - mkpasswd 50 37 bottom 51 - amber 52 38 unzip 53 39 unrar 54 - hydra-check 55 - du-dust 56 - mosh 57 40 git 58 - git-crypt 59 41 ]; 60 42 shellAliases = 61 43 let 62 44 ifSudo = string: mkIf config.security.sudo.enable string; 63 45 inherit (pkgs) 64 - git 65 - bat 66 - eza 67 46 du-dust 68 47 ; 69 48 in 70 49 { 71 - g = pkgBin git; 72 - git-optimize = "${pkgBin git} gc --aggressive --prune=now"; 73 - cat = "${pkgBin bat} -pp --theme=base16"; 74 - c = "cat"; 50 + g = pkgBin config.programs.git.package; 75 51 du = "${pkgBin du-dust}"; 76 52 df = "${coreBin "df"} -h"; 77 53 free = "${pkgs.procps}/bin/free -h"; 78 - ls = pkgBin eza; 79 - l = "${pkgBin eza} -lhg"; 80 - la = "${pkgBin eza} -lhg -a"; 81 - t = "${pkgBin eza} -lhg -T"; 82 - ta = "${pkgBin eza} -lhg -a -T"; 83 54 n = nixBin; 84 55 nb = "${nixBin} build"; 85 56 nf = "${nixBin} flake"; ··· 87 58 nfui = "${nixBin} flake update"; 88 59 nfs = "${nixBin} flake show"; 89 60 nsh = "${nixBin} shell"; 90 - nix-store-refs = "nix-store -qR"; 91 - nosrs = ifSudo "sudo nixos-rebuild --fast switch"; 92 - nosrb = ifSudo "sudo nixos-rebuild --fast boot"; 93 - nosrt = ifSudo "sudo nixos-rebuild --fast test"; 94 - ngc = ifSudo "sudo nix-collect-garbage"; 95 - ngcdo = ifSudo "sudo nix-collect-garbage --delete-old"; 96 61 top = "${pkgs.bottom}/bin/btm"; 97 62 myip = "${pkgs.dnsutils}/bin/dig +short myip.opendns.com @208.67.222.222 2>&1"; 98 - mn = 99 - let 100 - manix_preview = "manix '{}' | sed 's/type: /> type: /g' | bat -l Markdown --color=always --plain"; 101 - in 102 - ''manix "" | rg '^# ' | sed 's/^# \(.*\) (.*/\1/;s/ (.*//;s/^# //' | sk --preview="${manix_preview}" | xargs manix''; 103 63 # systemd 104 64 ctl = "systemctl"; 105 65 stl = ifSudo "s systemctl"; ··· 114 74 diff-closures /run/current-system "$systemConfig" 115 75 fi 116 76 ''; 77 + 117 78 users.mutableUsers = false; 118 - programs = { 119 - command-not-found.enable = true; 120 - git = { 121 - enable = true; 122 - config = { 123 - safe.directory = [ "/etc/nixos" ]; 124 - }; 125 - }; 79 + 80 + programs.mosh = { 81 + enable = true; 82 + openFirewall = false; 126 83 }; 84 + programs.git.enable = true; 127 85 }
+2 -1
modules/base/hm-system-defaults.nix
··· 2 2 config, 3 3 inputs, 4 4 tlib, 5 + terra, 5 6 ... 6 7 }: 7 8 { ··· 44 45 ) 45 46 ]; 46 47 home-manager.extraSpecialArgs = { 47 - inherit inputs tlib; 48 + inherit terra inputs tlib; 48 49 nixosConfig = config; 49 50 }; 50 51 }
+9
modules/de/cosmic.nix
··· 1 + { pkgs, ... }: 2 + { 3 + services.displayManager.cosmic-greeter.enable = true; 4 + services.desktopManager.cosmic.enable = true; 5 + environment.cosmic.excludePackages = with pkgs; [ 6 + cosmic-edit 7 + cosmic-term 8 + ]; 9 + }
+1 -1
modules/network/dns/cloudflare.nix
··· 2 2 { 3 3 networking.resolvconf.useLocalResolver = true; 4 4 networking.networkmanager.dns = lib.mkForce "none"; 5 - services.dnscrypt-proxy2 = { 5 + services.dnscrypt-proxy = { 6 6 enable = true; 7 7 settings = { 8 8 server_names = [
+2
modules/nushell/prompt.nu
··· 10 10 kirara: {start: "0xFF407D", end: "0xEE99C2"}, 11 11 root: {start: "0xC5172E", end: "0xBF3131"}, 12 12 dusk: {start: "0x640D5F", end: "0xD91656"}, 13 + dawn: {start: "0x640D5F", end: "0xD91656"}, 14 + mayer: {start: "0x640D5F", end: "0xD91656"}, 13 15 } 14 16 15 17 def create_left_prompt [] {
+19 -7
nvfetcher.toml
··· 1 1 # nvfetcher configuration for Nix flake inputs 2 2 3 - [lix-module] 4 - src.manual = "2.93.3-1" 5 - fetch.tarball = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-1.tar.gz" 6 - 7 - [nixos-wsl] 8 - src.git = "https://github.com/nix-community/NixOS-WSL" 9 - fetch.github = "nix-community/NixOS-WSL" 3 + [nixos-hardware] 4 + src.git = "https://github.com/NixOS/nixos-hardware" 5 + fetch.github = "NixOS/nixos-hardware" 10 6 11 7 [disko] 12 8 src.git = "https://github.com/nix-community/disko" ··· 40 36 src.git = "https://tangled.org/@ptr.pet/nsid-tracker" 41 37 fetch.git = "https://tangled.org/@ptr.pet/nsid-tracker" 42 38 39 + ## TANGLED ## 40 + 43 41 [tangled] 44 42 src.git = "https://tangled.org/@tangled.org/core" 45 43 fetch.git = "https://tangled.org/@tangled.org/core" ··· 51 49 [gomod2nix] 52 50 src.git = "https://github.com/nix-community/gomod2nix" 53 51 fetch.github = "nix-community/gomod2nix" 52 + 53 + ## TANGLED ## 54 + 55 + [moonlight] 56 + src.git = "https://github.com/moonlight-mod/moonlight" 57 + fetch.github = "moonlight-mod/moonlight" 58 + 59 + [zen-browser] 60 + src.git = "https://github.com/0xc000022070/zen-browser-flake" 61 + fetch.github = "0xc000022070/zen-browser-flake" 62 + 63 + [stylix] 64 + src.git = "https://github.com/nix-community/stylix" 65 + fetch.github = "nix-community/stylix"
+1
pkgs-set/pkgs/moonlight.nix
··· 1 + { callPackage, inputs, ... }: callPackage "${inputs.moonlight}/nix" { }
+1
pkgs-set/pkgs/zen-browser.nix
··· 1 + { pkgs, inputs, ... }: (import inputs.zen-browser {inherit pkgs;}).twilight
+144
users/mayer/default.nix
··· 1 + { 2 + pkgs, 3 + lib, 4 + tlib, 5 + config, 6 + ... 7 + }@globalAttrs: 8 + let 9 + l = lib // builtins; 10 + 11 + nixosConfig = globalAttrs.config; 12 + in 13 + { 14 + users.users.mayer = { 15 + isNormalUser = true; 16 + createHome = true; 17 + home = "/home/mayer"; 18 + extraGroups = l.flatten [ 19 + "wheel" 20 + "adbusers" 21 + "dialout" 22 + "video" 23 + ]; 24 + shell = pkgs.nushell; 25 + hashedPassword = "$6$spzqhAyJfhHy$iHgLBlhjGn1l8PnbjJdWTn1GPvcjMqYNKUzdCe/7IrX6sHNgETSr/Nfpdmq9FCXLhrAfwHOd/q/8SvfeIeNX4/"; 26 + }; 27 + 28 + environment.shells = with pkgs; [ 29 + bashInteractive 30 + nushell 31 + ]; 32 + programs = { 33 + steam.enable = true; 34 + gamescope.enable = true; 35 + gamemode.enable = true; 36 + appimage = { 37 + enable = true; 38 + binfmt = true; 39 + }; 40 + sway.enable = true; 41 + }; 42 + systemd = { 43 + targets.network-online.enable = false; 44 + services = { 45 + systemd-networkd-wait-online.enable = false; 46 + NetworkManager-wait-online.enable = false; 47 + }; 48 + }; 49 + 50 + home-manager.users.mayer = 51 + { 52 + config, 53 + pkgs, 54 + inputs, 55 + secrets, 56 + ... 57 + }: 58 + let 59 + personal = import ../../personal.nix; 60 + name = personal.name; 61 + email = personal.emails.primary; 62 + in 63 + { 64 + imports = 65 + let 66 + modulesToEnable = l.flatten [ 67 + [ 68 + "wayland" 69 + "foot" 70 + ] 71 + # cli stuff 72 + [ 73 + "zoxide" 74 + "direnv" 75 + "nushell" 76 + ] 77 + # dev stuff 78 + [ 79 + "helix" 80 + "git" 81 + "ssh" 82 + ] 83 + [ 84 + "zen" 85 + ] 86 + ]; 87 + in 88 + l.flatten [ 89 + (tlib.prefixStrings "${inputs.self}/users/modules/" modulesToEnable) 90 + ./stylix.nix 91 + ]; 92 + 93 + home = { 94 + homeDirectory = nixosConfig.users.users.mayer.home; 95 + packages = with pkgs; [ 96 + # Font stuff 97 + noto-fonts-cjk-sans 98 + font-awesome 99 + dejavu_fonts 100 + # Programs 101 + imv 102 + mpv 103 + ffmpeg 104 + mupdf 105 + xdg-utils 106 + transmission_4-gtk 107 + prismlauncher 108 + gearlever 109 + signal-desktop 110 + ]; 111 + }; 112 + 113 + fonts.fontconfig.enable = l.mkForce true; 114 + 115 + settings.iconTheme = { 116 + name = "Yaru-dark"; 117 + package = pkgs.yaru-theme; 118 + }; 119 + 120 + home.pointerCursor = { 121 + package = pkgs.bibata-cursors; 122 + name = "Bibata-Modern-Classic"; 123 + size = 24; 124 + gtk.enable = true; 125 + x11.enable = true; 126 + }; 127 + gtk.enable = true; 128 + gtk.theme.package = pkgs.yaru-theme; 129 + gtk.theme.name = "Yaru-dark"; 130 + 131 + programs.git.includes = [ 132 + { 133 + contents = { 134 + gpg.format = "ssh"; 135 + commit.gpgsign = true; 136 + user = { 137 + inherit name email; 138 + signingkey = builtins.readFile ../../secrets/yusdacra.key.pub; 139 + }; 140 + }; 141 + } 142 + ]; 143 + }; 144 + }
+63
users/mayer/stylix.nix
··· 1 + { 2 + inputs, 3 + config, 4 + pkgs, 5 + terra, 6 + lib, 7 + ... 8 + }: 9 + { 10 + imports = [(import inputs.stylix).homeModules.stylix]; 11 + 12 + stylix.image = ./wallpaper.png; 13 + stylix.polarity = "dark"; 14 + stylix.base16Scheme = 15 + let 16 + night = "#2b292d"; 17 + ash = "#383539"; 18 + umber = "#4d424b"; 19 + bark = "#6F5D63"; 20 + mist = "#D1D1E0"; 21 + sage = "#B1B695"; 22 + blush = "#fecdb2"; 23 + coral = "#ffa07a"; 24 + rose = "#F6B6C9"; 25 + ember = "#e06b75"; 26 + honey = "#F5D76E"; 27 + in 28 + { 29 + base00 = night; 30 + base01 = ash; 31 + base02 = umber; 32 + base03 = bark; 33 + base04 = blush; 34 + base05 = mist; 35 + base06 = mist; 36 + base07 = bark; 37 + base08 = ember; 38 + base09 = honey; 39 + base0A = rose; 40 + base0B = sage; 41 + base0C = bark; 42 + base0D = coral; 43 + base0E = blush; 44 + base0F = umber; 45 + }; 46 + 47 + stylix.fonts = { 48 + serif = { 49 + name = "Comic Relief"; 50 + package = pkgs.comic-relief; 51 + }; 52 + sansSerif = config.stylix.fonts.serif; 53 + monospace = { 54 + name = "Comic Mono"; 55 + package = terra.comic-mono; 56 + }; 57 + }; 58 + 59 + stylix.fonts.sizes = { 60 + popups = 13; 61 + terminal = 13; 62 + }; 63 + }
+10 -32
users/modules/discord/default.nix
··· 1 1 { 2 - config, 3 - inputs, 4 2 pkgs, 5 - lib, 3 + terra, 4 + inputs, 6 5 ... 7 6 }: 8 7 { 9 - home.persistence."${config.system.persistDir}${config.home.homeDirectory}".directories = [ 10 - ".config/ArmCord" 8 + # imports = ["${inputs.moonlight}/nix/home-manager.nix"]; 9 + 10 + home.packages = [ 11 + (pkgs.discord.override { 12 + withMoonlight = true; 13 + inherit (terra) moonlight; 14 + withOpenASAR = true; 15 + }) 11 16 ]; 12 - home.packages = 13 - let 14 - flags = [ 15 - # "--flag-switches-begin" 16 - # "--enable-features=UseOzonePlatform,WebRTCPipeWireCapturer" 17 - # "--flag-switches-end" 18 - # "--ozone-platform=wayland" 19 - # "--enable-webrtc-pipewire-capturer" 20 - # "--disable-gpu-memory-buffer-video-frames" 21 - # "--enable-accelerated-mjpeg-decode" 22 - # "--enable-accelerated-video" 23 - # "--enable-gpu-rasterization" 24 - # "--enable-native-gpu-memory-buffers" 25 - # "--enable-zero-copy" 26 - # "--ignore-gpu-blocklist" 27 - ]; 28 - pkg = 29 - (pkgs.armcord.override { 30 - nss = pkgs.nss_latest; 31 - }).overrideAttrs 32 - (old: { 33 - # preInstall = '' 34 - # gappsWrapperArgs+=("--add-flags" "${lib.concatStringsSep " " flags}") 35 - # ''; 36 - }); 37 - in 38 - [ pkg ]; 39 17 }
+262
users/modules/discord/moonlight.json
··· 1 + { 2 + "extensions": { 3 + "moonbase": true, 4 + "disableSentry": true, 5 + "noTrack": true, 6 + "noHideToken": true, 7 + "alwaysShowForwardTime": { 8 + "enabled": true 9 + }, 10 + "betterCodeblocks": { 11 + "enabled": true 12 + }, 13 + "ownerCrown": { 14 + "enabled": true 15 + }, 16 + "betterEmbedsYT": { 17 + "enabled": true 18 + }, 19 + "callTimer": { 20 + "enabled": true 21 + }, 22 + "clearUrls": { 23 + "enabled": true 24 + }, 25 + "cloneExpressions": { 26 + "enabled": true 27 + }, 28 + "copyAvatarUrl": { 29 + "enabled": true 30 + }, 31 + "copyWebp": { 32 + "enabled": true 33 + }, 34 + "dmFavorites": { 35 + "enabled": true 36 + }, 37 + "domOptimizer": { 38 + "enabled": true 39 + }, 40 + "experiments": { 41 + "enabled": true, 42 + "config": { 43 + "devtools": true 44 + } 45 + }, 46 + "inAppNotifications": { 47 + "enabled": true 48 + }, 49 + "nativeFixes": { 50 + "enabled": true, 51 + "config": { 52 + "vulkan": false 53 + } 54 + }, 55 + "noJoinMessageWave": { 56 + "enabled": true 57 + }, 58 + "noReplyPing": { 59 + "enabled": true 60 + }, 61 + "noSmoothScrolling": { 62 + "enabled": true 63 + }, 64 + "oneko": { 65 + "enabled": true 66 + }, 67 + "osuTyping": { 68 + "enabled": false 69 + }, 70 + "platformIcons": { 71 + "enabled": false 72 + }, 73 + "pronouns": { 74 + "enabled": true 75 + }, 76 + "quietLoggers": { 77 + "enabled": true 78 + }, 79 + "remind-me": { 80 + "enabled": true 81 + }, 82 + "reverseImageSearch": { 83 + "enabled": true 84 + }, 85 + "sendTimestamps": { 86 + "enabled": true 87 + }, 88 + "showReplySelf": { 89 + "enabled": true 90 + }, 91 + "showVoiceMemberCount": { 92 + "enabled": true 93 + }, 94 + "translateText": { 95 + "enabled": true 96 + }, 97 + "unindent": { 98 + "enabled": true 99 + }, 100 + "moonlight-css": { 101 + "enabled": true, 102 + "config": { 103 + "paths": [ 104 + "https://gist.githubusercontent.com/90-008/67ee4f4090a6892b760bb242dee7d34d/raw/5ae2efc2ab08e42f1966d2f5b0e0a4163b1e7433/dickcord.css", 105 + "https://gist.githubusercontent.com/90-008/d47b927184ae485456956840692edca0/raw/90d40509c67fd4068d133662b7320842fd1e4772/gistfile1.txt", 106 + "https://gist.githubusercontent.com/90-008/b031ebeb852bda832c1ba6258b4bdfa1/raw/ae1a3077a7edc8db2511b868eb8ac44f66f98905/hide.css", 107 + "https://gist.githubusercontent.com/90-008/b5e835890e263bf1eec4a9d83b4a8dbe/raw/3780220391742455c2e9fd0230af45e3c6091829/gistfile1.css", 108 + "https://ukriu.github.io/cssCord/Other/noDistractions.css", 109 + "https://raw.githubusercontent.com/Bonkeyzz/Discord-Remove-useless-chat-buttons/main/RemoveChatButtons.theme.css" 110 + ], 111 + "themeAttributes": true 112 + } 113 + }, 114 + "selectivelyReduceMotion": { 115 + "enabled": true, 116 + "config": { 117 + "avatarDecorations": false, 118 + "profileEffects": false, 119 + "scrolling": true 120 + } 121 + }, 122 + "mediaTweaks": { 123 + "enabled": true, 124 + "config": { 125 + "noThumbnailSize": false, 126 + "noWebp": false, 127 + "noGifAutosend": false, 128 + "imageUrls": false 129 + } 130 + }, 131 + "allActivities": { 132 + "enabled": true 133 + }, 134 + "betterTags": { 135 + "enabled": true 136 + }, 137 + "noHelp": { 138 + "enabled": true 139 + }, 140 + "noReplyChainNag": { 141 + "enabled": true 142 + }, 143 + "onePingPerDM": { 144 + "enabled": true, 145 + "config": { 146 + "allowMentionsBypass": true 147 + } 148 + }, 149 + "silenceTyping": { 150 + "enabled": true 151 + }, 152 + "betterUploadButton": { 153 + "enabled": true 154 + }, 155 + "customSearchEngine": { 156 + "enabled": true 157 + }, 158 + "dmDates": { 159 + "enabled": true 160 + }, 161 + "doubleClickActions": { 162 + "enabled": false 163 + }, 164 + "imgTitle": { 165 + "enabled": true, 166 + "config": { 167 + "showFullUrl": true 168 + } 169 + }, 170 + "imageViewer": { 171 + "enabled": true 172 + }, 173 + "inviteToNowhere": { 174 + "enabled": true 175 + }, 176 + "markdown": { 177 + "enabled": true 178 + }, 179 + "mentionAvatars": { 180 + "enabled": true 181 + }, 182 + "noInlineLinks": { 183 + "enabled": true 184 + }, 185 + "noMaskedLinkPaste": { 186 + "enabled": true 187 + }, 188 + "openExternally": { 189 + "enabled": true 190 + }, 191 + "resolver": { 192 + "enabled": true 193 + }, 194 + "alwaysFocus": false, 195 + "callIdling": true, 196 + "colorConsistency": true, 197 + "freeScreenShare": true, 198 + "highlight": { 199 + "enabled": false, 200 + "config": { 201 + "ignoreFocusMode": true, 202 + "keywords": [] 203 + } 204 + }, 205 + "spacepack": { 206 + "config": { 207 + "addToGlobalScope": true 208 + } 209 + }, 210 + "muteGuildOnJoin": true, 211 + "antiDelete": { 212 + "enabled": true, 213 + "config": { 214 + "ignoreBots": false, 215 + "ignoreSelf": true, 216 + "ignorePluralKit": false, 217 + "ignoredUsers": [ 218 + "647368715742216193", 219 + "798918994987188276" 220 + ] 221 + } 222 + }, 223 + "nameColor": { 224 + "enabled": true, 225 + "config": { 226 + "colorize": "All" 227 + } 228 + }, 229 + "freeMoji": true, 230 + "freeStickers": true, 231 + "meow": { 232 + "enabled": true, 233 + "config": { 234 + "woof": true 235 + } 236 + }, 237 + "doubleClickToJoin": true, 238 + "linkRedirect": false, 239 + "manuallyJoinVoice": true, 240 + "popoutDates": true, 241 + "removeTopBar": true, 242 + "streamQualityWorkaround": true, 243 + "whosWatching": false, 244 + "cleanChatBar": { 245 + "enabled": true, 246 + "config": { 247 + "removedButtons": [ 248 + "gift", 249 + "activity", 250 + "sticker" 251 + ] 252 + } 253 + }, 254 + "favouriteGifSearch": true, 255 + "noOnboardingDelay": true 256 + }, 257 + "repositories": [ 258 + "https://moonlight-mod.github.io/extensions-dist/repo.json", 259 + "https://cynosphere.github.io/schirra/repo.json", 260 + "https://lare354.github.io/moonlight-plugins/repo.json" 261 + ] 262 + }
+14 -1
users/modules/foot/default.nix
··· 10 10 enable = true; 11 11 package = pkgs.foot; 12 12 server.enable = false; 13 - settings.main.dpi-aware = lib.mkForce "yes"; 13 + settings = { 14 + main = { 15 + login-shell = "yes"; 16 + dpi-aware = lib.mkForce "yes"; 17 + font = "Comic Mono:size=12"; 18 + }; 19 + csd = { 20 + preferred = "client"; 21 + size = 0; 22 + }; 23 + mouse.hide-when-typing = "yes"; 24 + scrollback.lines = 100000; 25 + bell.system = "no"; 26 + }; 14 27 }; 15 28 }
+44 -41
users/modules/git/default.nix
··· 2 2 { 3 3 programs.git = { 4 4 enable = true; 5 - extraConfig = { 6 - pull.rebase = true; 7 - safe.directory = "/etc/nixos"; 8 - diff.external = "${pkgs.difftastic}/bin/difft"; 9 - }; 10 - lfs.enable = true; 11 - aliases = { 12 - a = "add -p"; 13 - co = "checkout"; 14 - cob = "checkout -b"; 15 - f = "fetch -p"; 16 - c = "commit"; 17 - ps = "push"; 18 - pl = "pull"; 19 - rb = "rebase"; 20 - ba = "branch -a"; 21 - bd = "branch -d"; 22 - bD = "branch -D"; 23 - d = "diff"; 24 - dc = "diff --cached"; 25 - ds = "diff --staged"; 26 - rs = "restore"; 27 - rss = "restore --staged"; 28 - s = "status -sb"; 29 - ss = "stash"; 30 - ssp = "stash pop"; 31 - ssl = "stash list"; 32 - ssd = "stash drop"; 33 - # reset 34 - rsoft = "reset --soft"; 35 - rhard = "reset --hard"; 36 - rs1ft = "soft HEAD~1"; 37 - rh1rd = "hard HEAD~1"; 38 - # logging 39 - l = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"; 40 - plog = "log --graph --pretty='format:%C(red)%d%C(reset) %C(yellow)%h%C(reset) %ar %C(green)%aN%C(reset) %s'"; 41 - tlog = "log --stat --since='1 Day Ago' --graph --pretty=oneline --abbrev-commit --date=relative"; 42 - rank = "shortlog -sn --no-merges"; 43 - # delete merged branches 44 - bdm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d"; 45 - }; 5 + includes = [ 6 + { 7 + contents = { 8 + 9 + pull.rebase = true; 10 + diff.external = "${pkgs.difftastic}/bin/difft"; 11 + alias = { 12 + a = "add -p"; 13 + co = "checkout"; 14 + cob = "checkout -b"; 15 + f = "fetch -p"; 16 + c = "commit"; 17 + ps = "push"; 18 + pl = "pull"; 19 + rb = "rebase"; 20 + ba = "branch -a"; 21 + bd = "branch -d"; 22 + bD = "branch -D"; 23 + d = "diff"; 24 + dc = "diff --cached"; 25 + ds = "diff --staged"; 26 + rs = "restore"; 27 + rss = "restore --staged"; 28 + s = "status -sb"; 29 + ss = "stash"; 30 + ssp = "stash pop"; 31 + ssl = "stash list"; 32 + ssd = "stash drop"; 33 + # reset 34 + rsoft = "reset --soft"; 35 + rhard = "reset --hard"; 36 + rs1ft = "soft HEAD~1"; 37 + rh1rd = "hard HEAD~1"; 38 + # logging 39 + l = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"; 40 + plog = "log --graph --pretty='format:%C(red)%d%C(reset) %C(yellow)%h%C(reset) %ar %C(green)%aN%C(reset) %s'"; 41 + tlog = "log --stat --since='1 Day Ago' --graph --pretty=oneline --abbrev-commit --date=relative"; 42 + rank = "shortlog -sn --no-merges"; 43 + # delete merged branches 44 + bdm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d"; 45 + }; 46 + }; 47 + } 48 + ]; 46 49 }; 47 50 }
+2 -63
users/modules/nushell/default.nix
··· 1 1 { pkgs, lib, ... }: 2 2 { 3 + home.shell.enableNushellIntegration = true; 4 + 3 5 programs.carapace.enable = true; 4 - programs.carapace.enableNushellIntegration = true; 5 6 programs.nushell = { 6 7 enable = true; 7 - shellAliases = { 8 - myip = lib.mkForce "echo"; 9 - }; 10 8 extraEnv = '' 11 9 source-env ${./prompt.nu} 12 10 ''; 13 11 extraConfig = '' 14 - let carapace_completer = {|spans: list<string>| 15 - carapace $spans.0 nushell ...$spans 16 - | from json 17 - | if ($in | default [] | where value == $"($spans | last)ERR" | is-empty) { $in } else { null } 18 - } 19 - $env.CARAPACE_BRIDGES = 'zsh,fish,bash,inshellisense' 20 - 21 - let fish_completer = {|spans| 22 - ${lib.getExe pkgs.fish} --command $'complete "--do-complete=($spans | str join " ")"' 23 - | $"value(char tab)description(char newline)" + $in 24 - | from tsv --flexible --no-infer 25 - } 26 - 27 - let zoxide_completer = {|spans| 28 - $spans | skip 1 | zoxide query -l ...$in | lines | where {|x| $x != $env.PWD} 29 - } 30 - 31 - let multiple_completers = {|spans| 32 - ## alias fixer start https://www.nushell.sh/cookbook/external_completers.html#alias-completions 33 - let expanded_alias = scope aliases 34 - | where name == $spans.0 35 - | get -i 0.expansion 36 - 37 - let spans = if $expanded_alias != null { 38 - $spans 39 - | skip 1 40 - | prepend ($expanded_alias | split row ' ' | take 1) 41 - } else { 42 - $spans 43 - } 44 - ## alias fixer end 45 - 46 - match $spans.0 { 47 - __zoxide_z | __zoxide_zi => $zoxide_completer 48 - _ => $carapace_completer 49 - } | do $in $spans 50 - } 51 - 52 - $env.config = { 53 - show_banner: false, 54 - completions: { 55 - case_sensitive: false # case-sensitive completions 56 - quick: true # set to false to prevent auto-selecting completions 57 - partial: true # set to false to prevent partial filling of the prompt 58 - algorithm: "fuzzy" # prefix or fuzzy 59 - external: { 60 - # set to false to prevent nushell looking into $env.PATH to find more suggestions 61 - enable: true 62 - # set to lower can improve completion performance at the cost of omitting some options 63 - max_results: 100 64 - completer: $multiple_completers 65 - } 66 - } 67 - } 68 - $env.PATH = ($env.PATH | 69 - split row (char esep) | 70 - append /usr/bin/env 71 - ) 72 - 73 12 source ${./aliases.nu} 74 13 ''; 75 14 };
+13 -16
users/modules/sway/default.nix
··· 15 15 ../rofi 16 16 # ./swayidle.nix 17 17 ]; 18 + 18 19 wayland.windowManager = { 19 20 sway = 20 21 let ··· 25 26 in 26 27 { 27 28 enable = true; 28 - extraSessionCommands = '' 29 - export QT_QPA_PLATFORM=wayland 30 - ''; 31 29 wrapperFeatures.gtk = true; 32 - extraConfig = '' 33 - exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway 34 - exec xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE 2 35 - ''; 36 30 config = { 37 31 bars = [ ]; 38 32 gaps.smartBorders = "on"; 39 - menu = mkRofiCmd [ 40 - "-show" 41 - "drun" 42 - ]; 33 + menu = mkRofiCmd ["-show" "drun"]; 43 34 modifier = "Mod4"; 44 35 terminal = config.settings.terminal.binary; 36 + startup = [ 37 + {command = "mkdir -p ${config.home.homeDirectory}/shots";} 38 + ]; 45 39 keybindings = 46 40 let 47 41 mod = config.wayland.windowManager.sway.config.modifier; ··· 64 58 "${mod}+q" = "kill"; 65 59 "${mod}+Shift+e" = "exit"; 66 60 "${mod}+Shift+r" = "reload"; 67 - # Screenshot and copy it to clipboard 61 + # screenshot and copy it to clipboard 68 62 "Mod1+s" = '' 69 63 exec export SFILE="${shotFile}.png" && mkdir -p ${shotDir} && ${grim} "$SFILE" && ${cat} "$SFILE" | ${wl-copy} -t image/png 70 64 ''; 71 - # Save selected area as a picture and copy it to clipboard 65 + # save selected area as a picture and copy it to clipboard 72 66 "Mod1+Shift+s" = '' 73 67 exec export SFILE="${shotFile}.png" && mkdir -p ${shotDir} && ${grim} -g "$(${slurp})" "$SFILE" && ${cat} "$SFILE" | ${wl-copy} -t image/png 74 68 ''; 75 - # Record screen 69 + # record screen 76 70 "Mod1+r" = ''exec mkdir -p ${shotDir} && ${wf-recorder} -x yuv420p -f "${shotFile}.mp4"''; 77 - # Record an area 71 + # record an area 78 72 "Mod1+Shift+r" = 79 73 ''exec mkdir -p ${shotDir} && ${wf-recorder} -x yuv420p -g "$(${slurp})" -f "${shotFile}.mp4"''; 80 - # Stop recording 74 + # stop recording 81 75 "Mod1+c" = "exec pkill -INT wf-recorder"; 82 76 "XF86AudioRaiseVolume" = "exec ${pactl} set-sink-volume 0 +5%"; 83 77 "XF86AudioLowerVolume" = "exec ${pactl} set-sink-volume 0 -5%"; ··· 114 108 "eDP-1" = { 115 109 scale = "2"; 116 110 adaptive_sync = "on"; 111 + }; 112 + "DP-1" = { 113 + mode = "1920x1080@165Hz"; 117 114 }; 118 115 "HDMI-A-1" = { 119 116 mode = "1920x1080@74.973Hz";
+3
users/modules/zen/default.nix
··· 1 + {terra, ...}: { 2 + home.packages = [terra.zen-browser]; 3 + }
+1 -12
users/modules/zoxide/default.nix
··· 1 1 { 2 - pkgs, 3 - config, 4 - lib, 5 - ... 6 - }: 7 - { 8 - home.packages = [ pkgs.zoxide ]; 9 - home.persistence."${config.system.persistDir}${config.home.homeDirectory}".directories = 10 - lib.singleton ".local/share/zoxide"; 11 - programs.zsh.initExtra = '' 12 - eval "$(zoxide init zsh)" 13 - ''; 2 + programs.zoxide.enable = true; 14 3 }