Files
dotfiles/dot_config/hypr/hyprland.d/60-rules.conf
s0wlz (Matthias Puchstein) d46534f50e desktop: refine theming, workspaces, and utilities
- switch GTK font to GeistMono Nerd Font Propo 9 and drop GTK4 CSS overrides
- add named Hyprland workspaces/keybinds and Ghostty quick terminal; adjust screenshot binding
- update Waybar workspace icons/sorting; tweak Neovim transparency, Owlry/Qt6CT, and ROCm env
- add curated wallpaper sets for DP-1/DP-2 and new Hyprland toggle/screenshot helper scripts
2026-01-04 04:55:15 +01:00

127 lines
4.2 KiB
Plaintext

# 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
# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
# windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
##############
### GROUPS ###
##############
group {
auto_group = true
insert_after_current = true
focus_removed_window = true
drag_into_group = 1
merge_groups_on_drag = true
merge_groups_on_groupbar = true
merge_floated_into_tiled_on_groupbar = true
group_on_movetoworkspace = false
col.border_active = $border_group_active
col.border_inactive = $border_group_inactive
col.border_locked_active = $border_grouplocked_active
col.border_locked_inactive = $border_grouplocked_active
groupbar{
enabled = true
height = 12
font_family = GeistMono Nerd Font
font_size = 8
font_weight_active = semibold
font_weight_inactive = normal
stacked = false
gradients = true
gradient_rounding = 5
indicator_height = 0
rounding = 0
gradient_round_only_edges = true
text_color = $groupbar_text
col.active = $groupbar_active
col.inactive = $groupbar_inactive
col.locked_active = $groupbar_grouplocked_active
col.locked_inactive = $groupbar_grouplocked_inactive
gaps_out = 0
gaps_in = 0
render_titles = true
scrolling = true
priority = 3
}
}
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrule = match:class .*, suppress_event maximize
# Fix some dragging issues with XWayland
windowrule = match:class ^$, match:title ^$, match:xwayland 1, match:float 1, match:fullscreen 0, match:pin 0, no_focus on
windowrule = match:xwayland 1, no_initial_focus on
## ========== Special Workspaces ==========
workspace = special:keepass, on-created-empty:keepassxc
#windowrule = float, class:org.keepassxc.KeePassXC
#windowrule = noscreenshare, class:org.keepassxc.KeePassXC
#windowrule = size 60% 60%, class:org.keepassxc.KeePassXC
#windowrule = center, class:org.keepassxc.KeePassXC
## ========== Communication ==========
# Comms
windowrule = match:class ^(info\.mumble\.Mumble|discord|TeamSpeak|teamspeak3|vesktop)$, workspace name:comms
# Element
windowrule = match:class ^(Element)$, workspace name:element
## ========== Mail ==========
windowrule = match:class ^(org\.mozilla\.Thunderbird)$, workspace name:mail
## ========== Multimedia ==========
windowrule = match:class Spotify, workspace 10
### ========== Development ==========
#windowrulev2 = float, class:jetbrains-webstorm, title:Welcome to WebStorm
#windowrulev2 = size 1080 720, class:jetbrains-webstorm, title:Welcome to WebStorm
## ========== Gaming ==========
# Steam
windowrule = match:class ^(steam)$, workspace name:steam
## ========== System ==========
windowrule = match:class com.saivert.pwvucontrol, float on
windowrule = match:class scrrec, float on
windowrule = match:class scrrec, pin on
windowrule = match:class scrrec, idle_inhibit always
windowrule = match:class scrrec, rounding 10
windowrule = match:class scrrec, opacity 0.6
windowrule = match:class scrrec, border_size 0
windowrule = match:class scrrec, size 300 100
windowrule = match:class scrrec, move 1% 1%
windowrule = match:class scrrec, monitor 0
windowrule = match:class scrrec, no_initial_focus on
windowrule = match:class com.gabm.satty, float on
windowrule = match:class com.gabm.satty, min_size 700 400
# Blur swaync
#layerrule = blur, swaync-control-center
#layerrule = blur, swaync-notification-window
#layerrule = ignorezero, swaync-control-center
#layerrule = ignorezero, swaync-notification-window
#layerrule = ignorealpha, swaync-control-center
#layerrule = ignorealpha, swaync-notification-window