# # Please note not all available settings / options are set here. # For a full list, see the wiki # # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=HDMI-A-1,2560x1440@60, 0x0, 1 # See https://wiki.hyprland.org/Configuring/Keywords/ for more # Execute your favorite apps at launch debug { disable_logs = false #gl_debugging = true } # Source a file (multi-file configs) #source = ~/.config/hypr/myColors.conf #env = AQ_NO_MODIFIERS,1 # Some default env vars. env = XCURSOR_SIZE,48 env = XDG_CURRENT_DESKTOP=Hyprland env = XDG_SESSION_TYPE=wayland env = XDG_SESSION_DESKTOP=Hyprland env = XDG_SESSION_HOME=~ #auto start exec-once=~/bin/startup.sh #exec-once=~/bin/suspend.sh exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once=hyprland-autoname-workspaces exec-once=hyprctl setcursor Bibata-Modern-Classic 48 exec-once=waybar exec-once=/usr/lib/polkit-kde-authentication-agent-1 #exec-once=[workspace 1] firefox workspace = 1,name:web, default:true workspace = 2,name:files workspace = 3,name:edit workspace = 5,name:audio misc { mouse_move_enables_dpms = true key_press_enables_dpms = true } xwayland { force_zero_scaling = true } ecosystem { no_update_news = true no_donation_nag = true } # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = ch #,us kb_variant = fr #,euro kb_model = kb_options = grp:alt_space_toggle kb_rules = follow_mouse = 1 touchpad { natural_scroll = yes } sensitivity = 0 # -1.0 - 1.0, 0 means no modification. } general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 2 gaps_out = 2 border_size = 2 col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) layout = dwindle } cursor { inactive_timeout = 3 } decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 10 blur { enabled = true size = 3 passes = 1 } #drop_shadow = yes #shadow_range = 4 #shadow_render_power = 3 #col.shadow = rgba(1a1a1aee) } animations { enabled = yes # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, default animation = workspaces, 1, 6, default } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = yes # you probably want this #no_gaps_when_only = 1 } master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more #new_is_master = true #no_gaps_when_only=true } #gestures { # # See https://wiki.hyprland.org/Configuring/Variables/ for more # workspace_swipe = off #} # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more #device:epic-mouse-v1 { # sensitivity = -0.5 #} # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more #plugin { # hyprexpo { # columns = 3 # gap_size = 1 # bg_col = rgb(111111) # workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1 # # gesture_distance = 300 # how far is the "max" for the gesture # } #} # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = SUPER # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, Q, exec, wezterm start #gnome-terminal #alacritty -e screen bind = $mainMod SHIFT, Q, exec, alacritty bind = $mainMod, C, killactive, bind = $mainMod, W, killactive, bind = $mainMod, M, exit, bind = $mainMod, E, exec, nautilus #nemo bind = $mainMod, Y, exec, copyq toggle bind = $mainMod, A, exec, swaync-client -t -sw bind = $mainMod, V, togglefloating, bind = $mainMod, space, exec, fuzzel bind = $mainMod, D, exec, wayscriber --active bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, J, layoutmsg, togglesplit, # dwindle bind = $mainMod, L, exec, hyprlock bind = $mainMod, F, fullscreen, bind = $mainMod, Delete, exec, ~/bin/suspend.sh #bind = $mainMod, HOME, hyprexpo:expo, toggle #laptop screen brightness bind = $mainMod ALT, 1, exec, sudo brightnessctl s 10% bind = $mainMod ALT, 2, exec, sudo brightnessctl s 20% bind = $mainMod ALT, 3, exec, sudo brightnessctl s 30% bind = $mainMod ALT, 4, exec, sudo brightnessctl s 40% bind = $mainMod ALT, 5, exec, sudo brightnessctl s 50% bind = $mainMod ALT, 6, exec, sudo brightnessctl s 60% bind = $mainMod ALT, 7, exec, sudo brightnessctl s 70% bind = $mainMod ALT, 8, exec, sudo brightnessctl s 80% bind = $mainMod ALT, 9, exec, sudo brightnessctl s 90% bind = $mainMod ALT, 0, exec, sudo brightnessctl s 100% bind = , XF86MonBrightnessUp, exec, sudo brightnessctl s "+10%" bind = , XF86MonBrightnessDown, exec, sudo brightnessctl s "10%-" #lid binds # trigger when the lid is opened bindl = , switch:off:Lid Switch,exec,~/bin/lid_open.sh # trigger when the lid is closed bindl = , switch:on:Lid Switch,exec,~/bin/lid_close.sh # Desktop zooming or magnifier bindd = $mainMod ALT, mouse_down, zoom in, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')" bindd = $mainMod ALT, mouse_up, zoom out, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')" # Desktop zooming or magnifier bindd = $mainMod ALT, mouse_down, zoom in, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')" bindd = $mainMod ALT, mouse_up, zoom out, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')" # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d # Switch workspaces with mainMod + [0-9] bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 # Move active window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 bind = $mainMod CTRL, 1, movetoworkspacesilent, 1 bind = $mainMod CTRL, 2, movetoworkspacesilent, 2 bind = $mainMod CTRL, 3, movetoworkspacesilent, 3 bind = $mainMod CTRL, 4, movetoworkspacesilent, 4 bind = $mainMod CTRL, 5, movetoworkspacesilent, 5 bind = $mainMod CTRL, 6, movetoworkspacesilent, 6 bind = $mainMod CTRL, 7, movetoworkspacesilent, 7 bind = $mainMod CTRL, 8, movetoworkspacesilent, 8 bind = $mainMod CTRL, 9, movetoworkspacesilent, 9 bind = $mainMod CTRL, 0, movetoworkspacesilent, 10 # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, e-1 bind = $mainMod, mouse_up, workspace, e+1 # Scroll workspaces with ctrl + mod + left || right keys bind = $mainMod CTRL, left, workspace, e-1 bind = $mainMod CTRL, right, workspace, e+1 #multimedia keys #bind = ,XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% bind = ,XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise #bind = ,code:115, exec, swayosd-client --output-volume raise #bind = ,XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% bind = ,XF86AudioLowerVolume, exec, swayosd-client --output-volume lower #bind = ,code:114, exec, swayosd-client --output-volume lower #bind = ,XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle bind = ,XF86AudioMute, exec, swayosd-client --output-volume mute-toggle #bind = ,code:113, exec, swayosd-client --output-volume mute-toggle bind = ,XF86AudioPlay, exec, playerctl play-pause bind = ,XF86PowerDown, exec, shutdown -h now # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow #media control $player = audacious bind = ALT, space, exec, playerctl -p $player play-pause bind = ALT, q, exec, playerctl -p $player next bind = ALT, a, exec, playerctl -p $player previous #screenshot #bind = $mainMod, Shift_R , exec, hyprshot --clipboard-only -m region #bind = , Print, exec, hyprshot --clipboard-only -m region bind = , Print, exec, flameshot gui #windows rules #windowrule = float, class:com.github.hluk.copyq #windowrule=float,class:clight-gui #windowrule=float,class:localsend #windowrule=float,class:blueman-manager #windowrule = stayfocused,class:(steam),title:(^$) #windowrule = stayfocused, title:^(menu window)$, class:^(zoom)$ #windowrule = stayfocused, title:^(confirm window)$, class:^(zoom)$ #windowrulev2 = tile, class:^(com-zerenesystems-stacker-gui-MainFrame)$ #windowrule=tile,title:A Ren(.)Py Game windowrule { name=float match:class = com.github.hluk.copyq match:class = clight-gui match:class = localsend match:class = blueman-manager float = on } #region Stay focused windowrule { name = stay-focused-tag-steam match:class = (steam) tag = +stay-focused } windowrule { name = stay-focused-tag-zoom match:class = ^(zoom)$ tag = +stay-focused } windowrule { name = stay-focused-apply match:tag = stay-focused stay_focused = on } #endRegion #region tiled windowrule { name = tiled-tag-zerene match:class = ^(com-zerenesystems-stacker-gui-MainFrame__)$ match:xwayland = 1 tag=+tiled } windowrule { name = tiled-tag-renpy match:title = (A Ren(.)Py Game) match:xwayland = 1 tag = +tiled } windowrule { name = tiles-apply match:tag = tiled float = off } #endRegion #jetbrain xwayland fixes. see https://github.com/hyprwm/Hyprland/issues/4257 windowrule { name = windowrule-jb-tag tag = +jb match:class = ^jetbrains-.* match:initial_title = "" #match:float = 1 } windowrule { name = windowrule-jb-focus focus_on_activate = on no_initial_focus = on float=off stay_focused = on match:tag = jb }