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.nix152
1 files changed, 116 insertions, 36 deletions
diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix
index a0e9d6cf..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,9 +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
75 ./shell
74 ./synadm 76 ./synadm
75 flakeInputs.nix-index-database.hmModules.nix-index 77 flakeInputs.nix-index-database.homeModules.nix-index
76 flakeInputs.impermanence.nixosModules.home-manager.impermanence 78 flakeInputs.impermanence.nixosModules.home-manager.impermanence
77 ]; 79 ];
78 80
@@ -172,6 +174,7 @@ in {
172 }; 174 };
173 }; 175 };
174 }; 176 };
177 chromium.enable = true;
175 178
176 zathura = { 179 zathura = {
177 enable = true; 180 enable = true;
@@ -233,6 +236,7 @@ in {
233 config.programs.ssh.package 236 config.programs.ssh.package
234 gnused 237 gnused
235 miniserve 238 miniserve
239 p7zip
236 ]; 240 ];
237 execer = with pkgs; [ 241 execer = with pkgs; [
238 "cannot:${lib.getExe' rpm "rpm2cpio"}" 242 "cannot:${lib.getExe' rpm "rpm2cpio"}"
@@ -245,6 +249,7 @@ in {
245 "cannot:${lib.getExe less}" 249 "cannot:${lib.getExe less}"
246 "cannot:${lib.getExe' config.systemd.package "systemctl"}" 250 "cannot:${lib.getExe' config.systemd.package "systemctl"}"
247 "cannot:${lib.getExe config.programs.ssh.package}" 251 "cannot:${lib.getExe config.programs.ssh.package}"
252 "cannot:${lib.getExe' p7zip "7z"}"
248 ]; 253 ];
249 wrapper = with pkgs; [ 254 wrapper = with pkgs; [
250 "${lib.getExe' magickWrapped "magick"}:${lib.getExe' imagemagick "magick"}" 255 "${lib.getExe' magickWrapped "magick"}:${lib.getExe' imagemagick "magick"}"
@@ -283,6 +288,7 @@ in {
283 pro = "$HOME/projects/pro"; 288 pro = "$HOME/projects/pro";
284 media = "$HOME/media"; 289 media = "$HOME/media";
285 }; 290 };
291 nix-index.enable = true;
286 jq.colors = { 292 jq.colors = {
287 arrays = "1;37"; 293 arrays = "1;37";
288 "false" = "0;37"; 294 "false" = "0;37";
@@ -344,7 +350,7 @@ in {
344 font = "Fira Sans"; 350 font = "Fira Sans";
345 }; 351 };
346 colors = { 352 colors = {
347 background = "000000aa"; 353 background = "000000cc";
348 text = "cdd6f4ff"; 354 text = "cdd6f4ff";
349 match = "94e2d5ff"; 355 match = "94e2d5ff";
350 selection = "585b70ff"; 356 selection = "585b70ff";
@@ -370,7 +376,7 @@ in {
370 376
371 services = { 377 services = {
372 wpaperd = { 378 wpaperd = {
373 enable = true; 379 enable = false;
374 settings.default = { 380 settings.default = {
375 path = "~/.wallpapers"; 381 path = "~/.wallpapers";
376 duration = "15m"; 382 duration = "15m";
@@ -445,20 +451,6 @@ in {
445 serverUrl = "https://etesync.yggdrasil.li"; 451 serverUrl = "https://etesync.yggdrasil.li";
446 }; 452 };
447 453
448 swayidle = {
449 enable = true;
450 events = [
451 { event = "before-sleep"; command = lockCommand; }
452 { event = "lock"; command = lockCommand; }
453 ];
454 timeouts = [
455 { timeout = 600; command = lockCommand; }
456 ];
457 extraArgs = [
458 "-w"
459 "idlehint" "30"
460 ];
461 };
462 poweralertd.enable = true; 454 poweralertd.enable = true;
463 }; 455 };
464 456
@@ -490,6 +482,8 @@ in {
490 name = "Paper-Mono-Dark"; 482 name = "Paper-Mono-Dark";
491 }; 483 };
492 }; 484 };
485 qt.enable = true;
486 qt.platformTheme.name = "gtk";
493 487
494 qt.kde.settings = { 488 qt.kde.settings = {
495 kwalletrc = { 489 kwalletrc = {
@@ -509,16 +503,16 @@ in {
509 wrappedYTMDesktop libsForQt5.qt5ct playerctl evince papers 503 wrappedYTMDesktop libsForQt5.qt5ct playerctl evince papers
510 thunderbird zoom-us xdg-desktop-portal steam steam-run 504 thunderbird zoom-us xdg-desktop-portal steam steam-run
511 wireshark virt-manager rclone cached-nix-shell worktime 505 wireshark virt-manager rclone cached-nix-shell worktime
512 fira-code-symbols libreoffice xournalpp google-chrome 506 fira-code-symbols libreoffice xournalpp
513 nixos-shell virt-viewer freerdp gnome-icon-theme 507 nixos-shell virt-viewer freerdp gnome-icon-theme
514 paper-icon-theme sshpassSecret weechat element-desktop 508 paper-icon-theme sshpassSecret weechat element-desktop
515 sieve-connect gimp3 inkscape udiskie glab nitrokey-app 509 sieve-connect gimp3 inkscape udiskie glab
516 pynitrokey gtklock wlrctl remmina openscad spice-record 510 gtklock wlrctl remmina openscad spice-record
517 libguestfs-with-appliance nerd-fonts.fira-mono 511 nerd-fonts.fira-mono
518 nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts 512 nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts
519 swtpm (hunspellWithDicts (with hunspellDicts; [en_GB-large de_DE])) 513 swtpm (hunspell.withDicts (dicts: with dicts; [en_GB-large de_DE]))
520 libation 514 libation libqalculate
521 ] ++ mapAttrsToList (_name: pkg: pkgs.callPackage pkg {}) (customUtils.nixImport { dir = ./utils; }); 515 ] ++ mapAttrsToList (_name: pkg: pkgs.callPackage pkg { inherit sources; }) (customUtils.nixImport { dir = ./utils; });
522 516
523 file = { 517 file = {
524 ".backup-munin".source = ./backup-patterns; 518 ".backup-munin".source = ./backup-patterns;
@@ -535,7 +529,7 @@ in {
535 sessionVariables = { 529 sessionVariables = {
536 # GDK_SCALE = 96.0 / 282.0; 530 # GDK_SCALE = 96.0 / 282.0;
537 # QT_AUTO_SCREEN_SCALE_FACTOR = 1; 531 # QT_AUTO_SCREEN_SCALE_FACTOR = 1;
538 QT_QPA_PLATFORMTHEME = "qt5ct"; 532 QT_QPA_PLATFORMTHEME = lib.mkForce "gtk3";
539 LIBVIRT_DEFAULT_URI = "qemu:///system"; 533 LIBVIRT_DEFAULT_URI = "qemu:///system";
540 STACK_XDG = 1; 534 STACK_XDG = 1;
541 EDITOR = lib.getExe' editor "emacsclient"; 535 EDITOR = lib.getExe' editor "emacsclient";
@@ -577,13 +571,21 @@ in {
577 General = { 571 General = {
578 dot_as_separator = 0; 572 dot_as_separator = 0;
579 }; 573 };
574 Mode = {
575 calculate_as_you_type = 1;
576 };
580 }; 577 };
581 }; 578 };
582 "emacs/init.el".source = ./emacs.el; 579 "emacs/init.el".source = pkgs.substitute {
583 "systemd/user/xdg-desktop-portal.service.d/after-graphical-session.conf".text = '' 580 src = ./emacs.el;
584 [Unit] 581 substitutions = [
585 After=graphical-session.target 582 "--subst-var-by" "ksshaskpass" (lib.getExe pkgs.kdePackages.ksshaskpass)
586 ''; 583 ];
584 };
585 # "systemd/user/xdg-desktop-portal.service.d/after-graphical-session.conf".text = ''
586 # [Unit]
587 # After=graphical-session.target
588 # '';
587 "systemd/user/home-manager.service.d/before-graphical-session.conf".text = '' 589 "systemd/user/home-manager.service.d/before-graphical-session.conf".text = ''
588 [Unit] 590 [Unit]
589 Before=graphical-session-pre.target 591 Before=graphical-session-pre.target
@@ -686,11 +688,11 @@ in {
686 exec -- \ 688 exec -- \
687 ${lib.getExe' config.systemd.package "systemd-run"} --wait --user --slice-inherit \ 689 ${lib.getExe' config.systemd.package "systemd-run"} --wait --user --slice-inherit \
688 --property 'CPUAccounting=yes' --property 'CPUQuotaPeriodSec=50ms' \ 690 --property 'CPUAccounting=yes' --property 'CPUQuotaPeriodSec=50ms' \
689 --property 'Environment=DSCP=46' \ 691 -E DSCP=46 -E NIXOS_OZONE_WL \
690 -- ${lib.getExe pkgs.dscp} ${lib.getExe' pkgs.google-chrome "google-chrome-stable"} \ 692 -- ${lib.getExe pkgs.dscp} ${lib.getExe cfg.programs.chromium.package} \
691 --class=Rainbow \ 693 --class=Rainbow \
692 --kiosk "https://web.openrainbow.com" \ 694 --app="https://web.openrainbow.com" \
693 --user-data-dir=''${HOME}/.config/google-chrome-rainbow 695 --user-data-dir=''${HOME}/.config/chromium-rainbow
694 ''); 696 '');
695 icon = pkgs.fetchurl { 697 icon = pkgs.fetchurl {
696 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";
@@ -700,6 +702,42 @@ in {
700 StartupWMClass = "Rainbow"; 702 StartupWMClass = "Rainbow";
701 }; 703 };
702 }; 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 };
703 thunderbird-lmu = { 741 thunderbird-lmu = {
704 name = "Thunderbird (LMU)"; 742 name = "Thunderbird (LMU)";
705 exec = "thunderbird --name thunderbird -P lmu %U"; 743 exec = "thunderbird --name thunderbird -P lmu %U";
@@ -725,6 +763,48 @@ in {
725 color-scheme = "prefer-dark"; 763 color-scheme = "prefer-dark";
726 }; 764 };
727 }; 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 };
728 }; 808 };
729 }; 809 };
730} 810}