summaryrefslogtreecommitdiff
path: root/window-rules.lua
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-08-14 05:17:54 +0800
committer魏曹先生 <1992414357@qq.com>2026-08-14 05:17:54 +0800
commitbc8a5889c4bb52405f2ac73d18a42ab43e93e867 (patch)
tree02eef02c4ce2de03d841e605440e0890f1ec8f9e /window-rules.lua
parent25c5e0b1704b7d7cc4a37619a508c592f6a794c0 (diff)
feat: add Lua config modules for Hyprland
Split the monolithic Hyprland config into modular Lua files covering appearance, input, keybindings, monitors, startup, window rules, and workspace settings.
Diffstat (limited to 'window-rules.lua')
-rw-r--r--window-rules.lua108
1 files changed, 108 insertions, 0 deletions
diff --git a/window-rules.lua b/window-rules.lua
new file mode 100644
index 0000000..407fdfd
--- /dev/null
+++ b/window-rules.lua
@@ -0,0 +1,108 @@
+-- 窗口规则配置(对应 window-rules.conf)
+-- 注意:原 hyprland.conf 中 source = ./window-rules.conf 已被注释,
+-- 如需启用请在 hyprland.lua 中取消 require("window-rules") 的注释
+-- 参考 https://wiki.hypr.land/Configuring/Basics/Window-Rules/
+
+-- 浮动窗口特殊边框设置
+hl.window_rule({
+ name = "floating-bordersize",
+ match = { float = true },
+ border_size = 3,
+})
+hl.window_rule({
+ name = "floating-rounding",
+ match = { float = true },
+ rounding = 8,
+})
+
+-- 为所有浮动窗口设置统一的边框颜色
+-- hl.window_rule({
+-- name = "floating-border-color",
+-- match = { float = true },
+-- border_color = "rgba(FF6B9CFF)",
+-- })
+-- hl.window_rule({
+-- name = "tiled-border-color",
+-- match = { float = false },
+-- border_color = "rgba(FF6B9C64)",
+-- })
+
+-- "智能间隙" / "仅有一个窗口时无间隙"
+-- hl.workspace_rule({ workspace = "w[tv1]", gaps_out = 0, gaps_in = 0 })
+-- hl.workspace_rule({ workspace = "f[1]", gaps_out = 0, gaps_in = 0 })
+-- hl.window_rule({
+-- name = "no-gaps-wtv1",
+-- match = { float = false, workspace = "w[tv1]" },
+-- border_size = 0,
+-- rounding = 0,
+-- })
+-- hl.window_rule({
+-- name = "no-gaps-f1",
+-- match = { float = false, workspace = "f[1]" },
+-- border_size = 0,
+-- rounding = 0,
+-- })
+
+-- Flameshot 截图工具浮动窗口
+-- hl.window_rule({ name = "flameshot-float", match = { class = "^(flameshot)$" }, float = true })
+-- hl.window_rule({ name = "flameshot-pin", match = { class = "^(flameshot)$" }, pin = true })
+-- hl.window_rule({ name = "flameshot-noborder", match = { class = "^(flameshot)$" }, decorate = false }) -- 旧版 noborder 在 0.56 中由 decorate = false 取代
+-- hl.window_rule({ name = "flameshot-nofocus", match = { class = "^(flameshot)$" }, no_focus = true })
+-- hl.window_rule({ name = "flameshot-center", match = { class = "^(flameshot)$" }, center = true })
+
+-- Rofi 菜单透明度
+-- hl.window_rule({
+-- name = "rofi-opacity",
+-- match = { title = "^(rofi)$" },
+-- opacity = "0.6",
+-- })
+
+-- Wofi 菜单透明度
+hl.window_rule({
+ name = "wofi-opacity",
+ match = { class = "^(wofi)$" },
+ opacity = "0.9 0.8",
+})
+hl.window_rule({
+ name = "wofi-dimaround",
+ match = { class = "^(wofi)$" },
+ dim_around = true,
+})
+hl.window_rule({
+ name = "wofi-animation",
+ match = { class = "^(wofi)$" },
+ animation = "popin",
+})
+hl.window_rule({
+ name = "wofi-rounding",
+ match = { class = "^(wofi)$" },
+ rounding = 10,
+})
+
+-- 忽略应用程序的最大化请求
+hl.window_rule({
+ name = "suppress-maximize",
+ match = { class = ".*" },
+ suppress_event = "maximize",
+})
+
+-- 修复 XWayland 的一些拖动问题
+hl.window_rule({
+ name = "fix-xwayland-drags",
+ match = {
+ class = "^$",
+ title = "^$",
+ xwayland = true,
+ float = true,
+ fullscreen = false,
+ pin = false,
+ },
+ no_focus = true,
+})
+
+-- 示例窗口规则
+-- hl.window_rule({
+-- name = "kitty-float",
+-- match = { class = "^(kitty)$", title = "^(kitty)$" },
+-- float = true,
+-- })