summaryrefslogtreecommitdiff
path: root/accounts/gkleen@sif/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'accounts/gkleen@sif/default.nix')
-rw-r--r--accounts/gkleen@sif/default.nix183
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}