diff options
Diffstat (limited to 'accounts/gkleen@sif/default.nix')
-rw-r--r-- | accounts/gkleen@sif/default.nix | 376 |
1 files changed, 39 insertions, 337 deletions
diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix index 00707e87..58cfb425 100644 --- a/accounts/gkleen@sif/default.nix +++ b/accounts/gkleen@sif/default.nix | |||
@@ -80,7 +80,7 @@ let | |||
80 | ]; | 80 | ]; |
81 | }; | 81 | }; |
82 | 82 | ||
83 | lockCommand = "${config.systemd.package}/bin/systemctl --user start gtklock.service"; | 83 | lockCommand = "${lib.getExe' config.systemd.package "systemctl"} --user start gtklock.service"; |
84 | in { | 84 | in { |
85 | imports = with flake.nixosModules.userProfiles.${userName}; [ | 85 | imports = with flake.nixosModules.userProfiles.${userName}; [ |
86 | mpv yt-dlp (args: import ./xcompose.nix (inputs // args)) | 86 | mpv yt-dlp (args: import ./xcompose.nix (inputs // args)) |
@@ -92,6 +92,7 @@ in { | |||
92 | home-manager.users.${userName} = { | 92 | home-manager.users.${userName} = { |
93 | imports = [ | 93 | imports = [ |
94 | ./libvirt | 94 | ./libvirt |
95 | ./niri | ||
95 | flakeInputs.nix-index-database.hmModules.nix-index | 96 | flakeInputs.nix-index-database.hmModules.nix-index |
96 | flakeInputs.impermanence.nixosModules.home-manager.impermanence | 97 | flakeInputs.impermanence.nixosModules.home-manager.impermanence |
97 | ]; | 98 | ]; |
@@ -160,7 +161,7 @@ in { | |||
160 | yaml-mode json-mode shakespeare-mode smart-mode-line | 161 | yaml-mode json-mode shakespeare-mode smart-mode-line |
161 | highlight-parentheses highlight-symbol ag sass-mode lua-mode | 162 | highlight-parentheses highlight-symbol ag sass-mode lua-mode |
162 | fira-code-mode use-package wanderlust # notmuch | 163 | fira-code-mode use-package wanderlust # notmuch |
163 | use-package-ensure-system-package git-gutter emacsScratch | 164 | git-gutter emacsScratch |
164 | edit-server mediawiki editorconfig typescript-mode | 165 | edit-server mediawiki editorconfig typescript-mode |
165 | markdown-mode nftables-mode rustic lsp-mode lsp-ui | 166 | markdown-mode nftables-mode rustic lsp-mode lsp-ui |
166 | direnv company projectile tomorrow-night-paradise-theme | 167 | direnv company projectile tomorrow-night-paradise-theme |
@@ -184,7 +185,12 @@ in { | |||
184 | }; | 185 | }; |
185 | }; | 186 | }; |
186 | 187 | ||
187 | zathura.enable = true; | 188 | zathura = { |
189 | enable = true; | ||
190 | options = { | ||
191 | scroll-page-aware = true; | ||
192 | }; | ||
193 | }; | ||
188 | imv.enable = true; | 194 | imv.enable = true; |
189 | 195 | ||
190 | mpv.config = { | 196 | mpv.config = { |
@@ -250,286 +256,6 @@ in { | |||
250 | "kitty_mod+m" = "detach_window ask"; | 256 | "kitty_mod+m" = "detach_window ask"; |
251 | }; | 257 | }; |
252 | }; | 258 | }; |
253 | waybar = { | ||
254 | enable = true; | ||
255 | systemd = { | ||
256 | enable = true; | ||
257 | target = "hyprland-session.target"; | ||
258 | }; | ||
259 | settings = let | ||
260 | windowRewrites = { | ||
261 | "(.*) — Mozilla Firefox" = "$1"; | ||
262 | "(.*) - Mozilla Thunderbird" = "$1"; | ||
263 | "(.*) - mpv" = "$1"; | ||
264 | }; | ||
265 | iconSize = 11; | ||
266 | in [ | ||
267 | { | ||
268 | layer = "top"; | ||
269 | position = "top"; | ||
270 | height = 14; | ||
271 | output = [ "eDP-1" "DP-2" "DP-3" ]; | ||
272 | modules-left = [ "hyprland/workspaces" ]; | ||
273 | modules-center = [ "hyprland/window" ]; | ||
274 | modules-right = [ "custom/worktime" "custom/worktime-today" "custom/weather" "custom/keymap" "privacy" "tray" "wireplumber" "backlight" "battery" "idle_inhibitor" "clock" ]; | ||
275 | |||
276 | "custom/weather" = { | ||
277 | format = "{}"; | ||
278 | tooltip = true; | ||
279 | interval = 3600; | ||
280 | exec = "${lib.getExe pkgs.wttrbar} --hide-conditions --custom-indicator \"<span font=\\\"Symbols Nerd Font Mono\\\" size=\\\"120%\\\">{ICON}</span> {FeelsLikeC}°\""; | ||
281 | return-type = "json"; | ||
282 | }; | ||
283 | "custom/keymap" = { | ||
284 | format = "{}"; | ||
285 | tooltip = true; | ||
286 | return-type = "json"; | ||
287 | exec = pkgs.writers.writePython3 "keymap" {} '' | ||
288 | import os | ||
289 | import socket | ||
290 | import re | ||
291 | import subprocess | ||
292 | import json | ||
293 | |||
294 | |||
295 | def output(keymap): | ||
296 | short = keymap | ||
297 | if keymap == "English (programmer Dvorak)": | ||
298 | short = "dvp" | ||
299 | elif keymap == "English (US)": | ||
300 | short = "<span color=\"#ffffff\">us</span>" | ||
301 | print(json.dumps({'text': short, 'tooltip': keymap}, separators=(',', ':')), flush=True) # noqa: E501 | ||
302 | |||
303 | |||
304 | r = subprocess.run(["hyprctl", "devices", "-j"], check=True, stdout=subprocess.PIPE, text=True) # noqa: E501 | ||
305 | for keyboard in json.loads(r.stdout)['keyboards']: | ||
306 | if keyboard['name'] != "at-translated-set-2-keyboard": | ||
307 | continue | ||
308 | output(keyboard['active_keymap']) | ||
309 | |||
310 | sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) | ||
311 | sock.connect(os.environ["XDG_RUNTIME_DIR"] + "/hypr/" + os.environ["HYPRLAND_INSTANCE_SIGNATURE"] + "/.socket2.sock") # noqa: E501 | ||
312 | expected = re.compile(r'^activelayout>>at-translated-set-2-keyboard,(?P<keymap>.+)$') # noqa: E501 | ||
313 | for line in sock.makefile(buffering=1, encoding='utf-8'): | ||
314 | if match := expected.match(line): | ||
315 | output(match.group("keymap")) | ||
316 | ''; | ||
317 | on-click = "hyprctl switchxkblayout at-translated-set-2-keyboard next"; | ||
318 | }; | ||
319 | "custom/worktime" = { | ||
320 | interval = 60; | ||
321 | exec = getExe pkgs.worktime; | ||
322 | tooltip = false; | ||
323 | }; | ||
324 | "custom/worktime-today" = { | ||
325 | interval = 60; | ||
326 | exec = "${getExe pkgs.worktime} today"; | ||
327 | tooltip = false; | ||
328 | }; | ||
329 | "hyprland/workspaces" = { | ||
330 | all-outputs = true; | ||
331 | }; | ||
332 | "hyprland/window" = { | ||
333 | separate-outputs = true; | ||
334 | icon = true; | ||
335 | icon-size = 14; | ||
336 | rewrite = windowRewrites; | ||
337 | }; | ||
338 | clock = { | ||
339 | interval = 1; | ||
340 | # timezone = "Europe/Berlin"; | ||
341 | format = "W{:%V-%u %F %H:%M:%S%Ez}"; | ||
342 | tooltip-format = "<tt><small>{calendar}</small></tt>"; | ||
343 | calendar = { | ||
344 | mode = "year"; | ||
345 | mode-mon-col = 3; | ||
346 | weeks-pos = "left"; | ||
347 | on-scroll = 1; | ||
348 | format = { | ||
349 | months = "<span color='#ffead3'><b>{}</b></span>"; | ||
350 | days = "{}"; | ||
351 | weeks = "<span color='#99ffdd'><b>{}</b></span>"; | ||
352 | weekdays = "<span color='#ffcc66'><b>{}</b></span>"; | ||
353 | today = "<span color='#ff6699'><b>{}</b></span>"; | ||
354 | }; | ||
355 | }; | ||
356 | }; | ||
357 | battery = { | ||
358 | format = "<span font=\"Symbols Nerd Font Mono\" size=\"90%\">{icon}</span>"; | ||
359 | icon-size = iconSize - 2; | ||
360 | states = { warning = 30; critical = 15; }; | ||
361 | format-icons = ["󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ]; | ||
362 | format-charging = "󰂄"; | ||
363 | format-plugged = "󰚥"; | ||
364 | tooltip-format = "{capacity}% {timeTo}"; | ||
365 | interval = 20; | ||
366 | }; | ||
367 | tray = { | ||
368 | icon-size = 16; | ||
369 | # show-passive-items = true; | ||
370 | spacing = 1; | ||
371 | }; | ||
372 | privacy = { | ||
373 | icon-spacing = 7; | ||
374 | icon-size = iconSize; | ||
375 | modules = [ | ||
376 | { type = "screenshare"; } | ||
377 | { type = "audio-in"; } | ||
378 | ]; | ||
379 | }; | ||
380 | idle_inhibitor = { | ||
381 | format = "<span font=\"Symbols Nerd Font Mono\" size=\"90%\">{icon}</span>"; | ||
382 | icon-size = iconSize; | ||
383 | format-icons = { activated = "󰈈"; deactivated = "󰈉"; }; | ||
384 | timeout = 120; | ||
385 | }; | ||
386 | backlight = { | ||
387 | format = "<span font=\"Symbols Nerd Font Mono\" size=\"90%\">{icon}</span>"; | ||
388 | icon-size = iconSize; | ||
389 | tooltip-format = "{percent}%"; | ||
390 | format-icons = ["󰃚" "󰃛" "󰃜" "󰃝" "󰃞" "󰃟" "󰃠"]; | ||
391 | on-scroll-up = "lightctl -d -e4 -n1 up"; | ||
392 | on-scroll-down = "lightctl -d -e4 -n1 down"; | ||
393 | }; | ||
394 | wireplumber = { | ||
395 | format = "<span font=\"Symbols Nerd Font Mono\" size=\"90%\">{icon}</span>"; | ||
396 | icon-size = iconSize; | ||
397 | tooltip-format = "{volume}% {node_name}"; | ||
398 | format-icons = ["󰕿" "󰖀" "󰕾"]; | ||
399 | format-muted = "<span font=\"Symbols Nerd Font Mono\" size=\"90%\">󰝟</span>"; | ||
400 | # ignored-sinks = ["Easy Effects Sink"]; | ||
401 | on-scroll-up = "volumectl -d -u up"; | ||
402 | on-scroll-down = "volumectl -d -u down"; | ||
403 | on-click = "volumectl -d toggle-mute"; | ||
404 | }; | ||
405 | } | ||
406 | { | ||
407 | layer = "top"; | ||
408 | position = "top"; | ||
409 | height = 14; | ||
410 | output = [ "!eDP-1" "!DP-2" "!DP-3" ]; | ||
411 | modules-left = [ "hyprland/workspaces" ]; | ||
412 | modules-center = [ "hyprland/window" ]; | ||
413 | modules-right = [ "clock" ]; | ||
414 | |||
415 | "hyprland/workspaces" = { | ||
416 | all-outputs = false; | ||
417 | }; | ||
418 | "hyprland/window" = { | ||
419 | separate-outputs = true; | ||
420 | icon = true; | ||
421 | icon-size = 14; | ||
422 | rewrite = windowRewrites; | ||
423 | }; | ||
424 | clock = { | ||
425 | interval = 1; | ||
426 | # timezone = "Europe/Berlin"; | ||
427 | format = "{:%H:%M}"; | ||
428 | tooltip-format = "W{:%V-%u %F %H:%M:%S%Ez}"; | ||
429 | }; | ||
430 | } | ||
431 | ]; | ||
432 | style = '' | ||
433 | @define-color white #ffffff; | ||
434 | @define-color grey #555555; | ||
435 | @define-color blue #1a8fff; | ||
436 | @define-color green #23fd00; | ||
437 | @define-color orange #f28a21; | ||
438 | @define-color red #f2201f; | ||
439 | |||
440 | * { | ||
441 | border: none; | ||
442 | font-family: "Fira Sans Nerd Font"; | ||
443 | font-size: 10pt; | ||
444 | min-height: 0; | ||
445 | } | ||
446 | |||
447 | window#waybar { | ||
448 | background-color: rgba(0, 0, 0, 0.66); | ||
449 | color: @white; | ||
450 | } | ||
451 | |||
452 | .modules-left { | ||
453 | margin-left: 9px; | ||
454 | } | ||
455 | .modules-right { | ||
456 | margin-right: 9px; | ||
457 | } | ||
458 | |||
459 | .module { | ||
460 | margin: 0 5px; | ||
461 | } | ||
462 | |||
463 | #workspaces button { | ||
464 | color: @grey; | ||
465 | } | ||
466 | #workspaces button.hosting-monitor { | ||
467 | color: @white; | ||
468 | } | ||
469 | #workspaces button.visible { | ||
470 | color: @blue; | ||
471 | } | ||
472 | #workspaces button.active { | ||
473 | color: @green; | ||
474 | } | ||
475 | #workspaces button.urgent { | ||
476 | color: @red; | ||
477 | } | ||
478 | |||
479 | #custom-weather, #custom-keymap, #custom-worktime, #custom-worktime-today { | ||
480 | color: @grey; | ||
481 | margin: 0 5px; | ||
482 | } | ||
483 | #custom-weather, #custom-worktime-today { | ||
484 | margin-right: 3px; | ||
485 | } | ||
486 | #custom-keymap, #custom-weather { | ||
487 | margin-left: 3px; | ||
488 | } | ||
489 | |||
490 | #tray { | ||
491 | margin: 0; | ||
492 | } | ||
493 | #battery, #idle_inhibitor, #backlight, #wireplumber { | ||
494 | color: @grey; | ||
495 | margin: 0 5px 0 2px; | ||
496 | } | ||
497 | #idle_inhibitor { | ||
498 | margin-right: 2px; | ||
499 | margin-left: 3px; | ||
500 | } | ||
501 | #battery { | ||
502 | margin-right: 3px; | ||
503 | } | ||
504 | #battery.discharging { | ||
505 | color: @white; | ||
506 | } | ||
507 | #battery.warning { | ||
508 | color: @orange; | ||
509 | } | ||
510 | #battery.critical { | ||
511 | color: @red; | ||
512 | } | ||
513 | #battery.charging { | ||
514 | color: @white; | ||
515 | } | ||
516 | #idle_inhibitor.activated { | ||
517 | color: @white; | ||
518 | } | ||
519 | |||
520 | #idle_inhibitor { | ||
521 | padding-top: 1px; | ||
522 | } | ||
523 | |||
524 | #privacy { | ||
525 | color: @red; | ||
526 | margin: -1px 2px 0px 5px; | ||
527 | } | ||
528 | #clock { | ||
529 | /* margin-right: 5px; */ | ||
530 | } | ||
531 | ''; | ||
532 | }; | ||
533 | wpaperd = { | 259 | wpaperd = { |
534 | enable = true; | 260 | enable = true; |
535 | settings.default = { | 261 | settings.default = { |
@@ -542,7 +268,7 @@ in { | |||
542 | enable = true; | 268 | enable = true; |
543 | settings = { | 269 | settings = { |
544 | main = { | 270 | main = { |
545 | terminal = lib.getExe pkgs.kitty; | 271 | terminal = lib.getExe cfg.programs.kitty.package; |
546 | layer = "overlay"; | 272 | layer = "overlay"; |
547 | icon-theme = "Paper"; | 273 | icon-theme = "Paper"; |
548 | font = "Fira Sans"; | 274 | font = "Fira Sans"; |
@@ -564,14 +290,6 @@ in { | |||
564 | }; | 290 | }; |
565 | 291 | ||
566 | services = { | 292 | services = { |
567 | dunst = { | ||
568 | settings = import ./dunst-settings.nix inputs; | ||
569 | iconTheme = { | ||
570 | package = pkgs.paper-icon-theme; | ||
571 | name = "Paper"; | ||
572 | }; | ||
573 | enable = true; | ||
574 | }; | ||
575 | emacs = { | 293 | emacs = { |
576 | enable = true; | 294 | enable = true; |
577 | socketActivation.enable = true; | 295 | socketActivation.enable = true; |
@@ -599,6 +317,12 @@ in { | |||
599 | notification_actions = { | 317 | notification_actions = { |
600 | device_mounted = []; | 318 | device_mounted = []; |
601 | }; | 319 | }; |
320 | device_config = [ | ||
321 | { loop_file = "/nix/store/*-etc-metadata.erofs"; is_mounted = false; ignore = true; } | ||
322 | { mount_path = "/run/nixos-etc-metadata"; ignore = true; } | ||
323 | { mount_path = "/run/nixos-etc-metadata.*"; ignore = true; } | ||
324 | ]; | ||
325 | icon_names.media = ["drive-removable-media-symbolic"]; | ||
602 | }; | 326 | }; |
603 | }; | 327 | }; |
604 | network-manager-applet.enable = true; | 328 | network-manager-applet.enable = true; |
@@ -635,31 +359,17 @@ in { | |||
635 | enable = true; | 359 | enable = true; |
636 | events = [ | 360 | events = [ |
637 | { event = "before-sleep"; command = lockCommand; } | 361 | { event = "before-sleep"; command = lockCommand; } |
638 | { event = "after-resume"; command = "${cfg.wayland.windowManager.hyprland.package}/bin/hyprctl dispatch dpms on"; } | ||
639 | { event = "lock"; command = lockCommand; } | 362 | { event = "lock"; command = lockCommand; } |
640 | ]; | 363 | ]; |
641 | timeouts = [ | 364 | timeouts = [ |
642 | { timeout = 300; | ||
643 | command = "${cfg.wayland.windowManager.hyprland.package}/bin/hyprctl dispatch dpms off"; | ||
644 | } | ||
645 | { timeout = 330; command = lockCommand; } | 365 | { timeout = 330; command = lockCommand; } |
646 | ]; | 366 | ]; |
647 | extraArgs = [ | 367 | extraArgs = [ |
368 | "-w" | ||
648 | "idlehint" "30" | 369 | "idlehint" "30" |
649 | ]; | 370 | ]; |
650 | }; | 371 | }; |
651 | poweralertd.enable = true; | 372 | poweralertd.enable = true; |
652 | avizo = { | ||
653 | enable = true; | ||
654 | settings.default = { | ||
655 | time = "1.0"; | ||
656 | background = "rgba(0, 0, 0, 0.8)"; | ||
657 | border-color = "rgba(0, 0, 0, 1)"; | ||
658 | bar-fg-color = "rgba(160, 160, 160, 1)"; | ||
659 | bar-bg-color = "rgba(32, 32, 32, 0.96)"; | ||
660 | # y-offset = "0.25"; | ||
661 | }; | ||
662 | }; | ||
663 | }; | 373 | }; |
664 | 374 | ||
665 | home.pointerCursor = { | 375 | home.pointerCursor = { |
@@ -700,16 +410,18 @@ in { | |||
700 | fira fira-code pwvucontrol wrappedKeepassxc wl-clipboard-rs | 410 | fira fira-code pwvucontrol wrappedKeepassxc wl-clipboard-rs |
701 | mumble pulseaudio-ctl pamixer libnotify screen-message | 411 | mumble pulseaudio-ctl pamixer libnotify screen-message |
702 | wrappedYTMDesktop libsForQt5.qt5ct playerctl evince | 412 | wrappedYTMDesktop libsForQt5.qt5ct playerctl evince |
703 | thunderbird zoom-us steam steam-run wireshark virt-manager | 413 | thunderbird zoom-us xdg-desktop-portal steam steam-run |
704 | rclone cached-nix-shell worktime fira-code-symbols | 414 | wireshark virt-manager rclone cached-nix-shell worktime |
705 | libreoffice xournalpp google-chrome nixos-shell virt-viewer | 415 | fira-code-symbols libreoffice xournalpp google-chrome |
706 | freerdp gnome-icon-theme paper-icon-theme sshpassSecret | 416 | nixos-shell virt-viewer freerdp gnome-icon-theme |
707 | weechat element-desktop matrix-synapse-tools.synadm | 417 | paper-icon-theme sshpassSecret weechat element-desktop |
418 | matrix-synapse-tools.synadm | ||
708 | flakeInputs.deploy-rs.packages.${config.nixpkgs.system}.deploy-rs | 419 | flakeInputs.deploy-rs.packages.${config.nixpkgs.system}.deploy-rs |
709 | sieve-connect gimp inkscape udiskie glab nitrokey-app | 420 | sieve-connect gimp inkscape udiskie glab nitrokey-app |
710 | pynitrokey gtklock wlrctl remmina openscad spice-record | 421 | pynitrokey gtklock wlrctl remmina openscad spice-record |
711 | libguestfs-with-appliance nerd-fonts.fira-mono | 422 | libguestfs-with-appliance nerd-fonts.fira-mono |
712 | nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts | 423 | nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts |
424 | swtpm | ||
713 | ]; | 425 | ]; |
714 | 426 | ||
715 | file = { | 427 | file = { |
@@ -744,13 +456,6 @@ in { | |||
744 | }; | 456 | }; |
745 | 457 | ||
746 | xdg.configFile = { | 458 | xdg.configFile = { |
747 | "dunst/dunstrc.d" = { | ||
748 | source = ./dunstrc.d; | ||
749 | recursive = true; | ||
750 | onChange = '' | ||
751 | ${pkgs.systemd}/bin/systemctl --user try-restart dunst | ||
752 | ''; | ||
753 | }; | ||
754 | "wireplumber" = { | 459 | "wireplumber" = { |
755 | source = ./wireplumber; | 460 | source = ./wireplumber; |
756 | recursive = true; | 461 | recursive = true; |
@@ -782,6 +487,18 @@ in { | |||
782 | }; | 487 | }; |
783 | }; | 488 | }; |
784 | "emacs/init.el".source = ./emacs.el; | 489 | "emacs/init.el".source = ./emacs.el; |
490 | "systemd/user/xdg-desktop-portal.service.d/after-graphical-session.conf".text = '' | ||
491 | [Unit] | ||
492 | After=graphical-session.target | ||
493 | ''; | ||
494 | "systemd/user/home-manager.service.d/before-graphical-session.conf".text = '' | ||
495 | [Unit] | ||
496 | Before=graphical-session-pre.target | ||
497 | ''; | ||
498 | "pdfpc/pdfpcrc".text = '' | ||
499 | mouse 8 prev | ||
500 | mouse 9 next | ||
501 | ''; | ||
785 | }; | 502 | }; |
786 | 503 | ||
787 | xdg.dataFile = { | 504 | xdg.dataFile = { |
@@ -899,7 +616,6 @@ in { | |||
899 | --property 'CPUAccounting=yes' --property 'CPUQuotaPeriodSec=50ms' \ | 616 | --property 'CPUAccounting=yes' --property 'CPUQuotaPeriodSec=50ms' \ |
900 | --property 'Environment=DSCP=46' \ | 617 | --property 'Environment=DSCP=46' \ |
901 | -- ${pkgs.dscp}/bin/dscp ${pkgs.google-chrome}/bin/google-chrome-stable \ | 618 | -- ${pkgs.dscp}/bin/dscp ${pkgs.google-chrome}/bin/google-chrome-stable \ |
902 | --force-device-scale-factor=1.5 \ | ||
903 | --class=Rainbow \ | 619 | --class=Rainbow \ |
904 | --kiosk "https://web.openrainbow.com" \ | 620 | --kiosk "https://web.openrainbow.com" \ |
905 | --user-data-dir=''${HOME}/.config/google-chrome-rainbow | 621 | --user-data-dir=''${HOME}/.config/google-chrome-rainbow |
@@ -908,6 +624,9 @@ in { | |||
908 | url = "https://web.openrainbow.com/rb/2.139.17/assets/skins/rainbow/images/homepage/logo__rainbow.svg"; | 624 | url = "https://web.openrainbow.com/rb/2.139.17/assets/skins/rainbow/images/homepage/logo__rainbow.svg"; |
909 | hash = "sha256-5fmo8rDqVDpzkGaPjk4Y+SsSZpAsY7VUQSFW6WdHwuU="; | 625 | hash = "sha256-5fmo8rDqVDpzkGaPjk4Y+SsSZpAsY7VUQSFW6WdHwuU="; |
910 | }; | 626 | }; |
627 | settings = { | ||
628 | StartupWMClass = "Rainbow"; | ||
629 | }; | ||
911 | }; | 630 | }; |
912 | }; | 631 | }; |
913 | 632 | ||
@@ -923,23 +642,6 @@ in { | |||
923 | color-scheme = "prefer-dark"; | 642 | color-scheme = "prefer-dark"; |
924 | }; | 643 | }; |
925 | }; | 644 | }; |
926 | |||
927 | wayland.windowManager.hyprland = { | ||
928 | enable = true; | ||
929 | settings = import ./hyprland.nix inputs; | ||
930 | }; | ||
931 | |||
932 | xdg.portal = { | ||
933 | enable = true; | ||
934 | xdgOpenUsePortal = true; | ||
935 | config = { | ||
936 | common.default = [ "gtk" ]; | ||
937 | hyprland.default = [ "gtk" "kde" "hyprland" ]; | ||
938 | }; | ||
939 | extraPortals = with pkgs; [ | ||
940 | xdg-desktop-portal-kde xdg-desktop-portal-gtk xdg-desktop-portal-wlr xdg-desktop-portal-hyprland | ||
941 | ]; | ||
942 | }; | ||
943 | }; | 645 | }; |
944 | }; | 646 | }; |
945 | } | 647 | } |