This commit is contained in:
2026-05-27 22:47:03 -07:00
parent a33ee950b2
commit 1daa984a30
3 changed files with 234 additions and 227 deletions
+228 -219
View File
@@ -4,81 +4,81 @@
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
hl.window_rule({
match = {
class = "discord",
},
float = true,
match = {
class = "discord",
},
float = true,
})
hl.window_rule({
match = {
class = "mpv",
},
float = true,
match = {
class = "mpv",
},
float = true,
})
hl.window_rule({
match = {
class = "anki",
},
float = true,
match = {
class = "anki",
},
float = true,
})
hl.window_rule({
match = {
class = "steam",
},
float = true,
match = {
class = "steam",
},
float = true,
})
hl.window_rule({
match = {
class = "python",
title = "Import",
},
float = true,
match = {
class = "python",
title = "Import",
},
float = true,
})
hl.window_rule({
match = {
class = "zenity",
title = "Japanese Analysis",
},
float = true,
match = {
class = "zenity",
title = "Japanese Analysis",
},
float = true,
})
hl.window_rule({
match = {
class = "zenity",
title = "Japanese Assistant",
},
float = true,
match = {
class = "zenity",
title = "Japanese Assistant",
},
float = true,
})
hl.window_rule({
match = {
class = "anki",
},
-- TODO: manual review — unmapped window rule action: "min_size 1600 600"
-- TODO: manual review — unmapped window rule action: "max_size 2222 1234"
match = {
class = "anki",
},
-- TODO: manual review — unmapped window rule action: "min_size 1600 600"
-- TODO: manual review — unmapped window rule action: "max_size 2222 1234"
})
hl.window_rule({
match = {
class = "ueberzugpp.*",
},
-- TODO: manual review — unmapped window rule action: "no_focus on"
-- TODO: manual review — unmapped window rule action: "no_follow_mouse 1"
float = true,
-- TODO: manual review — unmapped window rule action: "no_shadow on"
-- TODO: manual review — unmapped window rule action: "no_anim on"
match = {
class = "ueberzugpp.*",
},
-- TODO: manual review — unmapped window rule action: "no_focus on"
-- TODO: manual review — unmapped window rule action: "no_follow_mouse 1"
float = true,
-- TODO: manual review — unmapped window rule action: "no_shadow on"
-- TODO: manual review — unmapped window rule action: "no_anim on"
})
hl.window_rule({
match = {
class = "anki",
},
size = "1920 1080",
match = {
class = "anki",
},
size = "1920 1080",
})
-- windowrule = min_size 1600 600, match:class anki
@@ -87,71 +87,71 @@ hl.window_rule({
-- {{{ Workspace assignments
hl.window_rule({
match = {
class = "Cursor",
},
workspace = "3 silent",
match = {
class = "Cursor",
},
workspace = "3 silent",
})
hl.window_rule({
match = {
class = "GameSentenceMiner",
},
workspace = "5 silent",
match = {
class = "GameSentenceMiner",
},
workspace = "5 silent",
})
hl.window_rule({
match = {
class = "com.obsproject.Studio",
},
workspace = "5 silent",
match = {
class = "com.obsproject.Studio",
},
workspace = "5 silent",
})
hl.window_rule({
match = {
class = "gamescope",
},
workspace = "6 silent",
match = {
class = "gamescope",
},
workspace = "6 silent",
})
hl.window_rule({
match = {
class = "anki",
},
workspace = "8 silent",
match = {
class = "anki",
},
workspace = "8 silent",
})
hl.window_rule({
match = {
class = "steam",
},
workspace = "9 silent",
match = {
class = "steam",
},
workspace = "9 silent",
})
hl.window_rule({
match = {
class = "discord",
},
workspace = "10 silent",
match = {
class = "discord",
},
workspace = "10 silent",
})
-- }}}
-- {{{ Center floating windows
hl.window_rule({
match = {
float = 1,
class = "discord",
},
center = true,
match = {
float = 1,
class = "discord",
},
center = true,
})
hl.window_rule({
match = {
float = 1,
class = "anki",
},
center = true,
match = {
float = 1,
class = "anki",
},
center = true,
})
-- }}}
@@ -159,231 +159,240 @@ hl.window_rule({
-- {{{ Opacity rules
-- windowrule = opacity 0.88, match:class .* fullscreen:0
hl.window_rule({
match = {
class = "mpv",
},
opacity = "1.0 override",
match = {
class = "mpv",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "^(remote-viewer)$",
},
opacity = "1.0 override",
match = {
class = "^(remote-viewer)$",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "com.obsproject.Studio",
},
opacity = "1.0 override",
match = {
class = "com.obsproject.Studio",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
title = "(.*)(- YouTube(.*))",
},
opacity = "1.0 override",
match = {
title = "(.*)(- YouTube(.*))",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "zen",
title = "(.*)YouTube TV(.*)",
},
opacity = "1.0 override",
match = {
class = "zen",
title = "(.*)YouTube TV(.*)",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "anki",
},
opacity = "1.0 override",
match = {
class = "anki",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
title = "(.*)asbplayer",
},
opacity = "1.0 override",
match = {
title = "(.*)asbplayer",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "dolphin-emu",
},
opacity = "1.0 override",
match = {
class = "dolphin-emu",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "steam_app_default",
},
opacity = "1.0 override",
match = {
class = "steam_app_default",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "steam_app.*",
},
opacity = "1.0 override",
match = {
class = "steam_app.*",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "Rustdesk",
},
opacity = "1.0 override",
match = {
class = "Rustdesk",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "google-chrome",
},
opacity = "1.0 override",
match = {
class = "google-chrome",
},
opacity = "1.0 override",
})
-- }}}
-- {{{ Misc
hl.window_rule({
match = {
title = "(.*)asbplayer",
},
-- TODO: manual review — unmapped window rule action: "tile on"
match = {
title = "(.*)asbplayer",
},
-- TODO: manual review — unmapped window rule action: "tile on"
})
-- windowrule = size 2118 1182, match:class anki
-- Ignore maximize requests from apps. You'll probably like this.
hl.window_rule({
match = {
class = ".*",
},
suppress_event = "maximize",
match = {
class = ".*",
},
suppress_event = "maximize",
})
-- Fix some dragging issues with XWayland
hl.window_rule({
match = {
class = "^$",
title = "^$",
xwayland = 1,
float = 1,
fullscreen = 0,
pin = 0,
},
-- TODO: manual review — unmapped window rule action: "no_focus on"
match = {
class = "^$",
title = "^$",
xwayland = 1,
float = 1,
fullscreen = 0,
pin = 0,
},
-- TODO: manual review — unmapped window rule action: "no_focus on"
})
-- }}}
-- {{{ Screen sharing workaround: https://wiki.hyprland.org/Useful-Utilities/Screen-Sharing/#xwayland
hl.window_rule({
match = {
class = "^(xwaylandvideobridge)$",
},
opacity = "0.0 override",
-- TODO: manual review — unmapped window rule action: "no_anim on"
-- TODO: manual review — unmapped window rule action: "no_initial_focus on"
-- TODO: manual review — unmapped window rule action: "max_size 1 1"
-- TODO: manual review — unmapped window rule action: "no_blur on"
-- TODO: manual review — unmapped window rule action: "no_focus on"
match = {
class = "^(xwaylandvideobridge)$",
},
opacity = "0.0 override",
-- TODO: manual review — unmapped window rule action: "no_anim on"
-- TODO: manual review — unmapped window rule action: "no_initial_focus on"
-- TODO: manual review — unmapped window rule action: "max_size 1 1"
-- TODO: manual review — unmapped window rule action: "no_blur on"
-- TODO: manual review — unmapped window rule action: "no_focus on"
})
-- }}}
-- {{{ GSM Overlay and LunaTranslator tweaks
hl.window_rule({
match = {
class = "gsm_overlay",
},
float = true,
-- TODO: manual review — unmapped window rule action: "border_size 0"
-- TODO: manual review — unmapped window rule action: "xray off"
-- TODO: manual review — unmapped window rule action: "no_shadow on"
-- TODO: manual review — unmapped window rule action: "no_blur on"
match = {
class = "gsm_overlay",
},
float = true,
-- TODO: manual review — unmapped window rule action: "border_size 0"
-- TODO: manual review — unmapped window rule action: "xray off"
-- TODO: manual review — unmapped window rule action: "no_shadow on"
-- TODO: manual review — unmapped window rule action: "no_blur on"
})
hl.window_rule({
match = {
title = "LunaTranslator",
},
opacity = "1.0 override",
-- TODO: manual review — unmapped window rule action: "border_size 0"
match = {
title = "LunaTranslator",
},
opacity = "1.0 override",
-- TODO: manual review — unmapped window rule action: "border_size 0"
})
hl.window_rule({
match = {
class = "gsm_overlay",
},
-- TODO: manual review — unmapped window rule action: "stay_focused on"
match = {
class = "gsm_overlay",
},
-- TODO: manual review — unmapped window rule action: "stay_focused on"
})
-- windowrule = fullscreen_state 2, match:class gsm_overlay
hl.window_rule({
match = {
class = "SubMiner",
},
float = true,
-- TODO: manual review — unmapped window rule action: "border_size 0"
-- TODO: manual review — unmapped window rule action: "xray off override"
-- TODO: manual review — unmapped window rule action: "no_shadow on"
-- TODO: manual review — unmapped window rule action: "no_blur on"
-- TODO: manual review — unmapped window rule action: "no_dim on"
-- TODO: manual review — unmapped window rule action: "opaque on"
-- TODO: manual review — unmapped window rule action: "dim_around off"
-- TODO: manual review — unmapped window rule action: "allows_input offf"
match = {
class = "steam_app_1277940",
},
-- TODO: manual review — unmapped window rule action: "border_size 0"
})
hl.window_rule({
match = {
class = "steam_app_1277940",
},
-- TODO: manual review — unmapped window rule action: "border_size 0"
match = {
class = "SubMiner",
},
float = true,
})
hl.window_rule({
match = {
class = "SubMiner",
},
opacity = "1.0 override",
pin = false,
match = {
class = "SubMiner",
},
opacity = "1.0 override",
pin = false,
})
hl.window_rule({
match = {
class = "SubMiner",
},
float = true,
border_size = 0,
xray = false,
no_shadow = true,
no_blur = true,
no_dim = true,
opaque = true,
dim_around = false,
allows_input = false,
opacity = "1.0 override",
pin = false,
})
-- }}}
-- {{{ FEH
hl.window_rule({
match = {
class = "feh",
},
float = true,
center = true,
-- TODO: manual review — unmapped window rule action: "border_size 0"
-- TODO: manual review — unmapped window rule action: "no_shadow on"
-- TODO: manual review — unmapped window rule action: "no_blur on"
-- TODO: manual review — unmapped window rule action: "no_anim on"
match = {
class = "feh",
},
float = true,
center = true,
-- TODO: manual review — unmapped window rule action: "border_size 0"
-- TODO: manual review — unmapped window rule action: "no_shadow on"
-- TODO: manual review — unmapped window rule action: "no_blur on"
-- TODO: manual review — unmapped window rule action: "no_anim on"
})
-- }}}
hl.window_rule({
match = {
title = "Picture in picture",
},
float = true,
pin = true,
match = {
title = "Picture in picture",
},
float = true,
pin = true,
})
-- TODO: manual review — top-level key 'windowurle = no_vrr on, match:class mpv' has no enclosing section
-- aibar popup (AI usage widget)
hl.window_rule({
match = {
title = "aibar",
},
float = true,
move = "100%-374 50",
match = {
title = "aibar",
},
float = true,
move = "100%-374 50",
})