.dotfiles/hypr/.config/hypr/hyprland.conf

281 lines
6.2 KiB
Plaintext

# vim:ft=hyprlang:foldmethod=marker:shiftwidth=2
#: Monitors {{{
monitor=,preferred,auto,auto
#: }}}
#: Programs {{{
$terminal = kitty
$fileManager = kitty -e yazi
$menu = rofi -show drun
$browser = zen-browser
#: }}}
#: Autostart {{{
exec-once = hyprpaper & mako & waybar & kdeconnect-indicator
exec-once = wl-paste --watch cliphist store
exec-once = $browser
#: }}}
#: Environment variables {{{
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
#: }}}
#: Look and feel {{{
# Colors
source=rose-pine.conf
general {
gaps_in = 5
gaps_out = 12
border_size = 2
col.active_border = $rose $pine $love $iris 90deg
col.inactive_border = $muted
resize_on_border = true
allow_tearing = false
layout = master
}
decoration {
rounding = 20
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 15
render_power = 10
color = rgba(1a1a1aee)
}
blur {
enabled = true
size = 4
passes = 3
vibrancy = 0.1696
xray = true
# popups = true
}
dim_special = 0.3
}
animations {
enabled = true
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
bezier = linear, 0.0, 0.0, 1.0, 1.0
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
#animation = border, 1, 10, default
animation = borderangle, 1, 100, linear, loop
#animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
animation = layers, 1, 3, default, slide
}
layerrule = animation slide top, rofi
master {
new_status = master
new_on_top = true
}
dwindle {
pseudotile = true # Master switch for pseudotiling
preserve_split = true # You probably want this
default_split_ratio = 1.1
force_split = 2
}
misc {
font_family = $font
animate_manual_resizes = true
# Disable anime girls
force_default_wallpaper = -1
disable_hyprland_logo = true
}
#: }}}
#: Input {{{
input {
kb_layout = pl
kb_variant =
kb_model = chromebook
kb_options =
kb_rules =
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = true
}
}
gestures {
workspace_swipe = true
}
# Can't specify multiple or wildcard...
device {
name = sino-wealth-gaming-kb--mouse
kb_model =
}
device {
name = sino-wealth-gaming-kb--consumer-control-1
kb_model =
}
device {
name = sino-wealth-gaming-kb--system-control
kb_model =
}
device {
name = sino-wealth-gaming-kb-
kb_model =
}
device {
name = sino-wealth-gaming-kb--consumer-control
kb_model =
}
device {
name = sino-wealth-gaming-kb--keyboard
kb_model =
}
#: }}}
#: Bindings {{{
$mainMod = SUPER
bind = $mainMod, Q, killactive
bind = $mainMod, F, togglefloating
bind = $mainMod, RETURN, layoutmsg, swapwithmaster master
# Tasks
bind = $mainMod, P, exec, $HOME/.local/bin/scripts/powermenu
bind = $mainMod SHIFT, S, exec, $HOME/.local/bin/scripts/screenshot
# Apps
bind = $mainMod, T, exec, $terminal
bind = $mainMod, R, exec, $menu
bind = $mainMod, B, exec, $browser
bind = $mainMod, E, exec, $fileManager
# Move focus
bind = $mainMod, H, movefocus, l
bind = $mainMod, J, movefocus, d
bind = $mainMod, K, movefocus, u
bind = $mainMod, L, movefocus, r
# Move/resize windows with mouse
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Resize active window
bind = $mainMod ALT, H, resizeactive, -15 0
bind = $mainMod ALT, J, resizeactive, 0 15
bind = $mainMod ALT, K, resizeactive, 0 -15
bind = $mainMod ALT, L, resizeactive, 15 0
# Switch workspaces
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
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move active window to a workspace
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
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod ALT, S, movetoworkspace, special:magic
# Multimedia keys
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
#: }}}
#: Rules {{{
# Force opacity
windowrule = opacity 0.89, ^(kitty)$
# Force blur
layerrule = blur, rofi # rofi
layerrule = ignorezero, rofi
layerrule = blur, waybar # waybar
layerrule = ignorezero, waybar
layerrule = blur, notifications # mako
layerrule = ignorezero, notifications
# Float
windowrule = float, ^(com.saivert.pwvucontrol)$
windowrule = float, title:^(Tidal Hi-Fi )(.*)$
# Tile
windowrule = tile, ^(ableton live 12 suite.exe)$
# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
# Scratchpad
workspace = special:magic, gapsout:100, on-created-empty:kitty
# Force workspace
windowrule = workspace 1, ^(kitty)$
windowrule = workspace 2 silent, ^(zen-beta)$
#: }}}