{ config, lib, pkgs, ... }: { config.home-manager.users.emily = lib.mkIf (config.kyouma.graphical.compositor == "hyprland") { wayland.windowManager.hyprland = { enable = true; settings = let kitty = "${pkgs.kitty}/bin/kitty"; pactl = "${pkgs.pulseaudio}/bin/pactl"; playerctl = "${pkgs.playerctl}/bin/playerctl"; notifysend = "${pkgs.libnotify}/bin/notify-send"; dolphin = "${pkgs.libsForQt5.dolphin}/bin/dolphin"; firefox = "${pkgs.firefox}/bin/firefox"; brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl"; screenshot = "~/.local/bin/hypr/screenshot.sh"; rofi = "${pkgs.rofi-wayland}/bin/rofi"; in { general = { border_size = 1; gaps_in = 4; gaps_out = 8; "col.active_border" = "0xFFB4A1DB 0xFFD04E9D 45deg"; "col.inactive_border" = "1e2030 1e2030 45deg"; cursor_inactive_timeout = 30; layout = "dwindle"; }; decoration = { rounding = 8; shadow_range = 10; "col.shadow" = "0x66000000"; "col.shadow_inactive" = "0x66000000"; blur = { enabled = true; passes = 2; }; }; dwindle.no_gaps_when_only = 1; animations = { bezier = [ "wind, 0.2, 0.9, 0.2, 1.05" "winMov, 0.2, 0.9, 0.2, 1.08" "winIn, 0.2, 0.9, 0.2, 1.08" "winOut, 0.2, 0, 0.9, 0.2" "liner, 1, 1, 1, 1" ]; animation = [ "windows, 1, 6, wind, slide" "windowsIn, 1, 6, winIn, slide" "windowsOut, 1, 6, winOut, slide" "windowsMove, 1, 6, winMov, slide" "border, 1, 1, liner" "borderangle, 1, 30, liner, loop" "fade, 1, 10, default" "fadeOut, 1, 12, default" "workspaces, 1, 8, wind" ]; }; input = { kb_layout = "de"; kb_variant = "neo_qwerty"; kb_options = "grp:alt_shift_toggle"; accel_profile = "adaptive"; scroll_method = "2fg"; float_switch_override_focus = 2; touchpad = { natural_scroll = true; tap-to-click = false; drag_lock = true; }; }; gestures = { workspace_swipe = true; workspace_swipe_distance = 3200; workspace_swipe_min_speed_to_force = 40; workspace_swipe_cancel_ratio = 0.15; workspace_swipe_forever = true; }; group = { "col.border_inactive" = "0xFFDB695B"; "col.border_active" = "0xFF4BC66D"; groupbar = { render_titles = false; }; }; xwayland = { force_zero_scaling = true; use_nearest_neighbor = false; }; misc = { disable_hyprland_logo = true; disable_splash_rendering = true; vrr = 1; }; device = [ { name = "syna8013:00-06cb:ce69-touchpad"; sensitivity = 0.3; } { name = "logitech-m705"; sensitivity = 0.1; accel_profile = "flat"; } { name = "tpps/2-ibm-trackpoint"; sensitivity = 0.2; scroll_method = "on_button_down"; accel_profile = "flat"; } { name = "tpps/2-elan-trackpoint"; sensitivity = 0; scroll_method = "on_button_down"; accel_profile = "flat"; } ]; layerrule = [ "blur, waybar" ]; monitor = [ "eDP-1, 3840x2400@60, 0x0, 1, bitdepth, 10" #"eDP-1, 2560x1600@60, 0x0, 1, bitdepth, 10" #"eDP-1, 1920x1200@60, 0x0, 1, bitdepth, 10" "desc:Dell Inc. AW3225QF FXK2YZ3, 3840x2160@240,5280x0,1, bitdepth,10, vrr,2" "desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS AD27QD 19320B000455, 2560x1440@144,3840x-350,1, bitdepth,10, transform,1" ",preferred,auto,1" ]; workspace = [ "1, monitor:desc:Dell Inc. AW3225QF FXK2YZ3, default:true" "2, monitor:desc:Dell Inc. AW3225QF FXK2YZ3" "3, monitor:desc:Dell Inc. AW3225QF FXK2YZ3" "4, monitor:desc:Dell Inc. AW3225QF FXK2YZ3" "5, monitor:desc:Dell Inc. AW3225QF FXK2YZ3" "6, monitor:desc:Dell Inc. AW3225QF FXK2YZ3" "7, monitor:desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS AD27QD 19320B000455" "8, monitor:desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS AD27QD 19320B000455" "9, monitor:desc:GIGA-BYTE TECHNOLOGY CO. LTD. AORUS AD27QD 19320B000455" "10,monitor:desc:Dell Inc. AW3225QF FXK2YZ3" ]; windowrule = [ "float, foot-float" "float, yad|nm-connection-editor|pavucontrol" "float, xfce-polkit|kvantummanager|qt5ct|zenity|waypaper" "float, feh|com.github.weclaw1.ImageRoll|Gpicview|Gimp|MPlayer" "float, VirtualBox Manager|qemu|Qemu-system-x86_64|PacketTracer" "float, title:File Operation Progress|Open Files|Media viewer" "float, title:Confirm to replace files" "size 60% 64%, com.github.weclaw1.ImageRoll " "center, com.github.weclaw1.ImageRoll" "animation slide down,foot-full" "animation slide up,Rofi" ]; "$mod" = "SUPER"; "$notifycmd" = "${notifysend} -h string:x-canonical-private-synchronous:hypr-cfg -u low"; bind = [ "$mod, Return, exec, ${kitty}" "$mod, F1, exec, ${dolphin}" "$mod, F2, exec, ${firefox}" # Rofi "$mod, D, exec, ${rofi} -show drun -theme ~/.config/rofi/launcher.rasi" "$mod, R, exec, ${rofi} -show run -theme ~/.config/rofi/runner.rasi" "$mod, A, exec, ~/.local/bin/hypr/rofi_screenshot.sh" "$mod, X, exec, ~/.local/bin/hypr/rofi_powermenu.sh" # Misc "$mod, C, exec, ~/.local/bin/hypr/colorpicker.sh" "CTRL_ALT, L, exec, ${pkgs.systemd}/bin/loginctl lock-session" # Function keys ", XF86AudioMute, exec, ${pactl} set-sink-mute @DEFAULT_SINK@ toggle" ", XF86AudioMicMute, exec, ${pactl} set-source-mute @DEFAULT_SOURCE@ toggle" ", XF86AudioNext, exec, ${playerctl} next" ", XF86AudioPrev, exec, ${playerctl} previous" ", XF86AudioPlay, exec, ${playerctl} play" ", XF86AudioStop, exec, ${playerctl} pause" # Scratchpad "$mod SHIFT, MINUS, movetoworkspace,special" "$mod, MINUS, togglespecialworkspace," # Screenshots ", Print, exec, ${screenshot} --now" "ALT, Print, exec, ${screenshot} --in5" "SHIFT, Print, exec, ${screenshot} --in10" "$mod, Print, exec, ${screenshot} --area" # Hyprland "$mod SHIFT, Q, killactive," "CTRL_ALT, Delete, exit," "$mod, F, fullscreen, 0" "$mod, F, exec, $notifycmd 'Fullscreen Mode'" "$mod, S, pseudo," "$mod, S, exec, $notifycmd 'Pseudo Mode'" "$mod SHIFT, Space, togglefloating," "$mod SHIFT, Space, centerwindow," # windowgroup "$mod, G, togglegroup" "$mod, G, exec, $notifycmd 'Toggled Group Mode'" "$mod, H, changegroupactive, b" "$mod, L, changegroupactive, f" # Change Focusconfig "$mod, left, movefocus, l" "$mod, H, movefocus, l" "$mod, right, movefocus, r" "$mod, L, movefocus, r" "$mod, up, movefocus, u" "$mod, K, movefocus, u" "$mod, down, movefocus, d" "$mod, J, movefocus, d" # Move Active "$mod SHIFT, left, movewindow, l" "$mod SHIFT, H, movewindow, l" "$mod SHIFT, right, movewindow, r" "$mod SHIFT, L, movewindow, r" "$mod SHIFT, up, movewindow, u" "$mod SHIFT, K, movewindow, u" "$mod SHIFT, down, movewindow, d" "$mod SHIFT, J, movewindow, d" # Switch between windows "$mod,Tab,cyclenext," "$mod,Tab,bringactivetotop," # Workspaces "$mod, 1, workspace, 1" "$mod, 2, workspace, 2" "$mod, 3, workspace, 3" "$mod, 4, workspace, 4" "$mod, 5, workspace, 5" "$mod, 6, workspace, 6" "$mod, 7, workspace, 7" "$mod, 8, workspace, 8" "$mod, 9, workspace, 9" "$mod, 0, workspace, 10" # Send to Workspaces "$mod SHIFT, 1, movetoworkspace, 1" "$mod SHIFT, 2, movetoworkspace, 2" "$mod SHIFT, 3, movetoworkspace, 3" "$mod SHIFT, 4, movetoworkspace, 4" "$mod SHIFT, 5, movetoworkspace, 5" "$mod SHIFT, 6, movetoworkspace, 6" "$mod SHIFT, 7, movetoworkspace, 7" "$mod SHIFT, 8, movetoworkspace, 8" "$mod SHIFT, 9, movetoworkspace, 9" "$mod SHIFT, 0, movetoworkspace, 10" # Change Workspace Mode "$mod CTRL, F, workspaceopt, allfloat" "$mod CTRL, F, exec, $notifycmd 'Toggled All Float Mode'" "$mod CTRL, S, workspaceopt, allpseudo" "$mod CTRL, S, exec, $notifycmd 'Toggled All Pseudo Mode'" # Misc "$mod SHIFT, P, pin," "$mod SHIFT, P, exec, $notifycmd 'Toggled Pin'" "$mod SHIFT, S, swapnext" "$mod SHIFT, O, toggleopaque" ]; binde = [ # Function keys repeat ", XF86MonBrightnessUp, exec, ${brightnessctl} s +10%" ", XF86MonBrightnessDown, exec, ${brightnessctl} s 10%-" ", XF86AudioRaiseVolume, exec, ${pactl} set-sink-volume @DEFAULT_SINK@ +5%" ", XF86AudioLowerVolume, exec, ${pactl} set-sink-volume @DEFAULT_SINK@ -5%" # Resize Active "$mod CTRL, left, resizeactive, -20 0" "$mod CTRL, H, resizeactive, -20 0" "$mod CTRL, right, resizeactive, 20 0" "$mod CTRL, L, resizeactive, 20 0" "$mod CTRL, up, resizeactive, 0 -20" "$mod CTRL, K, resizeactive, 0 -20" "$mod CTRL, down, resizeactive, 0 20" "$mod CTRL, J, resizeactive, 0 20" # Move Active (Floating Only) "$mod ALT, left, moveactive, -80 0" "$mod ALT, H, moveactive, -80 0" "$mod ALT, right, moveactive, 80 0" "$mod ALT, L, moveactive, 80 0" "$mod ALT, up, moveactive, 0 -80" "$mod ALT, K, moveactive, 0 -80" "$mod ALT, down, moveactive, 0 80" "$mod ALT, J, moveactive, 0 80" ]; bindl = [ ",switch:on:Lid Switch,exec, lsusb -d 17ef:30b4 && hyprctl keyword monitor 'eDP-1, disable'" ",switch:off:Lid Switch,exec, hyprctl keyword monitor 'eDP-1, 3840x2400@60, 0x0, 1, bitdepth,10'" ]; bindm = [ "$mod, mouse:272, movewindow" "$mod, mouse:273, resizewindow" ]; exec-once = [ "${pkgs.wpaperd}/bin/wpaperd" ]; }; }; }; }