Hyprland/example/hyprland.conf

277 lines
8.3 KiB
Text

# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# exec-once = waybar & hyprpaper & firefox
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Startup
#exec-once = waybar & hyprpaper & dunst
exec-once = /usr/libexec/polkit-gnome-authentication-agent-1
exec-once = hyprpm reload -n
#exec-once = wl-clip-persist --clipboard both
#exec-once = wl-paste -p -t text --watch clipman store -P --histpath="~/.local/share/clipman-primary.json"
# Plugins
#plugin {
# split-monitor-workspaces {
# count = 10
# }
# hy3 {
# # disable gaps when only one window is onscreen
# no_gaps_when_only = false # default: false
#
# # policy controlling what happens when a node is removed from a group,
# # leaving only a group
# # 0 = remove the nested group
# # 1 = keep the nested group
# # 2 = keep the nested group only if its parent is a tab group
# node_collapse_policy = 2 # default: 2
#
# # special workspace
# special_scale_factor = 0.95
#
# # offset from group split direction when only one window is in a group
# group_inset = 10 # default: 10
#
# # tab group settings
# tabs {
# # height of the tab bar
# height = 15 # default: 15
#
# # padding between the tab bar and its focused node
# padding = 5 # default: 5
#
# # the tab bar should animate in/out from the top instead of below the window
# from_top = false # default: false
#
# # rounding of tab bar corners
# rounding = 5 # default: 3
#
# # render the window title on the bar
# render_text = true # default: true
#
# # font to render the window title with
# text_font = Jetbrains Mono # default: Sans
#
# # height of the window title
# text_height = 8 # default: 8
#
# # left padding of the window title
# text_padding = 3 # default: 3
#
# # active tab bar segment color
# col.active = 0xFF8330DB # default: 0xff32b4ff
#
# # urgent tab bar segment color
# col.urgent = 0xffff4f4f # default: 0xffff4f4f
#
# # inactive tab bar segment color
# col.inactive = 0xFF4D4D4D # default: 0x80808080
#
# # active tab bar text color
# col.text.active = 0xffffffff # default: 0xff000000
#
# # urgent tab bar text color
# col.text.urgent = 0xffffffff # default: 0xff000000
#
# # inactive tab bar text color
# col.text.inactive = 0xffffffff # default: 0xff000000
# }
#
# # autotiling settings
# autotile {
# # enable autotile
# enable = false # default: false
#
# # make autotile-created groups ephemeral
# ephemeral_groups = true # default: true
#
# # if a window would be squished smaller than this width, a vertical split will be created
# # -1 = never automatically split vertically
# # 0 = always automatically split vertically
# # <number> = pixel height to split at
# trigger_width = 0 # default: 0
#
# # if a window would be squished smaller than this height, a horizontal split will be created
# # -1 = never automatically split horizontally
# # 0 = always automatically split horizontally
# # <number> = pixel height to split at
# trigger_height = 0 # default: 0
#
# # a space or comma separated list of workspace ids where autotile should be enabled
# # it's possible to create an exception rule by prefixing the definition with "not:"
# # workspaces = 1,2 # autotiling will only be enabled on workspaces 1 and 2
# # workspaces = not:1,2 # autotiling will be enabled on all workspaces except 1 and 2
# workspaces = all # default: all
# }
# }
#}
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
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 = 3
col.active_border = 0xFF8330DB 0xFF3e136c
col.inactive_border = 0xFF4D4D4D 0xFF333333
layout = dwindle
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 10
blur {
enabled = true
size = 1.5
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 = fade, 1, 7, default
animation = workspaces, 1, 4, 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
}
# unscale XWayland
xwayland {
force_zero_scaling = true
}
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrule = rounding 1,class:^(Wine)$
windowrulev2 = opacity 0.8 0.8,class:^(kitty)$
windowrulev2=float,class:^(hyprland.share.picker)$
windowrule = float,^(Steamwebhelper)$
windowrule = float, title:^(Steamwebhelper)$
windowrule = float, title:^(pop-up)
windowrule = float, class:^(xdg-desktop-portal-kde)
windowrule = float, class:^(Wine)
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, RETURN, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod SHIFT, Q, exit,
bind = $mainMod, F, fullscreen,
bind = $mainMod, SPACE, togglefloating,
bind = $mainMod, L, exec, gtklock
bind = $mainMod CTRL, B, exec, killall waybar && waybar -c /home/$USER/.config/waybar/config-hypr
bind = $mainMod, D, exec, rofi -show run
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, Print, exec, grim -g "$(slurp)" - | swappy -f - # take a screenshot
# 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
# Move focused with mainMod + arrow keys
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, 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
# vm fix
bind=CTRL,ALT_L,submap,passthrough
submap=passthrough
bindr=CTRL,Escape,submap,reset
submap=reset
# Repeat this for each scratchpad you need
# BROWSER
animation=specialWorkspace,0,0,default
# kitty
#bind = $mainMod, y, togglespecialworkspace, kitty
#bind = $mainMod SHIFT, y, movetoworkspace, special:kitty
bind = $mainMod, x, exec, hyprctl dispatch togglespecialworkspace && hyprctl dispatch togglespecialworkspace
# 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