diff options
Diffstat (limited to 'accounts/gkleen@sif/default.nix')
| -rw-r--r-- | accounts/gkleen@sif/default.nix | 322 |
1 files changed, 263 insertions, 59 deletions
diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix index 1c2031b5..02241bd0 100644 --- a/accounts/gkleen@sif/default.nix +++ b/accounts/gkleen@sif/default.nix | |||
| @@ -49,27 +49,41 @@ 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"; | ||
| 54 | |||
| 55 | editor = pkgs.symlinkJoin { | ||
| 56 | inherit (cfg.services.emacs.package) name; | ||
| 57 | buildInputs = with pkgs; [ makeWrapper ]; | ||
| 58 | paths = [ cfg.services.emacs.package ]; | ||
| 59 | postBuild = '' | ||
| 60 | wrapProgram $out/bin/emacsclient \ | ||
| 61 | --inherit-argv0 \ | ||
| 62 | --add-flags ${lib.escapeShellArg (lib.escapeShellArgs cfg.services.emacs.client.arguments)} | ||
| 63 | ''; | ||
| 64 | }; | ||
| 53 | in { | 65 | in { |
| 54 | imports = with flake.nixosModules.userProfiles.${userName}; [ | 66 | imports = with flake.nixosModules.userProfiles.${userName}; [ |
| 55 | mpv yt-dlp (args: import ./xcompose.nix (inputs // args)) | 67 | zsh tmux mpv yt-dlp (args: import ./xcompose.nix (inputs // args)) |
| 56 | ]; | 68 | ]; |
| 57 | 69 | ||
| 58 | config = { | 70 | config = { |
| 59 | home-manager.users.${userName} = { | 71 | home-manager.users.${userName} = { |
| 60 | imports = [ | 72 | imports = [ |
| 61 | ./libvirt | 73 | ./libvirt |
| 62 | ./niri | 74 | ./niri.nix |
| 63 | flakeInputs.nix-index-database.hmModules.nix-index | 75 | ./shell |
| 76 | ./synadm | ||
| 77 | flakeInputs.nix-index-database.homeModules.nix-index | ||
| 64 | flakeInputs.impermanence.nixosModules.home-manager.impermanence | 78 | flakeInputs.impermanence.nixosModules.home-manager.impermanence |
| 65 | ]; | 79 | ]; |
| 66 | 80 | ||
| 67 | home.stateVersion = "20.09"; | 81 | home.stateVersion = "20.09"; |
| 68 | 82 | ||
| 69 | nixpkgs.config = { | 83 | # nixpkgs.config = { |
| 70 | allowUnfree = true; | 84 | # allowUnfree = true; |
| 71 | zathura.useMupdf = false; | 85 | # zathura.useMupdf = false; |
| 72 | }; | 86 | # }; |
| 73 | 87 | ||
| 74 | nix.registry = { | 88 | nix.registry = { |
| 75 | "flk" = { | 89 | "flk" = { |
| @@ -160,6 +174,7 @@ in { | |||
| 160 | }; | 174 | }; |
| 161 | }; | 175 | }; |
| 162 | }; | 176 | }; |
| 177 | chromium.enable = true; | ||
| 163 | 178 | ||
| 164 | zathura = { | 179 | zathura = { |
| 165 | enable = true; | 180 | enable = true; |
| @@ -175,13 +190,93 @@ in { | |||
| 175 | gpu-api = "vulkan"; | 190 | gpu-api = "vulkan"; |
| 176 | }; | 191 | }; |
| 177 | 192 | ||
| 178 | zsh.initExtra = '' | 193 | zsh.initContent = let |
| 179 | source ${./zshrc} | 194 | zshrc = pkgs.resholve.mkDerivation { |
| 195 | pname = "zshrc"; | ||
| 196 | version = "0.0.0"; | ||
| 197 | |||
| 198 | src = ./zshrc; | ||
| 199 | |||
| 200 | dontUnpack = true; | ||
| 201 | dontConfigure = true; | ||
| 202 | dontBuild = true; | ||
| 203 | |||
| 204 | installPhase = '' | ||
| 205 | mkdir -p $out/share | ||
| 206 | install "$src" $out/share/zshrc | ||
| 207 | ''; | ||
| 208 | |||
| 209 | solutions = { | ||
| 210 | default = { | ||
| 211 | scripts = [ "share/zshrc" ]; | ||
| 212 | interpreter = "none"; | ||
| 213 | inputs = with pkgs; [ | ||
| 214 | coreutils | ||
| 215 | rpm | ||
| 216 | binutils | ||
| 217 | squashfsTools | ||
| 218 | unzip | ||
| 219 | cfg.programs.git.package | ||
| 220 | magickWrapped | ||
| 221 | curl | ||
| 222 | file | ||
| 223 | gnutar | ||
| 224 | cpio | ||
| 225 | magic-wormhole | ||
| 226 | cfg.programs.zsh.package | ||
| 227 | fuse | ||
| 228 | util-linux | ||
| 229 | findutils | ||
| 230 | qrencode | ||
| 231 | tty-clock | ||
| 232 | cfg.programs.jq.package | ||
| 233 | eza | ||
| 234 | less | ||
| 235 | config.systemd.package | ||
| 236 | config.programs.ssh.package | ||
| 237 | gnused | ||
| 238 | miniserve | ||
| 239 | p7zip | ||
| 240 | ]; | ||
| 241 | execer = with pkgs; [ | ||
| 242 | "cannot:${lib.getExe' rpm "rpm2cpio"}" | ||
| 243 | "cannot:${lib.getExe' squashfsTools "unsquashfs"}" | ||
| 244 | "cannot:${lib.getExe' unzip "unzip"}" | ||
| 245 | "cannot:${lib.getExe cfg.programs.git.package}" | ||
| 246 | "cannot:${lib.getExe cpio}" | ||
| 247 | "cannot:${lib.getExe' magic-wormhole "wormhole"}" | ||
| 248 | "cannot:${lib.getExe' fuse "fusermount"}" | ||
| 249 | "cannot:${lib.getExe less}" | ||
| 250 | "cannot:${lib.getExe' config.systemd.package "systemctl"}" | ||
| 251 | "cannot:${lib.getExe config.programs.ssh.package}" | ||
| 252 | "cannot:${lib.getExe' p7zip "7z"}" | ||
| 253 | ]; | ||
| 254 | wrapper = with pkgs; [ | ||
| 255 | "${lib.getExe' magickWrapped "magick"}:${lib.getExe' imagemagick "magick"}" | ||
| 256 | ]; | ||
| 257 | fake = { | ||
| 258 | builtin = ["print"]; | ||
| 259 | external = ["sudo" "umount"]; | ||
| 260 | }; | ||
| 261 | }; | ||
| 262 | }; | ||
| 263 | }; | ||
| 264 | magickWrapped = pkgs.symlinkJoin { | ||
| 265 | inherit (pkgs.imagemagick) name; | ||
| 266 | paths = [ pkgs.imagemagick ]; | ||
| 267 | |||
| 268 | buildInputs = with pkgs; [ makeWrapper ]; | ||
| 269 | postBuild = '' | ||
| 270 | wrapProgram $out/bin/magick \ | ||
| 271 | --prefix PATH : ${lib.makeBinPath (with pkgs; [ ghostscript ])} | ||
| 272 | ''; | ||
| 273 | }; | ||
| 274 | in '' | ||
| 275 | source ${zshrc}/share/zshrc | ||
| 180 | ''; | 276 | ''; |
| 181 | zsh.dirHashes = let | 277 | zsh.dirHashes = let |
| 182 | flakeHashes = mapAttrs' (n: v: nameValuePair (inputNames.${n} or n) (toString v)) flakeInputs; | 278 | flakeHashes = mapAttrs' (n: v: nameValuePair (inputNames.${n} or n) (toString v)) flakeInputs; |
| 183 | inputNames = { | 279 | inputNames = { |
| 184 | "nixpkgs" = "nixos"; | ||
| 185 | }; | 280 | }; |
| 186 | in flakeHashes // { | 281 | in flakeHashes // { |
| 187 | u2w = "$HOME/projects/uni2work"; | 282 | u2w = "$HOME/projects/uni2work"; |
| @@ -193,6 +288,17 @@ in { | |||
| 193 | pro = "$HOME/projects/pro"; | 288 | pro = "$HOME/projects/pro"; |
| 194 | media = "$HOME/media"; | 289 | media = "$HOME/media"; |
| 195 | }; | 290 | }; |
| 291 | nix-index.enable = true; | ||
| 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"; | ||
| 301 | }; | ||
| 196 | 302 | ||
| 197 | obs-studio = { | 303 | obs-studio = { |
| 198 | enable = true; | 304 | enable = true; |
| @@ -202,7 +308,7 @@ in { | |||
| 202 | gh = { | 308 | gh = { |
| 203 | enable = true; | 309 | enable = true; |
| 204 | settings = { | 310 | settings = { |
| 205 | editor = lib.getExe' config.home-manager.users.${userName}.programs.emacs.package "emacsclient"; | 311 | editor = lib.getExe' editor "emacsclient"; |
| 206 | gitProtocol = "ssh"; | 312 | gitProtocol = "ssh"; |
| 207 | }; | 313 | }; |
| 208 | }; | 314 | }; |
| @@ -228,16 +334,10 @@ in { | |||
| 228 | # notify_on_cmd_finish = "invisible 120"; | 334 | # notify_on_cmd_finish = "invisible 120"; |
| 229 | }; | 335 | }; |
| 230 | keybindings = { | 336 | keybindings = { |
| 231 | "kitty_mod+n" = "detach_window"; | 337 | "kitty_mod+n" = "new_os_window_with_cwd"; |
| 232 | "kitty_mod+m" = "detach_window ask"; | 338 | "kitty_mod+m" = "detach_window ask"; |
| 233 | }; | 339 | "kitty_mod+enter" = "new_window_with_cwd"; |
| 234 | }; | 340 | "kitty_mod+t" = "new_tab_with_cwd"; |
| 235 | wpaperd = { | ||
| 236 | enable = true; | ||
| 237 | settings.default = { | ||
| 238 | path = "~/.wallpapers"; | ||
| 239 | duration = "15m"; | ||
| 240 | mode = "center"; | ||
| 241 | }; | 341 | }; |
| 242 | }; | 342 | }; |
| 243 | fuzzel = { | 343 | fuzzel = { |
| @@ -250,7 +350,7 @@ in { | |||
| 250 | font = "Fira Sans"; | 350 | font = "Fira Sans"; |
| 251 | }; | 351 | }; |
| 252 | colors = { | 352 | colors = { |
| 253 | background = "000000aa"; | 353 | background = "000000cc"; |
| 254 | text = "cdd6f4ff"; | 354 | text = "cdd6f4ff"; |
| 255 | match = "94e2d5ff"; | 355 | match = "94e2d5ff"; |
| 256 | selection = "585b70ff"; | 356 | selection = "585b70ff"; |
| @@ -267,15 +367,28 @@ in { | |||
| 267 | enable = true; | 367 | enable = true; |
| 268 | extraAbbreviations = ["i.A." "d.h." "D.h." "gdw."]; | 368 | extraAbbreviations = ["i.A." "d.h." "D.h." "gdw."]; |
| 269 | }; | 369 | }; |
| 370 | nushell = { | ||
| 371 | enable = true; | ||
| 372 | settings.show_banner = false; | ||
| 373 | }; | ||
| 374 | fd.enable = true; | ||
| 270 | }; | 375 | }; |
| 271 | 376 | ||
| 272 | services = { | 377 | services = { |
| 378 | wpaperd = { | ||
| 379 | enable = false; | ||
| 380 | settings.default = { | ||
| 381 | path = "~/.wallpapers"; | ||
| 382 | duration = "15m"; | ||
| 383 | mode = "center"; | ||
| 384 | }; | ||
| 385 | }; | ||
| 273 | emacs = { | 386 | emacs = { |
| 274 | enable = true; | 387 | enable = true; |
| 275 | socketActivation.enable = true; | 388 | socketActivation.enable = true; |
| 276 | client = { | 389 | client = { |
| 277 | enable = true; | 390 | enable = true; |
| 278 | arguments = mkForce ["--reuse-frame" "--alternate-editor" "\"\""]; | 391 | arguments = mkForce ["--create-frame" "--alternate-editor" (lib.getExe cfg.services.emacs.package)]; |
| 279 | }; | 392 | }; |
| 280 | }; | 393 | }; |
| 281 | gpg-agent = { | 394 | gpg-agent = { |
| @@ -338,20 +451,6 @@ in { | |||
| 338 | serverUrl = "https://etesync.yggdrasil.li"; | 451 | serverUrl = "https://etesync.yggdrasil.li"; |
| 339 | }; | 452 | }; |
| 340 | 453 | ||
| 341 | swayidle = { | ||
| 342 | enable = true; | ||
| 343 | events = [ | ||
| 344 | { event = "before-sleep"; command = lockCommand; } | ||
| 345 | { event = "lock"; command = lockCommand; } | ||
| 346 | ]; | ||
| 347 | timeouts = [ | ||
| 348 | { timeout = 600; command = lockCommand; } | ||
| 349 | ]; | ||
| 350 | extraArgs = [ | ||
| 351 | "-w" | ||
| 352 | "idlehint" "30" | ||
| 353 | ]; | ||
| 354 | }; | ||
| 355 | poweralertd.enable = true; | 454 | poweralertd.enable = true; |
| 356 | }; | 455 | }; |
| 357 | 456 | ||
| @@ -383,6 +482,15 @@ in { | |||
| 383 | name = "Paper-Mono-Dark"; | 482 | name = "Paper-Mono-Dark"; |
| 384 | }; | 483 | }; |
| 385 | }; | 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 | }; | ||
| 386 | 494 | ||
| 387 | xsession.preferStatusNotifierItems = true; | 495 | xsession.preferStatusNotifierItems = true; |
| 388 | 496 | ||
| @@ -395,16 +503,16 @@ in { | |||
| 395 | wrappedYTMDesktop libsForQt5.qt5ct playerctl evince papers | 503 | wrappedYTMDesktop libsForQt5.qt5ct playerctl evince papers |
| 396 | thunderbird zoom-us xdg-desktop-portal steam steam-run | 504 | thunderbird zoom-us xdg-desktop-portal steam steam-run |
| 397 | wireshark virt-manager rclone cached-nix-shell worktime | 505 | wireshark virt-manager rclone cached-nix-shell worktime |
| 398 | fira-code-symbols libreoffice xournalpp google-chrome | 506 | fira-code-symbols libreoffice xournalpp |
| 399 | nixos-shell virt-viewer freerdp gnome-icon-theme | 507 | nixos-shell virt-viewer freerdp gnome-icon-theme |
| 400 | paper-icon-theme sshpassSecret weechat element-desktop | 508 | paper-icon-theme sshpassSecret weechat element-desktop |
| 401 | sieve-connect gimp inkscape udiskie glab nitrokey-app | 509 | sieve-connect gimp3 inkscape udiskie glab |
| 402 | pynitrokey gtklock wlrctl remmina openscad spice-record | 510 | gtklock wlrctl remmina openscad spice-record |
| 403 | libguestfs-with-appliance nerd-fonts.fira-mono | 511 | nerd-fonts.fira-mono |
| 404 | nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts | 512 | nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts |
| 405 | swtpm (hunspellWithDicts (with hunspellDicts; [en_GB-large de_DE])) | 513 | swtpm (hunspell.withDicts (dicts: with dicts; [en_GB-large de_DE])) |
| 406 | # synadm | 514 | libation libqalculate |
| 407 | ]; | 515 | ] ++ mapAttrsToList (_name: pkg: pkgs.callPackage pkg { inherit sources; }) (customUtils.nixImport { dir = ./utils; }); |
| 408 | 516 | ||
| 409 | file = { | 517 | file = { |
| 410 | ".backup-munin".source = ./backup-patterns; | 518 | ".backup-munin".source = ./backup-patterns; |
| @@ -421,15 +529,12 @@ in { | |||
| 421 | sessionVariables = { | 529 | sessionVariables = { |
| 422 | # GDK_SCALE = 96.0 / 282.0; | 530 | # GDK_SCALE = 96.0 / 282.0; |
| 423 | # QT_AUTO_SCREEN_SCALE_FACTOR = 1; | 531 | # QT_AUTO_SCREEN_SCALE_FACTOR = 1; |
| 424 | QT_QPA_PLATFORMTHEME = "qt5ct"; | 532 | QT_QPA_PLATFORMTHEME = lib.mkForce "gtk3"; |
| 425 | LIBVIRT_DEFAULT_URI = "qemu:///system"; | 533 | LIBVIRT_DEFAULT_URI = "qemu:///system"; |
| 426 | STACK_XDG = 1; | 534 | STACK_XDG = 1; |
| 427 | EDITOR = pkgs.writeShellScript "editor" '' | 535 | EDITOR = lib.getExe' editor "emacsclient"; |
| 428 | args=("--reuse-frame" "--alternate-editor" "") | ||
| 429 | args+=("$@") | ||
| 430 | exec -a emacsclient ${lib.getExe' cfg.services.emacs.package "emacsclient"} "''${args[@]}" | ||
| 431 | ''; | ||
| 432 | 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"; | ||
| 433 | }; | 538 | }; |
| 434 | 539 | ||
| 435 | extraProfileCommands = '' | 540 | extraProfileCommands = '' |
| @@ -466,13 +571,21 @@ in { | |||
| 466 | General = { | 571 | General = { |
| 467 | dot_as_separator = 0; | 572 | dot_as_separator = 0; |
| 468 | }; | 573 | }; |
| 574 | Mode = { | ||
| 575 | calculate_as_you_type = 1; | ||
| 576 | }; | ||
| 469 | }; | 577 | }; |
| 470 | }; | 578 | }; |
| 471 | "emacs/init.el".source = ./emacs.el; | 579 | "emacs/init.el".source = pkgs.substitute { |
| 472 | "systemd/user/xdg-desktop-portal.service.d/after-graphical-session.conf".text = '' | 580 | src = ./emacs.el; |
| 473 | [Unit] | 581 | substitutions = [ |
| 474 | After=graphical-session.target | 582 | "--subst-var-by" "ksshaskpass" (lib.getExe pkgs.kdePackages.ksshaskpass) |
| 475 | ''; | 583 | ]; |
| 584 | }; | ||
| 585 | # "systemd/user/xdg-desktop-portal.service.d/after-graphical-session.conf".text = '' | ||
| 586 | # [Unit] | ||
| 587 | # After=graphical-session.target | ||
| 588 | # ''; | ||
| 476 | "systemd/user/home-manager.service.d/before-graphical-session.conf".text = '' | 589 | "systemd/user/home-manager.service.d/before-graphical-session.conf".text = '' |
| 477 | [Unit] | 590 | [Unit] |
| 478 | Before=graphical-session-pre.target | 591 | Before=graphical-session-pre.target |
| @@ -486,6 +599,8 @@ in { | |||
| 486 | xdg.dataFile = { | 599 | xdg.dataFile = { |
| 487 | "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"; |
| 488 | "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"; | ||
| 489 | "emoji-data/list.txt".source = pkgs.stdenv.mkDerivation { | 604 | "emoji-data/list.txt".source = pkgs.stdenv.mkDerivation { |
| 490 | inherit (sources.emoji-data) pname src; | 605 | inherit (sources.emoji-data) pname src; |
| 491 | version = lib.removePrefix "v" sources.emoji-data.version; | 606 | version = lib.removePrefix "v" sources.emoji-data.version; |
| @@ -573,11 +688,11 @@ in { | |||
| 573 | exec -- \ | 688 | exec -- \ |
| 574 | ${lib.getExe' config.systemd.package "systemd-run"} --wait --user --slice-inherit \ | 689 | ${lib.getExe' config.systemd.package "systemd-run"} --wait --user --slice-inherit \ |
| 575 | --property 'CPUAccounting=yes' --property 'CPUQuotaPeriodSec=50ms' \ | 690 | --property 'CPUAccounting=yes' --property 'CPUQuotaPeriodSec=50ms' \ |
| 576 | --property 'Environment=DSCP=46' \ | 691 | -E DSCP=46 -E NIXOS_OZONE_WL \ |
| 577 | -- ${lib.getExe pkgs.dscp} ${lib.getExe' pkgs.google-chrome "google-chrome-stable"} \ | 692 | -- ${lib.getExe pkgs.dscp} ${lib.getExe cfg.programs.chromium.package} \ |
| 578 | --class=Rainbow \ | 693 | --class=Rainbow \ |
| 579 | --kiosk "https://web.openrainbow.com" \ | 694 | --app="https://web.openrainbow.com" \ |
| 580 | --user-data-dir=''${HOME}/.config/google-chrome-rainbow | 695 | --user-data-dir=''${HOME}/.config/chromium-rainbow |
| 581 | ''); | 696 | ''); |
| 582 | icon = pkgs.fetchurl { | 697 | icon = pkgs.fetchurl { |
| 583 | 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"; |
| @@ -587,6 +702,53 @@ in { | |||
| 587 | StartupWMClass = "Rainbow"; | 702 | StartupWMClass = "Rainbow"; |
| 588 | }; | 703 | }; |
| 589 | }; | 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 | }; | ||
| 741 | thunderbird-lmu = { | ||
| 742 | name = "Thunderbird (LMU)"; | ||
| 743 | exec = "thunderbird --name thunderbird -P lmu %U"; | ||
| 744 | icon = "thunderbird"; | ||
| 745 | genericName = "Email Client"; | ||
| 746 | categories = [ "Network" "Chat" "Email" "Feed" "GTK" "News" ]; | ||
| 747 | settings = { | ||
| 748 | StartupWMClass = "thunderbird"; | ||
| 749 | StartupNotify = "true"; | ||
| 750 | }; | ||
| 751 | }; | ||
| 590 | }; | 752 | }; |
| 591 | 753 | ||
| 592 | fonts = { | 754 | fonts = { |
| @@ -601,6 +763,48 @@ in { | |||
| 601 | color-scheme = "prefer-dark"; | 763 | color-scheme = "prefer-dark"; |
| 602 | }; | 764 | }; |
| 603 | }; | 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 | }; | ||
| 604 | }; | 808 | }; |
| 605 | }; | 809 | }; |
| 606 | } | 810 | } |
