punktdateien/gui/hypr/hyprland.conf

272 lines
9.1 KiB
Text

# JeremyStarTM's Hyprland configuration
###############################
### CONFIGURATION VARIABLES ###
###############################
# User directory
$dirHome = /home/jeremystartm/
# Settings
# -> Keyboard
$settingsKeyboardNumlock = 0
$settingsKeyboardLayout = de
$settingsKeyboardVariant =
# -> Mouse
$settingsMouseLefthanded = 0
$settingsMouseSensitivity = 0
$settingsMouseFocusFollow = 1
# -> Tablet
$settingsTabletMonitor = DP-1
$settingsTabletRegionPosition = 0 0
$settingsTabletRegionSize = 2560 1440
$settingsTabletRelative = 0
$settingsTabletRotated = 0
# -> etc
$settingsCursorSize = 24
$settingsEnableResizeOnBorder = 0
$settingsEnableTearing = 1
$settingsEnableNoDirectScanout = 1
$settingsEnableShadows = 1
$settingsEnableBlur = 1
$settingsEnableAnimations = 1
# Programs
$programsTerminal = konsole
$programsFM = dolphin
$programsBrowser = librewolf
$programsMenu = $dirHome/.local/bin/launch-menu-apps
$programsMenuKill = bemenu
$programsNotiDaemon = fnott
$programsAuthAgent = /usr/lib/polkit-kde-authentication-agent-1
$programsBar = waybar
##############################
### HYPRLAND CONFIGURATION ###
##############################
# Internal variables
# Do not modify or things might break
$dirHypr = $dirHome/.config/hypr/
$programsJobrunner = $dirHome/.local/bin/jobrunner-runjob
$programsClipboard = $dirHypr/scripts.d/clipboard.sh
# Applications
# -> Jobrunner
exec=exec env JOBRUNNER_DISABLEOUTPUT=y $dirHome/.local/bin/jobrunner
# -> Essential programs
exec=pkill -9 $programsNotiDaemon; $programsNotiDaemon
exec=pkill -9 $programsAuthAgent; $programsAuthAgent
exec=pkill -9 $programsBar; $programsBar
# -> Clipboard
exec=pkill -9 wl-paste
exec=wl-paste --type text --watch cliphist store
exec=wl-paste --type image --watch cliphist store
# -> Screen sharing
exec=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
# -> Autostart scripts
exec-once=sleep 1s;$programsJobrunner "exec $dirHypr/scripts.d/commands-startup.sh"
exec=$programsJobrunner "exec $dirHypr/scripts.d/commands-reload.sh"
# Env
# -> Cursor
env = XCURSOR_SIZE,$settingsCursorSize
env = HYPRCURSOR_THEME,Posy_Cursor
env = HYPRCURSOR_SIZE,$settingsCursorSize
# -> XDG
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland
# -> Qt
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_QPA_PLATFORMTHEME,qt6ct
# -> Enforce wayland backends
env = QT_QPA_PLATFORM,wayland;xcb
env = GTK_BACKEND,wayland,x11,*
env = SDL_VIDEODRIVER,wayland,x11
env = CLUTTER_BACKEND,wayland
env = ELECTRON_OZONE_PLATFORM_HINT=wayland
# Bindings
# -> Help
bind = SUPER, Escape, exec, $programsTerminal -e "$dirHypr/scripts.d/layout.sh"
# -> Menus
bind = SUPER, SUPER_L, exec, pkill -9 $programsMenuKill || $programsJobrunner $programsMenu
# -> Clipboard
bind = SUPER, V, exec, exec $programsJobrunner $programsClipboard
bind = SUPER_SHIFT, V, exec, cliphist wipe; hyprctl notify 5 5000 0 " Cleared clipboard"
# -> Programs
bind = SUPER, A, exec, exec $programsJobrunner $programsTerminal
bind = SUPER, S, exec, exec $programsJobrunner $programsFM
bind = SUPER, D, exec, exec $programsJobrunner $programsBrowser
# -> Window manipulation
bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow
bind = SUPER, TAB, exec, hyprctl kill
bind = SUPER, Q, exec, $dirHypr/scripts.d/kill-active.sh
bind = SUPER, W, togglefloating
bind = SUPER, F, fullscreen
# -> Special workspace
bind = SUPER, E, togglespecialworkspace, magic
bind = SUPER, Y, movetoworkspace, special:magic
bind = SUPER_SHIFT, Y, movetoworkspace, 0
# -> Session management
bindt = SUPER_SHIFT, M, exec, hyprctl notify 2 5000 0 " Reloading configuration"; $programsJobrunner hyprctl reload
bindt = SUPER_SHIFT, L, exec, cd $dirHypr;hyprlock
bindt = SUPER_SHIFT, Q, exec, hyprctl notify 2 5000 0 " Exiting Hyprland, please wait"; $programsJobrunner EXIT; sleep 1s; pkill -9 jobrunner; rm -rf /tmp/jobrunner; hyprctl dispatch exit
bindt = SUPER_SHIFT, W, exec, poweroff
bindt = SUPER_SHIFT, E, exec, reboot
# -> Media keys
# --> Audio
# ---> Output
binde = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +1%
binde = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -1%
bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
# ---> Input
binde = SHIFT, XF86AudioRaiseVolume, exec, pactl set-source-volume @DEFAULT_SOURCE@ +1%
binde = SHIFT, XF86AudioLowerVolume, exec, pactl set-source-volume @DEFAULT_SOURCE@ -1%
bind = SHIFT, XF86AudioMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
# --> Music
# ---> Playback
bind = , XF86AudioPlay, exec, playerctl play-pause
bind = , XF86AudioStop, exec, playerctl stop
# ---> Selection
bind = , XF86AudioNext, exec, playerctl next
bind = , XF86AudioPrev, exec, playerctl previous
# Window rules
# -> Supress 'maximize'
windowrulev2 = suppressevent maximize, class:.*
# -> Fix for XWaylandVideoBridge
windowrulev2 = opacity 0.0 override,class:^(xwaylandvideobridge)$
windowrulev2 = noanim,class:^(xwaylandvideobridge)$
windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$
windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$
windowrulev2 = noblur,class:^(xwaylandvideobridge)$
# Hyprland configuration
general {
border_size = 2
no_border_on_floating = false
gaps_in = 10
gaps_out = 20
gaps_workspaces = 0
col.inactive_border = 0xffd60532 0xff6931fe 0
col.active_border = 0xffffffff
col.nogroup_border = 0xff000000
col.nogroup_border_active = 0xffffffff
layout = dwindle
no_focus_fallback = true
resize_on_border = $settingsEnableResizeOnBorder
allow_tearing = $settingsEnableTearing
}
decoration {
rounding = 8
active_opacity = 1
inactive_opacity = 0.95
fullscreen_opacity = 1
drop_shadow = $settingsEnableShadows
shadow_range = 4
dim_inactive = 1
dim_strength = 0.05
dim_special = 0.5
blur {
enabled = $settingsEnableBlur
ignore_opacity = 1
xray = 1
size = 6
noise = 0.03 # increased noise value for a slightly more "rough" look
}
}
animations {
enabled = $settingsEnableAnimations
bezier=plain, 0, 0, 1, 1 # straight curve
bezier=easeInSine, 0.12, 0, 0.39, 0 # slowest ease in
bezier=easeInQuart, 0.5, 0, 0.75, 0 # slow ease in
bezier=easeInQuint, 0.64, 0, 0.78, 0 # fast ease in
bezier=easeInExpo, 0.7, 0, 0.84, 0 # fastest ease in
bezier=easeOutSine, 0.61, 1, 0.88, 1 # slowest ease out
bezier=easeOutQuart, 0.25, 1, 0.5, 1 # slow ease out
bezier=easeOutQuint, 0.22, 1, 0.36, 1 # fast ease out
bezier=easeOutExpo, 0.16, 1, 0.3, 1 # fastest ease out
animation=windowsIn, 1, 4, easeOutSine # window open animation
animation=windowsOut, 1, 5, easeInSine # window close animation
#animation=windowsMove, 1, 6, easeOutExpo # window move/drag/resize animation
animation=fadeIn, 1, 4, easeOutSine # window open fade animation
animation=fadeOut, 1, 4, easeOutSine # window close fade animation
animation=fadeSwitch, 1, 10, easeOutQuart # focus switch opacity fade animation
animation=fadeShadow, 1, 10, easeOutQuart # focus switch shadow fade animation
animation=fadeDim, 1, 10, easeOutQuart # focus switch dim fade animation
animation=border, 1, 2, easeOutExpo # focus switch border animation
animation=borderangle, 1, 100, plain, loop # border color switch animation
#animation=workspaces, 1, 10, easeInQuart, slidefade # workspace switch animation
#animation=specialWorkspace, 1, 10, easeInQuart, slidefade # special workspace toggle animation
}
input {
kb_layout = $settingsKeyboardLayout
kb_variant = $settingsKeyboardVariant
follow_mouse = $settingsMouseFocusFollow
numlock_by_default = $settingsKeyboardNumlock
left_handed = $settingsMouseLefthanded
sensitivity = $settingsMouseSensitivity
touchpad {
disable_while_typing = false
}
tablet {
output = $settingsTabletMonitor
region_position = $settingsTabletRegionPosition
region_size = $settingsTabletRegionSize
relative_input = $settingsTabletRelative
left_handed = $settingsTabletRotated
}
}
gestures {
workspace_swipe = 0
}
misc {
disable_hyprland_logo = 0
disable_splash_rendering = 0
force_default_wallpaper = 2
font_family = Fira Code
splash_font_family = Jost
vrr = 0
animate_manual_resizes = 1
animate_mouse_windowdragging = 1
disable_autoreload = 1
focus_on_activate = 0
no_direct_scanout = $settingsEnableNoDirectScanout
}
# Issue (re)load success message
exec=hyprctl notify 5 5000 0 " Configuration loaded successfully"
# Include external configuration files
source=hyprland.conf.d/*.conf