Flake for my NixOS devices

Use charis for serif font

bwc9876.dev 6b552c6f 725fa0f8

verified
+188 -110
+46 -46
flake.lock
··· 77 77 }, 78 78 "crane_2": { 79 79 "locked": { 80 - "lastModified": 1769737823, 81 - "narHash": "sha256-DrBaNpZ+sJ4stXm+0nBX7zqZT9t9P22zbk6m5YhQxS4=", 80 + "lastModified": 1770419512, 81 + "narHash": "sha256-o8Vcdz6B6bkiGUYkZqFwH3Pv1JwZyXht3dMtS7RchIo=", 82 82 "owner": "ipetkov", 83 83 "repo": "crane", 84 - "rev": "b2f45c3830aa96b7456a4c4bc327d04d7a43e1ba", 84 + "rev": "2510f2cbc3ccd237f700bb213756a8f35c32d8d7", 85 85 "type": "github" 86 86 }, 87 87 "original": { ··· 284 284 "treefmt-nix": "treefmt-nix" 285 285 }, 286 286 "locked": { 287 - "lastModified": 1770123670, 288 - "narHash": "sha256-IG/BNc+M8ltpJLWY+GFb8sCz8Fv+Xbsnn4Ru4cMY6fI=", 287 + "lastModified": 1770729297, 288 + "narHash": "sha256-iNI2pIkYSdENcAm/M7daQQhpt6G4DqnNDVF+x3PT/Yc=", 289 289 "owner": "m15a", 290 290 "repo": "flakelight-treefmt", 291 - "rev": "96ed0ef257a71ea4086861f3d1743e053a920250", 291 + "rev": "5c6d9b15364874a2a3149a836d4d0ac37d4f7172", 292 292 "type": "github" 293 293 }, 294 294 "original": { ··· 304 304 ] 305 305 }, 306 306 "locked": { 307 - "lastModified": 1770037869, 308 - "narHash": "sha256-ydw7wUkviUdv7J7YweFp6kxXl24QJgJ1+NC5S02gkz0=", 307 + "lastModified": 1770643227, 308 + "narHash": "sha256-Dhl7sU33nociCpvK51Dc6Kr3c3g6e37GiaQ8RsdhaiE=", 309 309 "owner": "nix-community", 310 310 "repo": "flakelight", 311 - "rev": "49027dc3f2426de7cb2a6e29a13bbdd824f9b73a", 311 + "rev": "06f0fad6089dbc5cff57607c9ed4ee01dea00c90", 312 312 "type": "github" 313 313 }, 314 314 "original": { ··· 453 453 ] 454 454 }, 455 455 "locked": { 456 - "lastModified": 1770491427, 457 - "narHash": "sha256-8b+0vixdqGnIIcgsPhjdX7EGPdzcVQqYxF+ujjex654=", 456 + "lastModified": 1770654520, 457 + "narHash": "sha256-mg5WZMIPGsFu9MxSrUcuJUPMbfMsF77el5yb/7rc10k=", 458 458 "owner": "nix-community", 459 459 "repo": "home-manager", 460 - "rev": "cbd8a72e5fe6af19d40e2741dc440d9227836860", 460 + "rev": "6c4fdbe1ad198fac36c320fd45c5957324a80b8e", 461 461 "type": "github" 462 462 }, 463 463 "original": { ··· 565 565 "rust-overlay": "rust-overlay" 566 566 }, 567 567 "locked": { 568 - "lastModified": 1770579389, 569 - "narHash": "sha256-2OwcZVHHsq3DSnJsUOiw0i/ovRqdlIG4uj5RPRql+8I=", 568 + "lastModified": 1770734117, 569 + "narHash": "sha256-PNXSnK507MRj+hYMgnUR7InNJzVCmOfsjHV4YXZgpwQ=", 570 570 "owner": "nix-community", 571 571 "repo": "lanzaboote", 572 - "rev": "7b637233a79e6041affba3f33957995c57f4b140", 572 + "rev": "2038a9a19adb886eccba775321b055fdbdc5029d", 573 573 "type": "github" 574 574 }, 575 575 "original": { ··· 639 639 "xwayland-satellite-unstable": "xwayland-satellite-unstable" 640 640 }, 641 641 "locked": { 642 - "lastModified": 1770571272, 643 - "narHash": "sha256-IUBQMceKisLf1aqo0OWIuEEJLYCQjpvfAJYNZCqu5wE=", 642 + "lastModified": 1770739738, 643 + "narHash": "sha256-sLpvik461SjSY1b23gHhNbM9aMJF9iU4h2vPepi9JoM=", 644 644 "owner": "sodiboo", 645 645 "repo": "niri-flake", 646 - "rev": "992922f59953b7f55f6b2de7f8bb661e93bc210e", 646 + "rev": "9e23010320cfe4012adc2d8810495bad0fe2d4a6", 647 647 "type": "github" 648 648 }, 649 649 "original": { ··· 672 672 "niri-unstable": { 673 673 "flake": false, 674 674 "locked": { 675 - "lastModified": 1770394936, 676 - "narHash": "sha256-Pa0fkyLYUR+pZh7phPENDUo4mJIweaAm0uV83iUUlX8=", 675 + "lastModified": 1770735554, 676 + "narHash": "sha256-8GzUa8bCyQ688jYW2waXrOqetTr7oV8UPTO2He+5Hsg=", 677 677 "owner": "YaLTeR", 678 678 "repo": "niri", 679 - "rev": "549148d27779d024255a84535b42b947f1c2a113", 679 + "rev": "41b5de87692b8262fbdbff7faab93f04ff0be453", 680 680 "type": "github" 681 681 }, 682 682 "original": { ··· 707 707 }, 708 708 "nixos-hardware": { 709 709 "locked": { 710 - "lastModified": 1769302137, 711 - "narHash": "sha256-QEDtctEkOsbx8nlFh4yqPEOtr4tif6KTqWwJ37IM2ds=", 710 + "lastModified": 1770631810, 711 + "narHash": "sha256-b7iK/x+zOXbjhRqa+XBlYla4zFvPZyU5Ln2HJkiSnzc=", 712 712 "owner": "NixOS", 713 713 "repo": "nixos-hardware", 714 - "rev": "a351494b0e35fd7c0b7a1aae82f0afddf4907aa8", 714 + "rev": "2889685785848de940375bf7fea5e7c5a3c8d502", 715 715 "type": "github" 716 716 }, 717 717 "original": { ··· 722 722 }, 723 723 "nixpkgs": { 724 724 "locked": { 725 - "lastModified": 1770197578, 726 - "narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=", 725 + "lastModified": 1770562336, 726 + "narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", 727 727 "owner": "NixOS", 728 728 "repo": "nixpkgs", 729 - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", 729 + "rev": "d6c71932130818840fc8fe9509cf50be8c64634f", 730 730 "type": "github" 731 731 }, 732 732 "original": { ··· 738 738 }, 739 739 "nixpkgs-stable": { 740 740 "locked": { 741 - "lastModified": 1770464364, 742 - "narHash": "sha256-z5NJPSBwsLf/OfD8WTmh79tlSU8XgIbwmk6qB1/TFzY=", 741 + "lastModified": 1770617025, 742 + "narHash": "sha256-1jZvgZoAagZZB6NwGRv2T2ezPy+X6EFDsJm+YSlsvEs=", 743 743 "owner": "NixOS", 744 744 "repo": "nixpkgs", 745 - "rev": "23d72dabcb3b12469f57b37170fcbc1789bd7457", 745 + "rev": "2db38e08fdadcc0ce3232f7279bab59a15b94482", 746 746 "type": "github" 747 747 }, 748 748 "original": { ··· 761 761 "systems": "systems" 762 762 }, 763 763 "locked": { 764 - "lastModified": 1770388595, 765 - "narHash": "sha256-0NvpmDqFcJAtRFJE3RDZWnN7PDJBZutoDtN+Cl8a3DY=", 764 + "lastModified": 1770630823, 765 + "narHash": "sha256-5SEmOnJ61vmbap39vzWEsCX5UQ+3Ul8J4mXWKdqSn3w=", 766 766 "owner": "nix-community", 767 767 "repo": "nixvim", 768 - "rev": "51abc532525e486176f9a7b24b17908c60017b54", 768 + "rev": "6acc964664ac916c64fe4e394edd467af4d90790", 769 769 "type": "github" 770 770 }, 771 771 "original": { ··· 966 966 ] 967 967 }, 968 968 "locked": { 969 - "lastModified": 1770001842, 970 - "narHash": "sha256-ZAyTeILfdWwDp1nuF0RK3McBduMi49qnJvrS+3Ezpac=", 969 + "lastModified": 1770520253, 970 + "narHash": "sha256-6rWuHgSENXKnC6HGGAdRolQrnp/8IzscDn7FQEo1uEQ=", 971 971 "owner": "oxalica", 972 972 "repo": "rust-overlay", 973 - "rev": "5018343419ea808f8a413241381976b7e60951f2", 973 + "rev": "ebb8a141f60bb0ec33836333e0ca7928a072217f", 974 974 "type": "github" 975 975 }, 976 976 "original": { ··· 1072 1072 "sqlite-lib-src": "sqlite-lib-src" 1073 1073 }, 1074 1074 "locked": { 1075 - "lastModified": 1770445463, 1076 - "narHash": "sha256-w63GKKjiTcBu9wpl35ij4dSM6Jlte541SPPb5GGvJIA=", 1075 + "lastModified": 1770621125, 1076 + "narHash": "sha256-HKj1BD48FprZRg8rpesAMfCGUgup8tuIHG0icUIAWns=", 1077 1077 "ref": "refs/heads/master", 1078 - "rev": "306613d56b424cadbd07199e382788e68268c70c", 1079 - "revCount": 1936, 1078 + "rev": "f569d2beae25b937addee796bcffd68be36171ec", 1079 + "revCount": 1943, 1080 1080 "type": "git", 1081 1081 "url": "https://tangled.org/tangled.org/core" 1082 1082 }, ··· 1094 1094 ] 1095 1095 }, 1096 1096 "locked": { 1097 - "lastModified": 1769691507, 1098 - "narHash": "sha256-8aAYwyVzSSwIhP2glDhw/G0i5+wOrren3v6WmxkVonM=", 1097 + "lastModified": 1770228511, 1098 + "narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=", 1099 1099 "owner": "numtide", 1100 1100 "repo": "treefmt-nix", 1101 - "rev": "28b19c5844cc6e2257801d43f2772a4b4c050a1b", 1101 + "rev": "337a4fe074be1042a35086f15481d763b8ddc0e7", 1102 1102 "type": "github" 1103 1103 }, 1104 1104 "original": { ··· 1174 1174 "xwayland-satellite-unstable": { 1175 1175 "flake": false, 1176 1176 "locked": { 1177 - "lastModified": 1770568598, 1178 - "narHash": "sha256-w7XGGbI3cxtJWK/B2n+yuhm1S3Vv21OPtIMFLTwbU20=", 1177 + "lastModified": 1770583271, 1178 + "narHash": "sha256-Q75S8cEqJoZ92s1y4zArvk2U1ayAy2E4SaF7gbNXkYQ=", 1179 1179 "owner": "Supreeeme", 1180 1180 "repo": "xwayland-satellite", 1181 - "rev": "e6dd3c05c098aef4e6a31fa95c04f129e9b52618", 1181 + "rev": "86f5bd5d867ad6e120935dfe825f6b903ebbeddd", 1182 1182 "type": "github" 1183 1183 }, 1184 1184 "original": {
+36 -28
flake.nix
··· 20 20 fenix.inputs.nixpkgs.follows = "nixpkgs"; 21 21 catppuccin.url = "github:catppuccin/nix"; 22 22 catppuccin.inputs.nixpkgs.follows = "nixpkgs"; 23 + # cat-stylus = { 24 + # url = "https://github.com/catppuccin/userstyles/releases/download/all-userstyles-export/import.json"; 25 + # flake = false; 26 + # }; 23 27 nixvim.url = "github:nix-community/nixvim"; 24 28 nixvim.inputs.nixpkgs.follows = "nixpkgs"; 25 29 imperm.url = "github:nix-community/impermanence"; ··· 47 51 }; 48 52 }; 49 53 50 - outputs = inputs @ { 51 - self, 52 - nixpkgs, 53 - flakelight, 54 - flakelight-treefmt, 55 - nix-index-db, 56 - hm, 57 - nixos-hardware, 58 - lanzaboote, 59 - wayland-mpris-idle-inhibit, 60 - fenix, 61 - catppuccin, 62 - nixvim, 63 - imperm, 64 - nu_plugin_dbus, 65 - bingus, 66 - spoon, 67 - gh-grader-preview, 68 - niri, 69 - musnix, 70 - tangled, 71 - }: 54 + outputs = 55 + inputs@{ 56 + self, 57 + nixpkgs, 58 + flakelight, 59 + flakelight-treefmt, 60 + nix-index-db, 61 + hm, 62 + nixos-hardware, 63 + lanzaboote, 64 + wayland-mpris-idle-inhibit, 65 + fenix, 66 + catppuccin, 67 + # cat-stylus, 68 + nixvim, 69 + imperm, 70 + nu_plugin_dbus, 71 + bingus, 72 + spoon, 73 + gh-grader-preview, 74 + niri, 75 + musnix, 76 + tangled, 77 + }: 72 78 flakelight ./. { 73 79 inherit inputs; 74 80 imports = [ ··· 77 83 spoon.flakelightModules.ubercheck 78 84 ]; 79 85 80 - treefmtConfig = {pkgs, ...}: { 81 - programs = { 82 - alejandra.enable = true; 83 - just.enable = true; 84 - shfmt.enable = true; 86 + treefmtConfig = 87 + { pkgs, ... }: 88 + { 89 + programs = { 90 + alejandra.enable = true; 91 + just.enable = true; 92 + shfmt.enable = true; 93 + }; 85 94 }; 86 - }; 87 95 88 96 nixDir = ./.; 89 97 legacyPackages = pkgs: pkgs;
+1 -1
homeModules/dev.nix
··· 117 117 ]) 118 118 ++ (lib.optionals conf.typst [ 119 119 typst 120 - typstyle 120 + typstyle 121 121 ]) 122 122 ++ (lib.optional conf.cutter (cutter.withPlugins (p: with p; [rz-ghidra]))); 123 123 };
+81 -8
homeModules/firefox.nix
··· 1 - {...}: { 1 + {inputs, ...}: { 2 2 lib, 3 3 pkgs, 4 4 config, ··· 149 149 "ublock-privacy" 150 150 "ublock-unbreak" 151 151 "ublock-quick-fixes" 152 + "easylist" 153 + "easyprivacy" 154 + "urlhaus-1" 155 + "plowe-0" 156 + "adguard-spyware-url" 157 + "fanboy-cookiemonster" 158 + "ublock-cookies-easylist" 159 + "easylist-annoyances" 160 + "easylist-chat" 161 + "easylist-newsletters" 162 + "easylist-notifications" 163 + "ublock-annoyances" 164 + "IDN-0" 152 165 ]; 153 - # Stylus 154 - "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}".settings = { 155 - dbInChromeStorage = true; # required se DB is stored in state.js 156 - updateOnlyEnabled = true; 157 - patchCsp = true; 158 - instantInject = true; 159 - }; 166 + # TODO: Stylus 167 + # "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}".force = true; 168 + # "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}".settings = let 169 + # # Catppuccin-stylus import.json 170 + # importJson = lib.importJSON inputs.cat-stylus.outPath; 171 + # 172 + # # Gen the path to update a given user style config value 173 + # updateVar = var: val: { 174 + # path = [ 175 + # "usercssData" 176 + # "vars" 177 + # var 178 + # "value" 179 + # ]; 180 + # update = old: val; 181 + # }; 182 + # 183 + # # Create function for setting user style options according to catppuccin config 184 + # cat = config.catppuccin; 185 + # configureStyle = lib.updateManyAttrsByPath [ 186 + # (updateVar "lightFlavor" cat.flavor) 187 + # (updateVar "darkFlavor" cat.flavor) 188 + # (updateVar "accentColor" cat.accent) 189 + # ]; 190 + # 191 + # # No 192 + # md5ToUuidThisIsVeryBad = md5: let 193 + # first = builtins.substring 0 8 md5; 194 + # second = builtins.substring 8 4 md5; 195 + # third = builtins.substring 12 4 md5; 196 + # fourth = builtins.substring 16 4 md5; 197 + # fifth = builtins.substring 20 12 md5; 198 + # in "${first}-${second}-${third}-${fourth}-${fifth}"; 199 + # 200 + # # Create a Stylus DB entry for a given style using the digest as an identifier 201 + # mkStylePair = style: let 202 + # id = md5ToUuidThisIsVeryBad style.originalDigest; 203 + # in { 204 + # name = "style-${id}"; 205 + # value = 206 + # (configureStyle style) 207 + # // { 208 + # inherit id; 209 + # _id = id; 210 + # # Stylus code says Date.now() for rev, we'll just set it to 0? 211 + # _rev = 0; 212 + # }; 213 + # }; 214 + # 215 + # # The first elem of the import.json is settings for Stylus, we'll set those ourselves 216 + # generatedStyles = builtins.listToAttrs (builtins.map mkStylePair (builtins.tail importJson)); 217 + # 218 + # # Setting we need to set manually 219 + # extensionDb = 220 + # generatedStyles 221 + # // { 222 + # lastUpdateTime = 0; 223 + # dbInChromeStorage = true; 224 + # settings = { 225 + # patchCsp = true; 226 + # updateInterval = 0; 227 + # updateOnlyEnabled = true; 228 + # styleViaXhr = true; 229 + # }; 230 + # }; 231 + # in 232 + # extensionDb; 160 233 }; 161 234 }; 162 235 search = {
+6 -10
homeModules/user-bean.nix
··· 1 - { ... }: 2 - { 1 + {...}: { 3 2 pkgs, 4 3 lib, 5 4 config, 6 5 ... 7 - }: 8 - { 6 + }: { 9 7 options.cow.bean = { 10 8 enable = lib.mkEnableOption "Bean user presets"; 11 9 username = lib.mkOption { ··· 34 32 }; 35 33 }; 36 34 37 - config = 38 - let 39 - conf = config.cow.bean; 40 - in 35 + config = let 36 + conf = config.cow.bean; 37 + in 41 38 lib.mkIf conf.enable { 42 39 # My Personal config using most of my HM modules 43 40 ··· 77 74 }; 78 75 79 76 home.packages = lib.mkIf config.cow.gdi.enable ( 80 - with pkgs; 81 - [ 77 + with pkgs; [ 82 78 zoom-us 83 79 tuxpaint 84 80 ]
+15 -14
homeModules/utils.nix
··· 1 - { ... }: 2 - { 1 + {...}: { 3 2 config, 4 3 lib, 5 4 pkgs, 6 5 ... 7 - }: 8 - { 6 + }: { 9 7 options.cow.utils = { 10 - enable = (lib.mkEnableOption "Handy utilities to have") // { 11 - default = true; 12 - }; 13 - batAliases = (lib.mkEnableOption "Aliases for bat commands in the shell") // { 14 - default = true; 15 - }; 8 + enable = 9 + (lib.mkEnableOption "Handy utilities to have") 10 + // { 11 + default = true; 12 + }; 13 + batAliases = 14 + (lib.mkEnableOption "Aliases for bat commands in the shell") 15 + // { 16 + default = true; 17 + }; 16 18 }; 17 19 18 20 config = lib.mkIf config.cow.utils.enable { 19 - home.packages = 20 - with pkgs; 21 + home.packages = with pkgs; 21 22 [ 22 23 ripgrep 23 24 binutils ··· 83 84 settings = { 84 85 backend = "fastfetch"; 85 86 color_align = { 86 - custom_colors = [ ]; 87 + custom_colors = []; 87 88 fore_back = null; 88 89 mode = "horizontal"; 89 90 }; ··· 93 94 mode = "rgb"; 94 95 preset = "gay-men"; 95 96 pride_month_disable = false; 96 - pride_month_shown = [ ]; 97 + pride_month_shown = []; 97 98 }; 98 99 }; 99 100 };
+3 -3
nixosModules/fonts.nix
··· 14 14 fonts = { 15 15 enableDefaultPackages = true; 16 16 packages = with pkgs; [ 17 - fira-code 17 + charis-sil 18 18 maple-mono.NF-CN 19 19 noto-fonts 20 20 ]; ··· 22 22 enable = true; 23 23 defaultFonts = { 24 24 serif = [ 25 - "Noto Serif" 25 + "Charis SIL" 26 26 ]; 27 27 sansSerif = [ 28 - "FiraGO" 28 + "Noto Sans" 29 29 ]; 30 30 monospace = [ 31 31 "Maple Mono NF CN"