My NixOS config, I don't know what I am doing, don't use this
0
fork

Configure Feed

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

Initial commit

+776
+1
.gitattributes
··· 1 + * text=auto eol=lf
+21
LICENSE
··· 1 + MIT License 2 + 3 + Copyright (c) 2026 Luna Mira Lage (Desoroxxx) 4 + 5 + Permission is hereby granted, free of charge, to any person obtaining a copy 6 + of this software and associated documentation files (the "Software"), to deal 7 + in the Software without restriction, including without limitation the rights 8 + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 + copies of the Software, and to permit persons to whom the Software is 10 + furnished to do so, subject to the following conditions: 11 + 12 + The above copyright notice and this permission notice shall be included in all 13 + copies or substantial portions of the Software. 14 + 15 + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 + SOFTWARE.
+16
README.md
··· 1 + ```bunny 2 + ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣤⣤⡄⢠⣤⣤⡄⠀⠀⠀⠀⠀⠀⠀⠀ 3 + ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡟⢦⡀⠛⣿⠁⠀⢹⣇⠀⠀⠀⠀⠀⠀⠀ 4 + ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢻⡆⠓⡆⠛⣶⠀⠀⣿⠁⠀⠀⠀⠀⠀⠀ 5 + ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢹⡆⠓⡄⢹⡆⠀⠉⣷⠀⠀⠀⠀⠀⠀ 6 + ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⡇⢹⠈⢹⡇⠀⡿⣤⠀⠀⠀⠀⠀ 7 + ⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⡀⠈⣿⣀⣹⠀⠙⠛⠃⠘⠛⢣⣄⠀⠀ 8 + ⠀⠀⠀⠀⣰⠶⠞⠛⠛⠛⠛⠳⠶⣆⡿⠀⠀⠀⠀⢀⣀⣤⠀⠙⣷⠀ 9 + ⠀⠀⣤⠾⠉⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠸⠿⠿⠀⠀⣉⣷ 10 + ⠀⢸⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⣿ 11 + ⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣤⣤⡟⠛⠀ 12 + ⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀ 13 + ⠸⢧⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀ 14 + ⠀⠺⣧⡀⢠⣀⠀⠀⣀⣟⠛⠛⣧⣄⡀⠀⠀⣸⡇⠀⣿⠉⠀⠀⠀⠀ 15 + ⠀⠀⠀⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠀⠀⠀⠀⠀⠀ 16 + ```
+311
flake.lock
··· 1 + { 2 + "nodes": { 3 + "cachyos-kernel": { 4 + "flake": false, 5 + "locked": { 6 + "lastModified": 1775145950, 7 + "narHash": "sha256-AfVja9nvYHm0BHbuTvn+K8rKfLmPl5QjoiNecp9HOJU=", 8 + "owner": "CachyOS", 9 + "repo": "linux-cachyos", 10 + "rev": "b91624f68ceaf5394ef1571f60290dca6ba22b45", 11 + "type": "github" 12 + }, 13 + "original": { 14 + "owner": "CachyOS", 15 + "repo": "linux-cachyos", 16 + "type": "github" 17 + } 18 + }, 19 + "cachyos-kernel-patches": { 20 + "flake": false, 21 + "locked": { 22 + "lastModified": 1775157685, 23 + "narHash": "sha256-g8HgH7gADoEnrBN30BK3pz7+M2pT/p3xtfRFEuEov5w=", 24 + "owner": "CachyOS", 25 + "repo": "kernel-patches", 26 + "rev": "c1ba300617a12d257b5721572b9bbe28efae182f", 27 + "type": "github" 28 + }, 29 + "original": { 30 + "owner": "CachyOS", 31 + "repo": "kernel-patches", 32 + "type": "github" 33 + } 34 + }, 35 + "flake-compat": { 36 + "flake": false, 37 + "locked": { 38 + "lastModified": 1767039857, 39 + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", 40 + "owner": "NixOS", 41 + "repo": "flake-compat", 42 + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", 43 + "type": "github" 44 + }, 45 + "original": { 46 + "owner": "NixOS", 47 + "repo": "flake-compat", 48 + "type": "github" 49 + } 50 + }, 51 + "flake-parts": { 52 + "inputs": { 53 + "nixpkgs-lib": "nixpkgs-lib" 54 + }, 55 + "locked": { 56 + "lastModified": 1775087534, 57 + "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", 58 + "owner": "hercules-ci", 59 + "repo": "flake-parts", 60 + "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", 61 + "type": "github" 62 + }, 63 + "original": { 64 + "owner": "hercules-ci", 65 + "repo": "flake-parts", 66 + "type": "github" 67 + } 68 + }, 69 + "flake-parts_2": { 70 + "inputs": { 71 + "nixpkgs-lib": "nixpkgs-lib_2" 72 + }, 73 + "locked": { 74 + "lastModified": 1772408722, 75 + "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", 76 + "owner": "hercules-ci", 77 + "repo": "flake-parts", 78 + "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", 79 + "type": "github" 80 + }, 81 + "original": { 82 + "owner": "hercules-ci", 83 + "repo": "flake-parts", 84 + "type": "github" 85 + } 86 + }, 87 + "home-manager": { 88 + "inputs": { 89 + "nixpkgs": [ 90 + "nixpkgs" 91 + ] 92 + }, 93 + "locked": { 94 + "lastModified": 1775781825, 95 + "narHash": "sha256-L5yKTpR+alrZU2XYYvIxCeCP4LBHU5jhwSj7H1VAavg=", 96 + "owner": "nix-community", 97 + "repo": "home-manager", 98 + "rev": "e35c39fca04fee829cecdf839a50eb9b54d8a701", 99 + "type": "github" 100 + }, 101 + "original": { 102 + "owner": "nix-community", 103 + "repo": "home-manager", 104 + "type": "github" 105 + } 106 + }, 107 + "nix-cachyos-kernel": { 108 + "inputs": { 109 + "cachyos-kernel": "cachyos-kernel", 110 + "cachyos-kernel-patches": "cachyos-kernel-patches", 111 + "flake-compat": "flake-compat", 112 + "flake-parts": "flake-parts", 113 + "nixpkgs": "nixpkgs" 114 + }, 115 + "locked": { 116 + "lastModified": 1775239578, 117 + "narHash": "sha256-MKJmDHlaxwBcnfCUEA89AwKOOONjOjbjHNNWdSdg5RA=", 118 + "owner": "xddxdd", 119 + "repo": "nix-cachyos-kernel", 120 + "rev": "beaf7a533ae106c2681de2624da94707f9857f1f", 121 + "type": "github" 122 + }, 123 + "original": { 124 + "owner": "xddxdd", 125 + "ref": "release", 126 + "repo": "nix-cachyos-kernel", 127 + "type": "github" 128 + } 129 + }, 130 + "nixos-hardware": { 131 + "locked": { 132 + "lastModified": 1775323036, 133 + "narHash": "sha256-jn9Wcydcbomo73ODOKKeuYTueoaxyFsQztT+UnFmCLw=", 134 + "owner": "KeyZox71", 135 + "repo": "nixos-hardware", 136 + "rev": "6f2836e972aa3bf7844a1691a9c5efdbd4d01764", 137 + "type": "github" 138 + }, 139 + "original": { 140 + "owner": "KeyZox71", 141 + "ref": "thinkpad-t480s-update", 142 + "repo": "nixos-hardware", 143 + "type": "github" 144 + } 145 + }, 146 + "nixpkgs": { 147 + "locked": { 148 + "lastModified": 1775231746, 149 + "narHash": "sha256-EFaDQ0rnuSjKfC/DUKHS4toV4rEBuWhSgyX2Yy0kp00=", 150 + "owner": "NixOS", 151 + "repo": "nixpkgs", 152 + "rev": "0eac666efaa8a9afea2821f9efc7921b4ef39b4e", 153 + "type": "github" 154 + }, 155 + "original": { 156 + "owner": "NixOS", 157 + "ref": "nixos-unstable-small", 158 + "repo": "nixpkgs", 159 + "type": "github" 160 + } 161 + }, 162 + "nixpkgs-lib": { 163 + "locked": { 164 + "lastModified": 1774748309, 165 + "narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=", 166 + "owner": "nix-community", 167 + "repo": "nixpkgs.lib", 168 + "rev": "333c4e0545a6da976206c74db8773a1645b5870a", 169 + "type": "github" 170 + }, 171 + "original": { 172 + "owner": "nix-community", 173 + "repo": "nixpkgs.lib", 174 + "type": "github" 175 + } 176 + }, 177 + "nixpkgs-lib_2": { 178 + "locked": { 179 + "lastModified": 1772328832, 180 + "narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=", 181 + "owner": "nix-community", 182 + "repo": "nixpkgs.lib", 183 + "rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742", 184 + "type": "github" 185 + }, 186 + "original": { 187 + "owner": "nix-community", 188 + "repo": "nixpkgs.lib", 189 + "type": "github" 190 + } 191 + }, 192 + "nixpkgs_2": { 193 + "locked": { 194 + "lastModified": 1775710090, 195 + "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", 196 + "owner": "NixOS", 197 + "repo": "nixpkgs", 198 + "rev": "4c1018dae018162ec878d42fec712642d214fdfa", 199 + "type": "github" 200 + }, 201 + "original": { 202 + "owner": "NixOS", 203 + "ref": "nixos-unstable", 204 + "repo": "nixpkgs", 205 + "type": "github" 206 + } 207 + }, 208 + "nixpkgs_3": { 209 + "locked": { 210 + "lastModified": 1774386573, 211 + "narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=", 212 + "owner": "NixOS", 213 + "repo": "nixpkgs", 214 + "rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9", 215 + "type": "github" 216 + }, 217 + "original": { 218 + "owner": "NixOS", 219 + "ref": "nixos-unstable", 220 + "repo": "nixpkgs", 221 + "type": "github" 222 + } 223 + }, 224 + "nixpkgs_4": { 225 + "locked": { 226 + "lastModified": 1768875095, 227 + "narHash": "sha256-dYP3DjiL7oIiiq3H65tGIXXIT1Waiadmv93JS0sS+8A=", 228 + "owner": "NixOS", 229 + "repo": "nixpkgs", 230 + "rev": "ed142ab1b3a092c4d149245d0c4126a5d7ea00b0", 231 + "type": "github" 232 + }, 233 + "original": { 234 + "owner": "NixOS", 235 + "ref": "nixpkgs-unstable", 236 + "repo": "nixpkgs", 237 + "type": "github" 238 + } 239 + }, 240 + "orion-browser": { 241 + "inputs": { 242 + "flake-parts": "flake-parts_2", 243 + "nixpkgs": "nixpkgs_3" 244 + }, 245 + "locked": { 246 + "lastModified": 1775353019, 247 + "narHash": "sha256-5o70/scM9BJ0w0GWrRizwClo9hfTcMsMufvKfHG4T8s=", 248 + "owner": "dokokitsune", 249 + "repo": "orion-browser-flake", 250 + "rev": "1970006ae4172d359180514a3f24709d78f1d02d", 251 + "type": "github" 252 + }, 253 + "original": { 254 + "owner": "dokokitsune", 255 + "repo": "orion-browser-flake", 256 + "type": "github" 257 + } 258 + }, 259 + "quickshell": { 260 + "inputs": { 261 + "nixpkgs": [ 262 + "nixpkgs" 263 + ] 264 + }, 265 + "locked": { 266 + "lastModified": 1775720097, 267 + "narHash": "sha256-Rs0yZmUTritFKNTiKX3ZcyfUteHFBDbYShakNd5FEBk=", 268 + "ref": "refs/heads/master", 269 + "rev": "d4c92973b53d9fa34cc110d3b974eb6bde5b3027", 270 + "revCount": 800, 271 + "type": "git", 272 + "url": "https://git.outfoxxed.me/quickshell/quickshell" 273 + }, 274 + "original": { 275 + "type": "git", 276 + "url": "https://git.outfoxxed.me/quickshell/quickshell" 277 + } 278 + }, 279 + "root": { 280 + "inputs": { 281 + "home-manager": "home-manager", 282 + "nix-cachyos-kernel": "nix-cachyos-kernel", 283 + "nixos-hardware": "nixos-hardware", 284 + "nixpkgs": "nixpkgs_2", 285 + "orion-browser": "orion-browser", 286 + "quickshell": "quickshell", 287 + "tidaLuna": "tidaLuna" 288 + } 289 + }, 290 + "tidaLuna": { 291 + "inputs": { 292 + "nixpkgs": "nixpkgs_4" 293 + }, 294 + "locked": { 295 + "lastModified": 1775724179, 296 + "narHash": "sha256-KDeM1qe7Qgta+SG4JDtVpZwe3jnzmMJuausNpL5Kdxw=", 297 + "owner": "Inrixia", 298 + "repo": "TidaLuna", 299 + "rev": "2b1a5a8ee3f4a19300ffdbcfba1d9c506b65682f", 300 + "type": "github" 301 + }, 302 + "original": { 303 + "owner": "Inrixia", 304 + "repo": "TidaLuna", 305 + "type": "github" 306 + } 307 + } 308 + }, 309 + "root": "root", 310 + "version": 7 311 + }
+46
flake.nix
··· 1 + { 2 + inputs = { 3 + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; 4 + 5 + nixos-hardware.url = "github:KeyZox71/nixos-hardware/thinkpad-t480s-update"; 6 + 7 + nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release"; 8 + 9 + tidaLuna.url = "github:Inrixia/TidaLuna"; 10 + 11 + orion-browser.url = "github:dokokitsune/orion-browser-flake"; 12 + 13 + home-manager = { 14 + url = "github:nix-community/home-manager"; 15 + inputs.nixpkgs.follows = "nixpkgs"; 16 + }; 17 + }; 18 + 19 + outputs = { self, nixpkgs, nixos-hardware, home-manager, ... }@inputs: 20 + let 21 + username = "desoroxxx"; 22 + 23 + mkHost = hostname: nixpkgs.lib.nixosSystem { 24 + system = "x86_64-linux"; 25 + specialArgs = { inherit inputs username hostname; }; 26 + modules = [ 27 + ./modules/common.nix 28 + ./hosts/${hostname} 29 + home-manager.nixosModules.home-manager 30 + { 31 + home-manager = { 32 + useGlobalPkgs = true; 33 + useUserPackages = true; 34 + extraSpecialArgs = { inherit username hostname; }; 35 + users.${username} = import ./home; 36 + }; 37 + } 38 + ]; 39 + }; 40 + in { 41 + nixosConfigurations = { 42 + Natsuki = mkHost "Natsuki"; 43 + # Monika = mkHost "Monika"; 44 + }; 45 + }; 46 + }
+12
home/default.nix
··· 1 + { username, ... }: 2 + { 3 + imports = [ 4 + ./sway.nix 5 + ]; 6 + 7 + home.username = username; 8 + home.homeDirectory = "/home/${username}"; 9 + home.stateVersion = "25.11"; 10 + 11 + programs.home-manager.enable = true; 12 + }
+50
home/sway.nix
··· 1 + { lib, ... }: 2 + { 3 + services.swayosd.enable = true; 4 + 5 + wayland.windowManager.sway = { 6 + enable = true; 7 + wrapperFeatures.gtk = true; 8 + 9 + config = { 10 + modifier = "Mod4"; 11 + terminal = "ghostty"; 12 + 13 + # ── Input ────────────────────────────────────────────────────────────── 14 + input = { 15 + "*".xkb_layout = "gb"; 16 + "type:touchpad" = { 17 + natural_scroll = "enabled"; 18 + tap = "enabled"; 19 + dwt = "enabled"; 20 + scroll_factor = "0.3"; 21 + }; 22 + }; 23 + 24 + keybindings = lib.mkOptionDefault { 25 + # ── Brightness ─────────────────────────────────────────────────────── 26 + "XF86MonBrightnessUp" = "exec swayosd-client --brightness +10"; 27 + "XF86MonBrightnessDown" = "exec swayosd-client --brightness -10"; 28 + 29 + # ── Volume ─────────────────────────────────────────────────────────── 30 + # -l 1.0 caps volume at 100% to avoid clipping 31 + "XF86AudioRaiseVolume" = "exec swayosd-client --output-volume raise"; 32 + "XF86AudioLowerVolume" = "exec swayosd-client --output-volume lower"; 33 + "XF86AudioMute" = "exec swayosd-client --output-volume mute-toggle"; 34 + "XF86AudioMicMute" = "exec swayosd-client --input-volume mute-toggle"; 35 + 36 + # ── Media ──────────────────────────────────────────────────────────── 37 + "XF86AudioPlay" = "exec swayosd-client --playerctl play-pause"; 38 + "XF86AudioNext" = "exec swayosd-client --playerctl next"; 39 + "XF86AudioPrev" = "exec swayosd-client --playerctl previous"; 40 + }; 41 + 42 + bars = [ 43 + { 44 + position = "bottom"; 45 + command = "waybar"; 46 + } 47 + ]; 48 + }; 49 + }; 50 + }
+6
home/waybar.nix
··· 1 + { lib, ... }: 2 + { 3 + programs.waybar = { 4 + enable = true; 5 + }; 6 + }
+67
hosts/Natsuki/default.nix
··· 1 + { config, lib, pkgs, inputs, username, ... }: 2 + let 3 + stdOpts = [ "compress=zstd:3" "noatime" "ssd" "discard=async" ]; 4 + cacheOpts = [ "compress=zstd:1" "noatime" "ssd" "discard=async" ]; 5 + in { 6 + imports = [ ./hardware-configuration.nix inputs.nixos-hardware.nixosModules.lenovo-thinkpad-t480s ]; 7 + 8 + networking.hostName = "Natsuki"; 9 + 10 + system.stateVersion = "25.11"; 11 + 12 + # ── Filesystem mount options ─────────────────────────────────────────────── 13 + fileSystems = { 14 + "/".options = stdOpts; 15 + "/home".options = stdOpts; 16 + "/nix".options = stdOpts; 17 + "/.snapshots".options = stdOpts; 18 + "/var/log".options = stdOpts; 19 + "/home/${username}/.cache".options = cacheOpts; 20 + "/home/${username}/.gradle".options = cacheOpts; 21 + }; 22 + 23 + # ── Power management ─────────────────────────────────────────────────────── 24 + services.tlp = { 25 + enable = true; 26 + settings = { 27 + CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; 28 + CPU_SCALING_GOVERNOR_ON_AC = "performance"; 29 + 30 + CPU_ENERGY_PERF_POLICY_ON_BAT = "power"; 31 + CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; 32 + 33 + CPU_BOOST_ON_BAT = 0; 34 + CPU_BOOST_ON_AC = 1; 35 + 36 + CPU_HWP_DYN_BOOST_ON_BAT = 0; 37 + CPU_HWP_DYN_BOOST_ON_BAT = 1; 38 + 39 + WIFI_PWR_ON_BAT = "on"; 40 + WIFI_PWR_ON_AC = "off"; 41 + 42 + USB_AUTOSUSPEND = 1; 43 + 44 + # Don't do this, my battery is already far gone, and limiting it to 80% would be crippling 45 + START_CHARGE_THRESH_BAT0 = 90; 46 + STOP_CHARGE_THRESH_BAT0 = 95; 47 + }; 48 + }; 49 + 50 + services.thermald.enable = true; 51 + 52 + services.upower = { 53 + enable = true; 54 + 55 + criticalPowerAction = "Hibernate"; 56 + }; 57 + 58 + # ── Packages ─────────────────────────────────────────────────────────────── 59 + environment.systemPackages = with pkgs; [ 60 + intel-media-driver 61 + libvdpau-va-gl 62 + ]; 63 + 64 + # ── Warp ─────────────────────────────────────────────────────────────────── 65 + services.cloudflare-warp.enable = true; 66 + networking.firewall.checkReversePath = "loose"; # women want me, technology fear me (Workaround to https://github.com/NixOS/nixpkgs/issues/504119) 67 + }
+68
hosts/Natsuki/hardware-configuration.nix
··· 1 + # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 + # and may be overwritten by future invocations. Please make changes 3 + # to /etc/nixos/configuration.nix instead. 4 + { config, lib, pkgs, modulesPath, ... }: 5 + 6 + { 7 + imports = 8 + [ (modulesPath + "/installer/scan/not-detected.nix") 9 + ]; 10 + 11 + boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "uas" "usb_storage" "sd_mod" ]; 12 + boot.initrd.kernelModules = [ ]; 13 + boot.kernelModules = [ "kvm-intel" ]; 14 + boot.extraModulePackages = [ ]; 15 + 16 + fileSystems."/" = 17 + { device = "/dev/disk/by-uuid/744f1ccb-2ddc-4ba6-acfb-113df00ff9a5"; 18 + fsType = "btrfs"; 19 + options = [ "subvol=@" ]; 20 + }; 21 + 22 + fileSystems."/home" = 23 + { device = "/dev/disk/by-uuid/744f1ccb-2ddc-4ba6-acfb-113df00ff9a5"; 24 + fsType = "btrfs"; 25 + options = [ "subvol=@home" ]; 26 + }; 27 + 28 + fileSystems."/nix" = 29 + { device = "/dev/disk/by-uuid/744f1ccb-2ddc-4ba6-acfb-113df00ff9a5"; 30 + fsType = "btrfs"; 31 + options = [ "subvol=@nix" ]; 32 + }; 33 + 34 + fileSystems."/.snapshots" = 35 + { device = "/dev/disk/by-uuid/744f1ccb-2ddc-4ba6-acfb-113df00ff9a5"; 36 + fsType = "btrfs"; 37 + options = [ "subvol=@snapshots" ]; 38 + }; 39 + 40 + fileSystems."/var/log" = 41 + { device = "/dev/disk/by-uuid/744f1ccb-2ddc-4ba6-acfb-113df00ff9a5"; 42 + fsType = "btrfs"; 43 + options = [ "subvol=@log" ]; 44 + }; 45 + 46 + fileSystems."/home/desoroxxx/.cache" = 47 + { device = "/dev/disk/by-uuid/744f1ccb-2ddc-4ba6-acfb-113df00ff9a5"; 48 + fsType = "btrfs"; 49 + options = [ "subvol=@cache" ]; 50 + }; 51 + 52 + fileSystems."/home/desoroxxx/.gradle" = 53 + { device = "/dev/disk/by-uuid/744f1ccb-2ddc-4ba6-acfb-113df00ff9a5"; 54 + fsType = "btrfs"; 55 + options = [ "subvol=@gradle" ]; 56 + }; 57 + 58 + fileSystems."/boot" = 59 + { device = "/dev/disk/by-uuid/C0CD-A10A"; 60 + fsType = "vfat"; 61 + options = [ "fmask=0022" "dmask=0022" ]; 62 + }; 63 + 64 + swapDevices = [ ]; 65 + 66 + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 67 + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 68 + }
+156
modules/common.nix
··· 1 + { inputs, config, lib, pkgs, username, ... }: 2 + { 3 + # ── Boot ─────────────────────────────────────────────────────────────────── 4 + boot.loader.systemd-boot.enable = true; 5 + boot.loader.efi.canTouchEfiVariables = true; 6 + boot.loader.systemd-boot.configurationLimit = 10; # prevents EFI partition fill-up 7 + boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-latest-lto-x86_64-v3; 8 + 9 + # ── Networking ───────────────────────────────────────────────────────────── 10 + networking.networkmanager.enable = true; 11 + 12 + # ── Locale & keyboard ────────────────────────────────────────────────────── 13 + time.timeZone = "Europe/Paris"; 14 + i18n.defaultLocale = "en_GB.UTF-8"; 15 + console.useXkbConfig = true; 16 + services.xserver.xkb.layout = "gb"; 17 + 18 + # ── Nix / Lix ───────────────────────────────────────────────────────────── 19 + nixpkgs.overlays = [ (final: prev: { 20 + inherit (prev.lixPackageSets.stable) 21 + nixpkgs-review 22 + nix-eval-jobs 23 + nix-fast-build 24 + colmena; 25 + }) 26 + inputs.nix-cachyos-kernel.overlays.default 27 + ]; 28 + nix.package = pkgs.lixPackageSets.stable.lix; 29 + nixpkgs.config.allowUnfree = true; 30 + nix.settings.experimental-features = [ "nix-command" "flakes" ]; 31 + 32 + # ── Hardware ─────────────────────────────────────────────────────────────── 33 + hardware.bluetooth.enable = true; 34 + hardware.graphics.enable = true; 35 + 36 + # ── Security ─────────────────────────────────────────────────────────────── 37 + security.sudo-rs.enable = true; 38 + security.polkit.enable = true; 39 + 40 + # ── TOP ─────────────────────────────────────────────────────────────── 41 + programs.usbtop.enable = true; 42 + systemd.tmpfiles.rules = [ 43 + "Z /sys/class/powercap/intel-rapl:0/energy_uj 0444 root root - -" 44 + ]; 45 + security.wrappers.btop = { 46 + source = "${pkgs.btop}/bin/btop"; 47 + capabilities = "cap_perfmon+ep"; 48 + owner = "root"; 49 + group = "root"; 50 + permissions = "u+rx,g+rx,o+rx"; 51 + }; 52 + 53 + # ── Sway ─────────────────────────────────────────────────────────────────── 54 + programs.sway = { 55 + enable = true; 56 + wrapperFeatures.gtk = true; 57 + extraPackages = with pkgs; [ swaylock ]; 58 + }; 59 + 60 + # ── SwayOSD libinput backend ─────────────────────────────────────────────── 61 + systemd.packages = with pkgs; [ swayosd ]; 62 + services.udev.packages = [ pkgs.swayosd ]; 63 + services.dbus.packages = [ pkgs.swayosd ]; 64 + systemd.services.swayosd-libinput-backend.wantedBy = [ "graphical.target" ]; 65 + systemd.services.swayosd-libinput-backend.partOf = [ "graphical.target" ]; 66 + systemd.services.swayosd-libinput-backend.after = [ "graphical.target" ]; 67 + 68 + # ── Audio ────────────────────────────────────────────────────────────────── 69 + security.rtkit.enable = true; 70 + services.pipewire = { 71 + enable = true; 72 + pulse.enable = true; 73 + }; 74 + 75 + # ── Shell ────────────────────────────────────────────────────────────────── 76 + programs.fish.enable = true; 77 + 78 + # ── Users ────────────────────────────────────────────────────────────────── 79 + users.users.${username} = { 80 + isNormalUser = true; 81 + extraGroups = [ "wheel" "networkmanager" ]; 82 + shell = pkgs.fish; 83 + }; 84 + 85 + # ── Programs ─────────────────────────────────────────────────────────────── 86 + programs.firefox.enable = true; 87 + programs.git.enable = true; 88 + programs.nh = { 89 + enable = true; 90 + flake = "~/nix-config"; 91 + }; 92 + 93 + # ── Packages ─────────────────────────────────────────────────────────────── 94 + environment.systemPackages = with pkgs; [ 95 + vim 96 + wget 97 + msedit 98 + microsoft-edge 99 + bluetuith 100 + btop 101 + galaxy-buds-client 102 + inputs.tidaLuna.packages.${stdenv.hostPlatform.system}.default 103 + wl-clipboard 104 + nautilus 105 + ghostty 106 + _7zip-zstd-rar 107 + inputs.orion-browser.packages.${stdenv.hostPlatform.system}.default 108 + ]; 109 + 110 + # ── Fonts ────────────────────────────────────────────────────────────────── 111 + fonts = { 112 + packages = with pkgs; [ 113 + nunito 114 + monaspace 115 + (callPackage ../packages/fluent-emoji.nix {}) 116 + ]; 117 + 118 + fontconfig = { 119 + enable = true; 120 + defaultFonts = { 121 + sansSerif = [ "Nunito" ]; 122 + serif = [ "Nunito" ]; 123 + monospace = [ "Monaspace Krypton" ]; 124 + emoji = [ "Fluent Emoji Color"]; 125 + }; 126 + 127 + localConf = '' 128 + <?xml version="1.0"?> 129 + <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> 130 + <fontconfig> 131 + <match target="font"> 132 + <test name="family" compare="eq"> 133 + <string>Monaspace Krypton</string> 134 + </test> 135 + <edit name="fontfeatures" mode="assign"> 136 + <array> 137 + <string>ss01</string> 138 + <string>ss02</string> 139 + <string>ss03</string> 140 + <string>ss04</string> 141 + <string>ss05</string> 142 + <string>ss06</string> 143 + <string>ss07</string> 144 + <string>ss08</string> 145 + <string>ss09</string> 146 + <string>ss10</string> 147 + <string>calt</string> 148 + <string>liga</string> 149 + </array> 150 + </edit> 151 + </match> 152 + </fontconfig> 153 + ''; 154 + }; 155 + }; 156 + }
+22
packages/fluent-emoji.nix
··· 1 + { lib, stdenvNoCC, fetchurl }: 2 + 3 + stdenvNoCC.mkDerivation rec { 4 + pname = "fluent-emoji-color"; 5 + version = "unstable"; 6 + 7 + src = fetchurl { 8 + url = "https://tetunori.github.io/fluent-emoji-webfont/dist/FluentEmojiColor.ttf"; 9 + sha256 = "09ddkhys3gja1dvzkr0p3bkrxkcc4j9v40bf91ahv04xjvzz74k2"; 10 + }; 11 + 12 + dontUnpack = true; 13 + 14 + installPhase = '' 15 + mkdir -p $out/share/fonts/truetype 16 + cp $src $out/share/fonts/truetype/FluentEmojiColor.ttf 17 + ''; 18 + 19 + meta = with lib; { 20 + license = licenses.mit; 21 + }; 22 + }