aboutsummaryrefslogtreecommitdiffstats
path: root/hosts/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/README.md')
-rw-r--r--hosts/README.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/hosts/README.md b/hosts/README.md
new file mode 100644
index 0000000..1be1dd7
--- /dev/null
+++ b/hosts/README.md
@@ -0,0 +1,46 @@
+# hosts
+
+The LAN map from the Obsidian vault as a searchable list, over a dimmed
+screen. ALT+SHIFT+Return opens it, Escape or a click outside closes it. It
+replaces the rofi SSH menu, `blackpearl-sshmenu.sh`.
+
+Each card shows a host's `ip:port`, its hostname, the Proxmox node and CT id
+it runs on, and the actions its data allows:
+
+- `ssh <alias>`, one per `~/.ssh/config` alias pointing at it, in a kitty tab
+ (`ssh-tab`, lifted from the rofi script);
+- `open`, when the note has a `url`;
+- `copy <ip:port>`, through `wl-copy`.
+
+Type to filter (every word must match name, ip, port, hostname, node, CT id
+or alias), Up/Down to move, Enter runs the first action, chips run their own.
+
+`hosts.py` builds the list on every opening, so there is no cache. It reads
+the frontmatter of each note in the vault's `Local Network/services/`
+(`HOSTS_DIR` overrides the path) and the ssh config. An alias joins the note
+whose `ip` or `hostname` is its `HostName`, or whose short hostname is the
+alias; an alias that matches no note gets a card of its own, so everything
+the rofi menu listed is still here. Aliases with the same `HostName` share a
+card. Like the rofi script, it reads plain `Keyword value` lines only:
+`Include` and `Match` are not followed, wildcard `Host` patterns are skipped.
+
+## Running
+
+ qs -p ./hosts
+ qs -p ./hosts ipc call hosts toggle
+
+## Blur
+
+Optional, in the Hyprland config:
+
+ hl.layer_rule({
+ name = "blur-hosts",
+ match = { namespace = "^(keystone-hosts)$" },
+ blur = true,
+ xray = false,
+ ignore_alpha = 0.1,
+ })
+
+## Check
+
+ /usr/bin/python3 hosts/hosts.py --check