aboutsummaryrefslogtreecommitdiffstats
path: root/hypr/dashboard.lua
diff options
context:
space:
mode:
Diffstat (limited to 'hypr/dashboard.lua')
-rw-r--r--hypr/dashboard.lua58
1 files changed, 58 insertions, 0 deletions
diff --git a/hypr/dashboard.lua b/hypr/dashboard.lua
new file mode 100644
index 0000000..344585a
--- /dev/null
+++ b/hypr/dashboard.lua
@@ -0,0 +1,58 @@
+-- Conky Lua dashboard: window placement and toggle.
+--
+-- Copy or symlink into ~/.config/hypr/sections/ and add to hyprland.lua:
+-- require("sections.dashboard")
+--
+-- The dashboard is a normal toplevel, not a desktop-layer surface, which is
+-- what lets a window rule put it on a workspace at all.
+
+-- Its own named special workspace: the unnamed `special` already hosts the
+-- btop scratchpad.
+local WS = "special:dash"
+
+hl.window_rule({
+ name = "dash-workspace",
+ match = { class = "conky-dash" },
+ workspace = WS,
+})
+hl.window_rule({
+ name = "dash-float",
+ match = { class = "conky-dash" },
+ float = true,
+})
+-- `fullscreen` is not used by any other rule in this config, so unlike the
+-- keys above it is unverified against real usage here; if Hyprland's Lua
+-- runtime ignores it, the dashboard still lands on special:dash and can be
+-- sized with `size = "(monitor_w) (monitor_h)"` instead.
+hl.window_rule({
+ name = "dash-fullscreen",
+ match = { class = "conky-dash" },
+ fullscreen = true,
+})
+hl.window_rule({
+ name = "dash-no-border",
+ match = { class = "conky-dash" },
+ border_size = 0,
+})
+hl.window_rule({
+ name = "dash-no-rounding",
+ match = { class = "conky-dash" },
+ rounding = 0,
+})
+-- It is a dashboard, not a window: never let it take focus or be tabbed to.
+-- This matters because it starts with the session, so without it the dashboard
+-- would steal focus at login. `no_focus` is also unverified against real usage
+-- in this config, same caveat as `fullscreen` above.
+hl.window_rule({
+ name = "dash-no-focus",
+ match = { class = "conky-dash" },
+ no_focus = true,
+})
+
+-- SUPER+S, not SUPER+D: keybindings.lua already binds D to the unnamed special
+-- workspace.
+--
+-- Literal "SUPER", not hl.mainMod: mainMod is a file-local in
+-- keybindings.lua (`local mainMod = "SUPER"`), not exported on hl, so
+-- hl.mainMod is nil here.
+hl.bind("SUPER + s", hl.dsp.workspace.toggle_special("dash"))