aboutsummaryrefslogtreecommitdiffstats
path: root/hypr/dashboard.lua
blob: 344585a62fb5e82fd8d2698afffae01d46b52441 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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"))