Personal Nix setup
0
fork

Configure Feed

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

Clean up old files

+429 -240
-55
config/dns.nix
··· 1 - { 2 - imports = [ 3 - ../modules/dnscrypt.nix 4 - ]; 5 - 6 - services.dnscrypt2 = { 7 - enable = false; 8 - 9 - settings = { 10 - listen_addresses = [ "127.0.0.1:53" ]; 11 - max_clients = 50; 12 - ipv4_servers = true; 13 - ipv6_servers = false; 14 - doh_servers = true; 15 - force_tcp = false; 16 - 17 - timeout = 1000; 18 - keepalive = 30; 19 - cert_refresh_delay = 240; 20 - netprobe_timeout = 60; 21 - netprobe_address = "1.1.1.1:53"; 22 - 23 - fallback_resolvers = [ "1.1.1.1:53" "1.0.0.1:53" ]; 24 - ignore_system_dns = true; 25 - 26 - block_unqualified = true; 27 - block_undelegated = true; 28 - block_ipv6 = false; 29 - reject_ttl = 600; 30 - 31 - cache = true; 32 - cache_size = 4096; 33 - cache_min_ttl = 2400; 34 - cache_max_ttl = 86400; 35 - cache_neg_min_ttl = 60; 36 - cache_neg_max_ttl = 600; 37 - 38 - require_dnssec = true; 39 - require_nolog = true; 40 - require_nofilter = false; 41 - 42 - sources.public_resolvers = { 43 - urls = [ 44 - "https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md" 45 - "https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md" 46 - ]; 47 - cache_file = "public-resolvers.md"; 48 - minisign_key = "RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3"; 49 - prefix = ""; 50 - }; 51 - 52 - server_names = [ "cloudflare" "cloudflare-ipv6" ]; 53 - }; 54 - }; 55 - }
+427
config/nvim/colors.nix
··· 1 + let 2 + inherit (import ../../modules/color-utils.nix) mkLuaSyntax mkVimSyntax mkVimHardlineColors mkColor mkHighlight; 3 + in rec { 4 + colors = { 5 + gutter = (mkColor "#16171d" "232" "15"); # gutter fg grey 6 + cursor = (mkColor "#2C323C" "236" "8"); # cursor grey 7 + element = (mkColor "#404449" "238" "15"); # special grey 8 + split = (mkColor "#282c34" "59" "15"); 9 + 10 + black = (mkColor "#13131a" "235" "0"); 11 + grey = (mkColor "#3E4452" "237" "15"); 12 + 13 + red = (mkColor "#ED95A8" "204" "1"); 14 + brightRed = (mkColor "#EF5350" "196" "9"); 15 + 16 + green = (mkColor "#C3E88D" "114" "2"); 17 + brightGreen = (mkColor "#C3E88D" "114" "2"); 18 + 19 + yellow = (mkColor "#FFCB6B" "180" "3"); 20 + brightYellow = (mkColor "#F78C6C" "173" "11"); # dark yellow 21 + 22 + blue = (mkColor "#82B1FF" "39" "4"); 23 + brightBlue = (mkColor "#939EDE" "39" "4"); # blue purple 24 + 25 + purple = (mkColor "#C792EA" "170" "5"); 26 + brightPurple = (mkColor "#FF45AE" "170" "5"); 27 + 28 + cyan = (mkColor "#89DDFF" "38" "6"); 29 + brightCyan = (mkColor "#20D6E3" "38" "6"); 30 + 31 + white = (mkColor "#ECEFF1" "145" "7"); 32 + brightWhite = (mkColor "#697098" "59" "15"); # comment grey 33 + darkWhite = (mkColor "#F8F8F2" "59" "15"); 34 + }; 35 + 36 + vim-hardline = mkVimHardlineColors colors; 37 + lua = mkLuaSyntax colors; 38 + 39 + vim = with colors; mkVimSyntax "theme" { 40 + # Syntax Groups (descriptions and ordering from `:h w18`) 41 + Comment = { fg = brightWhite; style = "italic"; }; 42 + Constant = { fg = cyan; }; 43 + String = { fg = green; }; 44 + Character = { fg = green; }; 45 + Number = { fg = brightYellow; }; 46 + Boolean = { fg = red; }; 47 + Float = { fg = brightYellow; }; 48 + Identifier = { fg = red; }; 49 + Function = { fg = blue; }; 50 + Statement = { fg = purple; }; 51 + Conditional = { fg = purple; }; 52 + Repeat = { fg = purple; }; 53 + Label = { fg = purple; }; 54 + Operator = { fg = cyan; }; 55 + Keyword = { fg = red; }; 56 + Exception = { fg = purple; }; 57 + PreProc = { fg = yellow; }; 58 + Include = { fg = blue; }; 59 + Define = { fg = purple; }; 60 + Macro = { fg = purple; }; 61 + PreCondit = { fg = yellow; }; 62 + Type = { fg = yellow; }; 63 + StorageClass = { fg = yellow; }; 64 + Structure = { fg = yellow; }; 65 + Typedef = { fg = yellow; }; 66 + Special = { fg = blue; }; 67 + SpecialChar = mkHighlight {}; 68 + Tag = mkHighlight {}; 69 + Delimiter = mkHighlight {}; 70 + Debug = mkHighlight {}; 71 + Ignore = mkHighlight {}; 72 + SpecialComment = { fg = brightWhite; }; 73 + Underlined = mkHighlight { style = "underline"; }; 74 + Error = { fg = brightRed; }; 75 + Todo = { fg = purple; }; 76 + 77 + # Highlighting Groups (descriptions and ordering from `:h hitest.vim`) 78 + ColorColumn = { bg = cursor; }; 79 + Conceal = mkHighlight {}; 80 + Cursor = { fg = black; bg=blue; }; 81 + CursorIM = mkHighlight {}; 82 + CursorColumn = { bg = cursor; }; 83 + CursorLine = { bg = gutter; }; 84 + Directory = { fg = blue; }; 85 + 86 + Diff = { 87 + Add = { bg = gutter; }; 88 + Change = mkHighlight {}; 89 + Delete = { fg = brightWhite; }; 90 + Text = { style = "strikethrough"; }; 91 + }; 92 + 93 + Pmenu = { 94 + base = { bg = grey; }; 95 + Sel = { fg = black; bg = blue; }; 96 + Sbar = { bg = element; }; 97 + Thumb = { bg = white; }; 98 + }; 99 + 100 + ErrorMsg = { fg = brightRed; }; 101 + WarningMsg = { fg = yellow; }; 102 + VertSplit = { fg = gutter; }; 103 + Folded = { bg = gutter; fg = brightWhite; }; 104 + FoldColumn = mkHighlight {}; 105 + SignColumn = mkHighlight {}; 106 + IncSearch = { fg = blue; style = "reverse"; }; 107 + LineNr = { fg = black; bg = black; }; 108 + CursorLineNr = { fg = brightWhite; bg = gutter; style = "bold"; }; 109 + MatchParen = { fg = blue; style = "underline"; }; 110 + ModeMsg = mkHighlight {}; 111 + MoreMsg = mkHighlight {}; 112 + NonText = { fg = element; }; 113 + Normal = { fg = darkWhite; }; 114 + Question = { fg = purple; }; 115 + Search = { fg = black; bg = yellow; }; 116 + SpecialKey = { fg = element; }; 117 + 118 + Spell = { 119 + Bad = { fg = red; style = "underline"; }; 120 + Cap = { fg = brightYellow; }; 121 + Local = { fg = brightYellow; }; 122 + Rare = { fg = brightYellow; }; 123 + }; 124 + 125 + TabLine = { 126 + base = { fg = brightWhite; }; 127 + Fill = mkHighlight {}; 128 + Sel = { fg = white; }; 129 + }; 130 + 131 + StatusLine = { fg = white; bg = cursor; }; 132 + StatusLineNC = { fg = brightWhite; }; 133 + Title = { fg = green; }; 134 + Visual = { bg = grey; }; 135 + VisualNOS = { fg = grey; }; 136 + WildMenu = { fg = black; bg = blue; }; 137 + NormalFloat = { bg = split; }; 138 + TreesitterContext = { bg = gutter; }; 139 + 140 + dockerfile.Keyword = { fg = purple; }; 141 + 142 + sh = { 143 + Set = { fg = cyan; }; 144 + SetOption = { fg = white; }; 145 + Statement = { fg = cyan; }; 146 + FunctionKey = { fg = purple; }; 147 + }; 148 + 149 + css = { 150 + AttrComma = { fg = purple; }; 151 + AttributeSelector = { fg = green; }; 152 + Braces = { fg = white; }; 153 + ClassName = { fg = brightYellow; }; 154 + ClassNameDot = { fg = brightYellow; }; 155 + Definition = { fg = purple; }; 156 + FontAttr = { fg = brightYellow; }; 157 + FontDescriptor = { fg = purple; }; 158 + FunctionName = { fg = blue; }; 159 + Identifier = { fg = blue; }; 160 + Important = { fg = purple; }; 161 + Include = { fg = white; }; 162 + IncludeKeyword = { fg = purple; }; 163 + MediaType = { fg = brightYellow; }; 164 + Prop = { fg = purple; }; 165 + PseudoClassId = { fg = brightYellow; }; 166 + SelectorOp = { fg = purple; }; 167 + SelectorOp2 = { fg = purple; }; 168 + TagName = { fg = red; }; 169 + Color = { fg = brightYellow; }; 170 + CommonAttr = { fg = blue; }; 171 + UnitDecorators = { fg = yellow; }; 172 + }; 173 + 174 + go.Declaration = { fg = purple; }; 175 + 176 + html = { 177 + Title = { fg = white; }; 178 + Arg = { fg = yellow; }; 179 + EndTag = { fg = cyan; }; 180 + Link = { fg = purple; }; 181 + SpecialChar = { fg = brightYellow; }; 182 + SpecialTagName = { fg = red; }; 183 + Tag = { fg = cyan; }; 184 + TagName = { fg = red; }; 185 + H1 = { fg = blue; }; 186 + H2 = { fg = blue; }; 187 + H3 = { fg = blue; }; 188 + H4 = { fg = blue; }; 189 + H5 = { fg = blue; }; 190 + H6 = { fg = blue; }; 191 + }; 192 + 193 + javaScript = { 194 + Braces = { fg = white; }; 195 + Function = { fg = purple; }; 196 + Identifier = { fg = purple; }; 197 + Null = { fg = brightYellow; }; 198 + Number = { fg = brightYellow; }; 199 + Require = { fg = cyan; }; 200 + Reserved = { fg = purple; }; 201 + }; 202 + 203 + # For: https://github.com/pangloss/vim-javascript 204 + js = { 205 + ArrowFunction = { fg = purple; }; 206 + ClassKeyword = { fg = purple; }; 207 + ClassDefinition = { fg = yellow; }; 208 + ClassMethodType = { fg = purple; }; 209 + ClassFuncName = { fg = blue; }; 210 + DestructuringBlock = { fg = blue; }; 211 + DocParam = { fg = blue; }; 212 + DocTags = { fg = purple; }; 213 + Export = { fg = purple; }; 214 + ExportDefault = { fg = red; }; 215 + ExtendsKeyword = { fg = purple; }; 216 + Conditional = { fg = purple; }; 217 + Operator = { fg = purple; }; 218 + From = { fg = purple; }; 219 + FuncArgs = { fg = blue; }; 220 + FuncCall = { fg = blue; }; 221 + ObjectProp = { fg = cyan; }; 222 + Function = { fg = purple; }; 223 + Generator = { fg = yellow; }; 224 + GlobalObjects = { fg = yellow; }; 225 + Import = { fg = purple; }; 226 + ModuleAs = { fg = purple; }; 227 + ModuleWords = { fg = purple; }; 228 + ModuleKeyword = { fg = blue; }; 229 + Modules = { fg = purple; }; 230 + Null = { fg = brightYellow; }; 231 + StorageClass = { fg = purple; }; 232 + Super = { fg = red; }; 233 + TemplateBraces = { fg = brightRed; }; 234 + TemplateVar = { fg = green; }; 235 + This = { fg = red; }; 236 + Undefined = { fg = brightYellow; }; 237 + }; 238 + 239 + # For: https://github.com/othree/yajs.vim 240 + javascript = { 241 + ArrowFunc = { fg = purple; }; 242 + ClassExtends = { fg = purple; }; 243 + ClassKeyword = { fg = purple; }; 244 + DocNotation = { fg = purple; }; 245 + DocParamName = { fg = blue; }; 246 + DocTags = { fg = purple; }; 247 + EndColons = { fg = white; }; 248 + Export = { fg = purple; }; 249 + FuncArg = { fg = white; }; 250 + FuncKeyword = { fg = purple; }; 251 + Identifier = { fg = red; }; 252 + Import = { fg = purple; }; 253 + MethodName = { fg = white; }; 254 + ObjectLabel = { fg = white; }; 255 + OpSymbol = { fg = cyan; }; 256 + OpSymbols = { fg = cyan; }; 257 + PropertyName = { fg = green; }; 258 + TemplateSB = { fg = brightRed; }; 259 + Variable = { fg = purple; }; 260 + }; 261 + 262 + typescript = { 263 + Identifier = { fg = red; }; 264 + Reserved = { fg = purple; }; 265 + EndColons = { fg = white; }; 266 + Braces = { fg = white; }; 267 + }; 268 + 269 + json = { 270 + CommentError = { fg = white; }; 271 + Keyword = { fg = blue; }; 272 + Boolean = { fg = red; }; 273 + Number = { fg = brightYellow; }; 274 + Quote = { fg = white; }; 275 + String = { fg = green; }; 276 + MissingCommaError = { fg = brightRed; style = "reverse"; }; 277 + NoQuotesError = { fg = brightRed; style = "reverse"; }; 278 + NumError = { fg = brightRed; style = "reverse"; }; 279 + StringSQError = { fg = brightRed; style = "reverse"; }; 280 + SemicolonError = { fg = brightRed; style = "reverse"; }; 281 + }; 282 + 283 + markdown = { 284 + Code = { fg = green; }; 285 + LinkReference = { fg = brightWhite; }; 286 + JekyllFrontMatter = { fg = brightWhite; }; 287 + CodeBlock = { fg = green; }; 288 + CodeDelimiter = { fg = green; }; 289 + HeadingDelimiter = { fg = red; }; 290 + Rule = { fg = brightWhite; }; 291 + HeadingRule = { fg = brightWhite; }; 292 + Delimiter = { fg = cyan; }; 293 + Id = { fg = purple; }; 294 + Blockquote = { fg = brightWhite; }; 295 + Italic = { fg = purple; style = "italic"; }; 296 + Bold = { fg = purple; style = "bold"; }; 297 + OrderedListMarker = { fg = red; }; 298 + IdDeclaration = { fg = blue; }; 299 + LinkDelimiter = { fg = white; }; 300 + }; 301 + 302 + mkd = { 303 + Italic = { fg = purple; style = "italic"; }; 304 + Bold = { fg = purple; style = "bold"; }; 305 + InlineURL = { fg = red; }; 306 + ListItem = { fg = yellow; }; 307 + Link = { fg = white; }; 308 + URL = { fg = red; }; 309 + }; 310 + 311 + xml = { 312 + Attrib = { fg = yellow; }; 313 + EndTag = { fg = red; }; 314 + Tag = { fg = red; }; 315 + TagName = { fg = red; }; 316 + }; 317 + 318 + php = { 319 + Include = { fg = purple; }; 320 + Class = { fg = yellow; }; 321 + Classes = { fg = yellow; }; 322 + Function = { fg = blue; }; 323 + Type = { fg = purple; }; 324 + Keyword = { fg = purple; }; 325 + VarSelector = { fg = purple; }; 326 + Identifier = { fg = white; }; 327 + Method = { fg = blue; }; 328 + Boolean = { fg = blue; }; 329 + Parent = { fg = white; }; 330 + Operator = { fg = purple; }; 331 + Region = { fg = purple; }; 332 + UseNamespaceSeparator = { fg = white; }; 333 + ClassNamespaceSeparator = { fg = white; }; 334 + DocTags = { fg = purple; style="italic"; }; 335 + DocParam = { fg = purple; style="italic"; }; 336 + }; 337 + 338 + debug = { 339 + Breakpoint = { fg = brightBlue; }; 340 + PC = { bg = brightBlue; fg = black; }; 341 + }; 342 + 343 + gitcommit = { 344 + Comment = { fg = brightWhite; }; 345 + Untracked = { fg = brightWhite; }; 346 + Discarded = { fg = brightWhite; }; 347 + Selected = { fg = brightWhite; }; 348 + Unmerged = { fg = green; }; 349 + OnBranch = mkHighlight {}; 350 + Branch = { fg = purple; }; 351 + NoBranch = { fg = purple; }; 352 + DiscardedType = { fg = red; }; 353 + SelectedType = { fg = green; }; 354 + Header = mkHighlight {}; 355 + UntrackedFile = { fg = cyan; }; 356 + DiscardedFile = { fg = red; }; 357 + SelectedFile = { fg = green; }; 358 + UntrackedArrow = { fg = cyan; }; 359 + DiscardedArrow = { fg = red; }; 360 + SelectedArrow = { fg = green; }; 361 + UnmergedFile = { fg = yellow; }; 362 + File = mkHighlight {}; 363 + Summary = { fg = white; }; 364 + Overflow = { fg = red; }; 365 + }; 366 + 367 + terminal = { 368 + background = { fg = black; }; 369 + foreground = { fg = white; }; 370 + black = { fg = black; }; 371 + red = { fg = red; }; 372 + green = { fg = green; }; 373 + yellow = { fg = yellow; }; 374 + blue = { fg = blue; }; 375 + purple = { fg = purple; }; 376 + cyan = { fg = cyan; }; 377 + white = { fg = white; }; 378 + grey = { fg = grey; }; 379 + brightRed = { fg = brightRed; }; 380 + brightGreen = { fg = brightGreen; }; 381 + brightYellow = { fg = brightYellow; }; 382 + brightBlue = { fg = brightBlue; }; 383 + brightPurple = { fg = brightPurple; }; 384 + brightCyan = { fg = brightCyan; }; 385 + brightWhite = { fg = brightWhite; }; 386 + }; 387 + 388 + GitSigns = { 389 + Add = { fg = green; }; 390 + Change = { fg = brightBlue; }; 391 + Delete = { fg = brightRed; }; 392 + }; 393 + 394 + Signify = { 395 + Add = { fg = green; }; 396 + Change = { fg = brightBlue; }; 397 + Delete = { fg = brightRed; }; 398 + }; 399 + 400 + GitGutter = { 401 + Add = { fg = green; }; 402 + Change = { fg = brightBlue; }; 403 + Delete = { fg = brightRed; }; 404 + }; 405 + 406 + Neomake = { 407 + WarningSign = { fg = yellow; }; 408 + ErrorSign = { fg = brightRed; }; 409 + InfoSign = { fg = blue; }; 410 + }; 411 + 412 + DiagnosticSign = { 413 + Warn = { fg = yellow; }; 414 + Error = { fg = brightRed; }; 415 + Information = { fg = blue; }; 416 + Hint = { fg = yellow; }; 417 + }; 418 + 419 + Telescope = { 420 + Border = { fg = split; }; 421 + Matching = { fg = blue; style = "bold"; }; 422 + }; 423 + 424 + TS.Definition = { fg = blue; bg = brightWhite; }; 425 + EasyMotion.IncSearch = { fg = blue; style = "bold"; }; 426 + }; 427 + }
-7
config/rust.nix
··· 1 - { pkgs, ... }: 2 - 3 - { 4 - environment.systemPackages = [ 5 - pkgs.rustup 6 - ]; 7 - }
-94
modules/dnscrypt.nix
··· 1 - { config, lib, pkgs, ... }: with lib; 2 - 3 - let 4 - inherit (lib) optional flatten; 5 - inherit (lib.systems.elaborate { system = builtins.currentSystem; }) isLinux isDarwin; 6 - 7 - cfg = config.services.dnscrypt2; 8 - in 9 - 10 - { 11 - options.services.dnscrypt2 = { 12 - enable = mkEnableOption "dnscrypt-proxy2"; 13 - 14 - package = mkOption { 15 - type = types.path; 16 - default = pkgs.dnscrypt-proxy2; 17 - defaultText = "pkgs.dnscrypt-proxy2"; 18 - description = "This option specifies the dnscrypt-proxy package to use."; 19 - }; 20 - 21 - settings = mkOption { 22 - description = '' 23 - Attrset that is converted and passed as TOML config file. 24 - For available params, see: <link xlink:href="https://github.com/DNSCrypt/dnscrypt-proxy/blob/master/dnscrypt-proxy/example-dnscrypt-proxy.toml"/> 25 - ''; 26 - example = literalExample '' 27 - { 28 - sources.public-resolvers = { 29 - urls = [ "https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md" ]; 30 - cache_file = "public-resolvers.md"; 31 - minisign_key = "RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3"; 32 - refresh_delay = 72; 33 - }; 34 - } 35 - ''; 36 - type = types.attrs; 37 - default = {}; 38 - }; 39 - 40 - configFile = mkOption { 41 - description = '' 42 - Path to TOML config file. See: <link xlink:href="https://github.com/DNSCrypt/dnscrypt-proxy/blob/master/dnscrypt-proxy/example-dnscrypt-proxy.toml"/> 43 - If this option is set, it will override any configuration done in options.services.dnscrypt.settings. 44 - ''; 45 - example = "/etc/dnscrypt-proxy/dnscrypt-proxy.toml"; 46 - type = types.path; 47 - default = pkgs.runCommand "dnscrypt-proxy.toml" { 48 - json = builtins.toJSON cfg.settings; 49 - passAsFile = [ "json" ]; 50 - } '' 51 - ${pkgs.remarshal}/bin/json2toml < $jsonPath > $out 52 - ''; 53 - defaultText = literalExample "TOML file generated from services.dnscrypt.settings"; 54 - }; 55 - }; 56 - 57 - config = mkIf cfg.enable (mkMerge [ 58 - { 59 - environment.systemPackages = [ 60 - cfg.package 61 - ]; 62 - } 63 - 64 - (optionalAttrs isLinux { 65 - networking.nameservers = mkDefault [ "127.0.0.1" ]; 66 - 67 - systemd.services.dnscrypt= { 68 - after = [ "network.target" ]; 69 - wantedBy = [ "multi-user.target" ]; 70 - serviceConfig = { 71 - AmbientCapabilities = "CAP_NET_BIND_SERVICE"; 72 - DynamicUser = true; 73 - ExecStart = "${cfg.package}/bin/dnscrypt-proxy -config ${cfg.configFile}"; 74 - Restart = "always"; 75 - }; 76 - }; 77 - }) 78 - 79 - (optionalAttrs isDarwin { 80 - networking.knownNetworkServices = mkDefault [ "Wi-Fi" ]; 81 - networking.dns = mkDefault [ "127.0.0.1" ]; 82 - 83 - launchd.daemons.dnscrypt = { 84 - serviceConfig.ProgramArguments = [ 85 - "${cfg.package}/bin/dnscrypt-proxy" 86 - "-config" "${cfg.configFile}" 87 - ]; 88 - 89 - serviceConfig.KeepAlive = true; 90 - serviceConfig.RunAtLoad = true; 91 - }; 92 - }) 93 - ]); 94 - }
-82
modules/theme.nix
··· 1 - { config, lib, pkgs, ... }: with lib; 2 - 3 - rec { 4 - mkColor = gui: cterm: cterm16: { gui, cterm, cterm16 }; 5 - 6 - colors = { 7 - visualBlack = (mkColor "NONE" "NONE" "0"); 8 - textGrey = (mkColor "#697098" "59" "15"); 9 - textGutter = (mkColor "#4B5263" "238" "15"); 10 - cursor = (mkColor "#2C323C" "236" "8"); 11 - menuBackground = (mkColor "#3E4452" "237" "8"); 12 - menuForeground = (mkColor "#3B4048" "238" "15"); 13 - split = (mkColor "#181A1F" "59" "15"); 14 - 15 - black = (mkColor "#292D3E" "235" "0"); 16 - grey = (mkColor "#3E4452" "237" "15"); 17 - 18 - red = (mkColor "#FF5370" "204" "1"); 19 - brightRed = (mkColor "#BE5046" "196" "9"); 20 - darkRed = (mkColor "#FF869A" "204" "1"); 21 - 22 - green = (mkColor "#C3E88D" "114" "2"); 23 - brightGreen = (mkColor "#C3E88D" "114" "2"); 24 - 25 - yellow = (mkColor "#FFCB6B" "180" "3"); 26 - brightYellow = (mkColor "#F78C6C" "173" "11"); 27 - 28 - blue = (mkColor "#82B1FF" "39" "4"); 29 - brightBlue = (mkColor "#939EDE" "39" "4"); 30 - 31 - purple = (mkColor "#C792EA" "170" "5"); 32 - brightPurple = (mkColor "#FF45AE" "170" "5"); 33 - 34 - cyan = (mkColor "#89DDFF" "38" "6"); 35 - brightCyan = (mkColor "#20d6e3" "38" "6"); 36 - 37 - white = (mkColor "#BFC7D5" "145" "7"); 38 - brightWhite = (mkColor "#697098" "59" "15"); 39 - }; 40 - 41 - transparent = { gui: "NONE", cterm: "NONE", cterm16: "NONE" }; 42 - 43 - mkVimHighlight = group: { fg ? transparent, bg ? transparent, style ? "NONE" }: 44 - "hi ${group} ctermfg=${fg.cterm} ctermbg=${bg.cterm} cterm=${style} guifg=${fg.gui} guibg=${bg.gui} gui=${style}"; 45 - 46 - mkVimSyntax = let 47 - toKey = path: 48 - ${concatStrings (map (str: ${toUpper (substring 0 1 str)} ++ ${substrings 1 (stringLength str) str}) path)} 49 - recurse = path: value: 50 - if isAttrs value then 51 - mapAttrsToList (name: value: recurse (path ++ [ name ]) value) value 52 - else if length path > 1 then { 53 - ${toKey path} = value; 54 - } else { 55 - ${head path} = value; 56 - }; 57 - in attrs: 58 - concatStringsSep "\n" (mapAttrsToList mkVimHighlight (flatten (recurse [] attrs))); 59 - 60 - kitty = colors: '' 61 - background ${colors.black.gui} 62 - foreground ${colors.white.gui} 63 - selection_background ${colors.grey.gui} 64 - selection_foreground ${colors.white.gui} 65 - color0 ${colors.black.gui} 66 - color1 ${colors.red.gui} 67 - color2 ${colors.green.gui} 68 - color3 ${colors.yellow.gui} 69 - color4 ${colors.blue.gui} 70 - color5 ${colors.purple.gui} 71 - color6 ${colors.cyan.gui} 72 - color7 ${colors.white.gui} 73 - color8 ${colors.grey.gui} 74 - color9 ${colors.brightRed.gui} 75 - color10 ${colors.brightGreen.gui} 76 - color11 ${colors.brightYellow.gui} 77 - color12 ${colors.brightBlue.gui} 78 - color13 ${colors.brightPurple.gui} 79 - color14 ${colors.brightCyan.gui} 80 - color15 ${colors.brightWhite.gui} 81 - ''; 82 - }
-2
profiles/common.nix
··· 9 9 ]; 10 10 11 11 imports = flatten [ 12 - ../config/dns.nix 13 12 ../config/shell.nix 14 13 ../config/nvim/default.nix 15 14 ../config/nodejs.nix 16 - ../config/rust.nix 17 15 ../config/gpg.nix 18 16 ../config/fonts.nix 19 17 ../config/term.nix
+1
profiles/tools.nix
··· 16 16 temporal 17 17 dive 18 18 caddy 19 + wasmtime 19 20 ]; 20 21 }
+1
profiles/users.nix
··· 9 9 { 10 10 home-manager = { 11 11 useGlobalPkgs = true; 12 + useUserPackages = true; 12 13 users.phil = _: { 13 14 manual.manpages.enable = false; 14 15 home.stateVersion = "22.11";