315 lines
8.5 KiB
Text
315 lines
8.5 KiB
Text
################
|
|
### MONITORS ###
|
|
################
|
|
|
|
monitor=DP-2,3840x2160@160,0x0,1.5
|
|
|
|
xwayland {
|
|
force_zero_scaling = true
|
|
}
|
|
|
|
###################
|
|
### MY PROGRAMS ###
|
|
###################
|
|
|
|
$terminal = uwsm app -- kitty
|
|
$browser = uwsm app -- zen-browser
|
|
$hyprlock = uwsm app -- hyprlock
|
|
$hyprshot = uwsm app -- hyprshot
|
|
$menu = uwsm app -- fuzzel
|
|
|
|
#################
|
|
### AUTOSTART ###
|
|
#################
|
|
|
|
exec-once = uwsm app -- udiskie
|
|
exec-once = uwsm app -- waybar
|
|
exec-once = uwsm app -- dunst
|
|
exec-once = uwsm app -- wl-paste --watch cliphist store
|
|
exec-once = uwsm app -- hypridle
|
|
exec-once = uwsm app -- hyprpaper
|
|
exec-once = uwsm app -- hyprsunset
|
|
exec-once = [workspace 1] $terminal
|
|
exec-once = [workspace 2 silent] $browser
|
|
|
|
#############################
|
|
### ENVIRONMENT VARIABLES ###
|
|
#############################
|
|
|
|
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
|
|
|
# Environment variables stored in ~/.config/uwsm/env and ~/.config/uwsm/env-hyprland
|
|
|
|
#####################
|
|
### LOOK AND FEEL ###
|
|
#####################
|
|
|
|
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
|
|
|
# https://wiki.hyprland.org/Configuring/Variables/#general
|
|
general {
|
|
gaps_in = 0
|
|
gaps_out = 0
|
|
|
|
border_size = 1
|
|
|
|
col.active_border = rgba(00dd00ff) rgba(006600ff) 90deg
|
|
col.inactive_border = rgba(646464ff)
|
|
|
|
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
|
allow_tearing = true
|
|
|
|
layout = dwindle
|
|
|
|
snap {
|
|
enabled = true
|
|
window_gap = 4
|
|
monitor_gap = 6
|
|
respect_gaps = true
|
|
}
|
|
}
|
|
|
|
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
|
decoration {
|
|
rounding = 0
|
|
|
|
active_opacity = 1.0
|
|
inactive_opacity = 1.0
|
|
|
|
shadow {
|
|
enabled = false
|
|
range = 4
|
|
render_power = 3
|
|
color = rgba(151515ee)
|
|
}
|
|
|
|
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
|
blur {
|
|
enabled = false
|
|
size = 3
|
|
passes = 1
|
|
|
|
vibrancy = 0.1696
|
|
}
|
|
}
|
|
|
|
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
|
animations {
|
|
enabled = yes
|
|
|
|
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
|
|
|
bezier = easeOutQuint,0.23,1,0.32,1
|
|
bezier = easeInOutCubic,0.65,0.05,0.36,1
|
|
bezier = linear,0,0,1,1
|
|
bezier = almostLinear,0.5,0.5,0.75,1.0
|
|
bezier = quick,0.15,0,0.1,1
|
|
|
|
animation = windows, 1, 1, quick
|
|
animation = windowsOut, 1, 0.5, linear, slide
|
|
animation = layers, 1, 1, quick
|
|
animation = fade, 0, 2, linear
|
|
animation = fadeDpms, 1, 4, linear
|
|
animation = fadeLayersOut, 0, 1, almostLinear
|
|
animation = workspacesIn, 1, 0.5, quick
|
|
animation = workspacesOut, 1, 0.7, quick
|
|
}
|
|
|
|
# Smart gaps: https://wiki.hyprland.org/Configuring/Workspace-Rules/#smart-gaps
|
|
|
|
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
|
dwindle {
|
|
preserve_split = true
|
|
}
|
|
|
|
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
|
misc {
|
|
disable_hyprland_logo = true
|
|
vfr = true
|
|
vrr = 2
|
|
enable_swallow = true
|
|
swallow_regex = ^(kitty)$
|
|
swallow_exception_regex = ^(xev|wev|vkcube|glxgears|kitty).*
|
|
allow_session_lock_restore = 1
|
|
on_focus_under_fullscreen = 1
|
|
}
|
|
|
|
ecosystem {
|
|
enforce_permissions = true
|
|
}
|
|
|
|
permission = /usr/bin/grim, screencopy, allow
|
|
permission = /usr/(lib|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
|
|
|
|
#############
|
|
### INPUT ###
|
|
#############
|
|
|
|
# https://wiki.hyprland.org/Configuring/Variables/#input
|
|
input {
|
|
kb_layout = ee
|
|
kb_variant =
|
|
kb_model =
|
|
kb_options = fkeys:basic_13-24
|
|
kb_rules =
|
|
|
|
follow_mouse = 1
|
|
|
|
sensitivity = -0.05 # -1.0 - 1.0, 0 means no modification.
|
|
|
|
touchpad {
|
|
natural_scroll = true
|
|
scroll_factor = 0.6
|
|
disable_while_typing = false
|
|
}
|
|
}
|
|
|
|
device {
|
|
name = falbatech-redox
|
|
kb_layout = us
|
|
kb_options = fkeys:basic_13-24
|
|
}
|
|
|
|
device {
|
|
name = falbatech-redox-mouse
|
|
sensitivity = -0.5
|
|
accel_profile = flat
|
|
}
|
|
|
|
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
|
gestures {
|
|
gesture = 3, horizontal, workspace
|
|
gesture = 3, up, mod: SUPER, fullscreen
|
|
}
|
|
|
|
###################
|
|
### KEYBINDINGS ###
|
|
###################
|
|
|
|
# See https://wiki.hyprland.org/Configuring/Keywords/
|
|
$mainMod = SUPER
|
|
|
|
bind = $mainMod, RETURN, exec, $terminal
|
|
bind = $mainMod, Q, exec, $browser
|
|
bind = $mainMod, W, killactive,
|
|
bind = $mainMod CTRL SHIFT, Q, exit,
|
|
bind = $mainMod, C, togglefloating,
|
|
bind = $mainMod, SPACE, exec, $menu
|
|
bind = $mainMod SHIFT, J, togglesplit, # dwindle
|
|
bind = $mainMod, F, fullscreen, 1
|
|
bind = $mainMod SHIFT, F, fullscreen, 0
|
|
# Hyprlock
|
|
bind = $mainMod SHIFT, L, exec, $hyprlock
|
|
# Cliphist
|
|
bind = $mainMod, V, exec, cliphist list | fuzzel -d -w 75 --select-index 1 | cliphist decode | wl-copy
|
|
# Hyprshot
|
|
bind = $mainMod SHIFT, S, exec, $hyprshot -m region --clipboard-only
|
|
bind = $mainMod SHIFT CTRL, S, exec, $hyprshot -m window --clipboard-only
|
|
bind = $mainMod SHIFT ALT, S, exec, $hyprshot -m output --clipboard-only
|
|
bind = $mainMod SHIFT, B, exec, bluetoothctl -- connect "$(bluetoothctl -- devices Paired | cut -f2- -d ' ' | fuzzel -d -l 8 | cut -f1 -d ' ')"
|
|
bind = $mainMod SHIFT, A, exec, ~/scripts/select-audio-sink.sh
|
|
|
|
# Move focus
|
|
bind = $mainMod, H, movefocus, l
|
|
bind = $mainMod, L, movefocus, r
|
|
bind = $mainMod, K, movefocus, u
|
|
bind = $mainMod, J, movefocus, d
|
|
|
|
bind = $mainMod, period, layoutmsg, move +col
|
|
bind = $mainMod, comma, layoutmsg, move -col
|
|
|
|
# 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
|
|
|
|
# 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
|
|
|
|
bind = $mainMod SHIFT CTRL, TAB, movecurrentworkspacetomonitor, +1
|
|
|
|
# Move/resize windows
|
|
bindm = $mainMod, mouse:272, movewindow
|
|
bindm = $mainMod, mouse:273, resizewindow
|
|
|
|
# Laptop multimedia keys for volume and LCD brightness
|
|
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ && ~/scripts/volume-control.sh
|
|
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- && ~/scripts/volume-control.sh
|
|
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && ~/scripts/volume-control.sh
|
|
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
|
|
|
|
# Laptop lid
|
|
bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "HDMI-A-1, 1920x1080@120, 0x0, 1"
|
|
bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable"
|
|
bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, 1920x1080@60, 0x0, 1.25"
|
|
bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "HDMI-A-1, disable"
|
|
|
|
##############################
|
|
### WINDOWS AND WORKSPACES ###
|
|
##############################
|
|
|
|
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
|
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
|
|
|
# No border when only 1 window or window is fullscreen
|
|
windowrule = match:workspace w[1], match:class negative:^(steam)$, match:title negative:Steam, border_size 0
|
|
windowrule = match:workspace f[1-2], border_size 0
|
|
|
|
windowrule {
|
|
name = pavucontrol-float
|
|
match:class = ^(org.pulseaudio.pavucontrol)$
|
|
match:title = ^(Volume Control)$
|
|
|
|
float = 1
|
|
center = 1
|
|
size = (0.35*monitor_w) (0.4*monitor_h)
|
|
}
|
|
|
|
windowrule {
|
|
name = showmethekey-float
|
|
match:class = ^(showmethekey-gtk)$
|
|
|
|
float = 1
|
|
border_size = 0
|
|
}
|
|
|
|
windowrule {
|
|
name = steam-popup-float
|
|
match:class = ^(steam)$
|
|
match:title = negative:Steam
|
|
|
|
float = 1
|
|
}
|
|
|
|
windowrule {
|
|
name = gaming
|
|
match:class = ^(steam_app_\d+|cs2)$
|
|
|
|
workspace = 10
|
|
immediate = 1
|
|
fullscreen = 1
|
|
}
|