From 0ba43bfb80013e4534c3dc5c73de172474bc6592 Mon Sep 17 00:00:00 2001 From: Nikolai Papin Date: Thu, 1 Jan 2026 20:18:52 +0300 Subject: [PATCH] chore: groomed up hyprland main conf, removed wiki-related comments and commented out params since it's hard to guess what's not obsolete at this point --- hypr/hyprland.conf | 271 +++++++++++++++------------------------------ 1 file changed, 91 insertions(+), 180 deletions(-) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 1e789c0..e0a96a6 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -2,17 +2,12 @@ ### MONITORS ### ################ -# See https://wiki.hyprland.org/Configuring/Monitors/ -# monitor=eDP-1, 1920x1080, 0x0, 1 -# monitor=HDMI-A-1, 1920x1080, -1920x-100, 1 +source = ~/.config/hypr/monitors.conf ################### ### MY PROGRAMS ### ################### -# See https://wiki.hyprland.org/Configuring/Keywords/ - -# Set programs that you use $terminal = kitty $fastTerminal = kitty --single-instance $fileManager = thunar @@ -56,55 +51,27 @@ exec-shutdown = play -v 0.7 $HOME/Templates/Sounds/teleport.mp3 ### ENVIRONMENT VARIABLES ### ############################# -# See https://wiki.hyprland.org/Configuring/Environment-variables/ - env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 -# env = QT_QPA_PLATFORMTHEME,qt6ct ################### ### PERMISSIONS ### ################### -# See https://wiki.hyprland.org/Configuring/Permissions/ -# Please note permission changes here require a Hyprland restart and are not applied on-the-fly -# for security reasons - -# ecosystem { -# enforce_permissions = 1 -# } - -# permission = /usr/(bin|local/bin)/grim, screencopy, allow -# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow -# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow - - ##################### ### LOOK AND FEEL ### ##################### -# Refer to https://wiki.hyprland.org/Configuring/Variables/ - -# https://wiki.hyprland.org/Configuring/Variables/#general general { gaps_in = 15 gaps_out = 25 - border_size = 1 - - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgba(E96375ff) rgba(9E2238ff) 45deg col.inactive_border = rgba(4B535Bff) # rgba(595959aa) - - # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = true hover_icon_on_border = true - - # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = true # false - layout = dwindle - no_focus_fallback = true snap { @@ -112,13 +79,10 @@ general { } } -# https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { rounding = 15 rounding_power = 2 border_part_of_window = 0 - - # Change transparency of focused and unfocused windows active_opacity = 1.0 inactive_opacity = 1.0 @@ -129,7 +93,6 @@ decoration { color = rgba(1a1a1aee) } - # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = true size = 1 @@ -146,10 +109,8 @@ decoration { group { col.border_active = rgba(E96375ff) rgba(EB75FFff) 45deg col.border_inactive = rgba(F9730032) rgba(FB850032) 45deg - # col.border_locked_active = rgba(E96375ff) rgba(EB75FFff) 45deg - # col.border_locked_inactive = rgba(E96375ff) rgba(EB75FFff) 45deg + groupbar { - # font_size = 12 text_color = rgba(ffffff00) render_titles = false indicator_height = 10 @@ -165,11 +126,8 @@ group { source = ~/.config/hypr/grayscale.conf -# https://wiki.hyprland.org/Configuring/Variables/#animations animations { - enabled = yes, please :) - - # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + enabled = true bezier = easeOutQuint,0.23,1,0.32,1 bezier = easeInOutCubic,0.65,0.05,0.36,1 @@ -198,11 +156,6 @@ animations { animation = layers, 1, 7, default, slide } -# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ -# "Smart gaps" / "No gaps when only" -# uncomment all if you wish to use that. -# workspace = w[tv1], gapsout:0, gapsin:0 -# workspace = f[1], gapsout:0, gapsin:0 workspace = 1, monitor:eDP-1 workspace = 2, monitor:eDP-1 workspace = 3, monitor:eDP-1 @@ -220,14 +173,6 @@ workspace = 14, monitor:HDMI-A-1 workspace = 13, on-created-empty:hyprctl dispatch workspace 1 workspace = 14, on-created-empty:hyprctl dispatch workspace 10 -# workspace = 14, on-created-empty: - -# windowrule = bordersize 0, floating:0, onworkspace:w[tv1] -# windowrule = rounding 0, floating:0, onworkspace:w[tv1] -# windowrule = bordersize 0, floating:0, onworkspace:f[1] -# windowrule = rounding 0, floating:0, onworkspace:f[1] - -# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more dwindle { pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # You probably want this @@ -235,7 +180,6 @@ dwindle { force_split = 2 } -# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more master { new_status = master } @@ -244,7 +188,6 @@ render { direct_scanout = 1 } -# https://wiki.hyprland.org/Configuring/Variables/#misc misc { force_default_wallpaper = 1 disable_hyprland_logo = true @@ -263,9 +206,6 @@ misc { ############## cursor { - # inactive_timeout = 10 - # no_warps = 1 - # persistent_warps = 1 warp_on_change_workspace = 1 } @@ -273,23 +213,16 @@ cursor { ### INPUT ### ############# -# https://wiki.hyprland.org/Configuring/Variables/#input input { kb_layout= us,ru kb_options= grp:caps_toggle,grp_led:caps - # kb_variant = ,qwerty - # kb_model = - # kb_rules = repeat_rate = 25 repeat_delay = 200 follow_mouse = 2 float_switch_override_focus = 0 - # touchpad / canyon - # sensitivity = 0.2 # -1.0 - 1.0, 0 means no modification. - # ardor - sensitivity = 0.025 # -1.0 - 1.0, 0 means no modification. + sensitivity = 0.025 touchpad { natural_scroll = true @@ -298,7 +231,6 @@ input { } } -# https://wiki.hyprland.org/Configuring/Variables/#gestures gestures { # Workspaces gesture = 4, horizontal, scale: 2, workspace @@ -315,8 +247,6 @@ gestures { gesture = 4, down, dispatcher, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 10%- } -# Example per-device config -# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more device { name = gxtp7863:00-27c6:01e0-touchpad sensitivity = 0.5 @@ -326,11 +256,12 @@ device { ### KEYBINDINGS ### ################### -# See https://wiki.hyprland.org/Configuring/Keywords/ -$mainMod = SUPER # Sets "Windows" key as main modifier +$mainMod = SUPER -# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +# Exit hyprland bind = $mainMod ALT, Q, exit, + +# Shutdown bind = $mainMod SHIFT, delete, exec, shutdown now # Menu dropdown @@ -392,7 +323,7 @@ bind = $mainMod, l, movefocus, r bind = $mainMod, k, movefocus, u bind = $mainMod, j, movefocus, d -# Switch workspaces with mainMod + [0-9] +# Switch workspaces with mainMod + [0,1,2,3,4,5,6,7,8,9,0,-,=] bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 @@ -439,7 +370,6 @@ bind = $mainMod SHIFT, grave, movetoworkspace, special:dungeon # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow -#bindm = SUPER, Shift_L, swapwindow bindm = $mainMod, mouse:273, resizewindow bindm = SUPER, ALT_L, resizewindow @@ -506,7 +436,6 @@ bind = $mainMod CTRL ALT, Right, movewindoworgroup, r # Laptop multimedia keys for volume and LCD brightness bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- -# bindl = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bindl = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle bindl = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+ @@ -571,13 +500,13 @@ bindr = , F8, sendshortcut, CTRL SHIFT, F8, class:^(vesktop)$ # Telegram PTT binde = $mainMod CTRL, F9, tagwindow, voicechatuz bindr = , F9, sendshortcut, , F9, class:com.ayugram.desktop + windowrule { name = windowrule-1 border_color = rgba(ffff00ff) rgba(ffff0055) match:tag = voicechatuz } - # Zen - focus searchbar bindrn = CTRL, Space, sendshortcut, , F6, class:^(zen)$ @@ -595,7 +524,6 @@ submap = clean bind = $mainMod, Escape, submap, reset submap = reset - # Easymove submap bind = $mainMod SHIFT, Space, submap, ezmv submap = ezmv @@ -611,7 +539,6 @@ bind = $mainMod, Tab, submap, reset bind = $mainMod, Escape, submap, reset submap = reset - # Activate MPD submap with $mainMod + U bind = $mainMod, U, submap, mpd @@ -705,7 +632,6 @@ windowrule { match:class = ^(Element)$ } - # Steam windowrule { name = windowrule-9 @@ -714,7 +640,6 @@ windowrule { match:class = ^(steam)$ } - # Screensharing protection source = ~/.config/hypr/privacy.conf windowrule { @@ -732,7 +657,6 @@ windowrule { match:tag = privacyexpose } - # com.saivert.pwvucontrol windowrule { name = windowrule-12 @@ -742,7 +666,6 @@ windowrule { match:class = ^(com.saivert.pwvucontrol)$ } - # Frozen windows windowrule { name = windowrule-13 @@ -750,7 +673,6 @@ windowrule { match:tag = zawarudo } - # Marked windows windowrule { name = windowrule-14 @@ -758,7 +680,6 @@ windowrule { match:tag = marked } - # Ignore maximize requests from apps. You'll probably like this. windowrule { name = windowrule-15 @@ -766,7 +687,6 @@ windowrule { match:class = .* } - # Fix some dragging issues with XWayland windowrule { name = windowrule-16 @@ -779,7 +699,6 @@ windowrule { match:pin = 0 } - # rofi layerrule { name = layerrule-1 @@ -790,7 +709,6 @@ layerrule { match:namespace = rofi } - # swaync layerrule { name = layerrule-2 @@ -810,7 +728,6 @@ layerrule { match:namespace = swaync-notification-window } - # waybar layerrule { name = layerrule-4 @@ -820,7 +737,6 @@ layerrule { match:namespace = waybar } - # Adjustments for certain workspaces workspace = special:magic, gapsin:20, gapsout:50, shadow:false workspace = 9, gapsin:15, gapsout:40 @@ -865,47 +781,44 @@ plugin { on_double_click = -windowrule { - name = windowrule-17 - match:plugin = hyprbars:bar_color rgb(261B1E) - match:class = ^(com.ayugram.desktop) -} + windowrule { + name = windowrule-17 + match:plugin = hyprbars:bar_color rgb(261B1E) + match:class = ^(com.ayugram.desktop) + } -windowrule { - name = windowrule-18 - match:plugin = hyprbars:bar_color rgb(121214) - match:class = ^(vesktop) -} + windowrule { + name = windowrule-18 + match:plugin = hyprbars:bar_color rgb(121214) + match:class = ^(vesktop) + } -windowrule { - name = windowrule-19 - match:plugin = hyprbars:bar_color rgb(131313) - match:class = ^(zen) -} + windowrule { + name = windowrule-19 + match:plugin = hyprbars:bar_color rgb(131313) + match:class = ^(zen) + } -windowrule { - name = windowrule-20 - match:plugin = hyprbars:bar_color rgb(F1F3F4) - match:class = ^(draw.io) -} + windowrule { + name = windowrule-20 + match:plugin = hyprbars:bar_color rgb(F1F3F4) + match:class = ^(draw.io) + } -windowrule { - name = windowrule-21 - match:plugin = hyprbars:bar_color rgb(1C1C1C) - match:class = ^(thunar) -} + windowrule { + name = windowrule-21 + match:plugin = hyprbars:bar_color rgb(1C1C1C) + match:class = ^(thunar) + } -windowrule { - name = windowrule-22 - match:plugin = hyprbars:bar_color rgb(1C1C1C) - match:float = 1 -} + windowrule { + name = windowrule-22 + match:plugin = hyprbars:bar_color rgb(1C1C1C) + match:float = 1 + } } - hyprexpo { - } - dynamic-cursors { shake { threshold = 3 @@ -916,62 +829,60 @@ windowrule { } } -# easymotion { -# #font size of the text -# textsize=72 -# -# #color of the text, takes standard hyprland color format -# textcolor=rgba(ffffffff) -# -# #background color of the label box. alpha is respected -# bgcolor=rgba(ff7777a0) -# -# #enable blur. The bgcolor alpha must be at least semi-transparent. -# blur=0 -# -# #Set blur alpha value. Blur must be enabled (float value) -# blurA=1.0 -# -# #Set xray. Blur must be enabled -# xray=0 -# -# #font to use for the label. This is passed directly to the pango font description -# textfont=Iosevka Nerd Font Mono -# -# #padding around the text (inside the label box) size in pixels, adjusted for -# #monitor scaling. This is the same format as hyprland's gapsin/gapsout workspace layout rule -# #example: textpadding=2 5 5 2 (spaces not commas) -# textpadding=5 -# -# #size of the border around the label box. A border size of zero disables border rendering. -# bordersize=2 -# -# #color of the border. takes the same format as hyprland's border (so it can be a gradient) -# bordercolor=rgba(ffffffff) -# -# #rounded corners? Same as hyprland's 'decoration:rounding' config -# rounding=1 -# -# #what to do if a window is fullscreen -# #none: nothing. (easymotion label won't be displayed on that window) -# #toggle: take the window out of fullscreen entirely. -# #maximize: convert the window to maximized. -# #windows are restored to fullscreen after easymotion is exited/selected -# fullscreen_action=none -# -# #which keys to use for selecting windows -# motionkeys=abcdefghijklmnopqrstuvwxyZ1234567890 -# #which keys to use for labeling windows -# motionlabels=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 -# -# #if a monitor has a focused special workspace, only put easymotion labels on the windows in the special workspace -# only_special = true -# } + easymotion { + #font size of the text + textsize=72 + + #color of the text, takes standard hyprland color format + textcolor=rgba(ffffffff) + + #background color of the label box. alpha is respected + bgcolor=rgba(ff7777a0) + + #enable blur. The bgcolor alpha must be at least semi-transparent. + blur=0 + + #Set blur alpha value. Blur must be enabled (float value) + blurA=1.0 + + #Set xray. Blur must be enabled + xray=0 + + #font to use for the label. This is passed directly to the pango font description + textfont=Iosevka Nerd Font Mono + + #padding around the text (inside the label box) size in pixels, adjusted for + #monitor scaling. This is the same format as hyprland's gapsin/gapsout workspace layout rule + #example: textpadding=2 5 5 2 (spaces not commas) + textpadding=5 + + #size of the border around the label box. A border size of zero disables border rendering. + bordersize=2 + + #color of the border. takes the same format as hyprland's border (so it can be a gradient) + bordercolor=rgba(ffffffff) + + #rounded corners? Same as hyprland's 'decoration:rounding' config + rounding=1 + + #what to do if a window is fullscreen + #none: nothing. (easymotion label won't be displayed on that window) + #toggle: take the window out of fullscreen entirely. + #maximize: convert the window to maximized. + #windows are restored to fullscreen after easymotion is exited/selected + fullscreen_action=none + + #which keys to use for selecting windows + motionkeys=abcdefghijklmnopqrstuvwxyZ1234567890 + #which keys to use for labeling windows + motionlabels=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 + + #if a monitor has a focused special workspace, only put easymotion labels on the windows in the special workspace + only_special = true + } } debug { disable_logs = false overlay = false } - -source = ~/.config/hypr/monitors.conf