2023-08-26 18:11:38 +02:00
|
|
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
2023-08-27 17:01:31 +02:00
|
|
|
#monitor=,preferred,auto,auto
|
2023-08-28 17:54:49 +02:00
|
|
|
$mainMod = SUPER
|
|
|
|
|
2023-08-27 17:01:31 +02:00
|
|
|
<% opt.getDeviceConf "hyprland.conf" %>
|
2023-08-26 18:11:38 +02:00
|
|
|
|
|
|
|
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
|
|
|
|
|
|
|
# Execute your favorite apps at launch
|
|
|
|
# exec-once = waybar & hyprpaper & firefox
|
|
|
|
|
|
|
|
# Source a file (multi-file configs)
|
|
|
|
# source = ~/.config/hypr/myColors.conf
|
|
|
|
|
|
|
|
# Some default env vars.
|
|
|
|
env = XCURSOR_SIZE,24
|
|
|
|
|
|
|
|
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
|
|
|
input {
|
|
|
|
kb_layout = de
|
|
|
|
kb_variant =
|
|
|
|
kb_model =
|
|
|
|
kb_rules =
|
|
|
|
|
2023-08-27 17:01:31 +02:00
|
|
|
follow_mouse = 2
|
2023-08-26 18:11:38 +02:00
|
|
|
|
|
|
|
touchpad {
|
|
|
|
natural_scroll = no
|
|
|
|
}
|
|
|
|
|
|
|
|
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
|
|
|
}
|
|
|
|
|
|
|
|
general {
|
|
|
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
|
|
|
|
|
|
gaps_in = 5
|
|
|
|
gaps_out = 20
|
|
|
|
border_size = 2
|
|
|
|
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
|
|
|
col.inactive_border = rgba(595959aa)
|
|
|
|
|
|
|
|
layout = dwindle
|
|
|
|
}
|
|
|
|
|
|
|
|
decoration {
|
|
|
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
|
|
|
|
|
|
rounding = 0
|
|
|
|
|
|
|
|
blur {
|
2023-08-27 17:01:31 +02:00
|
|
|
enabled = true
|
2023-08-26 18:11:38 +02:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
|
|
|
master {
|
|
|
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
|
|
|
new_is_master = 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
|
|
|
|
|
2023-08-27 18:29:55 +02:00
|
|
|
# Media keys
|
|
|
|
bind = ,XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
|
|
|
|
bind = ,XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
|
|
|
|
bind = ,XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
|
|
|
|
bind = ,XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
|
|
|
bind = ,XF86AudioPlay, exec, playerctl play-pause
|
|
|
|
bind = ,XF86AudioStop, exec, playerctl stop
|
|
|
|
bind = ,XF86AudioNext, exec, playerctl next
|
|
|
|
bind = ,XF86AudioPrev, exec, playerctl previous
|
|
|
|
|
2023-08-27 17:01:31 +02:00
|
|
|
bind = $mainMod + SHIFT, E, exit,
|
2023-08-27 17:17:30 +02:00
|
|
|
bind = $mainMod + SHIFT, Q, killactive,
|
2023-08-26 18:11:38 +02:00
|
|
|
bind = $mainMod + SHIFT, SPACE, togglefloating,
|
2023-08-27 17:17:30 +02:00
|
|
|
bind = $mainMod, P, pseudo, # dwindle
|
|
|
|
bind = $mainMod, R, togglesplit, # dwindle
|
|
|
|
bind = $mainMod, F, fullscreen,
|
|
|
|
|
|
|
|
bind = $mainMod, RETURN, exec, foot # need to hard-code foot here, because WezTerm is currently too incompetent for WL
|
|
|
|
bind = $mainMod + CTRL, E, exec, <% opt.commands.file_manager %>
|
2023-08-27 18:29:55 +02:00
|
|
|
bind = ALT, SPACE, exec, rofi -show combi
|
2023-08-27 17:01:31 +02:00
|
|
|
bind = $mainMod + CTRL, B, exec, <% opt.commands.browser %>
|
2023-08-27 17:17:30 +02:00
|
|
|
bind = $mainMod + SHIFT, P, exec, gpower2
|
2023-08-27 17:38:44 +02:00
|
|
|
bind = ,PRINT, exec, grim -g "$(slurp)" ~/Downloads/screenshot.png
|
|
|
|
bind = SHIFT, PRINT, exec, grim -g "$(slurp)" - | feh -
|
2023-08-26 18:11:38 +02:00
|
|
|
|
|
|
|
# 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
|
|
|
|
|
|
|
|
# HJKL
|
|
|
|
bind = $mainMod, H, movefocus, l
|
|
|
|
bind = $mainMod, L, movefocus, r
|
|
|
|
bind = $mainMod, K, movefocus, u
|
|
|
|
bind = $mainMod, J, movefocus, d
|
|
|
|
|
|
|
|
# Window Moving
|
|
|
|
bind = $mainMod + SHIFT, left, movewindow, l
|
|
|
|
bind = $mainMod + SHIFT, right, movewindow, r
|
|
|
|
bind = $mainMod + SHIFT, up, movewindow, u
|
|
|
|
bind = $mainMod + SHIFT, down, movewindow, d
|
|
|
|
|
|
|
|
# HJKL
|
|
|
|
bind = $mainMod + SHIFT, H, movewindow, l
|
|
|
|
bind = $mainMod + SHIFT, L, movewindow, r
|
|
|
|
bind = $mainMod + SHIFT, K, movewindow, u
|
|
|
|
bind = $mainMod + SHIFT, J, movewindow, d
|
2023-08-27 17:01:31 +02:00
|
|
|
|
2023-08-26 18:11:38 +02:00
|
|
|
# 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]
|
2023-08-27 17:01:31 +02:00
|
|
|
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
|
|
|
|
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
|
|
|
|
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
|
|
|
|
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
|
|
|
|
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
|
|
|
|
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
|
|
|
|
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
|
|
|
|
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
|
|
|
|
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
|
|
|
|
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
|
2023-08-26 18:11:38 +02:00
|
|
|
|
|
|
|
# Scroll through existing workspaces with mainMod + scroll
|
|
|
|
bind = $mainMod, mouse_down, workspace, e+1
|
|
|
|
bind = $mainMod, mouse_up, workspace, e-1
|
|
|
|
|
|
|
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
|
|
bindm = $mainMod, mouse:272, movewindow
|
|
|
|
bindm = $mainMod, mouse:273, resizewindow
|
|
|
|
|
2023-08-27 17:01:31 +02:00
|
|
|
env = XDG_SESSION_TYPE, wayland
|
2023-08-27 19:46:42 +02:00
|
|
|
env = MOZ_ENABLE_WAYLAND, 1
|
2023-08-27 17:01:31 +02:00
|
|
|
|
|
|
|
<! if opt.nvidia then -- nvidia workarounds !>
|
|
|
|
env = LIBVA_DRIVER_NAME, nvidia
|
|
|
|
env = GBM_BACKEND, nvidia-drm
|
|
|
|
env = __GLX_VENDOR_LIBRARY_NAME, nvidia
|
|
|
|
env = WLR_NO_HARDWARE_CURSORS, 1
|
|
|
|
<! end !>
|
|
|
|
|
2023-08-26 18:11:38 +02:00
|
|
|
exec-once = waybar
|
2023-08-27 17:17:30 +02:00
|
|
|
exec-once = wpaperd
|
2023-08-26 18:11:38 +02:00
|
|
|
exec-once = hyprctl setcursor <% opt.cursor.theme %> <% opt.cursor.size %>
|