2024-06-02 17:16:50 +02:00
|
|
|
# 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
|
2024-06-03 22:43:07 +02:00
|
|
|
$programsMenu = $dirHome/.local/bin/launch-menu-apps
|
2024-06-03 10:30:16 +02:00
|
|
|
$programsMenuKill = bemenu
|
2024-06-02 17:16:50 +02:00
|
|
|
$programsNotiDaemon = fnott
|
|
|
|
$programsAuthAgent = /usr/lib/polkit-kde-authentication-agent-1
|
|
|
|
$programsBar = waybar
|
|
|
|
|
2024-06-04 12:41:04 +02:00
|
|
|
|
|
|
|
##############################
|
|
|
|
### HYPRLAND CONFIGURATION ###
|
|
|
|
##############################
|
|
|
|
|
|
|
|
# Internal variables
|
|
|
|
# Do not modify or things might break
|
2024-06-03 19:56:05 +02:00
|
|
|
$dirHypr = $dirHome/.config/hypr/
|
|
|
|
$programsJobrunner = $dirHome/.local/bin/jobrunner-runjob
|
2024-06-04 00:43:27 +02:00
|
|
|
$programsClipboard = $dirHypr/scripts.d/clipboard.sh
|
2024-06-03 19:56:05 +02:00
|
|
|
|
2024-06-04 12:41:04 +02:00
|
|
|
# Applications
|
2024-06-03 10:30:16 +02:00
|
|
|
# -> Jobrunner
|
|
|
|
exec=exec env JOBRUNNER_DISABLEOUTPUT=y $dirHome/.local/bin/jobrunner
|
2024-06-04 12:41:04 +02:00
|
|
|
# -> Essential programs
|
2024-06-02 17:16:50 +02:00
|
|
|
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
|
2024-06-04 12:41:04 +02:00
|
|
|
# -> Autostart scripts
|
2024-06-03 21:54:59 +02:00
|
|
|
exec-once=sleep 1s;$programsJobrunner "exec $dirHypr/scripts.d/commands-startup.sh"
|
2024-06-03 19:56:05 +02:00
|
|
|
exec=$programsJobrunner "exec $dirHypr/scripts.d/commands-reload.sh"
|
2024-06-02 17:16:50 +02:00
|
|
|
|
|
|
|
# Env
|
|
|
|
# -> Cursor
|
|
|
|
env = XCURSOR_SIZE,$settingsCursorSize
|
2024-06-03 19:56:05 +02:00
|
|
|
env = HYPRCURSOR_THEME,Posy_Cursor
|
2024-06-02 17:16:50 +02:00
|
|
|
env = HYPRCURSOR_SIZE,$settingsCursorSize
|
|
|
|
# -> XDG
|
2024-04-21 10:14:02 +02:00
|
|
|
env = XDG_CURRENT_DESKTOP,Hyprland
|
|
|
|
env = XDG_SESSION_TYPE,wayland
|
2024-06-02 17:16:50 +02:00
|
|
|
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,*
|
2024-04-21 10:14:02 +02:00
|
|
|
env = SDL_VIDEODRIVER,wayland,x11
|
|
|
|
env = CLUTTER_BACKEND,wayland
|
2024-06-02 17:16:50 +02:00
|
|
|
env = ELECTRON_OZONE_PLATFORM_HINT=wayland
|
|
|
|
|
2024-06-04 12:41:04 +02:00
|
|
|
# Bindings
|
2024-06-04 12:58:19 +02:00
|
|
|
# -> Help
|
|
|
|
bind = SUPER, Escape, exec, $programsTerminal -e "$dirHypr/scripts.d/layout.sh"
|
|
|
|
|
2024-06-04 12:41:04 +02:00
|
|
|
# -> Menus
|
2024-06-03 19:56:05 +02:00
|
|
|
bind = SUPER, SUPER_L, exec, pkill -9 $programsMenuKill || $programsJobrunner $programsMenu
|
2024-06-04 12:57:45 +02:00
|
|
|
|
|
|
|
# -> Clipboard
|
2024-06-04 00:40:24 +02:00
|
|
|
bind = SUPER, V, exec, exec $programsJobrunner $programsClipboard
|
2024-06-04 12:40:55 +02:00
|
|
|
bind = SUPER_SHIFT, V, exec, cliphist wipe; hyprctl notify 5 5000 0 " Cleared clipboard"
|
2024-06-04 00:43:27 +02:00
|
|
|
|
2024-06-04 12:41:04 +02:00
|
|
|
# -> Programs
|
2024-06-03 19:56:05 +02:00
|
|
|
bind = SUPER, A, exec, exec $programsJobrunner $programsTerminal
|
|
|
|
bind = SUPER, S, exec, exec $programsJobrunner $programsFM
|
|
|
|
bind = SUPER, D, exec, exec $programsJobrunner $programsBrowser
|
2024-06-02 17:16:50 +02:00
|
|
|
|
2024-06-04 12:57:45 +02:00
|
|
|
# -> Window manipulation
|
2024-06-03 20:00:42 +02:00
|
|
|
bindm = SUPER, mouse:272, movewindow
|
2024-06-02 17:16:50 +02:00
|
|
|
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
|
|
|
|
|
2024-06-04 12:41:04 +02:00
|
|
|
# -> Special workspace
|
2024-06-02 17:16:50 +02:00
|
|
|
bind = SUPER, E, togglespecialworkspace, magic
|
|
|
|
bind = SUPER, Y, movetoworkspace, special:magic
|
|
|
|
bind = SUPER_SHIFT, Y, movetoworkspace, 0
|
|
|
|
|
2024-06-04 12:41:04 +02:00
|
|
|
# -> Session management
|
2024-06-04 12:40:55 +02:00
|
|
|
bindt = SUPER_SHIFT, M, exec, hyprctl notify 2 5000 0 " Reloading configuration"; $programsJobrunner hyprctl reload
|
2024-06-03 20:00:42 +02:00
|
|
|
bindt = SUPER_SHIFT, L, exec, cd $dirHypr;hyprlock
|
2024-06-04 12:40:55 +02:00
|
|
|
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
|
2024-06-02 17:16:50 +02:00
|
|
|
bindt = SUPER_SHIFT, W, exec, poweroff
|
|
|
|
bindt = SUPER_SHIFT, E, exec, reboot
|
|
|
|
|
|
|
|
# -> Media keys
|
2024-06-02 23:01:21 +02:00
|
|
|
# --> Audio
|
|
|
|
# ---> Output
|
2024-06-02 17:16:50 +02:00
|
|
|
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
|
2024-06-02 23:01:21 +02:00
|
|
|
# ---> Input
|
|
|
|
binde = SHIFT, XF86AudioRaiseVolume, exec, pactl set-source-volume @DEFAULT_SOURCE@ +1%
|
|
|
|
binde = SHIFT, XF86AudioLowerVolume, exec, pactl set-source-volume @DEFAULT_SOURCE@ -1%
|
2024-06-02 17:16:50 +02:00
|
|
|
bind = SHIFT, XF86AudioMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
2024-06-02 23:01:21 +02:00
|
|
|
# --> Music
|
|
|
|
# ---> Playback
|
|
|
|
bind = , XF86AudioPlay, exec, playerctl play-pause
|
|
|
|
bind = , XF86AudioStop, exec, playerctl stop
|
|
|
|
# ---> Selection
|
|
|
|
bind = , XF86AudioNext, exec, playerctl next
|
|
|
|
bind = , XF86AudioPrev, exec, playerctl previous
|
2024-06-02 17:16:50 +02:00
|
|
|
|
2024-06-04 12:41:04 +02:00
|
|
|
# Window rules
|
|
|
|
# -> Supress 'maximize'
|
2024-06-02 17:16:50 +02:00
|
|
|
windowrulev2 = suppressevent maximize, class:.*
|
|
|
|
|
2024-06-04 12:41:04 +02:00
|
|
|
# -> Fix for XWaylandVideoBridge
|
2024-06-02 17:16:50 +02:00
|
|
|
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)$
|
|
|
|
|
2024-06-04 12:41:04 +02:00
|
|
|
# Hyprland configuration
|
2024-04-21 10:14:02 +02:00
|
|
|
general {
|
2024-06-02 17:16:50 +02:00
|
|
|
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
|
2023-12-08 17:33:11 +01:00
|
|
|
}
|
2024-04-21 10:14:02 +02:00
|
|
|
|
2023-12-08 17:33:11 +01:00
|
|
|
decoration {
|
2024-06-02 17:16:50 +02:00
|
|
|
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
|
|
|
|
|
2024-06-03 19:56:05 +02:00
|
|
|
size = 6
|
2024-06-02 17:16:50 +02:00
|
|
|
noise = 0.03 # increased noise value for a slightly more "rough" look
|
|
|
|
}
|
2023-12-08 17:33:11 +01:00
|
|
|
}
|
2024-04-21 10:14:02 +02:00
|
|
|
|
2023-12-08 17:33:11 +01:00
|
|
|
animations {
|
2024-06-02 17:16:50 +02:00
|
|
|
enabled = $settingsEnableAnimations
|
2024-06-03 10:01:36 +02:00
|
|
|
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
|
2024-04-21 10:14:02 +02:00
|
|
|
}
|
2023-12-08 17:33:11 +01:00
|
|
|
|
2024-06-02 17:16:50 +02:00
|
|
|
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
|
|
|
|
}
|
2024-04-21 10:14:02 +02:00
|
|
|
}
|
2023-12-08 17:33:11 +01:00
|
|
|
|
2024-04-21 10:14:02 +02:00
|
|
|
gestures {
|
2024-06-02 17:16:50 +02:00
|
|
|
workspace_swipe = 0
|
2024-04-21 10:14:02 +02:00
|
|
|
}
|
2023-12-08 17:33:11 +01:00
|
|
|
|
2024-04-21 10:14:02 +02:00
|
|
|
misc {
|
2024-06-02 17:16:50 +02:00
|
|
|
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
|
2024-06-03 18:18:37 +02:00
|
|
|
disable_autoreload = 1
|
2024-06-02 17:16:50 +02:00
|
|
|
focus_on_activate = 0
|
|
|
|
no_direct_scanout = $settingsEnableNoDirectScanout
|
2024-04-21 10:14:02 +02:00
|
|
|
}
|
2023-12-08 17:33:11 +01:00
|
|
|
|
2024-06-04 12:41:04 +02:00
|
|
|
# Issue (re)load success message
|
2024-06-03 20:01:34 +02:00
|
|
|
exec=hyprctl notify 5 5000 0 " Configuration loaded successfully"
|
2024-06-02 20:45:04 +02:00
|
|
|
|
2024-06-04 12:41:04 +02:00
|
|
|
# Include external configuration files
|
2024-06-02 20:44:50 +02:00
|
|
|
source=hyprland.conf.d/*.conf
|