diff options
| -rw-r--r-- | hypr/README.md | 39 | ||||
| -rw-r--r-- | hypr/dashboard.lua | 58 |
2 files changed, 97 insertions, 0 deletions
diff --git a/hypr/README.md b/hypr/README.md new file mode 100644 index 0000000..90a5f4d --- /dev/null +++ b/hypr/README.md @@ -0,0 +1,39 @@ +# Hyprland integration + +`dashboard.lua` is a section for the Lua-based Hyprland config in +`~/.config/hypr/`. It is not sourced automatically; wire it in once: + + ln -s ~/Programming/GIT/conky-theme-udt/hypr/dashboard.lua \ + ~/.config/hypr/sections/dashboard.lua + +and add to `~/.config/hypr/hyprland.lua`: + + require("sections.dashboard") + +## One change to make by hand + +`sections/autostart.lua` runs `hl.exec_cmd("conky")`, which starts the old +desktop-layer conky. The dashboard replaces it, so change that line to: + + hl.exec_cmd("conky -c ~/.config/conky/conky.conf") + +Leaving both would run two conky instances. + +## Bindings + +`SUPER+S` toggles the dashboard. `SUPER+D` is already taken by the unnamed +special workspace, and that workspace also hosts the btop scratchpad, which is +why the dashboard uses its own `special:dash`. + +The bind is written with a literal `"SUPER"` rather than `hl.mainMod`: +`keybindings.lua` declares `mainMod` as a file-local, so it is not visible to +other sections. + +## Rule keys + +`workspace`, `float`, `border_size` and `rounding` are all used by existing +rules in `sections/look_and_feel.lua` and `sections/workspaces.lua`, so their +spelling is confirmed. `fullscreen` and `no_focus` are not used anywhere else +in this config; if the Lua runtime ignores them, the dashboard still lands on +`special:dash` and can be sized with +`size = "(monitor_w) (monitor_h)"` instead. 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")) |
