{pkgs, ...}: { wayland.windowManager.hyprland = { enable = true; systemd.enable = true; systemd.variables = ["--all"]; xwayland.enable = true; settings = { exec-once = [ "wl-clip-persist --clipboard both" "wl-paste --watch cliphist store" "hyprpanel" ]; input = { kb_layout = "cz"; kb_options = "caps:escape"; numlock_by_default = true; sensitivity = 0; touchpad = { natural_scroll = false; }; }; misc = { disable_hyprland_logo = true; layers_hog_keyboard_focus = true; animate_manual_resizes = true; enable_swallow = true; focus_on_activate = true; middle_click_paste = false; }; dwindle = { force_split = 0; special_scale_factor = 1.0; split_width_multiplier = 1.0; use_active_for_splits = true; pseudotile = "yes"; preserve_split = "yes"; }; general = { layout = "dwindle"; gaps_in = 4; gaps_out = 3; border_size = 2; }; decoration = { rounding = 7; active_opacity = 1.0; inactive_opacity = 1.0; fullscreen_opacity = 1.0; blur.enabled = false; shadow.enabled = false; }; animations = { enabled = true; bezier = [ "myBezier, 0.05, 0.9, 0.1, 1.05" ]; animation = [ "windows, 1, 7, myBezier" "windowsOut, 1, 7, default, popin 80%" "border, 1, 10, default" "borderangle, 1, 8, default" "fade, 1, 7, default" "workspaces, 1, 6, default" ]; }; binds = { movefocus_cycles_fullscreen = true; }; bind = [ # keybindings "SUPER, Return, exec, foot" "SUPER, B, exec, zen" "SUPER, Q, killactive," "SUPER, F, fullscreen, 0" "SUPER SHIFT, F, fullscreen, 1" "SUPER, W, togglefloating" "SUPER, A, exec, fuzzel" "SUPER, P, pseudo," "SUPER, E, exec, thunar" "SUPER, C, exec, floating-calculator" "SUPER, code:23, swapsplit" "SUPER, code:66, togglesplit" "Alt, F4, exec, hyprctl kill" "SUPER, S, exec, hyprlock" # switch focus "SUPER, left, movefocus, l" "SUPER, right, movefocus, r" "SUPER, up, movefocus, u" "SUPER, down, movefocus, d" "SUPER, h, movefocus, l" "SUPER, j, movefocus, d" "SUPER, k, movefocus, u" "SUPER, l, movefocus, r" "SUPER, left, alterzorder, top" "SUPER, right, alterzorder, top" "SUPER, up, alterzorder, top" "SUPER, down, alterzorder, top" "SUPER, h, alterzorder, top" "SUPER, j, alterzorder, top" "SUPER, k, alterzorder, top" "SUPER, l, alterzorder, top" # switch workspace "SUPER, code:10, workspace, 1" "SUPER, code:11, workspace, 2" "SUPER, code:12, workspace, 3" "SUPER, code:13, workspace, 4" "SUPER, code:14, workspace, 5" "SUPER, code:15, workspace, 6" "SUPER, code:16, workspace, 7" "SUPER, code:17, workspace, 8" "SUPER, code:18, workspace, 9" "SUPER, code:19, workspace, 10" # same as above, but switch to the workspace "SUPER SHIFT, code:10, movetoworkspace, 1" "SUPER SHIFT, code:11, movetoworkspace, 2" "SUPER SHIFT, code:12, movetoworkspace, 3" "SUPER SHIFT, code:13, movetoworkspace, 4" "SUPER SHIFT, code:14, movetoworkspace, 5" "SUPER SHIFT, code:15, movetoworkspace, 6" "SUPER SHIFT, code:16, movetoworkspace, 7" "SUPER SHIFT, code:17, movetoworkspace, 8" "SUPER SHIFT, code:18, movetoworkspace, 9" "SUPER SHIFT, code:19, movetoworkspace, 10" "SUPER ALT, code:10, movetoworkspacesilent, 1" "SUPER ALT, code:11, movetoworkspacesilent, 2" "SUPER ALT, code:12, movetoworkspacesilent, 3" "SUPER ALT, code:13, movetoworkspacesilent, 4" "SUPER ALT, code:14, movetoworkspacesilent, 5" "SUPER ALT, code:15, movetoworkspacesilent, 6" "SUPER ALT, code:16, movetoworkspacesilent, 7" "SUPER ALT, code:17, movetoworkspacesilent, 8" "SUPER ALT, code:18, movetoworkspacesilent, 9" "SUPER ALT, code:19, movetoworkspacesilent, 10" # switch worspace "SUPER CTRL, code:10, workspace, 11" "SUPER CTRL, code:11, workspace, 12" "SUPER CTRL, code:12, workspace, 13" "SUPER CTRL, code:13, workspace, 14" "SUPER CTRL, code:14, workspace, 15" "SUPER CTRL, code:15, workspace, 16" "SUPER CTRL, code:16, workspace, 17" "SUPER CTRL, code:17, workspace, 18" "SUPER CTRL, code:18, workspace, 19" "SUPER CTRL, code:19, workspace, 20" # same as above, but switch to the workspace "SUPER CTRL SHIFT, code:10, movetoworkspace, 11" "SUPER CTRL SHIFT, code:11, movetoworkspace, 12" "SUPER CTRL SHIFT, code:12, movetoworkspace, 13" "SUPER CTRL SHIFT, code:13, movetoworkspace, 14" "SUPER CTRL SHIFT, code:14, movetoworkspace, 15" "SUPER CTRL SHIFT, code:15, movetoworkspace, 16" "SUPER CTRL SHIFT, code:16, movetoworkspace, 17" "SUPER CTRL SHIFT, code:17, movetoworkspace, 18" "SUPER CTRL SHIFT, code:18, movetoworkspace, 19" "SUPER CTRL SHIFT, code:19, movetoworkspace, 20" "SUPER CTRL ALT, code:10, movetoworkspacesilent, 11" "SUPER CTRL ALT, code:11, movetoworkspacesilent, 12" "SUPER CTRL ALT, code:12, movetoworkspacesilent, 13" "SUPER CTRL ALT, code:13, movetoworkspacesilent, 14" "SUPER CTRL ALT, code:14, movetoworkspacesilent, 15" "SUPER CTRL ALT, code:15, movetoworkspacesilent, 16" "SUPER CTRL ALT, code:16, movetoworkspacesilent, 17" "SUPER CTRL ALT, code:17, movetoworkspacesilent, 18" "SUPER CTRL ALT, code:18, movetoworkspacesilent, 19" "SUPER CTRL ALT, code:19, movetoworkspacesilent, 20" # window control "SUPER SHIFT, left, movewindow, l" "SUPER SHIFT, right, movewindow, r" "SUPER SHIFT, up, movewindow, u" "SUPER SHIFT, down, movewindow, d" "SUPER SHIFT, h, movewindow, l" "SUPER SHIFT, j, movewindow, d" "SUPER SHIFT, k, movewindow, u" "SUPER SHIFT, l, movewindow, r" "SUPER CTRL, left, resizeactive, -80 0" "SUPER CTRL, right, resizeactive, 80 0" "SUPER CTRL, up, resizeactive, 0 -80" "SUPER CTRL, down, resizeactive, 0 80" "SUPER CTRL, h, resizeactive, -80 0" "SUPER CTRL, j, resizeactive, 0 80" "SUPER CTRL, k, resizeactive, 0 -80" "SUPER CTRL, l, resizeactive, 80 0" # media and volume controls # ",XF86AudioMute,exec, pamixer -t" ",XF86AudioPlay,exec, playerctl play-pause" ",XF86AudioNext,exec, playerctl next" ",XF86AudioPrev,exec, playerctl previous" ",XF86AudioStop,exec, playerctl stop" ]; # mouse binding bindm = [ "SUPER, mouse:272, movewindow" "SUPER, mouse:273, resizewindow" ]; windowrule = [ # "float,class:^(mpv)$" ]; }; }; programs.hyprlock = { enable = true; settings = { general.hide_cursor = true; background = { blur_size = 3; blur_passes = 2; }; }; }; programs.hyprpanel = { enable = true; systemd.enable = true; settings = { bar = { launcher.autoDetectIcon = true; clock.format = "%d %b %H:%M"; workspaces.show_icons = true; workspaces.workspaces = 20; }; menus.clock = { time = { military = true; hideSeconds = false; }; weather.enabled = false; }; menus.dashboard.directories.enabled = false; menus.dashboard.shortcuts.enabled = true; menus.dashboard.stats.enabled = false; menus.dashboard.controls.enabled = false; menus.workspaces.show_icons = true; theme.bar.transparent = true; theme.bar.buttons.dashboard.icon = "#88B1F7"; theme.bar.buttons.workspaces = { hover = "#FFFFFF"; active = "#FFFFFF"; occupied = "#88B1F7"; available = "#88B1F7"; numbered_active_underline_color = "#FFFFFF"; }; theme.bar.buttons.clock.text = "#88B1F7"; theme.bar.buttons.clock.icon = "#88B1F7"; theme.bar.menus.menu.clock.time.time = "#88B1F7"; theme.bar.menus.menu.clock.calendar.weekdays = "#88B1F7"; theme.bar.menus.menu.clock.calendar.paginator = "#88B1F7"; theme.bar.menus.menu.clock.calendar.currentday = "#88B1F7"; theme.bar.buttons.notifications.icon = "#88B1F7"; theme.bar.battery.icon = "#88B1F7"; theme.bar.buttons.battery.text = "#88B1F7"; theme.bar.buttons.battery.icon = "#88B1F7"; theme.bar.menus.menu.battery.label.color = "#88B1F7"; theme.bar.menus.menu.battery.slider.primary = "#88B1F7"; theme.bar.menus.menu.battery.listitems.active = "#88B1F7"; theme.bar.menus.menu.battery.icons.active = "#88B1F7"; theme.bar.menus.menu.volume = { label.color = "#88B1F7"; listitems.active = "#88B1F7"; iconbutton.active = "#88B1F7"; audio_slider.primary = "#88B1F7"; input_slider.primary = "#88B1F7"; }; theme.bar.buttons.volume = { text = "#88b1f7"; icon = "#88b1f7"; }; theme.font = { size = "12px"; }; }; }; home.packages = with pkgs; [ hyprpanel hyprpicker wl-clip-persist cliphist wf-recorder slurp grim wl-clipboard playerctl ]; }