this repo has no description
1
fork

Configure Feed

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

Neovim Improvements

Ben C 3c2312b0 fb6dd154

+847 -151
+36 -36
flake.lock
··· 31 31 ] 32 32 }, 33 33 "locked": { 34 - "lastModified": 1750153510, 35 - "narHash": "sha256-NYHXXJZ9m4fJpKk9tKn/EExX87SqcBcRINOGF7hKRLI=", 34 + "lastModified": 1751021896, 35 + "narHash": "sha256-L9u68mNPPiuW7+OV5BKbXaj/AENTiiuEx8+QnMBjRlU=", 36 36 "owner": "catppuccin", 37 37 "repo": "nix", 38 - "rev": "4e95eaf8a351956d75cc400318579967ca2b6d0f", 38 + "rev": "a6b0e34d083c79f08efabb1fd6ccf12b882daae6", 39 39 "type": "github" 40 40 }, 41 41 "original": { ··· 46 46 }, 47 47 "crane": { 48 48 "locked": { 49 - "lastModified": 1748970125, 50 - "narHash": "sha256-UDyigbDGv8fvs9aS95yzFfOKkEjx1LO3PL3DsKopohA=", 49 + "lastModified": 1750266157, 50 + "narHash": "sha256-tL42YoNg9y30u7zAqtoGDNdTyXTi8EALDeCB13FtbQA=", 51 51 "owner": "ipetkov", 52 52 "repo": "crane", 53 - "rev": "323b5746d89e04b22554b061522dfce9e4c49b18", 53 + "rev": "e37c943371b73ed87faf33f7583860f81f1d5a48", 54 54 "type": "github" 55 55 }, 56 56 "original": { ··· 202 202 ] 203 203 }, 204 204 "locked": { 205 - "lastModified": 1750683087, 206 - "narHash": "sha256-CkmobghX9K9soC4DoorFo/vlWXxpf8xuZyoCsOnWzqM=", 205 + "lastModified": 1751287849, 206 + "narHash": "sha256-tpOX5x+Chodk/v8wYIzncX5Sq7mbKe0mMAWN0leYpCI=", 207 207 "owner": "nix-community", 208 208 "repo": "flakelight", 209 - "rev": "aa93e0e1ecdccc70c7a185f60c562effbfe3c8d9", 209 + "rev": "16a2ab5cdc789682d80c2c8511df338fd13fc1ca", 210 210 "type": "github" 211 211 }, 212 212 "original": { ··· 286 286 ] 287 287 }, 288 288 "locked": { 289 - "lastModified": 1750798083, 290 - "narHash": "sha256-DTCCcp6WCFaYXWKFRA6fiI2zlvOLCf5Vwx8+/0R8Wc4=", 289 + "lastModified": 1751384836, 290 + "narHash": "sha256-7xRbl/VLXxE5DzJmk1wdKWJmPx8rAfNC/a6mXtqp5cc=", 291 291 "owner": "nix-community", 292 292 "repo": "home-manager", 293 - "rev": "ff31a4677c1a8ae506aa7e003a3dba08cb203f82", 293 + "rev": "479f8889675770881033878a1c114fbfc6de7a4d", 294 294 "type": "github" 295 295 }, 296 296 "original": { ··· 354 354 "rust-overlay": "rust-overlay" 355 355 }, 356 356 "locked": { 357 - "lastModified": 1750168384, 358 - "narHash": "sha256-PBfJ7dGsR02im/RYN8wXII8yNPFhKxiPdq+JDfbvD2k=", 357 + "lastModified": 1751381593, 358 + "narHash": "sha256-js1XwtJpYhvQrrTaVzViybpztkHJVZ63aXOlFAcTENM=", 359 359 "owner": "nix-community", 360 360 "repo": "lanzaboote", 361 - "rev": "38c2addd2e0cedcb03708de6e6c21fb1be86d410", 361 + "rev": "f4eb75540307c2b33521322c04b7fea74e48a66f", 362 362 "type": "github" 363 363 }, 364 364 "original": { ··· 374 374 ] 375 375 }, 376 376 "locked": { 377 - "lastModified": 1750565152, 378 - "narHash": "sha256-A6ZIoIgaPPkzIVxKuaxwEJicPOeTwC/MD9iuC3FVhDM=", 377 + "lastModified": 1751170039, 378 + "narHash": "sha256-3EKpUmyGmHYA/RuhZjINTZPU+OFWko0eDwazUOW64nw=", 379 379 "owner": "nix-community", 380 380 "repo": "nix-index-database", 381 - "rev": "78cd697acc2e492b4e92822a4913ffad279c20e6", 381 + "rev": "9c932ae632d6b5150515e5749b198c175d8565db", 382 382 "type": "github" 383 383 }, 384 384 "original": { ··· 389 389 }, 390 390 "nixos-hardware": { 391 391 "locked": { 392 - "lastModified": 1750837715, 393 - "narHash": "sha256-2m1ceZjbmgrJCZ2PuQZaK4in3gcg3o6rZ7WK6dr5vAA=", 392 + "lastModified": 1751379130, 393 + "narHash": "sha256-TObxiGbuX/4FbOnzDRvznfMUjIgS+d71+BetT35EOB8=", 394 394 "owner": "NixOS", 395 395 "repo": "nixos-hardware", 396 - "rev": "98236410ea0fe204d0447149537a924fb71a6d4f", 396 + "rev": "8b1f894089789eb39eacf0d6891d1e17cc3a84ab", 397 397 "type": "github" 398 398 }, 399 399 "original": { ··· 404 404 }, 405 405 "nixpkgs": { 406 406 "locked": { 407 - "lastModified": 1750741721, 408 - "narHash": "sha256-Z0djmTa1YmnGMfE9jEe05oO4zggjDmxOGKwt844bUhE=", 407 + "lastModified": 1751271578, 408 + "narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=", 409 409 "owner": "NixOS", 410 410 "repo": "nixpkgs", 411 - "rev": "4b1164c3215f018c4442463a27689d973cffd750", 411 + "rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df", 412 412 "type": "github" 413 413 }, 414 414 "original": { ··· 428 428 "systems": "systems_2" 429 429 }, 430 430 "locked": { 431 - "lastModified": 1750788551, 432 - "narHash": "sha256-7tQIndetzeVtTuYQ7vYTaABUS1muiigdXK3XyXuPzvg=", 431 + "lastModified": 1751144320, 432 + "narHash": "sha256-KJsKiGfkfXFB23V26NQ1p+UPsexI6NKtivnrwSlWWdQ=", 433 433 "owner": "nix-community", 434 434 "repo": "nixvim", 435 - "rev": "6a15c2ffc50ca7998df2fd6b86c3c9f298e9137a", 435 + "rev": "ceb52aece5d571b37096945c2815604195a04eb4", 436 436 "type": "github" 437 437 }, 438 438 "original": { ··· 498 498 ] 499 499 }, 500 500 "locked": { 501 - "lastModified": 1749636823, 502 - "narHash": "sha256-WUaIlOlPLyPgz9be7fqWJA5iG6rHcGRtLERSCfUDne4=", 501 + "lastModified": 1750779888, 502 + "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", 503 503 "owner": "cachix", 504 504 "repo": "pre-commit-hooks.nix", 505 - "rev": "623c56286de5a3193aa38891a6991b28f9bab056", 505 + "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", 506 506 "type": "github" 507 507 }, 508 508 "original": { ··· 587 587 ] 588 588 }, 589 589 "locked": { 590 - "lastModified": 1749955444, 591 - "narHash": "sha256-CllTHvHX8KAdAZ+Lxzd23AmZTxO1Pfy+zC43/5tYkAE=", 590 + "lastModified": 1751165203, 591 + "narHash": "sha256-3QhlpAk2yn+ExwvRLtaixWsVW1q3OX3KXXe0l8VMLl4=", 592 592 "owner": "oxalica", 593 593 "repo": "rust-overlay", 594 - "rev": "539ba15741f0e6691a2448743dbc601d8910edce", 594 + "rev": "90f547b90e73d3c6025e66c5b742d6db51c418c3", 595 595 "type": "github" 596 596 }, 597 597 "original": { ··· 607 607 ] 608 608 }, 609 609 "locked": { 610 - "lastModified": 1750819193, 611 - "narHash": "sha256-XvkupGPZqD54HuKhN/2WhbKjAHeTl1UEnWspzUzRFfA=", 610 + "lastModified": 1751338093, 611 + "narHash": "sha256-/yd9nPcTfUZPFtwjRbdB5yGLdt3LTPqz6Ja63Joiahs=", 612 612 "owner": "oxalica", 613 613 "repo": "rust-overlay", 614 - "rev": "1ba3b9c59b68a4b00156827ad46393127b51b808", 614 + "rev": "6cfb7821732dac2d3e2dea857a5613d3b856c20c", 615 615 "type": "github" 616 616 }, 617 617 "original": {
+1 -1
nixosModules/base/nix.nix
··· 27 27 fallback = true; 28 28 }; 29 29 gc = { 30 - automatic = true; 30 + automatic = false; 31 31 dates = "weekly"; 32 32 }; 33 33 };
+5
nixosModules/dev/nix.nix
··· 1 1 {pkgs, ...}: { 2 + nix.settings = { 3 + substituters = ["https://cache.garnix.io"]; 4 + trusted-public-keys = ["cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="]; 5 + }; 6 + 2 7 environment.systemPackages = with pkgs; [ 3 8 alejandra 4 9 ];
+251 -38
nixosModules/dev/nvim.nix
··· 26 26 27 27 colorschemes.catppuccin = { 28 28 enable = true; 29 - settings.flavor = config.catppuccin.flavor; 29 + settings = { 30 + inherit (config.catppuccin) flavor; 31 + no_underline = false; 32 + no_bold = false; 33 + no_italics = false; 34 + # transparent_background = true; 35 + integrations = { 36 + alpha = true; 37 + dropbar.enabled = true; 38 + fidget = true; 39 + markdown = true; 40 + dap = true; 41 + ufo = true; 42 + rainbow_delimiters = true; 43 + lsp_trouble = true; 44 + which_key = true; 45 + telescope.enabled = true; 46 + treesitter = true; 47 + lsp_saga = true; 48 + illuminate = { 49 + enabled = true; 50 + lsp = true; 51 + }; 52 + gitsigns = true; 53 + neotree = true; 54 + native_lsp = { 55 + enabled = true; 56 + inlay_hints = { 57 + background = true; 58 + }; 59 + virtual_text = { 60 + errors = ["italic"]; 61 + hints = ["italic"]; 62 + information = ["italic"]; 63 + warnings = ["italic"]; 64 + ok = ["italic"]; 65 + }; 66 + underlines = { 67 + errors = ["underline"]; 68 + hints = ["underline"]; 69 + information = ["underline"]; 70 + warnings = ["underline"]; 71 + }; 72 + }; 73 + }; 74 + }; 30 75 }; 31 76 77 + extraConfigLua = '' 78 + vim.diagnostic.config({ 79 + signs = { 80 + text = { 81 + [vim.diagnostic.severity.ERROR] = "", 82 + [vim.diagnostic.severity.WARN] = "", 83 + }, 84 + }, 85 + }) 86 + ''; 87 + 32 88 autoGroups = { 33 89 restore_cursor = {}; 90 + open_neotree = {}; 34 91 }; 35 92 36 93 opts = { ··· 40 97 cursorline = true; 41 98 showtabline = 2; 42 99 breakindent = true; 43 - # fillchars.__raw = "[[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]"; 44 - # foldcolumn = "1"; 100 + fillchars.__raw = ''[[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]''; 101 + foldcolumn = "1"; 102 + foldlevel = 10; 103 + foldlevelstart = 10; 104 + foldenable = true; 45 105 }; 46 106 47 107 autoCmd = [ ··· 49 109 group = "restore_cursor"; 50 110 event = ["BufReadPost"]; 51 111 pattern = "*"; 52 - callback = { 53 - __raw = '' 54 - function() 55 - if 56 - vim.fn.line "'\"" > 1 57 - and vim.fn.line "'\"" <= vim.fn.line "$" 58 - and vim.bo.filetype ~= "commit" 59 - and vim.fn.index({ "xxd", "gitrebase" }, vim.bo.filetype) == -1 60 - then 61 - vim.cmd "normal! g`\"" 62 - end 112 + callback.__raw = '' 113 + function() 114 + if 115 + vim.fn.line "'\"" > 1 116 + and vim.fn.line "'\"" <= vim.fn.line "$" 117 + and vim.bo.filetype ~= "commit" 118 + and vim.fn.index({ "xxd", "gitrebase" }, vim.bo.filetype) == -1 119 + then 120 + vim.cmd "normal! g`\"" 63 121 end 64 - ''; 65 - }; 122 + end 123 + ''; 124 + } 125 + { 126 + group = "open_neotree"; 127 + event = ["BufRead"]; 128 + pattern = "*"; 129 + once = true; 130 + callback.__raw = '' 131 + function() 132 + if 133 + vim.bo.filetype ~= "alpha" 134 + and (not vim.g.neotree_opened) 135 + then 136 + vim.cmd "Neotree show" 137 + vim.g.neotree_opened = true 138 + end 139 + end 140 + ''; 66 141 } 67 142 ]; 68 143 ··· 160 235 } 161 236 ]; 162 237 163 - extraPlugins = with pkgs.vimPlugins; [{plugin = pkgs.nvim-mdx;} {plugin = tiny-devicons-auto-colors-nvim;} {plugin = nvim-biscuits;}]; 238 + extraPlugins = with pkgs.vimPlugins; [ 239 + {plugin = pkgs.nvim-mdx;} 240 + {plugin = pkgs.nvim-flatten;} 241 + {plugin = tiny-devicons-auto-colors-nvim;} 242 + {plugin = nvim-biscuits;} 243 + ]; 164 244 165 245 plugins = { 166 246 telescope = { ··· 233 313 position = "center"; 234 314 }; 235 315 layout = let 236 - o = {position = "center";}; 316 + o = { 317 + position = "center"; 318 + }; 237 319 txt = s: { 238 320 type = "text"; 239 321 val = s; 240 - opts = {hl = "Keyword";} // o; 322 + opts = 323 + { 324 + hl = "Keyword"; 325 + } 326 + // o; 241 327 }; 242 328 grp = g: { 243 329 type = "group"; ··· 268 354 val = 2; 269 355 }; 270 356 in 271 - [pad pad pad] 357 + [ 358 + pad 359 + pad 360 + pad 361 + ] 272 362 ++ (lib.intersperse pad [ 273 363 ( 274 364 let 275 - banner = pkgs.runCommand "nvim-banner" {} ''${pkgs.toilet}/bin/toilet " NIXVIM " -f mono12 -F border > $out''; 365 + banner = 366 + pkgs.runCommand "nvim-banner" {} 367 + ''${pkgs.toilet}/bin/toilet " NIXVIM " -f mono12 -F border > $out''; 276 368 # bannerText = builtins.readFile banner; 277 369 in 278 370 cmd { 279 - command = ''mut i = 1; loop { let s = (open ${banner}) | ${pkgs.lolcat}/bin/lolcat -f -S $i; clear; print -n -r $s; sleep 50ms; $i += 3; }''; 371 + command = ''open ${banner} | ${pkgs.lolcat}/bin/lolcat -f -S (random int 1..360)''; 280 372 # Hardcoding to prevent IFD 281 - width = 83; #(builtins.stringLength (lib.trim (builtins.elemAt (lib.splitString "\n" bannerText) 1))) - 3; 282 - height = 12; #(builtins.length (lib.splitString "\n" bannerText)) - 1; 373 + width = 83; # (builtins.stringLength (lib.trim (builtins.elemAt (lib.splitString "\n" bannerText) 1))) - 3; 374 + height = 12; # (builtins.length (lib.splitString "\n" bannerText)) - 1; 283 375 } 284 376 ) 285 377 (grp [ ··· 310 402 311 403 toggleterm = { 312 404 enable = true; 405 + luaConfig.post = '' 406 + local flatten = require('flatten') 407 + 408 + ---@type Terminal? 409 + local saved_terminal 410 + 411 + flatten.setup({ 412 + hooks = { 413 + should_block = function(argv) 414 + return vim.tbl_contains(argv, "-b") 415 + end, 416 + pre_open = function() 417 + local term = require("toggleterm.terminal") 418 + local termid = term.get_focused_id() 419 + saved_terminal = term.get(termid) 420 + end, 421 + post_open = function(opts) 422 + if opts.is_blocking and saved_terminal then 423 + saved_terminal:close() 424 + else 425 + vim.api.nvim_set_current_win(opts.winnr) 426 + end 427 + 428 + if ft == "gitcommit" or ft == "gitrebase" then 429 + vim.api.nvim_create_autocmd("BufWritePost", { 430 + buffer = opts.bufnr, 431 + once = true, 432 + callback = vim.schedule_wrap(function() 433 + vim.api.nvim_buf_delete(opts.bufnr, {}) 434 + end), 435 + }) 436 + end 437 + end, 438 + block_end = function() 439 + vim.schedule(function() 440 + if saved_terminal then 441 + saved_terminal:open() 442 + saved_terminal = nil 443 + end 444 + end) 445 + end, 446 + }, 447 + window = { 448 + open = "alternate", 449 + }, 450 + }) 451 + ''; 313 452 settings = { 314 453 open_mapping = "[[<C-x>]]"; 315 454 direction = "horizontal"; ··· 333 472 illuminate.enable = true; 334 473 cursorline.enable = true; 335 474 475 + neoscroll = { 476 + enable = true; 477 + settings.easing_function = "cubic"; 478 + }; 336 479 scrollview.enable = true; 337 480 338 481 navbuddy = { ··· 352 495 settings.logo = "https://raw.githubusercontent.com/IogaMaster/neovim/main/.github/assets/nixvim-dark.webp"; 353 496 }; 354 497 355 - barbar = { 498 + bufdelete.enable = true; 499 + 500 + bufferline = { 356 501 enable = true; 357 - keymaps = { 358 - close.key = "<C-q>"; 359 - closeAllButCurrent.key = "<C-S-q-Up>"; 360 - next.key = "<C-Tab>"; 361 - previous.key = "<C-S-Tab>"; 362 - }; 363 - settings.icons = { 364 - diagnostics."vim.diagnostic.severity.ERROR".enabled = true; 365 - diagnostics."vim.diagnostic.severity.WARN".enabled = true; 502 + settings.options = { 503 + indicator.style = "none"; 504 + close_icon = ""; 505 + buffer_close_icon = ""; 506 + offsets = [ 507 + { 508 + filetype = "neo-tree"; 509 + text = " Neovim"; 510 + text_align = "center"; 511 + separator = true; 512 + } 513 + ]; 514 + separator_style = "slant"; 515 + close_command.__raw = ''require('bufdelete').bufdelete''; 516 + hover = { 517 + enabled = true; 518 + delay = 150; 519 + reveal = ["close"]; 520 + }; 521 + sort_by = "insert_at_end"; 522 + diagnostics = "nvim_lsp"; 523 + diagnostics_indicator.__raw = '' 524 + function(count, level, diagnostics_dict, context) 525 + local icon = level:match("error") and " " or " " 526 + return " " .. icon .. count 527 + end 528 + ''; 366 529 }; 367 530 }; 368 531 369 532 statuscol = { 370 533 enable = true; 534 + settings.segments = [ 535 + { 536 + click = "v:lua.ScSa"; 537 + text = [ 538 + "%s" 539 + ]; 540 + } 541 + { 542 + click = "v:lua.ScLa"; 543 + text = [ 544 + { 545 + __raw = "require('statuscol.builtin').lnumfunc"; 546 + } 547 + ]; 548 + } 549 + { 550 + click = "v:lua.ScFa"; 551 + condition = [ 552 + true 553 + { 554 + __raw = "require('statuscol.builtin').not_empty"; 555 + } 556 + ]; 557 + text = [ 558 + { 559 + __raw = "require('statuscol.builtin').foldfunc"; 560 + } 561 + " " 562 + ]; 563 + } 564 + ]; 371 565 }; 372 566 373 - # nvim-ufo.enable = true; 567 + dropbar.enable = true; 568 + 569 + nvim-ufo = { 570 + enable = true; 571 + }; 374 572 gitsigns.enable = true; 375 573 376 574 dap = { ··· 386 584 "trouble" 387 585 "toggleterm" 388 586 ]; 587 + 588 + options = { 589 + theme = "catppuccin"; 590 + disabled_filetypes = ["neo-tree"]; 591 + }; 389 592 }; 390 593 }; 391 594 392 595 project-nvim = { 393 596 enable = true; 394 597 enableTelescope = true; 598 + }; 599 + 600 + neo-tree = { 601 + enable = true; 602 + addBlankLineAtTop = true; 603 + window.width = 30; 604 + closeIfLastWindow = true; 395 605 }; 396 606 397 607 # image.enable = true; ··· 412 622 fidget = { 413 623 enable = true; 414 624 settings.notification = { 415 - overrideVimNotify = true; 416 - window.align = "top"; 625 + window = { 626 + align = "top"; 627 + winblend = 0; 628 + }; 417 629 }; 418 630 }; 419 631 ··· 473 685 474 686 lspsaga = { 475 687 enable = true; 688 + symbolInWinbar.enable = false; 476 689 lightbulb.enable = false; 477 690 ui = { 478 691 codeAction = "󰛨"; ··· 510 723 html.enable = true; 511 724 marksman.enable = true; 512 725 cssls.enable = true; 513 - tailwindcss.enable = true; 726 + # tailwindcss.enable = true; Disabled until it doesn't build nodejs from source, bad tailwind!! 514 727 jsonls.enable = true; 515 728 yamlls.enable = true; 516 729 ruff.enable = true;
+1 -1
nixosModules/graphics/apps.nix
··· 158 158 159 159 ## Media 160 160 obs-studio 161 - # qmplay2 161 + loupe 162 162 gimp 163 163 inkscape 164 164 lorien
+1 -1
nixosModules/graphics/audio.nix
··· 1 1 {pkgs, ...}: { 2 - # When you squint and don't think about it, audio is graphics (I don't wanna make anoher role bc why would I do that) 2 + # When you squint and don't think about it, audio is graphics (I don't wanna make another role bc why would I do that) 3 3 services.pulseaudio.enable = false; 4 4 5 5 security.rtkit.enable = true; # Allows pipewire and friends to run realtime
+136 -69
nixosModules/graphics/floorp.nix
··· 1 - {lib, ...}: { 1 + { 2 + lib, 3 + pkgs, 4 + ... 5 + }: { 6 + environment.systemPackages = with pkgs; [ 7 + floorp 8 + ]; 9 + 2 10 home-manager.users.bean.programs.floorp = { 3 11 enable = true; 4 12 policies = { ··· 75 83 "privacy.globalprivacycontrol.enabled" = lock true; 76 84 }; 77 85 78 - Extensions.Install = map (x: "https://addons.mozilla.org/firefox/downloads/latest/${x}/latest.xpi") [ 79 - # Appearance 80 - "catppuccin-mocha-green" 81 - "darkreader" 82 - "material-icons-for-github" 83 - "refined-github-" 86 + Extensions.Install = 87 + map (x: "https://addons.mozilla.org/firefox/downloads/latest/${x}/latest.xpi") 88 + [ 89 + # Appearance 90 + "catppuccin-mocha-green" 91 + "darkreader" 92 + "material-icons-for-github" 93 + "refined-github-" 84 94 85 - # Security / Privacy 86 - "privacy-badger17" 87 - "decentraleyes" 88 - "canvasblocker" 89 - "facebook-container" 95 + # Security / Privacy 96 + "privacy-badger17" 97 + "decentraleyes" 98 + "canvasblocker" 99 + "facebook-container" 90 100 91 - ## Ads / Youtube 92 - "adnauseam" 93 - "sponsorblock" 94 - "youtube-shorts-block" 95 - "dearrow" 101 + ## Ads / Youtube 102 + "adnauseam" 103 + "sponsorblock" 104 + "youtube-shorts-block" 105 + "dearrow" 96 106 97 - # Information 98 - "flagfox" 99 - "awesome-rss" 107 + # Information 108 + "flagfox" 109 + "awesome-rss" 100 110 101 - # Devtools 102 - "react-devtools" 103 - "open-graph-preview-and-debug" 104 - "wave-accessibility-tool" 105 - "styl-us" 111 + # Devtools 112 + "react-devtools" 113 + "open-graph-preview-and-debug" 114 + "wave-accessibility-tool" 115 + "styl-us" 106 116 107 - # Misc 108 - "plasma-integration" # integration with MPRIS & KDE Connect 109 - "keepassxc-browser" # integration with KeepassXC 110 - "meowad" # Replace ads on Twitter with :3 111 - ]; 117 + # Misc 118 + "plasma-integration" # integration with MPRIS & KDE Connect 119 + "keepassxc-browser" # integration with KeepassXC 120 + "meowad" # Replace ads on Twitter with :3 121 + ]; 112 122 113 123 ExtensionSettings."*" = { 114 124 default_area = "menupanel"; ··· 124 134 icon = iconUrl; 125 135 urls = [{template = queryUrl;}]; 126 136 }; 127 - mkEngine = aliases: queryUrl: iconExt: ( 128 - mkEngineForceFavicon aliases queryUrl ( 129 - let 130 - noPath = 131 - lib.strings.concatStrings 132 - ( 133 - lib.strings.intersperse "/" 134 - ( 135 - lib.lists.take 3 136 - (lib.strings.splitString "/" queryUrl) 137 - ) 138 - ); 139 - in "${noPath}/favicon.${iconExt}" 140 - ) 141 - ); 137 + mkEngine = aliases: queryUrl: iconExt: (mkEngineForceFavicon aliases queryUrl ( 138 + let 139 + noPath = lib.strings.concatStrings ( 140 + lib.strings.intersperse "/" (lib.lists.take 3 (lib.strings.splitString "/" queryUrl)) 141 + ); 142 + in "${noPath}/favicon.${iconExt}" 143 + )); 142 144 in { 143 145 # Dev 144 - "GitHub Repos" = mkEngineForceFavicon ["@gh" "@github"] "https://github.com/search?type=repositories&q={searchTerms}" "https://github.githubassets.com/favicons/favicon-dark.svg"; 145 - "SourceGraph" = mkEngine ["@sg" "@sourcegraph"] "https://sourcegraph.com/search?q={searchTerms}" "png"; 146 + "GitHub Repos" = 147 + mkEngineForceFavicon ["@gh" "@github"] 148 + "https://github.com/search?type=repositories&q={searchTerms}" 149 + "https://github.githubassets.com/favicons/favicon-dark.svg"; 150 + "SourceGraph" = mkEngine [ 151 + "@sg" 152 + "@sourcegraph" 153 + ] "https://sourcegraph.com/search?q={searchTerms}" "png"; 146 154 147 155 ## Web 148 - "MDN Web Docs" = mkEngine ["@mdn"] "https://developer.mozilla.org/en-US/search?q={searchTerms}" "ico"; 149 - "Web.Dev" = mkEngineForceFavicon ["@webdev" "@lighthouse"] "https://web.dev/s/results?q={searchTerms}" "https://www.gstatic.com/devrel-devsite/prod/vc7080045e84cd2ce1faf7f7a3876037748d52d088e5100df2e949d051a784791/web/images/favicon.png"; 150 - "Can I Use" = mkEngineForceFavicon ["@ciu" "@baseline"] "https://caniuse.com/?search={searchTerms}" "https://caniuse.com/img/favicon-128.png"; 151 - "NPM" = mkEngineForceFavicon ["@npm"] "https://www.npmjs.com/search?q={searchTerms}" "https://static-production.npmjs.com/3dc95981de4241b35cd55fe126ab6b2c.png"; 152 - "Iconify" = mkEngine ["@iconify" "@icons"] "https://icon-sets.iconify.design/?query={searchTerms}" "ico"; 153 - "Astro" = mkEngineForceFavicon ["@astro"] "https://a.stro.cc/{searchTerms}" "https://docs.astro.build/favicon.svg"; 156 + "MDN Web Docs" = mkEngine [ 157 + "@mdn" 158 + ] "https://developer.mozilla.org/en-US/search?q={searchTerms}" "ico"; 159 + "Web.Dev" = 160 + mkEngineForceFavicon ["@webdev" "@lighthouse"] "https://web.dev/s/results?q={searchTerms}" 161 + "https://www.gstatic.com/devrel-devsite/prod/vc7080045e84cd2ce1faf7f7a3876037748d52d088e5100df2e949d051a784791/web/images/favicon.png"; 162 + "Can I Use" = mkEngineForceFavicon [ 163 + "@ciu" 164 + "@baseline" 165 + ] "https://caniuse.com/?search={searchTerms}" "https://caniuse.com/img/favicon-128.png"; 166 + "NPM" = 167 + mkEngineForceFavicon ["@npm"] "https://www.npmjs.com/search?q={searchTerms}" 168 + "https://static-production.npmjs.com/3dc95981de4241b35cd55fe126ab6b2c.png"; 169 + "Iconify" = mkEngine [ 170 + "@iconify" 171 + "@icons" 172 + ] "https://icon-sets.iconify.design/?query={searchTerms}" "ico"; 173 + "Astro" = mkEngineForceFavicon [ 174 + "@astro" 175 + ] "https://a.stro.cc/{searchTerms}" "https://docs.astro.build/favicon.svg"; 154 176 "Porkbun" = mkEngine ["@porkbun"] "https://porkbun.com/checkout/search?q={searchTerms}" "ico"; 155 177 "Http.Cat" = mkEngine ["@cat" "@hcat" "@httpcat"] "https://http.cat/{searchTerms}" "ico"; 156 178 157 179 ## Rust 158 - "Crates.io" = mkEngine ["@crates" "@cratesio" "@cargo"] "https://crates.io/search?q={searchTerms}" "ico"; 159 - "Rust Docs" = mkEngineForceFavicon ["@rust" "@rustdocs" "@ruststd"] "https://doc.rust-lang.org/std/index.html?search={searchTerms}" "https://doc.rust-lang.org/static.files/favicon-2c020d218678b618.svg"; 180 + "Crates.io" = mkEngine [ 181 + "@crates" 182 + "@cratesio" 183 + "@cargo" 184 + ] "https://crates.io/search?q={searchTerms}" "ico"; 185 + "Rust Docs" = 186 + mkEngineForceFavicon ["@rust" "@rustdocs" "@ruststd"] 187 + "https://doc.rust-lang.org/std/index.html?search={searchTerms}" 188 + "https://doc.rust-lang.org/static.files/favicon-2c020d218678b618.svg"; 160 189 "Docsrs" = mkEngine ["@docsrs"] "https://docs.rs/releases/search?query={searchTerms}" "ico"; 161 190 162 191 ## Python 163 - "PyPI" = mkEngineForceFavicon ["@pypi" "@pip"] "https://pypi.org/search/?q={searchTerms}" "https://pypi.org/static/images/favicon.35549fe8.ico"; 192 + "PyPI" = mkEngineForceFavicon [ 193 + "@pypi" 194 + "@pip" 195 + ] "https://pypi.org/search/?q={searchTerms}" "https://pypi.org/static/images/favicon.35549fe8.ico"; 164 196 165 197 ## .NET 166 198 "NuGet" = mkEngine ["@nuget"] "https://www.nuget.org/packages?q={searchTerms}" "ico"; 167 199 168 200 ## Linux Stuff 169 - "Kernel Docs" = mkEngine ["@lnx" "@linux" "@kernel"] "https://www.kernel.org/doc/html/latest/search.html?q={searchTerms}" "ico"; 170 - "Arch Wiki" = mkEngine ["@aw" "@arch"] "https://wiki.archlinux.org/index.php?title=Special%3ASearch&search={searchTerms}" "ico"; 171 - "Nerd Fonts" = mkEngineForceFavicon ["@nf" "@nerdfonts"] "https://www.nerdfonts.com/cheat-sheet?q={searchTerms}" "https://www.nerdfonts.com/assets/img/favicon.ico"; 201 + "Kernel Docs" = mkEngine [ 202 + "@lnx" 203 + "@linux" 204 + "@kernel" 205 + ] "https://www.kernel.org/doc/html/latest/search.html?q={searchTerms}" "ico"; 206 + "Arch Wiki" = mkEngine [ 207 + "@aw" 208 + "@arch" 209 + ] "https://wiki.archlinux.org/index.php?title=Special%3ASearch&search={searchTerms}" "ico"; 210 + "Nerd Fonts" = 211 + mkEngineForceFavicon ["@nf" "@nerdfonts"] "https://www.nerdfonts.com/cheat-sheet?q={searchTerms}" 212 + "https://www.nerdfonts.com/assets/img/favicon.ico"; 172 213 173 214 ### Nix 174 - "Nix Packages" = mkEngine ["@nixpkgs"] "https://search.nixos.org/packages?channel=unstable&size=500&query={searchTerms}" "png"; 175 - "NixOS Options" = mkEngine ["@nixos"] "https://search.nixos.org/options?channel=unstable&size=500&query={searchTerms}" "png"; 215 + "Nix Packages" = mkEngine [ 216 + "@nixpkgs" 217 + ] "https://search.nixos.org/packages?channel=unstable&size=500&query={searchTerms}" "png"; 218 + "NixOS Options" = mkEngine [ 219 + "@nixos" 220 + ] "https://search.nixos.org/options?channel=unstable&size=500&query={searchTerms}" "png"; 176 221 "NixOS Wiki" = mkEngine ["@nixwiki"] "https://nixos.wiki/index.php?search={searchTerms}" "png"; 177 - "Home Manager Options" = mkEngineForceFavicon ["@hm"] "https://home-manager-options.extranix.com/?release=master&query={searchTerms}" "https://home-manager-options.extranix.com/images/favicon.png"; 178 - "Noogle" = mkEngine ["@noogle" "@nixlib"] "https://noogle.dev/q?limit=100&term={searchTerms}" "png"; 179 - "SourceGraph Nix" = mkEngine ["@sgn" "@yoink"] "https://sourcegraph.com/search?q=lang:Nix+-repo:NixOS/*+-repo:nix-community/*+{searchTerms}" "png"; 180 - "Nixpkgs Issues" = mkEngineForceFavicon ["@nixissues"] "https://github.com/NixOS/nixpkgs/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen+{searchTerms}" "https://github.githubassets.com/favicons/favicon-dark.svg"; 181 - "NixVim Options" = mkEngineForceFavicon ["@nixvim"] "https://nix-community.github.io/nixvim/search/?option_scope=0&query={searchTerms}" "https://nix-community.github.io/nixvim/search/favicon.ico"; 222 + "Home Manager Options" = 223 + mkEngineForceFavicon ["@hm"] 224 + "https://home-manager-options.extranix.com/?release=master&query={searchTerms}" 225 + "https://home-manager-options.extranix.com/images/favicon.png"; 226 + "Noogle" = mkEngine [ 227 + "@noogle" 228 + "@nixlib" 229 + ] "https://noogle.dev/q?limit=100&term={searchTerms}" "png"; 230 + "SourceGraph Nix" = 231 + mkEngine ["@sgn" "@yoink"] 232 + "https://sourcegraph.com/search?q=lang:Nix+-repo:NixOS/*+-repo:nix-community/*+{searchTerms}" 233 + "png"; 234 + "Nixpkgs Issues" = 235 + mkEngineForceFavicon ["@nixissues"] 236 + "https://github.com/NixOS/nixpkgs/issues?q=sort%3Aupdated-desc+is%3Aissue+is%3Aopen+{searchTerms}" 237 + "https://github.githubassets.com/favicons/favicon-dark.svg"; 238 + "NixVim Options" = 239 + mkEngineForceFavicon ["@nixvim"] 240 + "https://nix-community.github.io/nixvim/search/?option_scope=0&query={searchTerms}" 241 + "https://nix-community.github.io/nixvim/search/favicon.ico"; 182 242 183 243 # Media 184 244 "youtube" = mkEngine ["@yt"] "https://www.youtube.com/results?search_query={searchTerms}" "ico"; 185 - "Spotify" = mkEngineForceFavicon ["@sp" "@spotify"] "https://open.spotify.com/search/{searchTerms}" "https://open.spotifycdn.com/cdn/images/favicon16.1c487bff.png"; 245 + "Spotify" = 246 + mkEngineForceFavicon ["@sp" "@spotify"] "https://open.spotify.com/search/{searchTerms}" 247 + "https://open.spotifycdn.com/cdn/images/favicon16.1c487bff.png"; 186 248 "Netflix" = mkEngine ["@nfx"] "https://www.netflix.com/search?q={searchTerms}" "ico"; 187 249 "IMDb" = mkEngine ["@imdb"] "https://www.imdb.com/find?q={searchTerms}" "ico"; 188 250 189 251 # Misc 190 - "Firefox Add-ons" = mkEngine ["@addons"] "https://addons.mozilla.org/en-US/firefox/search/?q={searchTerms}" "ico"; 191 - "Urban Dictionary" = mkEngine ["@ud" "@urban"] "https://www.urbandictionary.com/define.php?term={searchTerms}" "ico"; 252 + "Firefox Add-ons" = mkEngine [ 253 + "@addons" 254 + ] "https://addons.mozilla.org/en-US/firefox/search/?q={searchTerms}" "ico"; 255 + "Urban Dictionary" = mkEngine [ 256 + "@ud" 257 + "@urban" 258 + ] "https://www.urbandictionary.com/define.php?term={searchTerms}" "ico"; 192 259 193 260 # Overrides 194 261 "History".metaData.alias = "@h";
+374
nixosModules/graphics/qmplay2.nix
··· 1 + { 2 + pkgs, 3 + lib, 4 + ... 5 + }: let 6 + mkQMPlayFile = lib.generators.toINI {}; 7 + mkConfigDir = files: 8 + lib.mapAttrs' ( 9 + name: value: lib.nameValuePair ("QMPlay2/" + name + ".ini") {text = mkQMPlayFile value;} 10 + ) 11 + files; 12 + in { 13 + environment.systemPackages = with pkgs; [ 14 + qmplay2 15 + ]; 16 + 17 + home-manager.users.bean.xdg.configFile = mkConfigDir { 18 + ALSA.General = { 19 + AutoFindMultichnDev = true; 20 + Delay = 0.1; 21 + OutputDevice = "default"; 22 + WriterEnabled = true; 23 + }; 24 + AudioCD.AudioCD = { 25 + CDDB = true; 26 + CDTEXT = true; 27 + }; 28 + AudioFilters = { 29 + General = { 30 + AVAudioFilter = false; 31 + BS2B = false; 32 + Compressor = false; 33 + Echo = false; 34 + Equalizer = false; 35 + PhaseReverse = false; 36 + SwapStereo = false; 37 + VoiceRemoval = false; 38 + }; 39 + 40 + AVAudioFilter.Filters = "@ByteArray()"; 41 + 42 + BS2B = { 43 + Fcut = 700; 44 + Feed = 4.5; 45 + }; 46 + 47 + Compressor = { 48 + FastGainCompressionRatio = 0.9; 49 + OverallCompressionRatio = 0.6; 50 + PeakPercent = 90; 51 + ReleaseTime = 0.2; 52 + }; 53 + 54 + Echo = { 55 + Delay = 500; 56 + Feedback = 50; 57 + Surround = false; 58 + Volume = 50; 59 + }; 60 + 61 + Equalizer = { 62 + "-1" = 50; 63 + "0" = 50; 64 + "1" = 50; 65 + "2" = 50; 66 + "3" = 50; 67 + "4" = 50; 68 + "5" = 50; 69 + "6" = 50; 70 + "7" = 50; 71 + count = 8; 72 + maxFreq = 18000; 73 + minFreq = 200; 74 + nbits = 10; 75 + }; 76 + 77 + PhaseReverse = { 78 + ReverseRight = false; 79 + }; 80 + }; 81 + CUVID.General = { 82 + DecodeMPEG4 = true; 83 + DeintMethod = 2; 84 + Enabled = true; 85 + }; 86 + Chiptune.General = { 87 + DefaultLength = 180; 88 + GME = true; 89 + SIDPlay = true; 90 + }; 91 + Extensions = { 92 + LastFM = { 93 + AllowBigCovers = true; 94 + DownloadCovers = true; 95 + Login = null; 96 + Password = null; 97 + UpdateNowPlayingAndScrobble = false; 98 + }; 99 + 100 + MPRIS2.Enabled = true; 101 + 102 + YouTube = { 103 + ShowUserName = false; 104 + SortBy = 0; 105 + Subtitles = true; 106 + }; 107 + }; 108 + FFmpeg.General = { 109 + AllowExperimental = true; 110 + DecoderEnabled = true; 111 + DecoderVAAPIEnabled = true; 112 + DecoderVkVideoEnabled = true; 113 + DemuxerEnabled = true; 114 + ForceSkipFrames = false; 115 + HurryUP = true; 116 + LowresValue = 0; 117 + ReconnectNetwork = true; 118 + SkipFrames = true; 119 + TeletextPage = 0; 120 + TeletextTransparent = false; 121 + ThreadTypeSlice = false; 122 + Threads = 0; 123 + VAAPIDeintMethod = 1; 124 + }; 125 + Modplug.General = { 126 + ModplugEnabled = true; 127 + ModplugResamplingMethod = 3; 128 + }; 129 + Notify.General = { 130 + CustomBody = null; 131 + CustomMsg = false; 132 + CustomSummary = null; 133 + Enabled = false; 134 + ShowPlayState = true; 135 + ShowTitle = true; 136 + ShowVolume = true; 137 + Timeout = 5000; 138 + }; 139 + Playlists.General = { 140 + M3U_enabled = true; 141 + XSPF_enabled = true; 142 + }; 143 + PulseAudio.General = { 144 + Delay = 0.1; 145 + WriterEnabled = true; 146 + }; 147 + QMPlay2 = { 148 + General = { 149 + AVBufferLocal = 100; 150 + AVBufferTimeNetwork = 500; 151 + AVBufferTimeNetworkLive = 5; 152 + AccurateSeek = 2; 153 + AllowOnlyOneInstance = false; 154 + AudioLanguage = null; 155 + AutoDelNonGroupEntries = false; 156 + AutoOpenVideoWindow = true; 157 + AutoRestoreMainWindowOnVideo = true; 158 + AutoUpdates = false; 159 + BackwardBuffer = 1; 160 + BlurCovers = true; 161 + Channels = 2; 162 + DisableSubtitlesAtStartup = false; 163 + DisplayOnlyFileName = false; 164 + EnlargeCovers = false; 165 + FallbackSubtitlesEncoding = "@ByteArray(UTF-8)"; 166 + ForceChannels = 0; 167 + ForceSamplerate = false; 168 + HideArtistMetadata = false; 169 + IconsFromTheme = true; 170 + IgnorePlaybackError = false; 171 + KeepARatio = false; 172 + KeepSpeed = false; 173 + KeepSubtitlesDelay = false; 174 + KeepSubtitlesScale = false; 175 + KeepVideoDelay = false; 176 + KeepZoom = false; 177 + LastQMPlay2Path = "${pkgs.qmplay2}/bin"; 178 + LeftMouseTogglePlay = 0; 179 + LongSeek = 30; 180 + MaxVol = 100; 181 + MiddleMouseToggleFullscreen = false; 182 + Mute = false; 183 + NoCoversCache = false; 184 + OutputFilePath = "/home/bean/Downloads"; 185 + PlayIfBuffered = 1.75; 186 + Renderer = "opengl"; 187 + RepeatMode = 0; 188 + ResamplerFirst = true; 189 + RestoreAVSState = false; 190 + RestoreRepeatMode = false; 191 + RestoreVideoEqualizer = false; 192 + Samplerate = 48000; 193 + SavePos = false; 194 + ShortSeek = 5; 195 + ShowBufferedTimeOnSlider = true; 196 + ShowCovers = true; 197 + ShowDirCovers = true; 198 + Silence = true; 199 + SkipPlaylistsWithinFiles = true; 200 + SkipYtDlpUpdate = false; 201 + StillImages = false; 202 + StoreARatioAndZoom = false; 203 + StoreUrlPos = true; 204 + Style = "kvantum"; 205 + SubtitlesLanguage = null; 206 + SyncVtoA = true; 207 + TrayNotifiesDefault = false; 208 + TrayVisible = true; 209 + UnpauseWhenSeeking = false; 210 + UpdateVersion = pkgs.qmplay2.version; 211 + Version = "@ByteArray(${pkgs.qmplay2.version})"; 212 + VideoFilters = "0FPS Doubler"; 213 + VolumeL = 100; 214 + VolumeR = 100; 215 + WheelAction = true; 216 + WheelSeek = true; 217 + screenshotFormat = ".png"; 218 + screenshotPth = "/home/bean/Pictures/Screenshots"; 219 + }; 220 + 221 + ApplyToASS = { 222 + ApplyToASS = false; 223 + ColorsAndBorders = true; 224 + FontsAndSpacing = false; 225 + MarginsAndAlignment = false; 226 + }; 227 + 228 + Deinterlace = { 229 + Auto = true; 230 + AutoParity = true; 231 + Doubler = true; 232 + ON = true; 233 + SoftwareMethod = ''Yadif 2x''; 234 + TFF = false; 235 + }; 236 + 237 + MainWidget = { 238 + AlwaysOnTop = false; 239 + CompactViewDockWidgetState = ''@ByteArray()''; 240 + DockWidgetState = ''@ByteArray()''; 241 + FullScreenDockWidgetState = ''@ByteArray()''; 242 + Geometry = ''@Rect(226 151 1805 1203)''; 243 + IsCompactView = false; 244 + KeepDocksSize = false; 245 + TabPositionNorth = false; 246 + WidgetsLocked = true; 247 + isMaximized = true; 248 + isVisible = true; 249 + }; 250 + 251 + OSD = { 252 + Alignment = 4; 253 + Background = false; 254 + BackgroundColor = ''@Variant(\0\0\0\x43\x1\x88\x88\0\0\0\0\0\0\0\0)''; 255 + Bold = false; 256 + Enabled = true; 257 + FontName = "Sans Serif"; 258 + FontSize = 32; 259 + LeftMargin = 0; 260 + Outline = 1.5; 261 + OutlineColor = ''@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)''; 262 + RightMargin = 0; 263 + Shadow = 1.5; 264 + ShadowColor = ''@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)''; 265 + Spacing = 0; 266 + TextColor = ''@Variant(\0\0\0\x43\x1\xff\xff\xaa\xaa\xff\xffUU\0\0)''; 267 + VMargin = 0; 268 + }; 269 + 270 + OpenGL = { 271 + BypassCompositor = false; 272 + OnWindow = false; 273 + VSync = true; 274 + }; 275 + 276 + Proxy = { 277 + Host = null; 278 + Login = false; 279 + Password = ''@ByteArray()''; 280 + Port = 80; 281 + Use = false; 282 + User = null; 283 + }; 284 + 285 + ReplayGain = { 286 + Album = false; 287 + Enabled = false; 288 + Preamp = 0; 289 + PreventClipping = true; 290 + }; 291 + 292 + SettingsWidget.Geometry = ''@Rect(395 263 2212 1308)''; 293 + 294 + Subtitles = { 295 + Alignment = 7; 296 + Background = true; 297 + BackgroundColor = ''@Variant(\0\0\0\x43\x1\x88\x88\0\0\0\0\0\0\0\0)''; 298 + Bold = false; 299 + FontName = "Fira Code"; 300 + FontSize = 24; 301 + LeftMargin = 15; 302 + Outline = 1; 303 + OutlineColor = ''@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)''; 304 + RightMargin = 15; 305 + Shadow = 0.5; 306 + ShadowColor = ''@Variant(\0\0\0\x43\x1\xff\xff\0\0\0\0\0\0\0\0)''; 307 + Spacing = 2; 308 + TextColor = ''@Variant(\0\0\0\x43\x1\xff\xff\xff\xff\xff\xff\xff\xff\0\0)''; 309 + VMargin = 15; 310 + }; 311 + 312 + VideoAdjustment = { 313 + Brightness = 0; 314 + Contrast = 0; 315 + Hue = 0; 316 + Negative = 0; 317 + Saturation = 0; 318 + Sharpness = 0; 319 + }; 320 + 321 + Vulkan = { 322 + AlwaysGPUDeint = true; 323 + BypassCompositor = true; 324 + Device = "@ByteArray()"; 325 + ForceVulkanYadif = false; 326 + HDR = false; 327 + HQScaleDown = false; 328 + HQScaleUp = false; 329 + VSync = 1; 330 + YadifSpatialCheck = true; 331 + }; 332 + 333 + YtDl = { 334 + CookiesFromBrowser = null; 335 + CookiesFromBrowserEnabled = false; 336 + CustomPath = "${pkgs.yt-dlp}/bin/yt-dlp"; 337 + CustomPathEnabled = true; 338 + DefaultQuality = null; 339 + DefaultQualityEnabled = false; 340 + DontAutoUpdate = true; 341 + }; 342 + }; 343 + QPainterSW.General.Enabled = true; 344 + Subtitles.General = { 345 + Classic_enabled = true; 346 + SRT_enabled = true; 347 + Sub_max_s = 5; 348 + Use_mDVD_FPS = true; 349 + }; 350 + VideoFilters.FPSDoubler = { 351 + MaxFPS = 29.99; 352 + MinFPS = 21; 353 + OnlyFullScreen = true; 354 + }; 355 + Visualizations = { 356 + General = { 357 + RefreshTime = 17; 358 + }; 359 + 360 + FFTSpectrum = { 361 + LimitFreq = 20000; 362 + Size = 8; 363 + }; 364 + 365 + SimpleVis = { 366 + SoundLength = 17; 367 + }; 368 + }; 369 + XVideo.General = { 370 + Enabled = false; 371 + UseSHM = false; 372 + }; 373 + }; 374 + }
+9 -3
nixosModules/graphics/shell.nix
··· 30 30 31 31 ## Dolphin 32 32 kdePackages.dolphin 33 - kdePackages.ark # For archive support 34 - kdePackages.kio-extras # For thumbnails 35 - kdePackages.kdegraphics-thumbnailers # For thumbnails 33 + kdePackages.ark 34 + kdePackages.kio-extras 35 + kdePackages.kdegraphics-thumbnailers 36 + kdePackages.kimageformats 37 + kdePackages.taglib 38 + nufraw-thumbnailer 39 + kdePackages.phonon 40 + kdePackages.ffmpegthumbs 41 + ffmpegthumbnailer 36 42 37 43 pavucontrol 38 44
+17 -2
nixosModules/graphics/xdg.nix
··· 17 17 enable = true; 18 18 defaultApplications = let 19 19 textEditors = ["neovide.desktop"]; 20 - browsers = ["floorp.desktop" "chromium.desktop"]; 21 - imageViewers = ["gimp.desktop"]; 20 + browsers = [ 21 + "floorp.desktop" 22 + "chromium.desktop" 23 + ]; 24 + imageViewers = [ 25 + "org.gnome.Loupe.desktop" 26 + "gimp.desktop" 27 + ]; 28 + videoPlayers = [ 29 + "QMPlay2.desktop" 30 + ]; 22 31 in { 23 32 "inode/directory" = ["org.kde.dolphin.desktop"]; 24 33 "text/plain" = textEditors; ··· 31 40 "text/x-install" = textEditors; 32 41 "text/html" = browsers; 33 42 "image/png" = imageViewers; 43 + "image/webp" = imageViewers; 34 44 "image/jpeg" = imageViewers; 35 45 "image/gif" = browsers; 36 46 "image/bmp" = imageViewers; ··· 39 49 "image/x-portable-graymap" = imageViewers; 40 50 "image/x-portable-anymap" = imageViewers; 41 51 "image/svg+xml" = imageViewers; 52 + "video/mp4" = videoPlayers; 53 + "video/AV1" = videoPlayers; 54 + "video/m4a" = videoPlayers; 55 + "video/mpeg" = videoPlayers; 56 + "video/3gpp" = videoPlayers; 42 57 "x-terminal-emulator" = ["wezterm.desktop"]; 43 58 "x-scheme-handler/http" = browsers; 44 59 "x-scheme-handler/https" = browsers;
+16
packages/nvim-flatten.nix
··· 1 + { 2 + vimUtils, 3 + fetchFromGitHub, 4 + ... 5 + }: 6 + vimUtils.buildVimPlugin { 7 + pname = "flatten-nvim"; 8 + version = "2025-05-27"; 9 + src = fetchFromGitHub { 10 + owner = "willothy"; 11 + repo = "flatten.nvim"; 12 + rev = "72527798e75b5e34757491947c2cb853ce21dc0e"; 13 + sha256 = "sha256-NaOgzTVqOpQnEIOIMlHCupZUDYnLUic9zITKFxcOg3A="; 14 + }; 15 + meta.homepage = "https://github.com/willothy/flatten.nvim"; 16 + }