chore(hypr) migrated to lua confs
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
-- https://wiki.hypr.land/Configuring/Basics/Window-Rules/
|
||||
--
|
||||
-- Rules are evaluated top to bottom and the last match wins, so order matters.
|
||||
-- Named rules are all evaluated before anonymous ones.
|
||||
|
||||
-- ==========================================
|
||||
-- MATCHERS
|
||||
-- ==========================================
|
||||
-- Dialogs and utility apps that should float in the center
|
||||
local DIALOG_TITLES = "^(Open Form|Open File|Select a File|Choose a file|Open Workspace|Choose Directory.*|Save As.*|Save File.*|branchdialog|pinentry-gtk-2|Confirm to replace files|File Operation Progress|Open Files.*|Anmelden.*|File Upload.*|TRuDI-Export laden)$"
|
||||
local DIALOG_CLASSES = "^(pavucontrol|blueman-manager|nm-connection-editor|org.pulseaudio.pavucontrol|io.narl.proton-drive-linux-prompt)$"
|
||||
|
||||
local STEAM = "^(steam)$"
|
||||
local GAMESCOPE = "^(gamescope)$"
|
||||
|
||||
-- ==========================================
|
||||
-- GENERAL & FIXES
|
||||
-- ==========================================
|
||||
-- Ignore maximize requests from apps. You'll probably like this.
|
||||
-- hl.window_rule({ match = { class = ".*" }, suppress_event = "maximize" })
|
||||
|
||||
-- Fix some dragging issues with XWayland
|
||||
-- hl.window_rule({
|
||||
-- match = { class = "^$", title = "^$", xwayland = true, float = true, fullscreen = false, pin = false },
|
||||
-- no_focus = true,
|
||||
-- })
|
||||
hl.window_rule({ match = { class = "^$", title = "^$" }, no_blur = true })
|
||||
|
||||
-- ==========================================
|
||||
-- FLOATING & CENTERED DIALOGS
|
||||
-- ==========================================
|
||||
-- Float, size, center, no blur — one rule per matcher instead of four.
|
||||
for _, match in ipairs({ { title = DIALOG_TITLES }, { class = DIALOG_CLASSES } }) do
|
||||
hl.window_rule({
|
||||
match = match,
|
||||
float = true,
|
||||
size = { 800, 600 },
|
||||
center = true,
|
||||
no_blur = true,
|
||||
})
|
||||
end
|
||||
|
||||
-- ==========================================
|
||||
-- WORKSPACE ASSIGNMENTS
|
||||
-- ==========================================
|
||||
-- hl.window_rule({ match = { class = "^(firefox)$" }, workspace = "1" })
|
||||
-- hl.window_rule({ match = { class = "^(kitty)$" }, workspace = "2" })
|
||||
-- hl.window_rule({ match = { class = "^(Code)$" }, workspace = "3" })
|
||||
hl.window_rule({ match = { class = GAMESCOPE }, workspace = "1" })
|
||||
|
||||
-- Special workspaces
|
||||
hl.window_rule({ match = { class = "^(Spotify|spotify)$" }, workspace = "special:virtual" })
|
||||
hl.window_rule({ match = { class = "^(discord|vesktop)$" }, workspace = "special:discord" })
|
||||
|
||||
-- ==========================================
|
||||
-- STEAM & GAMING
|
||||
-- ==========================================
|
||||
-- hl.window_rule({ match = { class = STEAM, title = "^(Steam)$" }, workspace = "3 silent" })
|
||||
|
||||
-- Fixed sizes for specific Steam windows
|
||||
hl.window_rule({ match = { class = STEAM, title = "^(Friends List)$" }, size = { 400, 800 } })
|
||||
hl.window_rule({ match = { class = STEAM, title = "^(Steam Settings)$" }, size = { 1000, 800 } })
|
||||
hl.window_rule({ match = { class = STEAM, title = "^(Add Non-Steam Game)$" }, size = { 1000, 800 } })
|
||||
|
||||
-- Float and disable blur for Steam windows that aren't the main window
|
||||
hl.window_rule({
|
||||
match = { class = STEAM, title = "negative:^(Steam)$" },
|
||||
float = true,
|
||||
no_blur = true,
|
||||
-- center = true,
|
||||
})
|
||||
|
||||
-- Allow tearing for games started with Gamescope
|
||||
hl.window_rule({ match = { class = GAMESCOPE }, immediate = true })
|
||||
Reference in New Issue
Block a user