this repo has no description
1
fork

Configure Feed

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

Update

Ben C e3e734c1 6601b5de

+459 -472
+36 -36
flake.lock
··· 31 31 ] 32 32 }, 33 33 "locked": { 34 - "lastModified": 1751880463, 35 - "narHash": "sha256-aSQllMKqsTYAUp4yhpspZn0Hj5yIj7Mh4UD5iyk5iMM=", 34 + "lastModified": 1752490162, 35 + "narHash": "sha256-CFOuAHbc9PTt9HhjGQFf07bUCZKOahQ+vLt30J6u5fw=", 36 36 "owner": "catppuccin", 37 37 "repo": "nix", 38 - "rev": "9474347c69e93e392f194dda7a57c641ba4b998e", 38 + "rev": "7dc907c010e1612729c5d76cf614b5f7811bfe23", 39 39 "type": "github" 40 40 }, 41 41 "original": { ··· 46 46 }, 47 47 "crane": { 48 48 "locked": { 49 - "lastModified": 1750266157, 50 - "narHash": "sha256-tL42YoNg9y30u7zAqtoGDNdTyXTi8EALDeCB13FtbQA=", 49 + "lastModified": 1751562746, 50 + "narHash": "sha256-smpugNIkmDeicNz301Ll1bD7nFOty97T79m4GUMUczA=", 51 51 "owner": "ipetkov", 52 52 "repo": "crane", 53 - "rev": "e37c943371b73ed87faf33f7583860f81f1d5a48", 53 + "rev": "aed2020fd3dc26e1e857d4107a5a67a33ab6c1fd", 54 54 "type": "github" 55 55 }, 56 56 "original": { ··· 122 122 ] 123 123 }, 124 124 "locked": { 125 - "lastModified": 1749398372, 126 - "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", 125 + "lastModified": 1751413152, 126 + "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", 127 127 "owner": "hercules-ci", 128 128 "repo": "flake-parts", 129 - "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", 129 + "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", 130 130 "type": "github" 131 131 }, 132 132 "original": { ··· 202 202 ] 203 203 }, 204 204 "locked": { 205 - "lastModified": 1752106289, 206 - "narHash": "sha256-BC4hWjDDNVmRLvBFCHz7oKiapf1ndBRXPDNle/H+6e8=", 205 + "lastModified": 1752599919, 206 + "narHash": "sha256-IDravFeRDYJGGtVMlWbHlxJslmyluqIOKL4KhiSjkm0=", 207 207 "owner": "nix-community", 208 208 "repo": "flakelight", 209 - "rev": "0c7170f19b170882f167a71cad1124714ffc192e", 209 + "rev": "adc54eb10841e9598fb7e81199d87562b361b341", 210 210 "type": "github" 211 211 }, 212 212 "original": { ··· 286 286 ] 287 287 }, 288 288 "locked": { 289 - "lastModified": 1752093218, 290 - "narHash": "sha256-+3rXu8ewcNDi65/2mKkdSGrivQs5zEZVp5aYszXC0d0=", 289 + "lastModified": 1752767945, 290 + "narHash": "sha256-C7l88gwS48gjLxGqsJvQkVvvi7e99CdsdEVKiZTKEj8=", 291 291 "owner": "nix-community", 292 292 "repo": "home-manager", 293 - "rev": "206ed3c71418b52e176f16f58805c96e84555320", 293 + "rev": "460f1e9af95b081fb7e2022485b6c22b92085936", 294 294 "type": "github" 295 295 }, 296 296 "original": { ··· 354 354 "rust-overlay": "rust-overlay" 355 355 }, 356 356 "locked": { 357 - "lastModified": 1751381593, 358 - "narHash": "sha256-js1XwtJpYhvQrrTaVzViybpztkHJVZ63aXOlFAcTENM=", 357 + "lastModified": 1752673703, 358 + "narHash": "sha256-9Cc0YqL9ZUpaybJsrRJfXex91QlPmQNqpTLgw/KvJGA=", 359 359 "owner": "nix-community", 360 360 "repo": "lanzaboote", 361 - "rev": "f4eb75540307c2b33521322c04b7fea74e48a66f", 361 + "rev": "5a776450d904b7ccd377c2a759703152b2553e98", 362 362 "type": "github" 363 363 }, 364 364 "original": { ··· 374 374 ] 375 375 }, 376 376 "locked": { 377 - "lastModified": 1751774635, 378 - "narHash": "sha256-DuOznGdgMxeSlPpUu6Wkq0ZD5e2Cfv9XRZeZlHWMd1s=", 377 + "lastModified": 1752441837, 378 + "narHash": "sha256-FMH1OSSJp8Cx8MZHXz6KckxJGbCnVMotZNAH3v2WneU=", 379 379 "owner": "nix-community", 380 380 "repo": "nix-index-database", 381 - "rev": "85686025ba6d18df31cc651a91d5adef63378978", 381 + "rev": "839e02dece5845be3a322e507a79712b73a96ba2", 382 382 "type": "github" 383 383 }, 384 384 "original": { ··· 389 389 }, 390 390 "nixos-hardware": { 391 391 "locked": { 392 - "lastModified": 1752048960, 393 - "narHash": "sha256-gATnkOe37eeVwKKYCsL+OnS2gU4MmLuZFzzWCtaKLI8=", 392 + "lastModified": 1752666637, 393 + "narHash": "sha256-P8J72psdc/rWliIvp8jUpoQ6qRDlVzgSDDlgkaXQ0Fw=", 394 394 "owner": "NixOS", 395 395 "repo": "nixos-hardware", 396 - "rev": "7ced9122cff2163c6a0212b8d1ec8c33a1660806", 396 + "rev": "d1bfa8f6ccfb5c383e1eba609c1eb67ca24ed153", 397 397 "type": "github" 398 398 }, 399 399 "original": { ··· 404 404 }, 405 405 "nixpkgs": { 406 406 "locked": { 407 - "lastModified": 1751984180, 408 - "narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=", 407 + "lastModified": 1752480373, 408 + "narHash": "sha256-JHQbm+OcGp32wAsXTE/FLYGNpb+4GLi5oTvCxwSoBOA=", 409 409 "owner": "NixOS", 410 410 "repo": "nixpkgs", 411 - "rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0", 411 + "rev": "62e0f05ede1da0d54515d4ea8ce9c733f12d9f08", 412 412 "type": "github" 413 413 }, 414 414 "original": { ··· 428 428 "systems": "systems_2" 429 429 }, 430 430 "locked": { 431 - "lastModified": 1752099138, 432 - "narHash": "sha256-riX+IkcFhurR1M1vMEp2cdzraxsZEZl+XbpFWcgz3lU=", 431 + "lastModified": 1752762787, 432 + "narHash": "sha256-WZLSOR2Pei7C4nH/ntKUqOZOAa5rgvc2fVZl4RoEXmw=", 433 433 "owner": "nix-community", 434 434 "repo": "nixvim", 435 - "rev": "2e24f8e62bc5da7e1ce81e2f2ff7d9e1f51350b7", 435 + "rev": "bc0555c8694d43fb63ae2c7afec08b6987431a04", 436 436 "type": "github" 437 437 }, 438 438 "original": { ··· 587 587 ] 588 588 }, 589 589 "locked": { 590 - "lastModified": 1751165203, 591 - "narHash": "sha256-3QhlpAk2yn+ExwvRLtaixWsVW1q3OX3KXXe0l8VMLl4=", 590 + "lastModified": 1751769931, 591 + "narHash": "sha256-QR2Rp/41NkA5YxcpvZEKD1S2QE1Pb9U415aK8M/4tJc=", 592 592 "owner": "oxalica", 593 593 "repo": "rust-overlay", 594 - "rev": "90f547b90e73d3c6025e66c5b742d6db51c418c3", 594 + "rev": "3ac4f630e375177ea8317e22f5c804156de177e8", 595 595 "type": "github" 596 596 }, 597 597 "original": { ··· 607 607 ] 608 608 }, 609 609 "locked": { 610 - "lastModified": 1752115281, 611 - "narHash": "sha256-3i0sUli3sWCglfpj+yS1gtA+4m2ao2UMIxa4IfifUUU=", 610 + "lastModified": 1752720268, 611 + "narHash": "sha256-XCiJdtXIN09Iv0i1gs5ajJ9CVHk537Gy1iG/4nIdpVI=", 612 612 "owner": "oxalica", 613 613 "repo": "rust-overlay", 614 - "rev": "e5b68250e585c60d1679803045575fb71801d822", 614 + "rev": "dc221f842e9ddc8c0416beae8d77f2ea356b91ae", 615 615 "type": "github" 616 616 }, 617 617 "original": {
+2 -2
nixosModules/base/personal.nix
··· 15 15 }; 16 16 17 17 home-manager.users.root = { 18 - imports = [inputs.nix-index-db.hmModules.nix-index]; 18 + imports = [inputs.nix-index-db.homeModules.nix-index]; 19 19 home = { 20 20 username = "root"; 21 21 homeDirectory = "/root"; ··· 24 24 }; 25 25 26 26 home-manager.users.bean = { 27 - imports = [inputs.nix-index-db.hmModules.nix-index]; 27 + imports = [inputs.nix-index-db.homeModules.nix-index]; 28 28 home = { 29 29 username = "bean"; 30 30 homeDirectory = "/home/bean";
+144 -141
nixosModules/dev/nvim.nix
··· 4 4 config, 5 5 lib, 6 6 ... 7 - }: 8 - { 7 + }: { 9 8 environment.systemPackages = with pkgs; [ 10 9 ripgrep 11 10 fd 12 11 ]; 13 12 14 13 home-manager.users.bean = { 15 - imports = [ inputs.nixvim.homeManagerModules.nixvim ]; 14 + imports = [inputs.nixvim.homeManagerModules.nixvim]; 16 15 17 16 programs.nixvim = { 18 17 enable = true; ··· 59 58 background = true; 60 59 }; 61 60 virtual_text = { 62 - errors = [ "italic" ]; 63 - hints = [ "italic" ]; 64 - information = [ "italic" ]; 65 - warnings = [ "italic" ]; 66 - ok = [ "italic" ]; 61 + errors = ["italic"]; 62 + hints = ["italic"]; 63 + information = ["italic"]; 64 + warnings = ["italic"]; 65 + ok = ["italic"]; 67 66 }; 68 67 underlines = { 69 - errors = [ "underline" ]; 70 - hints = [ "underline" ]; 71 - information = [ "underline" ]; 72 - warnings = [ "underline" ]; 68 + errors = ["underline"]; 69 + hints = ["underline"]; 70 + information = ["underline"]; 71 + warnings = ["underline"]; 73 72 }; 74 73 }; 75 74 }; ··· 91 90 ''; 92 91 93 92 autoGroups = { 94 - restore_cursor = { }; 95 - open_neotree = { }; 93 + restore_cursor = {}; 94 + open_neotree = {}; 96 95 }; 97 96 97 + filetype.extension.mdx = "mdx"; 98 + 98 99 opts = { 99 100 number = true; 100 101 relativenumber = true; ··· 113 114 autoCmd = [ 114 115 { 115 116 group = "restore_cursor"; 116 - event = [ "BufReadPost" ]; 117 + event = ["BufReadPost"]; 117 118 pattern = "*"; 118 119 callback.__raw = '' 119 120 function() ··· 130 131 } 131 132 { 132 133 group = "open_neotree"; 133 - event = [ "BufRead" ]; 134 + event = ["BufRead"]; 134 135 pattern = "*"; 135 136 once = true; 136 137 callback.__raw = '' ··· 158 159 }; 159 160 }; 160 161 161 - keymaps = 162 - let 163 - prefixMap = 164 - pre: maps: 165 - builtins.map (k: { 166 - action = "<cmd>${k.action}<cr>"; 167 - key = "${pre}${k.key}"; 168 - options = k.options; 169 - }) maps; 170 - in 162 + keymaps = let 163 + prefixMap = pre: maps: 164 + builtins.map (k: { 165 + action = "<cmd>${k.action}<cr>"; 166 + key = "${pre}${k.key}"; 167 + options = k.options; 168 + }) 169 + maps; 170 + in 171 171 lib.lists.flatten ( 172 - builtins.map (g: if builtins.hasAttr "group" g then prefixMap g.prefix g.keys else g) [ 172 + builtins.map (g: 173 + if builtins.hasAttr "group" g 174 + then prefixMap g.prefix g.keys 175 + else g) [ 173 176 { 174 177 action = ''"+p''; 175 178 key = "<C-S-V>"; ··· 310 313 } 311 314 { 312 315 action.__raw = "[[<C-\\><C-n><C-w>]]"; 313 - mode = [ "t" ]; 316 + mode = ["t"]; 314 317 key = "<C-w>"; 315 318 } 316 319 { 317 320 action.__raw = "[[<C-\\><C-n>]]"; 318 - mode = [ "t" ]; 321 + mode = ["t"]; 319 322 key = "<esc>"; 320 323 } 321 324 { ··· 326 329 ); 327 330 328 331 extraPlugins = with pkgs.vimPlugins; [ 329 - { plugin = pkgs.nvim-mdx; } 330 - { plugin = satellite-nvim; } 331 - { plugin = flatten-nvim; } 332 - { plugin = tiny-devicons-auto-colors-nvim; } 332 + {plugin = pkgs.nvim-mdx;} 333 + {plugin = satellite-nvim;} 334 + {plugin = flatten-nvim;} 335 + {plugin = tiny-devicons-auto-colors-nvim;} 333 336 ]; 334 337 335 338 plugins = { ··· 401 404 opts = { 402 405 position = "center"; 403 406 }; 404 - layout = 405 - let 406 - o = { 407 - position = "center"; 408 - }; 409 - txt = s: { 410 - type = "text"; 411 - val = s; 412 - opts = { 407 + layout = let 408 + o = { 409 + position = "center"; 410 + }; 411 + txt = s: { 412 + type = "text"; 413 + val = s; 414 + opts = 415 + { 413 416 hl = "Keyword"; 414 - } // o; 415 - }; 416 - grp = g: { 417 - type = "group"; 418 - val = g; 419 - opts.spacing = 1; 420 - }; 421 - btn = 422 - { 423 - val, 424 - onClick, 425 - ... 426 - }: 427 - { 428 - type = "button"; 429 - inherit val; 430 - opts = o; 431 - on_press.__raw = "function() vim.cmd[[${onClick}]] end"; 432 - }; 433 - cmd = 434 - { 435 - command, 436 - width, 437 - height, 438 - }: 439 - { 440 - type = "terminal"; 441 - inherit command width height; 442 - opts = o; 443 - }; 444 - pad = { 445 - type = "padding"; 446 - val = 2; 447 - }; 448 - in 417 + } 418 + // o; 419 + }; 420 + grp = g: { 421 + type = "group"; 422 + val = g; 423 + opts.spacing = 1; 424 + }; 425 + btn = { 426 + val, 427 + onClick, 428 + ... 429 + }: { 430 + type = "button"; 431 + inherit val; 432 + opts = o; 433 + on_press.__raw = "function() vim.cmd[[${onClick}]] end"; 434 + }; 435 + cmd = { 436 + command, 437 + width, 438 + height, 439 + }: { 440 + type = "terminal"; 441 + inherit command width height; 442 + opts = o; 443 + }; 444 + pad = { 445 + type = "padding"; 446 + val = 2; 447 + }; 448 + in 449 449 [ 450 450 pad 451 451 pad ··· 478 478 (txt " NixVim Rev ${builtins.substring 0 5 inputs.nixvim.rev}") 479 479 ]) 480 480 ]) 481 - ++ [ pad ]; 481 + ++ [pad]; 482 482 }; 483 483 484 484 trouble = { ··· 546 546 547 547 treesitter = { 548 548 enable = true; 549 - # languageRegister.mdx = "markdown"; 550 - # luaConfig.post = '' 551 - # require('mdx').setup() 552 - # ''; 549 + luaConfig.post = '' 550 + require('mdx').setup() 551 + ''; 553 552 settings = { 554 553 highlight.enable = true; 555 554 }; ··· 588 587 hover = { 589 588 enabled = true; 590 589 delay = 150; 591 - reveal = [ "close" ]; 590 + reveal = ["close"]; 592 591 }; 593 592 sort_by = "insert_at_end"; 594 593 diagnostics = "nvim_lsp"; ··· 603 602 604 603 statuscol = { 605 604 enable = true; 606 - settings.segments = 607 - let 608 - dispCond = { 609 - __raw = '' 610 - function(ln) 611 - return vim.bo.filetype ~= "neo-tree" 612 - end 613 - ''; 614 - }; 615 - in 616 - [ 617 - { 618 - click = "v:lua.ScSa"; 619 - condition = [ 620 - dispCond 621 - ]; 622 - text = [ 623 - "%s" 624 - ]; 625 - } 626 - { 627 - click = "v:lua.ScLa"; 628 - condition = [ dispCond ]; 629 - text = [ 630 - { 631 - __raw = "require('statuscol.builtin').lnumfunc"; 632 - } 633 - ]; 634 - } 635 - { 636 - click = "v:lua.ScFa"; 637 - condition = [ 638 - dispCond 639 - { 640 - __raw = "require('statuscol.builtin').not_empty"; 641 - } 642 - ]; 643 - text = [ 644 - { 645 - __raw = "require('statuscol.builtin').foldfunc"; 646 - } 647 - " " 648 - ]; 649 - } 650 - ]; 605 + settings.segments = let 606 + dispCond = { 607 + __raw = '' 608 + function(ln) 609 + return vim.bo.filetype ~= "neo-tree" 610 + end 611 + ''; 612 + }; 613 + in [ 614 + { 615 + click = "v:lua.ScSa"; 616 + condition = [ 617 + dispCond 618 + ]; 619 + text = [ 620 + "%s" 621 + ]; 622 + } 623 + { 624 + click = "v:lua.ScLa"; 625 + condition = [dispCond]; 626 + text = [ 627 + { 628 + __raw = "require('statuscol.builtin').lnumfunc"; 629 + } 630 + ]; 631 + } 632 + { 633 + click = "v:lua.ScFa"; 634 + condition = [ 635 + dispCond 636 + { 637 + __raw = "require('statuscol.builtin').not_empty"; 638 + } 639 + ]; 640 + text = [ 641 + { 642 + __raw = "require('statuscol.builtin').foldfunc"; 643 + } 644 + " " 645 + ]; 646 + } 647 + ]; 651 648 }; 652 649 653 650 dropbar = { ··· 673 670 674 671 options = { 675 672 theme = "catppuccin"; 676 - disabled_filetypes = [ "neo-tree" ]; 677 - ignore_focus = [ "neo-tree" ]; 673 + disabled_filetypes = ["neo-tree"]; 674 + ignore_focus = ["neo-tree"]; 678 675 }; 679 676 }; 680 677 }; 681 678 682 679 nix-develop = { 683 680 enable = true; 684 - package = pkgs.vimPlugins.nix-develop-nvim.overrideAttrs ( 685 - prev: next: { 686 - src = pkgs.fetchFromGitHub { 687 - owner = "Bwc9876"; 688 - repo = "nix-develop.nvim"; 689 - rev = "089cd52191ccbb3726594e21cd96567af6088dd5"; 690 - sha256 = "sha256-EIEJk8/IAuG+UICUJ2F8QakgRpFrQ1ezDSJ79NAVuD8= 681 + package = 682 + pkgs.vimPlugins.nix-develop-nvim.overrideAttrs ( 683 + prev: next: { 684 + src = 685 + pkgs.fetchFromGitHub { 686 + owner = "Bwc9876"; 687 + repo = "nix-develop.nvim"; 688 + rev = "089cd52191ccbb3726594e21cd96567af6088dd5"; 689 + sha256 = "sha256-EIEJk8/IAuG+UICUJ2F8QakgRpFrQ1ezDSJ79NAVuD8= 691 690 "; 692 - }; 693 - } 694 - ); 691 + }; 692 + } 693 + ); 695 694 }; 696 695 697 696 project-nvim = { ··· 782 781 cmp = { 783 782 enable = true; 784 783 settings = { 785 - sources = map (name: { inherit name; }) [ 784 + sources = map (name: {inherit name;}) [ 786 785 "nvim_lsp" 787 786 "nvim_lsp_signature_help" 788 787 "path" ··· 871 870 servers = { 872 871 astro.enable = true; 873 872 sqls.enable = true; 873 + mdx_analyzer = { 874 + enable = true; 875 + package = pkgs.mdx-language-server; 876 + }; 874 877 # denols.enable = true; 875 878 ts_ls.enable = true; 876 879 html.enable = true;
+1 -1
nixosModules/games+graphics.nix
··· 10 10 programs.gamescope.enable = true; 11 11 12 12 environment.systemPackages = with pkgs; [ 13 - prismlauncher 13 + # prismlauncher - Disabled until openjdk doesn't have a cycle 14 14 owmods-gui 15 15 owmods-cli 16 16 cemu
-1
nixosModules/graphics/apps.nix
··· 157 157 ## Media 158 158 obs-studio 159 159 loupe 160 - gimp 161 160 inkscape 162 161 lorien 163 162 cavalier
+276 -290
nixosModules/graphics/shell.nix
··· 4 4 lib, 5 5 inputs', 6 6 ... 7 - }: 8 - { 9 - users.users.bean.extraGroups = [ "video" ]; 7 + }: { 8 + users.users.bean.extraGroups = ["video"]; 10 9 11 10 nixpkgs.overlays = [ 12 11 (next: prev: { ··· 69 68 # Needed to open the firewall, actual service is managed in HM 70 69 programs.kdeconnect.enable = true; 71 70 72 - home-manager.users.bean = 73 - let 74 - screenOffCmd = "hyprctl dispatch dpms off; ${pkgs.swaynotificationcenter}/bin/swaync-client --inhibitor-add \"timeout\""; 75 - screenOnCmd = "hyprctl dispatch dpms on; ${pkgs.swaynotificationcenter}/bin/swaync-client --inhibitor-remove \"timeout\""; 76 - in 77 - { 78 - xdg.configFile = { 79 - "swappy/config".text = '' 80 - [Default] 81 - save_dir=$HOME/Pictures/Screenshots 82 - save_filename_format=%Y-%m-%dT%H:%M:%S-edited.png 83 - show_panel=true 84 - line_size=5 85 - text_size=20 86 - text_font=monospace 87 - paint_mode=brush 88 - early_exit=false 89 - fill_shape=false 90 - ''; 91 - "kdeconnect/config".text = '' 92 - [General] 93 - name=${lib.toUpper config.networking.hostName} 94 - ''; 95 - }; 71 + home-manager.users.bean = let 72 + screenOffCmd = "hyprctl dispatch dpms off; ${pkgs.swaynotificationcenter}/bin/swaync-client --inhibitor-add \"timeout\""; 73 + screenOnCmd = "hyprctl dispatch dpms on; ${pkgs.swaynotificationcenter}/bin/swaync-client --inhibitor-remove \"timeout\""; 74 + in { 75 + xdg.configFile = { 76 + "swappy/config".text = '' 77 + [Default] 78 + save_dir=$HOME/Pictures/Screenshots 79 + save_filename_format=%Y-%m-%dT%H:%M:%S-edited.png 80 + show_panel=true 81 + line_size=5 82 + text_size=20 83 + text_font=monospace 84 + paint_mode=brush 85 + early_exit=false 86 + fill_shape=false 87 + ''; 88 + "kdeconnect/config".text = '' 89 + [General] 90 + name=${lib.toUpper config.networking.hostName} 91 + ''; 92 + }; 96 93 97 - # Doing our own thing for rofi 98 - catppuccin.rofi.enable = false; 94 + # Doing our own thing for rofi 95 + catppuccin.rofi.enable = false; 99 96 100 - systemd.user.services = 101 - let 102 - target = config.home-manager.users.bean.wayland.systemd.target; 103 - mkShellService = 104 - { 105 - desc, 106 - service, 107 - }: 108 - { 109 - Install = { 110 - WantedBy = [ target ]; 111 - }; 97 + systemd.user.services = let 98 + target = config.home-manager.users.bean.wayland.systemd.target; 99 + mkShellService = { 100 + desc, 101 + service, 102 + }: { 103 + Install = { 104 + WantedBy = [target]; 105 + }; 112 106 113 - Unit = { 114 - ConditionEnvironment = "WAYLAND_DISPLAY"; 115 - Description = desc; 116 - After = [ target ]; 117 - PartOf = [ target ]; 118 - }; 107 + Unit = { 108 + ConditionEnvironment = "WAYLAND_DISPLAY"; 109 + Description = desc; 110 + After = [target]; 111 + PartOf = [target]; 112 + }; 119 113 120 - Service = service; 121 - }; 122 - in 123 - { 124 - dolphin = mkShellService { 125 - desc = "Dolphin File Manager Daemon"; 114 + Service = service; 115 + }; 116 + in { 117 + dolphin = mkShellService { 118 + desc = "Dolphin File Manager Daemon"; 126 119 127 - service = { 128 - ExecStart = "${pkgs.kdePackages.dolphin}/bin/dolphin --daemon"; 129 - Restart = "on-failure"; 130 - RestartSec = "10"; 131 - BusName = "org.freedesktop.FileManager1"; 132 - }; 133 - }; 120 + service = { 121 + ExecStart = "${pkgs.kdePackages.dolphin}/bin/dolphin --daemon"; 122 + Restart = "on-failure"; 123 + RestartSec = "10"; 124 + BusName = "org.freedesktop.FileManager1"; 125 + }; 126 + }; 134 127 135 - battery-notif = mkShellService { 136 - desc = "Battery Notification Service"; 128 + battery-notif = mkShellService { 129 + desc = "Battery Notification Service"; 137 130 138 - service = { 139 - ExecStart = "${pkgs.nushell}/bin/nu ${../../res/battery_notif.nu}"; 140 - Restart = "on-failure"; 141 - RestartSec = "10"; 142 - }; 143 - }; 131 + service = { 132 + ExecStart = "${pkgs.nushell}/bin/nu ${../../res/battery_notif.nu}"; 133 + Restart = "on-failure"; 134 + RestartSec = "10"; 135 + }; 136 + }; 144 137 145 - mpris-idle-inhibit = mkShellService { 146 - desc = "MPRIS Idle Inhibitor"; 138 + mpris-idle-inhibit = mkShellService { 139 + desc = "MPRIS Idle Inhibitor"; 147 140 148 - service = { 149 - ExecStart = ''${inputs'.wayland-mpris-idle-inhibit.packages.default}/bin/wayland-mpris-idle-inhibit --ignore "kdeconnect" --ignore "playerctld"''; 150 - Restart = "on-failure"; 151 - RestartSec = "10"; 152 - }; 153 - }; 141 + service = { 142 + ExecStart = ''${inputs'.wayland-mpris-idle-inhibit.packages.default}/bin/wayland-mpris-idle-inhibit --ignore "kdeconnect" --ignore "playerctld"''; 143 + Restart = "on-failure"; 144 + RestartSec = "10"; 154 145 }; 146 + }; 147 + }; 155 148 156 - services = { 157 - hyprpolkitagent.enable = true; 158 - kdeconnect.enable = true; 159 - hypridle = { 160 - enable = true; 161 - settings = { 162 - general = { 163 - lock_cmd = "pidof hyprlock || hyprlock"; 164 - unlock_cmd = "pkill hyprlock --signal SIGUSR1"; 165 - before_sleep_cmd = "loginctl lock-session"; 166 - after_sleep_cmd = screenOnCmd; 167 - }; 149 + services = { 150 + hyprpolkitagent.enable = true; 151 + kdeconnect.enable = true; 152 + hypridle = { 153 + enable = true; 154 + settings = { 155 + general = { 156 + lock_cmd = "pidof hyprlock || hyprlock"; 157 + unlock_cmd = "pkill hyprlock --signal SIGUSR1"; 158 + before_sleep_cmd = "loginctl lock-session"; 159 + after_sleep_cmd = screenOnCmd; 160 + }; 168 161 169 - listener = 170 - let 171 - lockTimeout = 120; 172 - in 173 - [ 174 - { 175 - timeout = lockTimeout; # Lock the screen after 2 minutes of inactivity 176 - on-timeout = "loginctl lock-session"; 177 - } 178 - { 179 - timeout = lockTimeout + 120; # Turn off the screen 2 minutes after locking 180 - on-timeout = screenOffCmd; 181 - on-resume = screenOnCmd; 182 - } 183 - { 184 - timeout = lockTimeout + 600; # Suspend 10 minutes after locking 185 - on-timeout = "systemctl suspend"; 186 - } 187 - ]; 188 - }; 189 - }; 190 - cliphist = { 191 - enable = true; 192 - systemdTargets = lib.mkForce [ 193 - config.home-manager.users.bean.wayland.systemd.target 194 - ]; 195 - }; 196 - udiskie = { 197 - enable = true; 198 - automount = false; 199 - tray = "never"; 200 - }; 201 - playerctld.enable = true; 202 - network-manager-applet.enable = true; 203 - wlsunset = { 204 - enable = true; 205 - sunrise = "6:00"; 206 - sunset = "22:00"; 207 - }; 208 - swayosd = { 209 - enable = true; 210 - stylePath = pkgs.writeText "swayosd-style.css" '' 211 - window#osd { 212 - border-radius: 5rem; 162 + listener = let 163 + lockTimeout = 120; 164 + in [ 165 + { 166 + timeout = lockTimeout; # Lock the screen after 2 minutes of inactivity 167 + on-timeout = "loginctl lock-session"; 168 + } 169 + { 170 + timeout = lockTimeout + 120; # Turn off the screen 2 minutes after locking 171 + on-timeout = screenOffCmd; 172 + on-resume = screenOnCmd; 213 173 } 214 - 215 - #container { 216 - padding: 5px 10px; 174 + { 175 + timeout = lockTimeout + 600; # Suspend 10 minutes after locking 176 + on-timeout = "systemctl suspend"; 217 177 } 218 - ''; 178 + ]; 219 179 }; 220 180 }; 181 + cliphist = { 182 + enable = true; 183 + systemdTargets = lib.mkForce [ 184 + config.home-manager.users.bean.wayland.systemd.target 185 + ]; 186 + }; 187 + udiskie = { 188 + enable = true; 189 + automount = false; 190 + tray = "never"; 191 + }; 192 + playerctld.enable = true; 193 + network-manager-applet.enable = true; 194 + wlsunset = { 195 + enable = true; 196 + sunrise = "6:00"; 197 + sunset = "22:00"; 198 + }; 199 + swayosd = { 200 + enable = true; 201 + stylePath = pkgs.writeText "swayosd-style.css" '' 202 + window#osd { 203 + border-radius: 5rem; 204 + } 221 205 222 - programs = { 223 - rofi = { 224 - enable = true; 225 - package = pkgs.rofi-wayland.override { 226 - plugins = with pkgs; [ 227 - rofi-emoji-wayland 228 - rofi-power-menu 229 - rofi-bluetooth 230 - (rofi-calc.override { 231 - rofi-unwrapped = rofi-wayland-unwrapped; 232 - }) 233 - rofi-pulse-select 234 - ]; 235 - }; 236 - theme = 237 - let 238 - inherit (config.home-manager.users.bean.lib.formats.rasi) mkLiteral; 239 - in 240 - { 241 - "@import" = 242 - "${config.catppuccin.sources.rofi}/themes/catppuccin-${config.home-manager.users.bean.catppuccin.rofi.flavor}.rasi"; 243 - "*" = 244 - (builtins.mapAttrs (name: value: mkLiteral "@${value}") { 245 - "bg0" = "base"; 246 - "bg1" = "mantle"; 247 - "bg2" = "crust"; 248 - "bg3" = config.catppuccin.accent; 249 - "fg0" = "subtext1"; 250 - "fg1" = "text"; 251 - "fg2" = "subtext0"; 252 - "fg3" = "overlay0"; 253 - "fg4" = "surface0"; 254 - }) 255 - // { 256 - font = mkLiteral ''"Roboto 14"''; 257 - background-color = mkLiteral ''transparent''; 258 - text-color = mkLiteral ''@fg0''; 259 - margin = mkLiteral ''0px''; 260 - padding = mkLiteral ''0px''; 261 - spacing = mkLiteral ''0px''; 262 - }; 263 - "window" = { 264 - location = mkLiteral ''north''; 265 - y-offset = mkLiteral ''calc(50% - 176px)''; 266 - width = mkLiteral ''600''; 267 - border-radius = mkLiteral ''24px''; 268 - background-color = mkLiteral ''@bg0''; 269 - }; 270 - "mainbox" = { 271 - padding = mkLiteral ''12px''; 272 - }; 273 - "inputbar" = { 274 - background-color = mkLiteral ''@bg1''; 275 - border-color = mkLiteral ''@bg3''; 276 - border = mkLiteral ''2px''; 277 - border-radius = mkLiteral ''16px''; 278 - padding = mkLiteral ''8px 16px''; 279 - spacing = mkLiteral ''8px''; 280 - children = mkLiteral ''[ prompt, entry ]''; 281 - }; 282 - "prompt" = { 283 - text-color = mkLiteral ''@fg2''; 284 - }; 285 - "entry" = { 286 - placeholder = mkLiteral ''"Search"''; 287 - placeholder-color = mkLiteral ''@fg3''; 288 - }; 289 - "message" = { 290 - margin = mkLiteral ''12px 0 0''; 291 - border-radius = mkLiteral ''16px''; 292 - border-color = mkLiteral ''@bg2''; 293 - background-color = mkLiteral ''@bg2''; 294 - }; 295 - "textbox" = { 296 - padding = mkLiteral ''8px 24px''; 297 - }; 298 - "listview" = { 299 - background-color = mkLiteral ''transparent''; 300 - margin = mkLiteral ''12px 0 0''; 301 - lines = mkLiteral ''8''; 302 - columns = mkLiteral ''2''; 303 - fixed-height = mkLiteral ''false''; 304 - }; 305 - "element" = { 306 - padding = mkLiteral ''8px 16px''; 307 - spacing = mkLiteral ''8px''; 308 - border-radius = mkLiteral ''16px''; 309 - }; 310 - "element normal active" = { 311 - text-color = mkLiteral ''@bg3''; 312 - }; 313 - "element alternate active" = { 314 - text-color = mkLiteral ''@bg3''; 315 - }; 316 - "element selected normal, element selected active" = { 317 - text-color = mkLiteral ''@fg4''; 318 - background-color = mkLiteral ''@bg3''; 319 - }; 320 - "element-icon" = { 321 - size = mkLiteral ''1em''; 322 - vertical-align = mkLiteral ''0.5''; 323 - }; 324 - "element-text" = { 325 - text-color = mkLiteral ''inherit''; 326 - }; 206 + #container { 207 + padding: 5px 10px; 208 + } 209 + ''; 210 + }; 211 + }; 212 + 213 + programs = { 214 + rofi = { 215 + enable = true; 216 + package = pkgs.rofi-wayland.override { 217 + plugins = with pkgs; [ 218 + rofi-emoji-wayland 219 + rofi-power-menu 220 + rofi-bluetooth 221 + (rofi-calc.override { 222 + rofi-unwrapped = rofi-wayland-unwrapped; 223 + }) 224 + rofi-pulse-select 225 + ]; 226 + }; 227 + theme = let 228 + inherit (config.home-manager.users.bean.lib.formats.rasi) mkLiteral; 229 + in { 230 + "@import" = "${config.catppuccin.sources.rofi}/themes/catppuccin-${config.home-manager.users.bean.catppuccin.rofi.flavor}.rasi"; 231 + "*" = 232 + (builtins.mapAttrs (name: value: mkLiteral "@${value}") { 233 + "bg0" = "base"; 234 + "bg1" = "mantle"; 235 + "bg2" = "crust"; 236 + "bg3" = config.catppuccin.accent; 237 + "fg0" = "subtext1"; 238 + "fg1" = "text"; 239 + "fg2" = "subtext0"; 240 + "fg3" = "overlay0"; 241 + "fg4" = "surface0"; 242 + }) 243 + // { 244 + font = mkLiteral ''"Roboto 14"''; 245 + background-color = mkLiteral ''transparent''; 246 + text-color = mkLiteral ''@fg0''; 247 + margin = mkLiteral ''0px''; 248 + padding = mkLiteral ''0px''; 249 + spacing = mkLiteral ''0px''; 327 250 }; 328 - location = "center"; 251 + "window" = { 252 + location = mkLiteral ''north''; 253 + y-offset = mkLiteral ''calc(50% - 176px)''; 254 + width = mkLiteral ''600''; 255 + border-radius = mkLiteral ''24px''; 256 + background-color = mkLiteral ''@bg0''; 257 + }; 258 + "mainbox" = { 259 + padding = mkLiteral ''12px''; 260 + }; 261 + "inputbar" = { 262 + background-color = mkLiteral ''@bg1''; 263 + border-color = mkLiteral ''@bg3''; 264 + border = mkLiteral ''2px''; 265 + border-radius = mkLiteral ''16px''; 266 + padding = mkLiteral ''8px 16px''; 267 + spacing = mkLiteral ''8px''; 268 + children = mkLiteral ''[ prompt, entry ]''; 269 + }; 270 + "prompt" = { 271 + text-color = mkLiteral ''@fg2''; 272 + }; 273 + "entry" = { 274 + placeholder = mkLiteral ''"Search"''; 275 + placeholder-color = mkLiteral ''@fg3''; 276 + }; 277 + "message" = { 278 + margin = mkLiteral ''12px 0 0''; 279 + border-radius = mkLiteral ''16px''; 280 + border-color = mkLiteral ''@bg2''; 281 + background-color = mkLiteral ''@bg2''; 282 + }; 283 + "textbox" = { 284 + padding = mkLiteral ''8px 24px''; 285 + }; 286 + "listview" = { 287 + background-color = mkLiteral ''transparent''; 288 + margin = mkLiteral ''12px 0 0''; 289 + lines = mkLiteral ''8''; 290 + columns = mkLiteral ''2''; 291 + fixed-height = mkLiteral ''false''; 292 + }; 293 + "element" = { 294 + padding = mkLiteral ''8px 16px''; 295 + spacing = mkLiteral ''8px''; 296 + border-radius = mkLiteral ''16px''; 297 + }; 298 + "element normal active" = { 299 + text-color = mkLiteral ''@bg3''; 300 + }; 301 + "element alternate active" = { 302 + text-color = mkLiteral ''@bg3''; 303 + }; 304 + "element selected normal, element selected active" = { 305 + text-color = mkLiteral ''@fg4''; 306 + background-color = mkLiteral ''@bg3''; 307 + }; 308 + "element-icon" = { 309 + size = mkLiteral ''1em''; 310 + vertical-align = mkLiteral ''0.5''; 311 + }; 312 + "element-text" = { 313 + text-color = mkLiteral ''inherit''; 314 + }; 329 315 }; 330 - nushell.extraConfig = '' 331 - plugin add ${pkgs.nu_plugin_dbus}/bin/nu_plugin_dbus 332 - ''; 316 + location = "center"; 333 317 }; 318 + nushell.extraConfig = '' 319 + plugin add ${pkgs.nu_plugin_dbus}/bin/nu_plugin_dbus 320 + ''; 321 + }; 334 322 335 - wayland.windowManager.hyprland.settings = { 336 - env = [ 337 - "GRIMBLAST_EDITOR,swappy -f " 338 - ]; 323 + wayland.windowManager.hyprland.settings = { 324 + env = [ 325 + "GRIMBLAST_EDITOR,swappy -f " 326 + ]; 339 327 340 - exec-once = [ 341 - "[workspace 3] uwsm app -- keepassxc /home/bean/Documents/Database.kdbx" 342 - ]; 328 + exec-once = [ 329 + "[workspace 3] uwsm app -- keepassxc /home/bean/Documents/Database.kdbx" 330 + ]; 343 331 344 - bind = 345 - let 346 - powerMenu = "rofi -modi 'p:${pkgs.rofi-power-menu}/bin/rofi-power-menu' -show p --symbols-font \"FiraMono Nerd Font Mono\""; 347 - screenshot = "${pkgs.nushell}/bin/nu ${../../res/screenshot.nu}"; 348 - in 349 - [ 350 - "SUPER,S,exec,uwsm app -- rofi -show drun -icon-theme \"candy-icons\" -show-icons" 351 - "SUPER SHIFT,E,exec,uwsm app -- rofi -modi emoji -show emoji" 352 - "SUPER,Delete,exec,uwsm app -- ${powerMenu}" 353 - ",XF86PowerOff,exec,uwsm app -- ${powerMenu}" 354 - "SUPER ALT,C,exec,uwsm app -- rofi -show calc -modi calc -no-show-match -no-sort -calc-command \"echo -n '{result}' | wl-copy\"" 355 - "SUPER,B,exec,uwsm app -- ${pkgs.rofi-bluetooth}/bin/rofi-bluetooth" 356 - "SUPER,Tab,exec,uwsm app -- rofi -show window -show-icons" 357 - "SUPER,E,exec,uwsm app -- ${pkgs.nushell}/bin/nu ${../../res/rofi/rofi-places.nu}" 358 - "SUPER,N,exec,uwsm app -- ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw" 359 - "SUPER,A,exec,uwsm app -- pavucontrol --tab 5" 360 - ''SUPER,V,exec,cliphist list | sed -r 's/\[\[ binary data (.* .iB) (.*) (.*) \]\]/ 󰋩 \2 Image (\3, \1)/g' | rofi -dmenu -display-columns 2 -p Clipboard | cliphist decode | wl-copy'' 361 - "SUPER ALT,V,exec,echo -e \"Yes\\nNo\" | [[ $(rofi -dmenu -mesg \"Clear Clipboard History?\" -p Clear) == \"Yes\" ]] && cliphist wipe" 362 - ",Print,exec,uwsm app -- ${screenshot}" 363 - "SUPER SHIFT,S,exec,uwsm app -- ${screenshot}" 364 - "SUPER SHIFT,T,exec,${pkgs.nushell}/bin/nu ${../../res/ocr.nu}" 365 - "SUPER SHIFT,C,exec,uwsm app -- ${pkgs.hyprpicker}/bin/hyprpicker -a" 366 - ]; 367 - bindr = [ 368 - "SUPER SHIFT,R,exec,pkill wf-recorder --signal SIGINT || uwsm app -- ${pkgs.nushell}/bin/nu ${../../res/screenrec.nu}" 369 - "CAPS,Caps_Lock,exec,uwsm app -- swayosd-client --caps-lock" 370 - ",Scroll_Lock,exec,uwsm app -- swayosd-client --scroll-lock" 371 - ",Num_Lock,exec,uwsm app -- swayosd-client --num-lock" 372 - ]; 373 - bindl = [ 374 - ",switch:on:Lid Switch,exec,${screenOffCmd}" 375 - ",switch:off:Lid Switch,exec,${screenOnCmd}" 376 - ]; 377 - bindel = [ 378 - ",XF86MonBrightnessUp,exec,uwsm app -- swayosd-client --brightness raise" 379 - ",XF86MonBrightnessDown,exec,uwsm app -- swayosd-client --brightness lower" 380 - ]; 381 - }; 332 + bind = let 333 + powerMenu = "rofi -modi 'p:${pkgs.rofi-power-menu}/bin/rofi-power-menu' -show p --symbols-font \"FiraMono Nerd Font Mono\""; 334 + screenshot = "${pkgs.nushell}/bin/nu ${../../res/screenshot.nu}"; 335 + in [ 336 + "SUPER,S,exec,uwsm app -- rofi -show drun -icon-theme \"candy-icons\" -show-icons" 337 + "SUPER SHIFT,E,exec,uwsm app -- rofi -modi emoji -show emoji" 338 + "SUPER,Delete,exec,uwsm app -- ${powerMenu}" 339 + ",XF86PowerOff,exec,uwsm app -- ${powerMenu}" 340 + "SUPER ALT,C,exec,uwsm app -- rofi -show calc -modi calc -no-show-match -no-sort -calc-command \"echo -n '{result}' | wl-copy\"" 341 + "SUPER,B,exec,uwsm app -- ${pkgs.rofi-bluetooth}/bin/rofi-bluetooth" 342 + "SUPER,Tab,exec,uwsm app -- rofi -show window -show-icons" 343 + "SUPER,E,exec,uwsm app -- ${pkgs.nushell}/bin/nu ${../../res/rofi/rofi-places.nu}" 344 + "SUPER,N,exec,uwsm app -- ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw" 345 + "SUPER,A,exec,uwsm app -- pavucontrol --tab 5" 346 + ''SUPER,V,exec,cliphist list | sed -r 's/\[\[ binary data (.* .iB) (.*) (.*) \]\]/ 󰋩 \2 Image (\3, \1)/g' | rofi -dmenu -display-columns 2 -p Clipboard | cliphist decode | wl-copy'' 347 + "SUPER ALT,V,exec,echo -e \"Yes\\nNo\" | [[ $(rofi -dmenu -mesg \"Clear Clipboard History?\" -p Clear) == \"Yes\" ]] && cliphist wipe" 348 + ",Print,exec,uwsm app -- ${screenshot}" 349 + "SUPER SHIFT,S,exec,uwsm app -- ${screenshot}" 350 + "SUPER SHIFT,T,exec,${pkgs.nushell}/bin/nu ${../../res/ocr.nu}" 351 + "SUPER SHIFT,C,exec,uwsm app -- ${pkgs.hyprpicker}/bin/hyprpicker -a" 352 + ]; 353 + bindr = [ 354 + "SUPER SHIFT,R,exec,pkill wf-recorder --signal SIGINT || uwsm app -- ${pkgs.nushell}/bin/nu ${../../res/screenrec.nu}" 355 + "CAPS,Caps_Lock,exec,uwsm app -- swayosd-client --caps-lock" 356 + ",Scroll_Lock,exec,uwsm app -- swayosd-client --scroll-lock" 357 + ",Num_Lock,exec,uwsm app -- swayosd-client --num-lock" 358 + ]; 359 + bindl = [ 360 + ",switch:on:Lid Switch,exec,${screenOffCmd}" 361 + ",switch:off:Lid Switch,exec,${screenOnCmd}" 362 + ]; 363 + bindel = [ 364 + ",XF86MonBrightnessUp,exec,uwsm app -- swayosd-client --brightness raise" 365 + ",XF86MonBrightnessDown,exec,uwsm app -- swayosd-client --brightness lower" 366 + ]; 382 367 }; 368 + }; 383 369 }
-1
nixosModules/graphics/xdg.nix
··· 72 72 imageViewers = 73 73 [ 74 74 "org.gnome.Loupe.desktop" 75 - "gimp.desktop" 76 75 ] 77 76 ++ browsers; 78 77 avPlayers =