this repo has no description
1
fork

Configure Feed

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

Make more stuff default to cow.gdi.enable

Ben C 0b6dc291 d70c678e

+265 -232
+21 -21
flake.lock
··· 31 31 ] 32 32 }, 33 33 "locked": { 34 - "lastModified": 1761906071, 35 - "narHash": "sha256-uq0X0KRzZkKGlkU1ARM+LWCAVvSYJZtTMpuzMO6LXRs=", 34 + "lastModified": 1762198582, 35 + "narHash": "sha256-P9giW/1Crn7ekQt4YIbONJ/hKFaHkTwyhz82FCjh+OM=", 36 36 "owner": "catppuccin", 37 37 "repo": "nix", 38 - "rev": "fd1bc7b1af0a576edb13c166c4b1f7b5c7555a73", 38 + "rev": "08716214674ca27914daa52e6fa809cc022b581e", 39 39 "type": "github" 40 40 }, 41 41 "original": { ··· 410 410 ] 411 411 }, 412 412 "locked": { 413 - "lastModified": 1762146130, 414 - "narHash": "sha256-/XOEA0a61fZ45i/BpaSsyLNNbw/yKwjMbkB/IWSGLzU=", 413 + "lastModified": 1762266885, 414 + "narHash": "sha256-THnfl16UGSjMXdDQZwIuFuDJj+tYjUHAl9w/DNpkuAw=", 415 415 "owner": "nix-community", 416 416 "repo": "home-manager", 417 - "rev": "b5ed4afc2277339bdf0e9edf59befff7350cf075", 417 + "rev": "c39c07bf31dc080851377c04352fa06f197f0c1c", 418 418 "type": "github" 419 419 }, 420 420 "original": { ··· 480 480 ] 481 481 }, 482 482 "locked": { 483 - "lastModified": 1756744479, 484 - "narHash": "sha256-EyZXusK/wRD3V9vDh00W2Re3Eg8UQ+LjVBQrrH9dq1U=", 483 + "lastModified": 1762205063, 484 + "narHash": "sha256-If6vQ+KvtKs3ARBO9G3l+4wFSCYtRBrwX1z+I+B61wQ=", 485 485 "owner": "nix-community", 486 486 "repo": "lanzaboote", 487 - "rev": "747b7912f49e2885090c83364d88cf853a020ac1", 487 + "rev": "88b8a563ff5704f4e8d8e5118fb911fa2110ca05", 488 488 "type": "github" 489 489 }, 490 490 "original": { ··· 515 515 }, 516 516 "nixos-hardware": { 517 517 "locked": { 518 - "lastModified": 1761933221, 519 - "narHash": "sha256-rNHeoG3ZrA94jczyLSjxCtu67YYPYIlXXr0uhG3wNxM=", 518 + "lastModified": 1762267440, 519 + "narHash": "sha256-WHjEJ80oYbWyNu0dxysBs5oMlBc5w7YYzL1/UPj4iGo=", 520 520 "owner": "NixOS", 521 521 "repo": "nixos-hardware", 522 - "rev": "7467f155fcba189eb088a7601f44fbef7688669b", 522 + "rev": "2e85ae1b7030df39269d29118b1f74944d0c8f15", 523 523 "type": "github" 524 524 }, 525 525 "original": { ··· 530 530 }, 531 531 "nixpkgs": { 532 532 "locked": { 533 - "lastModified": 1761907660, 534 - "narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", 533 + "lastModified": 1762111121, 534 + "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", 535 535 "owner": "NixOS", 536 536 "repo": "nixpkgs", 537 - "rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15", 537 + "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", 538 538 "type": "github" 539 539 }, 540 540 "original": { ··· 554 554 "systems": "systems_2" 555 555 }, 556 556 "locked": { 557 - "lastModified": 1762097356, 558 - "narHash": "sha256-XwLZC+5T3gJJWVVAZ9atpRPopyXXlHfF5fvkhTigs0E=", 557 + "lastModified": 1762207388, 558 + "narHash": "sha256-+FvGHB57ZuJIYbI35qcyGsxhvKdeKlX7AomVD6M5sIg=", 559 559 "owner": "nix-community", 560 560 "repo": "nixvim", 561 - "rev": "660fba984fe25ded6fa2e32016c05aebf4290273", 561 + "rev": "de1760ddfd3e67aa5d2251d7df9e6bad30c36692", 562 562 "type": "github" 563 563 }, 564 564 "original": { ··· 748 748 ] 749 749 }, 750 750 "locked": { 751 - "lastModified": 1762137611, 752 - "narHash": "sha256-sTqb10FR/YQCuGbw16qxliX0NFlYg6evSEjN8w+9IYE=", 751 + "lastModified": 1762223900, 752 + "narHash": "sha256-caxpESVH71mdrdihYvQZ9rTZPZqW0GyEG9un7MgpyRM=", 753 753 "owner": "oxalica", 754 754 "repo": "rust-overlay", 755 - "rev": "3a0ebe5d2965692f990cb27e62f501ad35e3deeb", 755 + "rev": "cfe1598d69a42a5edb204770e71b8df77efef2c3", 756 756 "type": "github" 757 757 }, 758 758 "original": {
+5 -1
homeModules/firefox.nix
··· 6 6 }: let 7 7 package = pkgs.firefox-devedition; 8 8 in { 9 - options.cow.firefox.enable = lib.mkEnableOption "enable Firefox with customizations"; 9 + options.cow.firefox.enable = 10 + lib.mkEnableOption "enable Firefox with customizations" 11 + // { 12 + default = config.cow.gdi.enable; 13 + }; 10 14 11 15 config = lib.mkIf config.cow.firefox.enable { 12 16 cow.imperm.keep = [".mozilla"];
+214 -192
homeModules/gdi.nix
··· 1 - {inputs, ...}: { 1 + { inputs, ... }: 2 + { 2 3 config, 3 4 lib, 4 5 pkgs, 5 6 ... 6 - }: { 7 + }: 8 + { 7 9 options.cow.gdi = { 8 10 enable = lib.mkEnableOption "Cow GDI, a 'DE' by ur favorite polish cow"; 9 11 doIdle = lib.mkEnableOption "Screen locking and suspend with Hypridle"; 10 12 useUWSM = lib.mkEnableOption "Use UWSM to launch apps"; 11 13 }; 12 14 13 - config = let 14 - runCmd = cmd: 15 - if config.cow.gdi.useUWSM 16 - then "uwsm app -- ${cmd}" 17 - else cmd; 18 - launchDesktopApp = deskFile: 19 - if config.cow.gdi.useUWSM 20 - then "uwsm app -- ${deskFile}" 21 - else "${pkgs.gtk3}/bin/gtk-launch ${deskFile}"; 22 - screenOffCmd = "hyprctl dispatch dpms off; ${pkgs.swaynotificationcenter}/bin/swaync-client --inhibitor-add \"timeout\""; 23 - screenOnCmd = "hyprctl dispatch dpms on; ${pkgs.swaynotificationcenter}/bin/swaync-client --inhibitor-remove \"timeout\""; 24 - iconTheme = { 25 - name = "Tela-green"; 26 - package = pkgs.tela-icon-theme; 27 - }; 28 - cursorTheme = { 29 - name = "catppuccin-mocha-dark-cursors"; 30 - package = pkgs.catppuccin-cursors.mochaDark; 31 - size = 24; 32 - }; 33 - hyprThemeName = "${cursorTheme.name}-hypr"; 34 - hyprCursorTheme = let 35 - utils = "${pkgs.hyprcursor}/bin/hyprcursor-util"; 15 + config = 16 + let 17 + runCmd = cmd: if config.cow.gdi.useUWSM then "uwsm app -- ${cmd}" else cmd; 18 + launchDesktopApp = 19 + deskFile: 20 + if config.cow.gdi.useUWSM then 21 + "uwsm app -- ${deskFile}" 22 + else 23 + "${pkgs.gtk3}/bin/gtk-launch ${deskFile}"; 24 + screenOffCmd = "hyprctl dispatch dpms off; ${pkgs.swaynotificationcenter}/bin/swaync-client --inhibitor-add \"timeout\""; 25 + screenOnCmd = "hyprctl dispatch dpms on; ${pkgs.swaynotificationcenter}/bin/swaync-client --inhibitor-remove \"timeout\""; 26 + iconTheme = { 27 + name = "Tela-green"; 28 + package = pkgs.tela-icon-theme; 29 + }; 30 + cursorTheme = { 31 + name = "catppuccin-mocha-dark-cursors"; 32 + package = pkgs.catppuccin-cursors.mochaDark; 33 + size = 24; 34 + }; 35 + hyprThemeName = "${cursorTheme.name}-hypr"; 36 + hyprCursorTheme = 37 + let 38 + utils = "${pkgs.hyprcursor}/bin/hyprcursor-util"; 39 + in 40 + pkgs.runCommand hyprThemeName { } '' 41 + export PATH="$PATH:${pkgs.xcur2png}/bin" 42 + ${utils} -x ${cursorTheme.package}/share/icons/${cursorTheme.name} --output . 43 + mkdir -p $out/share/icons 44 + ${utils} -c ./extracted_${cursorTheme.name} --output . 45 + cp -r "./theme_Extracted Theme" $out/share/icons/${hyprThemeName} 46 + ''; 36 47 in 37 - pkgs.runCommand hyprThemeName {} '' 38 - export PATH="$PATH:${pkgs.xcur2png}/bin" 39 - ${utils} -x ${cursorTheme.package}/share/icons/${cursorTheme.name} --output . 40 - mkdir -p $out/share/icons 41 - ${utils} -c ./extracted_${cursorTheme.name} --output . 42 - cp -r "./theme_Extracted Theme" $out/share/icons/${hyprThemeName} 43 - ''; 44 - in 45 48 lib.mkIf config.cow.gdi.enable { 46 49 home.packages = with pkgs; [ 47 50 alsa-utils ··· 77 80 hunspellDicts.en_US-large 78 81 ]; 79 82 83 + xdg.mimeApps = lib.mkDefault { 84 + enable = true; 85 + defaultApplications = { 86 + "application/pdf" = lib.mkIf config.cow.firefox.enable "firefox-devedition.desktop"; 87 + "image/*" = lib.mkIf config.cow.firefox.enable "firefox-devedition.desktop"; 88 + "text/*" = lib.mkIf config.cow.neovim.enable "neovide.desktop"; 89 + "inode/directory" = lib.mkIf config.cow.yazi.enable "yazi.desktop"; 90 + "inode/mount-point" = lib.mkIf config.cow.yazi.enable "yazi.desktop"; 91 + }; 92 + }; 93 + 80 94 fonts.fontconfig.enable = false; 81 95 82 96 wayland.windowManager.hyprland = { ··· 146 160 "3,horizontal,workspace" 147 161 "4,swipe,move" 148 162 ]; 149 - bind = let 150 - powerMenu = "rofi -modi 'p:${pkgs.rofi-power-menu}/bin/rofi-power-menu' -show p"; 151 - screenshot = "${pkgs.nushell}/bin/nu ${../res/screenshot.nu}"; 163 + bind = 164 + let 165 + powerMenu = "rofi -modi 'p:${pkgs.rofi-power-menu}/bin/rofi-power-menu' -show p"; 166 + screenshot = "${pkgs.nushell}/bin/nu ${../res/screenshot.nu}"; 152 167 153 - openTerminal = launchDesktopApp "org.wezfurlong.wezterm.desktop"; 154 - forEachWorkspace = { 155 - mod, 156 - dispatch, 157 - }: 158 - builtins.genList ( 159 - i: let 160 - num = builtins.toString i; 161 - in "${mod},${num},${dispatch},${ 162 - if num == "0" 163 - then "10" 164 - else num 165 - }" 166 - ) 167 - 10; 168 - in 168 + openTerminal = launchDesktopApp "org.wezfurlong.wezterm.desktop"; 169 + forEachWorkspace = 170 + { 171 + mod, 172 + dispatch, 173 + }: 174 + builtins.genList ( 175 + i: 176 + let 177 + num = builtins.toString i; 178 + in 179 + "${mod},${num},${dispatch},${if num == "0" then "10" else num}" 180 + ) 10; 181 + in 169 182 [ 170 183 "SUPER,M,submap,passthru" 171 184 ] ··· 197 210 "SUPER,B,exec,${runCmd "${pkgs.rofi-bluetooth}/bin/rofi-bluetooth"}" 198 211 "SUPER,Tab,exec,${runCmd "rofi -show window -show-icons"}" 199 212 ] 200 - ++ lib.optionals config.cow.yazi.enable ["SUPER,E,exec,${launchDesktopApp "yazi.desktop"}"] 213 + ++ lib.optionals config.cow.yazi.enable [ "SUPER,E,exec,${launchDesktopApp "yazi.desktop"}" ] 201 214 ++ [ 202 215 "SUPER,N,exec,${runCmd "${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw"}" 203 216 "SUPER,A,exec,${runCmd "${pkgs.pavucontrol}/bin/pavucontrol --tab 5"}" ··· 353 366 354 367 catppuccin.rofi.enable = false; 355 368 356 - systemd.user.services = let 357 - target = config.wayland.systemd.target; 358 - mkShellService = { 359 - desc, 360 - service, 361 - }: { 362 - Install = { 363 - WantedBy = [target]; 364 - }; 369 + systemd.user.services = 370 + let 371 + target = config.wayland.systemd.target; 372 + mkShellService = 373 + { 374 + desc, 375 + service, 376 + }: 377 + { 378 + Install = { 379 + WantedBy = [ target ]; 380 + }; 365 381 366 - Unit = { 367 - ConditionEnvironment = "WAYLAND_DISPLAY"; 368 - Description = desc; 369 - After = [target]; 370 - PartOf = [target]; 371 - }; 382 + Unit = { 383 + ConditionEnvironment = "WAYLAND_DISPLAY"; 384 + Description = desc; 385 + After = [ target ]; 386 + PartOf = [ target ]; 387 + }; 372 388 373 - Service = service; 374 - }; 375 - in { 376 - battery-notif = mkShellService { 377 - desc = "Battery Notification Service"; 389 + Service = service; 390 + }; 391 + in 392 + { 393 + battery-notif = mkShellService { 394 + desc = "Battery Notification Service"; 378 395 379 - service = { 380 - ExecStart = "${pkgs.nushell}/bin/nu --plugins ${ 381 - inputs.nu_plugin_dbus.packages.${pkgs.system}.default 382 - } ${../res/battery_notif.nu}"; 383 - Restart = "on-failure"; 384 - RestartSec = "10"; 396 + service = { 397 + ExecStart = "${pkgs.nushell}/bin/nu --plugins ${ 398 + inputs.nu_plugin_dbus.packages.${pkgs.system}.default 399 + } ${../res/battery_notif.nu}"; 400 + Restart = "on-failure"; 401 + RestartSec = "10"; 402 + }; 385 403 }; 386 - }; 387 404 388 - mpris-idle-inhibit = mkShellService { 389 - desc = "MPRIS Idle Inhibitor"; 405 + mpris-idle-inhibit = mkShellService { 406 + desc = "MPRIS Idle Inhibitor"; 390 407 391 - service = { 392 - ExecStart = ''${ 408 + service = { 409 + ExecStart = ''${ 393 410 inputs.wayland-mpris-idle-inhibit.packages.${pkgs.system}.default 394 411 }/bin/wayland-mpris-idle-inhibit --ignore "kdeconnect" --ignore "playerctld"''; 395 - Restart = "on-failure"; 396 - RestartSec = "10"; 412 + Restart = "on-failure"; 413 + RestartSec = "10"; 414 + }; 397 415 }; 398 416 }; 399 - }; 400 417 401 418 qt = { 402 419 enable = true; ··· 429 446 settings = { 430 447 ipc = "on"; 431 448 splash = false; 432 - preload = ["${config.cow.pictures.bg}"]; 433 - wallpaper = [",${config.cow.pictures.bg}"]; 449 + preload = [ "${config.cow.pictures.bg}" ]; 450 + wallpaper = [ ",${config.cow.pictures.bg}" ]; 434 451 }; 435 452 }; 436 453 ··· 498 515 after_sleep_cmd = screenOnCmd; 499 516 }; 500 517 501 - listener = let 502 - lockTimeout = 120; 503 - in [ 504 - { 505 - timeout = lockTimeout; # Lock the screen after 2 minutes of inactivity 506 - on-timeout = "loginctl lock-session"; 507 - } 508 - { 509 - timeout = lockTimeout + 120; # Turn off the screen 2 minutes after locking 510 - on-timeout = screenOffCmd; 511 - on-resume = screenOnCmd; 512 - } 513 - { 514 - timeout = lockTimeout + 600; # Suspend 10 minutes after locking 515 - on-timeout = "systemctl suspend"; 516 - } 517 - ]; 518 + listener = 519 + let 520 + lockTimeout = 120; 521 + in 522 + [ 523 + { 524 + timeout = lockTimeout; # Lock the screen after 2 minutes of inactivity 525 + on-timeout = "loginctl lock-session"; 526 + } 527 + { 528 + timeout = lockTimeout + 120; # Turn off the screen 2 minutes after locking 529 + on-timeout = screenOffCmd; 530 + on-resume = screenOnCmd; 531 + } 532 + { 533 + timeout = lockTimeout + 600; # Suspend 10 minutes after locking 534 + on-timeout = "systemctl suspend"; 535 + } 536 + ]; 518 537 }; 519 538 }; 520 539 ··· 561 580 rofi-pulse-select 562 581 ]; 563 582 }; 564 - theme = let 565 - inherit (config.lib.formats.rasi) mkLiteral; 566 - in { 567 - "@import" = "${config.catppuccin.sources.rofi}/themes/catppuccin-${config.catppuccin.rofi.flavor}.rasi"; 568 - "*" = 569 - (builtins.mapAttrs (name: value: mkLiteral "@${value}") { 570 - "bg0" = "base"; 571 - "bg1" = "mantle"; 572 - "bg2" = "crust"; 573 - "bg3" = config.catppuccin.accent; 574 - "fg0" = "subtext1"; 575 - "fg1" = "text"; 576 - "fg2" = "subtext0"; 577 - "fg3" = "overlay0"; 578 - "fg4" = "surface0"; 579 - }) 580 - // { 581 - font = mkLiteral ''"Roboto 14"''; 583 + theme = 584 + let 585 + inherit (config.lib.formats.rasi) mkLiteral; 586 + in 587 + { 588 + "@import" = 589 + "${config.catppuccin.sources.rofi}/themes/catppuccin-${config.catppuccin.rofi.flavor}.rasi"; 590 + "*" = 591 + (builtins.mapAttrs (name: value: mkLiteral "@${value}") { 592 + "bg0" = "base"; 593 + "bg1" = "mantle"; 594 + "bg2" = "crust"; 595 + "bg3" = config.catppuccin.accent; 596 + "fg0" = "subtext1"; 597 + "fg1" = "text"; 598 + "fg2" = "subtext0"; 599 + "fg3" = "overlay0"; 600 + "fg4" = "surface0"; 601 + }) 602 + // { 603 + font = mkLiteral ''"Roboto 14"''; 604 + background-color = mkLiteral ''transparent''; 605 + text-color = mkLiteral ''@fg0''; 606 + margin = mkLiteral ''0px''; 607 + padding = mkLiteral ''0px''; 608 + spacing = mkLiteral ''0px''; 609 + }; 610 + "window" = { 611 + location = mkLiteral ''north''; 612 + y-offset = mkLiteral ''calc(50% - 176px)''; 613 + width = mkLiteral ''600''; 614 + border-radius = mkLiteral ''24px''; 615 + background-color = mkLiteral ''@bg0''; 616 + }; 617 + "mainbox" = { 618 + padding = mkLiteral ''12px''; 619 + }; 620 + "inputbar" = { 621 + background-color = mkLiteral ''@bg1''; 622 + border-color = mkLiteral ''@bg3''; 623 + border = mkLiteral ''2px''; 624 + border-radius = mkLiteral ''16px''; 625 + padding = mkLiteral ''8px 16px''; 626 + spacing = mkLiteral ''8px''; 627 + children = mkLiteral ''[ prompt, entry ]''; 628 + }; 629 + "prompt" = { 630 + text-color = mkLiteral ''@fg2''; 631 + }; 632 + "entry" = { 633 + placeholder = mkLiteral ''"Search"''; 634 + placeholder-color = mkLiteral ''@fg3''; 635 + }; 636 + "message" = { 637 + margin = mkLiteral ''12px 0 0''; 638 + border-radius = mkLiteral ''16px''; 639 + border-color = mkLiteral ''@bg2''; 640 + background-color = mkLiteral ''@bg2''; 641 + }; 642 + "textbox" = { 643 + padding = mkLiteral ''8px 24px''; 644 + }; 645 + "listview" = { 582 646 background-color = mkLiteral ''transparent''; 583 - text-color = mkLiteral ''@fg0''; 584 - margin = mkLiteral ''0px''; 585 - padding = mkLiteral ''0px''; 586 - spacing = mkLiteral ''0px''; 647 + margin = mkLiteral ''12px 0 0''; 648 + lines = mkLiteral ''8''; 649 + columns = mkLiteral ''2''; 650 + fixed-height = mkLiteral ''false''; 651 + }; 652 + "element" = { 653 + padding = mkLiteral ''8px 16px''; 654 + spacing = mkLiteral ''8px''; 655 + border-radius = mkLiteral ''16px''; 656 + }; 657 + "element normal active" = { 658 + text-color = mkLiteral ''@bg3''; 659 + }; 660 + "element alternate active" = { 661 + text-color = mkLiteral ''@bg3''; 662 + }; 663 + "element selected normal, element selected active" = { 664 + text-color = mkLiteral ''@fg4''; 665 + background-color = mkLiteral ''@bg3''; 666 + }; 667 + "element-icon" = { 668 + size = mkLiteral ''1em''; 669 + vertical-align = mkLiteral ''0.5''; 670 + }; 671 + "element-text" = { 672 + text-color = mkLiteral ''inherit''; 587 673 }; 588 - "window" = { 589 - location = mkLiteral ''north''; 590 - y-offset = mkLiteral ''calc(50% - 176px)''; 591 - width = mkLiteral ''600''; 592 - border-radius = mkLiteral ''24px''; 593 - background-color = mkLiteral ''@bg0''; 594 674 }; 595 - "mainbox" = { 596 - padding = mkLiteral ''12px''; 597 - }; 598 - "inputbar" = { 599 - background-color = mkLiteral ''@bg1''; 600 - border-color = mkLiteral ''@bg3''; 601 - border = mkLiteral ''2px''; 602 - border-radius = mkLiteral ''16px''; 603 - padding = mkLiteral ''8px 16px''; 604 - spacing = mkLiteral ''8px''; 605 - children = mkLiteral ''[ prompt, entry ]''; 606 - }; 607 - "prompt" = { 608 - text-color = mkLiteral ''@fg2''; 609 - }; 610 - "entry" = { 611 - placeholder = mkLiteral ''"Search"''; 612 - placeholder-color = mkLiteral ''@fg3''; 613 - }; 614 - "message" = { 615 - margin = mkLiteral ''12px 0 0''; 616 - border-radius = mkLiteral ''16px''; 617 - border-color = mkLiteral ''@bg2''; 618 - background-color = mkLiteral ''@bg2''; 619 - }; 620 - "textbox" = { 621 - padding = mkLiteral ''8px 24px''; 622 - }; 623 - "listview" = { 624 - background-color = mkLiteral ''transparent''; 625 - margin = mkLiteral ''12px 0 0''; 626 - lines = mkLiteral ''8''; 627 - columns = mkLiteral ''2''; 628 - fixed-height = mkLiteral ''false''; 629 - }; 630 - "element" = { 631 - padding = mkLiteral ''8px 16px''; 632 - spacing = mkLiteral ''8px''; 633 - border-radius = mkLiteral ''16px''; 634 - }; 635 - "element normal active" = { 636 - text-color = mkLiteral ''@bg3''; 637 - }; 638 - "element alternate active" = { 639 - text-color = mkLiteral ''@bg3''; 640 - }; 641 - "element selected normal, element selected active" = { 642 - text-color = mkLiteral ''@fg4''; 643 - background-color = mkLiteral ''@bg3''; 644 - }; 645 - "element-icon" = { 646 - size = mkLiteral ''1em''; 647 - vertical-align = mkLiteral ''0.5''; 648 - }; 649 - "element-text" = { 650 - text-color = mkLiteral ''inherit''; 651 - }; 652 - }; 653 675 location = "center"; 654 676 }; 655 677 nushell.extraConfig = ''
+10 -6
homeModules/user-bean.nix
··· 1 - {...}: { 1 + { ... }: 2 + { 2 3 pkgs, 3 4 lib, 4 5 config, 5 6 ... 6 - }: { 7 + }: 8 + { 7 9 options.cow.bean = { 8 10 enable = lib.mkEnableOption "Bean user presets"; 9 11 pubkey = lib.mkOption { ··· 52 54 "EDITOR" = "nvim"; 53 55 }; 54 56 57 + xdg.mimeApps.defaultApplications = lib.mkIf config.cow.gdi.enable { 58 + "image/svg+xml" = "org.inkscape.Inkscape.desktop"; 59 + "image/*" = "org.gnome.Loupe.desktop"; 60 + }; 61 + 55 62 cow = { 56 63 libraries.enable = true; 57 64 imperm.keepLibraries = true; ··· 67 74 neovim.enable = true; 68 75 htop.enable = true; 69 76 starship.enable = true; 70 - yazi.enable = true; 71 77 dev.enable = true; 72 78 comma.enable = true; 73 79 cat.enable = true; 74 80 75 - firefox.enable = config.cow.gdi.enable; 76 - waybar.enable = config.cow.gdi.enable; 77 81 keepassxc = { 78 - enable = config.cow.gdi.enable; 82 + enable = true; 79 83 dbPath = lib.mkDefault "${config.xdg.userDirs.documents}/Keepass/DB/Database.kdbx"; 80 84 }; 81 85 };
+8 -3
homeModules/waybar.nix
··· 4 4 pkgs, 5 5 ... 6 6 }: { 7 - options.cow.waybar.enable = lib.mkEnableOption "Waybar + customizations"; 7 + options.cow.waybar.enable = 8 + lib.mkEnableOption "Waybar + customizations" 9 + // { 10 + default = config.cow.gdi.enable; 11 + }; 8 12 9 13 config = let 10 14 catppuccinCss = pkgs.fetchurl { ··· 283 287 format-connected-battery = "󰂱 {device_battery_percentage}󰏰"; 284 288 format-disabled = "󰂲"; 285 289 format-off = "󰂲"; 286 - on-click = "rofi-bluetooth"; 287 290 on-click-right = "rfkill toggle bluetooth"; 288 291 tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected"; 289 292 tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}"; ··· 317 320 tooltip-format = "{:%F at %T in %Z (UTC%Ez)}"; 318 321 }; 319 322 "custom/kde-connect" = { 320 - exec = "${pkgs.nushell}/bin/nu --plugins ${inputs.nu_plugin_dbus.packages.${pkgs.system}.default} ${../res/custom_waybar_modules/kdeconnect.nu}"; 323 + exec = "${pkgs.nushell}/bin/nu --plugins ${ 324 + inputs.nu_plugin_dbus.packages.${pkgs.system}.default 325 + } ${../res/custom_waybar_modules/kdeconnect.nu}"; 321 326 format = "{}"; 322 327 interval = 30; 323 328 on-click = "kdeconnect-settings";
+5 -1
homeModules/yazi.nix
··· 4 4 pkgs, 5 5 ... 6 6 }: { 7 - options.cow.yazi.enable = lib.mkEnableOption "Yazi + Customizations"; 7 + options.cow.yazi.enable = 8 + lib.mkEnableOption "Yazi + Customizations" 9 + // { 10 + default = true; 11 + }; 8 12 9 13 config = lib.mkIf config.cow.yazi.enable { 10 14 home.packages = with pkgs; [
+1 -4
res/screenrec.nu
··· 23 23 24 24 wf-recorder -g ($stat.stdout) -F fps=30 -f $out_name 25 25 26 - let action = notify-send --app-name=simplescreenrecorder --icon=simplescreenrecorder -t 7500 --action=open=Open --action=folder="Show In Folder" --action=delete=Delete "Recording finished" $"File saved to ($out_name)" 26 + let action = notify-send --app-name=simplescreenrecorder --icon=simplescreenrecorder -t 7500 --action=open=Open --action=delete=Delete "Recording finished" $"File saved to ($out_name)" 27 27 28 28 match $action { 29 29 "open" => { 30 30 xdg-open $out_name 31 - } 32 - "folder" => { 33 - xdg-open $captures_folder 34 31 } 35 32 "delete" => { 36 33 rm $out_name
+1 -4
res/screenshot.nu
··· 6 6 exit 1; 7 7 } 8 8 9 - let choice = notify-send --app-name=screengrab -i $file_path -t 7500 --action=open=Open --action=folder="Show In Folder" --action=edit=Edit --action=delete=Delete "Screenshot taken" $"Screenshot saved to ($file_path) and copied to clipboard" 9 + let choice = notify-send --app-name=screengrab -i $file_path -t 7500 --action=open=Open --action=edit=Edit --action=delete=Delete "Screenshot taken" $"Screenshot saved to ($file_path) and copied to clipboard" 10 10 11 11 match $choice { 12 12 "open" => { 13 13 xdg-open $file_path 14 - } 15 - "folder" => { 16 - xdg-open ($file_path | path dirname) 17 14 } 18 15 "edit" => { 19 16 swappy -f $file_path