diff options
Diffstat (limited to 'accounts/gkleen@sif/default.nix')
| -rw-r--r-- | accounts/gkleen@sif/default.nix | 183 |
1 files changed, 140 insertions, 43 deletions
diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix index 1686a278..02241bd0 100644 --- a/accounts/gkleen@sif/default.nix +++ b/accounts/gkleen@sif/default.nix | |||
| @@ -49,7 +49,8 @@ let | |||
| 49 | ]; | 49 | ]; |
| 50 | }; | 50 | }; |
| 51 | 51 | ||
| 52 | lockCommand = "${lib.getExe' config.systemd.package "systemctl"} --user start gtklock.service"; | 52 | # lockCommand = "${lib.getExe' config.systemd.package "systemctl"} --user start gtklock.service"; |
| 53 | lockCommand = "${lib.getExe' cfg.programs.quickshell.package "qs"} ipc call Lockscreen setLocked true"; | ||
| 53 | 54 | ||
| 54 | editor = pkgs.symlinkJoin { | 55 | editor = pkgs.symlinkJoin { |
| 55 | inherit (cfg.services.emacs.package) name; | 56 | inherit (cfg.services.emacs.package) name; |
| @@ -70,8 +71,10 @@ in { | |||
| 70 | home-manager.users.${userName} = { | 71 | home-manager.users.${userName} = { |
| 71 | imports = [ | 72 | imports = [ |
| 72 | ./libvirt | 73 | ./libvirt |
| 73 | ./niri | 74 | ./niri.nix |
| 74 | flakeInputs.nix-index-database.hmModules.nix-index | 75 | ./shell |
| 76 | ./synadm | ||
| 77 | flakeInputs.nix-index-database.homeModules.nix-index | ||
| 75 | flakeInputs.impermanence.nixosModules.home-manager.impermanence | 78 | flakeInputs.impermanence.nixosModules.home-manager.impermanence |
| 76 | ]; | 79 | ]; |
| 77 | 80 | ||
| @@ -171,6 +174,7 @@ in { | |||
| 171 | }; | 174 | }; |
| 172 | }; | 175 | }; |
| 173 | }; | 176 | }; |
| 177 | chromium.enable = true; | ||
| 174 | 178 | ||
| 175 | zathura = { | 179 | zathura = { |
| 176 | enable = true; | 180 | enable = true; |
| @@ -232,6 +236,7 @@ in { | |||
| 232 | config.programs.ssh.package | 236 | config.programs.ssh.package |
| 233 | gnused | 237 | gnused |
| 234 | miniserve | 238 | miniserve |
| 239 | p7zip | ||
| 235 | ]; | 240 | ]; |
| 236 | execer = with pkgs; [ | 241 | execer = with pkgs; [ |
| 237 | "cannot:${lib.getExe' rpm "rpm2cpio"}" | 242 | "cannot:${lib.getExe' rpm "rpm2cpio"}" |
| @@ -244,6 +249,7 @@ in { | |||
| 244 | "cannot:${lib.getExe less}" | 249 | "cannot:${lib.getExe less}" |
| 245 | "cannot:${lib.getExe' config.systemd.package "systemctl"}" | 250 | "cannot:${lib.getExe' config.systemd.package "systemctl"}" |
| 246 | "cannot:${lib.getExe config.programs.ssh.package}" | 251 | "cannot:${lib.getExe config.programs.ssh.package}" |
| 252 | "cannot:${lib.getExe' p7zip "7z"}" | ||
| 247 | ]; | 253 | ]; |
| 248 | wrapper = with pkgs; [ | 254 | wrapper = with pkgs; [ |
| 249 | "${lib.getExe' magickWrapped "magick"}:${lib.getExe' imagemagick "magick"}" | 255 | "${lib.getExe' magickWrapped "magick"}:${lib.getExe' imagemagick "magick"}" |
| @@ -282,8 +288,16 @@ in { | |||
| 282 | pro = "$HOME/projects/pro"; | 288 | pro = "$HOME/projects/pro"; |
| 283 | media = "$HOME/media"; | 289 | media = "$HOME/media"; |
| 284 | }; | 290 | }; |
| 285 | zsh.zsh-abbr.globalAbbreviations = { | 291 | nix-index.enable = true; |
| 286 | "J" = "| jq '.'"; | 292 | jq.colors = { |
| 293 | arrays = "1;37"; | ||
| 294 | "false" = "0;37"; | ||
| 295 | "null" = "2;37"; | ||
| 296 | numbers = "0;37"; | ||
| 297 | objectKeys = "1;34"; | ||
| 298 | objects = "1;37"; | ||
| 299 | strings = "0;32"; | ||
| 300 | "true" = "0;37"; | ||
| 287 | }; | 301 | }; |
| 288 | 302 | ||
| 289 | obs-studio = { | 303 | obs-studio = { |
| @@ -320,12 +334,11 @@ in { | |||
| 320 | # notify_on_cmd_finish = "invisible 120"; | 334 | # notify_on_cmd_finish = "invisible 120"; |
| 321 | }; | 335 | }; |
| 322 | keybindings = { | 336 | keybindings = { |
| 323 | "kitty_mod+n" = "detach_window"; | 337 | "kitty_mod+n" = "new_os_window_with_cwd"; |
| 324 | "kitty_mod+m" = "detach_window ask"; | 338 | "kitty_mod+m" = "detach_window ask"; |
| 339 | "kitty_mod+enter" = "new_window_with_cwd"; | ||
| 340 | "kitty_mod+t" = "new_tab_with_cwd"; | ||
| 325 | }; | 341 | }; |
| 326 | extraConfig = '' | ||
| 327 | envinclude KITTY_CONF_* | ||
| 328 | ''; | ||
| 329 | }; | 342 | }; |
| 330 | fuzzel = { | 343 | fuzzel = { |
| 331 | enable = true; | 344 | enable = true; |
| @@ -337,7 +350,7 @@ in { | |||
| 337 | font = "Fira Sans"; | 350 | font = "Fira Sans"; |
| 338 | }; | 351 | }; |
| 339 | colors = { | 352 | colors = { |
| 340 | background = "000000aa"; | 353 | background = "000000cc"; |
| 341 | text = "cdd6f4ff"; | 354 | text = "cdd6f4ff"; |
| 342 | match = "94e2d5ff"; | 355 | match = "94e2d5ff"; |
| 343 | selection = "585b70ff"; | 356 | selection = "585b70ff"; |
| @@ -358,11 +371,12 @@ in { | |||
| 358 | enable = true; | 371 | enable = true; |
| 359 | settings.show_banner = false; | 372 | settings.show_banner = false; |
| 360 | }; | 373 | }; |
| 374 | fd.enable = true; | ||
| 361 | }; | 375 | }; |
| 362 | 376 | ||
| 363 | services = { | 377 | services = { |
| 364 | wpaperd = { | 378 | wpaperd = { |
| 365 | enable = true; | 379 | enable = false; |
| 366 | settings.default = { | 380 | settings.default = { |
| 367 | path = "~/.wallpapers"; | 381 | path = "~/.wallpapers"; |
| 368 | duration = "15m"; | 382 | duration = "15m"; |
| @@ -437,20 +451,6 @@ in { | |||
| 437 | serverUrl = "https://etesync.yggdrasil.li"; | 451 | serverUrl = "https://etesync.yggdrasil.li"; |
| 438 | }; | 452 | }; |
| 439 | 453 | ||
| 440 | swayidle = { | ||
| 441 | enable = true; | ||
| 442 | events = [ | ||
| 443 | { event = "before-sleep"; command = lockCommand; } | ||
| 444 | { event = "lock"; command = lockCommand; } | ||
| 445 | ]; | ||
| 446 | timeouts = [ | ||
| 447 | { timeout = 600; command = lockCommand; } | ||
| 448 | ]; | ||
| 449 | extraArgs = [ | ||
| 450 | "-w" | ||
| 451 | "idlehint" "30" | ||
| 452 | ]; | ||
| 453 | }; | ||
| 454 | poweralertd.enable = true; | 454 | poweralertd.enable = true; |
| 455 | }; | 455 | }; |
| 456 | 456 | ||
| @@ -482,6 +482,15 @@ in { | |||
| 482 | name = "Paper-Mono-Dark"; | 482 | name = "Paper-Mono-Dark"; |
| 483 | }; | 483 | }; |
| 484 | }; | 484 | }; |
| 485 | qt.enable = true; | ||
| 486 | qt.platformTheme.name = "gtk"; | ||
| 487 | |||
| 488 | qt.kde.settings = { | ||
| 489 | kwalletrc = { | ||
| 490 | KSecretD.Enabled = false; | ||
| 491 | Wallet."Default Wallet" = "store"; | ||
| 492 | }; | ||
| 493 | }; | ||
| 485 | 494 | ||
| 486 | xsession.preferStatusNotifierItems = true; | 495 | xsession.preferStatusNotifierItems = true; |
| 487 | 496 | ||
| @@ -494,17 +503,16 @@ in { | |||
| 494 | wrappedYTMDesktop libsForQt5.qt5ct playerctl evince papers | 503 | wrappedYTMDesktop libsForQt5.qt5ct playerctl evince papers |
| 495 | thunderbird zoom-us xdg-desktop-portal steam steam-run | 504 | thunderbird zoom-us xdg-desktop-portal steam steam-run |
| 496 | wireshark virt-manager rclone cached-nix-shell worktime | 505 | wireshark virt-manager rclone cached-nix-shell worktime |
| 497 | fira-code-symbols libreoffice xournalpp google-chrome | 506 | fira-code-symbols libreoffice xournalpp |
| 498 | nixos-shell virt-viewer freerdp gnome-icon-theme | 507 | nixos-shell virt-viewer freerdp gnome-icon-theme |
| 499 | paper-icon-theme sshpassSecret weechat element-desktop | 508 | paper-icon-theme sshpassSecret weechat element-desktop |
| 500 | sieve-connect gimp3 inkscape udiskie glab nitrokey-app | 509 | sieve-connect gimp3 inkscape udiskie glab |
| 501 | pynitrokey gtklock wlrctl remmina openscad spice-record | 510 | gtklock wlrctl remmina openscad spice-record |
| 502 | libguestfs-with-appliance nerd-fonts.fira-mono | 511 | nerd-fonts.fira-mono |
| 503 | nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts | 512 | nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts |
| 504 | swtpm (hunspellWithDicts (with hunspellDicts; [en_GB-large de_DE])) | 513 | swtpm (hunspell.withDicts (dicts: with dicts; [en_GB-large de_DE])) |
| 505 | libation | 514 | libation libqalculate |
| 506 | # synadm | 515 | ] ++ mapAttrsToList (_name: pkg: pkgs.callPackage pkg { inherit sources; }) (customUtils.nixImport { dir = ./utils; }); |
| 507 | ] ++ mapAttrsToList (_name: pkg: pkgs.callPackage pkg {}) (customUtils.nixImport { dir = ./utils; }); | ||
| 508 | 516 | ||
| 509 | file = { | 517 | file = { |
| 510 | ".backup-munin".source = ./backup-patterns; | 518 | ".backup-munin".source = ./backup-patterns; |
| @@ -521,11 +529,12 @@ in { | |||
| 521 | sessionVariables = { | 529 | sessionVariables = { |
| 522 | # GDK_SCALE = 96.0 / 282.0; | 530 | # GDK_SCALE = 96.0 / 282.0; |
| 523 | # QT_AUTO_SCREEN_SCALE_FACTOR = 1; | 531 | # QT_AUTO_SCREEN_SCALE_FACTOR = 1; |
| 524 | QT_QPA_PLATFORMTHEME = "qt5ct"; | 532 | QT_QPA_PLATFORMTHEME = lib.mkForce "gtk3"; |
| 525 | LIBVIRT_DEFAULT_URI = "qemu:///system"; | 533 | LIBVIRT_DEFAULT_URI = "qemu:///system"; |
| 526 | STACK_XDG = 1; | 534 | STACK_XDG = 1; |
| 527 | EDITOR = lib.getExe' editor "emacsclient"; | 535 | EDITOR = lib.getExe' editor "emacsclient"; |
| 528 | RCLONE_PASSWORD_COMMAND = "${lib.getExe' pkgs.libsecret "secret-tool"} lookup service rclone"; | 536 | RCLONE_PASSWORD_COMMAND = "${lib.getExe' pkgs.libsecret "secret-tool"} lookup service rclone"; |
| 537 | SYSTEMD_TINT_BACKGROUND = "false"; | ||
| 529 | }; | 538 | }; |
| 530 | 539 | ||
| 531 | extraProfileCommands = '' | 540 | extraProfileCommands = '' |
| @@ -562,13 +571,21 @@ in { | |||
| 562 | General = { | 571 | General = { |
| 563 | dot_as_separator = 0; | 572 | dot_as_separator = 0; |
| 564 | }; | 573 | }; |
| 574 | Mode = { | ||
| 575 | calculate_as_you_type = 1; | ||
| 576 | }; | ||
| 565 | }; | 577 | }; |
| 566 | }; | 578 | }; |
| 567 | "emacs/init.el".source = ./emacs.el; | 579 | "emacs/init.el".source = pkgs.substitute { |
| 568 | "systemd/user/xdg-desktop-portal.service.d/after-graphical-session.conf".text = '' | 580 | src = ./emacs.el; |
| 569 | [Unit] | 581 | substitutions = [ |
| 570 | After=graphical-session.target | 582 | "--subst-var-by" "ksshaskpass" (lib.getExe pkgs.kdePackages.ksshaskpass) |
| 571 | ''; | 583 | ]; |
| 584 | }; | ||
| 585 | # "systemd/user/xdg-desktop-portal.service.d/after-graphical-session.conf".text = '' | ||
| 586 | # [Unit] | ||
| 587 | # After=graphical-session.target | ||
| 588 | # ''; | ||
| 572 | "systemd/user/home-manager.service.d/before-graphical-session.conf".text = '' | 589 | "systemd/user/home-manager.service.d/before-graphical-session.conf".text = '' |
| 573 | [Unit] | 590 | [Unit] |
| 574 | Before=graphical-session-pre.target | 591 | Before=graphical-session-pre.target |
| @@ -582,6 +599,8 @@ in { | |||
| 582 | xdg.dataFile = { | 599 | xdg.dataFile = { |
| 583 | "dbus-1/services/org.keepassxc.KeePassXC.service".source = "${wrappedKeepassxc}/share/dbus-1/services/org.keepassxc.KeePassXC.service"; | 600 | "dbus-1/services/org.keepassxc.KeePassXC.service".source = "${wrappedKeepassxc}/share/dbus-1/services/org.keepassxc.KeePassXC.service"; |
| 584 | "dbus-1/services/org.freedesktop.secrets.service.service".source = "${wrappedKeepassxc}/share/dbus-1/services/org.freedesktop.secrets.service.service"; | 601 | "dbus-1/services/org.freedesktop.secrets.service.service".source = "${wrappedKeepassxc}/share/dbus-1/services/org.freedesktop.secrets.service.service"; |
| 602 | "dbus-1/services/org.kde.kwalletd6.service".source = "${pkgs.kdePackages.kwallet}/share/dbus-1/services/org.kde.kwalletd6.service"; | ||
| 603 | "dbus-1/services/org.kde.kwalletd5.service".source = "${pkgs.kdePackages.kwallet}/share/dbus-1/services/org.kde.kwalletd5.service"; | ||
| 585 | "emoji-data/list.txt".source = pkgs.stdenv.mkDerivation { | 604 | "emoji-data/list.txt".source = pkgs.stdenv.mkDerivation { |
| 586 | inherit (sources.emoji-data) pname src; | 605 | inherit (sources.emoji-data) pname src; |
| 587 | version = lib.removePrefix "v" sources.emoji-data.version; | 606 | version = lib.removePrefix "v" sources.emoji-data.version; |
| @@ -669,11 +688,11 @@ in { | |||
| 669 | exec -- \ | 688 | exec -- \ |
| 670 | ${lib.getExe' config.systemd.package "systemd-run"} --wait --user --slice-inherit \ | 689 | ${lib.getExe' config.systemd.package "systemd-run"} --wait --user --slice-inherit \ |
| 671 | --property 'CPUAccounting=yes' --property 'CPUQuotaPeriodSec=50ms' \ | 690 | --property 'CPUAccounting=yes' --property 'CPUQuotaPeriodSec=50ms' \ |
| 672 | --property 'Environment=DSCP=46' \ | 691 | -E DSCP=46 -E NIXOS_OZONE_WL \ |
| 673 | -- ${lib.getExe pkgs.dscp} ${lib.getExe' pkgs.google-chrome "google-chrome-stable"} \ | 692 | -- ${lib.getExe pkgs.dscp} ${lib.getExe cfg.programs.chromium.package} \ |
| 674 | --class=Rainbow \ | 693 | --class=Rainbow \ |
| 675 | --kiosk "https://web.openrainbow.com" \ | 694 | --app="https://web.openrainbow.com" \ |
| 676 | --user-data-dir=''${HOME}/.config/google-chrome-rainbow | 695 | --user-data-dir=''${HOME}/.config/chromium-rainbow |
| 677 | ''); | 696 | ''); |
| 678 | icon = pkgs.fetchurl { | 697 | icon = pkgs.fetchurl { |
| 679 | url = "https://web.openrainbow.com/rb/2.139.17/assets/skins/rainbow/images/homepage/logo__rainbow.svg"; | 698 | url = "https://web.openrainbow.com/rb/2.139.17/assets/skins/rainbow/images/homepage/logo__rainbow.svg"; |
| @@ -683,6 +702,42 @@ in { | |||
| 683 | StartupWMClass = "Rainbow"; | 702 | StartupWMClass = "Rainbow"; |
| 684 | }; | 703 | }; |
| 685 | }; | 704 | }; |
| 705 | kimai = { | ||
| 706 | name = "Kimai"; | ||
| 707 | exec = toString (pkgs.writeShellScript "kimai" '' | ||
| 708 | exec -- \ | ||
| 709 | ${lib.getExe cfg.programs.chromium.package} \ | ||
| 710 | --class=Kimai \ | ||
| 711 | --app="https://kimai.yggdrasil.li" \ | ||
| 712 | --user-data-dir=''${HOME}/.config/chromium-kimai | ||
| 713 | ''); | ||
| 714 | icon = pkgs.fetchurl { | ||
| 715 | url = "https://www.kimai.org/images/kimai_logo.png"; | ||
| 716 | hash = "sha256-lnlOttzR2SwXA70R+egJUkeKr4U5V0avqTk8uX4bqfs="; | ||
| 717 | }; | ||
| 718 | settings = { | ||
| 719 | StartupWMClass = "Kimai"; | ||
| 720 | StartupNotify = "true"; | ||
| 721 | }; | ||
| 722 | }; | ||
| 723 | audiobookshelf = { | ||
| 724 | name = "Audiobookshelf"; | ||
| 725 | exec = toString (pkgs.writeShellScript "audiobookshelf" '' | ||
| 726 | exec -- \ | ||
| 727 | ${lib.getExe cfg.programs.chromium.package} \ | ||
| 728 | --class=Audiobookshelf \ | ||
| 729 | --app="https://audiobookshelf.yggdrasil.li" \ | ||
| 730 | --user-data-dir=''${HOME}/.config/chromium-audiobookshelf | ||
| 731 | ''); | ||
| 732 | icon = pkgs.fetchurl { | ||
| 733 | url = "https://www.audiobookshelf.org/Logo.png"; | ||
| 734 | hash = "sha256-JGPk+WNT1C4DC4lSMb0K0YmAMT5LvmSOeO0QRzkc7Lk="; | ||
| 735 | }; | ||
| 736 | settings = { | ||
| 737 | StartupWMClass = "Audiobookshelf"; | ||
| 738 | StartupNotify = "true"; | ||
| 739 | }; | ||
| 740 | }; | ||
| 686 | thunderbird-lmu = { | 741 | thunderbird-lmu = { |
| 687 | name = "Thunderbird (LMU)"; | 742 | name = "Thunderbird (LMU)"; |
| 688 | exec = "thunderbird --name thunderbird -P lmu %U"; | 743 | exec = "thunderbird --name thunderbird -P lmu %U"; |
| @@ -708,6 +763,48 @@ in { | |||
| 708 | color-scheme = "prefer-dark"; | 763 | color-scheme = "prefer-dark"; |
| 709 | }; | 764 | }; |
| 710 | }; | 765 | }; |
| 766 | |||
| 767 | i18n.inputMethod = { | ||
| 768 | enable = true; | ||
| 769 | type = "fcitx5"; | ||
| 770 | fcitx5 = { | ||
| 771 | waylandFrontend = true; | ||
| 772 | settings = { | ||
| 773 | globalOptions."Behavior/DisabledAddons" = { | ||
| 774 | "0" = "clipboard"; | ||
| 775 | }; | ||
| 776 | inputMethod = { | ||
| 777 | "Groups/0" = { | ||
| 778 | Name = "Default"; | ||
| 779 | "Default Layout" = "us"; | ||
| 780 | DefaultIM = "keyboard-us"; | ||
| 781 | }; | ||
| 782 | "Groups/0/Items/0" = { | ||
| 783 | Name = "keyboard-us"; | ||
| 784 | Layout = ""; | ||
| 785 | }; | ||
| 786 | "GroupOrder"."0" = "Default"; | ||
| 787 | }; | ||
| 788 | addons = { | ||
| 789 | classicui.globalSection = { | ||
| 790 | "Vertical Candidate List" = "True"; | ||
| 791 | Font = "Fira Sans 10"; | ||
| 792 | MenuFont = "Fira Sans 10"; | ||
| 793 | TrayFont = "Fira Sans Demi-Bold 10"; | ||
| 794 | UseDarkTheme = "True"; | ||
| 795 | }; | ||
| 796 | quickphrase = { | ||
| 797 | globalSection = { | ||
| 798 | "Choose Modifier" = "None"; | ||
| 799 | Spell = "True"; | ||
| 800 | FallbackSpellLanguage = "en"; | ||
| 801 | }; | ||
| 802 | sections.TriggerKey."0" = "Super+E"; | ||
| 803 | }; | ||
| 804 | }; | ||
| 805 | }; | ||
| 806 | }; | ||
| 807 | }; | ||
| 711 | }; | 808 | }; |
| 712 | }; | 809 | }; |
| 713 | } | 810 | } |
