-- 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"))