From 4cf4fcf3bfc6c27f100a813dc62cf17007699069 Mon Sep 17 00:00:00 2001 From: Himanshu <75300696+h-jangra@users.noreply.github.com> Date: Sun, 23 Aug 2026 15:34:29 +0530 Subject: [PATCH 1/3] Add Keyviz Plugin --- keyviz/README.md | 69 +++++++ keyviz/overlay.luau | 122 +++++++++++ keyviz/plugin.toml | 110 ++++++++++ keyviz/scripts/listener.py | 401 ++++++++++++++++++++++++++++++++++++ keyviz/service.luau | 167 +++++++++++++++ keyviz/shortcut.luau | 29 +++ keyviz/thumbnail.webp | Bin 0 -> 32422 bytes keyviz/translations/en.json | 53 +++++ keyviz/widget.luau | 61 ++++++ 9 files changed, 1012 insertions(+) create mode 100644 keyviz/README.md create mode 100644 keyviz/overlay.luau create mode 100644 keyviz/plugin.toml create mode 100644 keyviz/scripts/listener.py create mode 100644 keyviz/service.luau create mode 100644 keyviz/shortcut.luau create mode 100644 keyviz/thumbnail.webp create mode 100644 keyviz/translations/en.json create mode 100644 keyviz/widget.luau diff --git a/keyviz/README.md b/keyviz/README.md new file mode 100644 index 00000000..08052a2a --- /dev/null +++ b/keyviz/README.md @@ -0,0 +1,69 @@ +# Keyviz (Key Visualizer) + +A minimal, real-time floating on-screen keystroke visualizer HUD for [Noctalia](https://noctalia.dev). Displays typed keys and modifier combinations (e.g. `Ctrl + Shift + P`, `Super + Space`, `Alt + Tab`) as translucent, blurred glass keycaps directly on your screen with zero typing latency. + +## Features + +- **Floating On-Screen HUD**: Minimal translucent glass keycaps floating at the bottom-center of your screen. +- **Zero Background When Idle**: Automatically renders transparent when not typing—no lingering boxes or frames. +- **Zero Typing Interference**: Runs in a non-focusing layer (`keyboard_focus = "none"`), ensuring uninterrupted continuous typing. +- **Split Keycap Design**: Combinations like `Ctrl + Shift + P` are rendered as distinct, elevated keycaps with clean typography. +- **Bar Widget**: Status icon on your Noctalia bar with one-click toggle to show/hide and enable/disable overlay visualizer. +- **Control Center Shortcut**: Quick-toggle tile to easily pause and resume key visualizer at any time. +- **Customizable In Settings**: + - Inner overlay padding (`0px` – `30px`). + - Keycap margin gap (`0px` – `30px`). + - Inactivity timeout slider (`200ms` – `5000ms`). + - Max key combinations (`1` – `8`). + - Font size (`Small`, `Medium`, `Large`). + - Visual style (`Glass (Blurred)`, `Solid Surface`, `Accent Outline`). + - Shortcuts-only filter (Ctrl/Alt/Shift/Super). + +## Prerequisites & Permissions + +On Linux (Wayland / Hyprland), capturing global keystrokes requires read access to `/dev/input/event*` devices. + +Add your user to the `input` group: + +```sh +sudo usermod -a -G input $USER +``` + +> **Note:** Log out and log back in (or restart your session) for the group membership to take effect. + +## Installation & Activation + +Enable the plugin in Noctalia: + +```sh +noctalia msg plugins enable h-jangra/keyviz +``` + +## Settings + +Configure Keyviz in **Noctalia Settings → Plugins → Key Visualizer**: + +| Setting | Type | Default | Description | +| --- | --- | --- | --- | +| `enabled_by_default` | `bool` | `true` | Start visualizer automatically when Noctalia starts. | +| `padding` | `int` | `6` | Internal padding spacing inside overlay around keycaps (`0` – `30`). | +| `margin` | `int` | `6` | Spacing gap between visualized key combinations (`0` – `30`). | +| `timeout_ms` | `int` | `500` | Inactivity duration (ms) before keys disappear. | +| `max_keys` | `int` | `4` | Maximum number of key combinations to display. | +| `font_size` | `select` | `medium` | Text size of keycaps (`small`, `medium`, `large`). | +| `badge_style` | `select` | `glass` | Visual style (`glass`, `solid`, `accent`). | +| `show_modifiers_only` | `bool` | `false` | Only visualize combinations with Ctrl, Alt, Shift, or Super. | + +## IPC Commands + +```sh +# Toggle key visualizer on/off +noctalia msg plugin h-jangra/keyviz:keylistener all toggle + +# Clear currently displayed keys +noctalia msg plugin h-jangra/keyviz:keylistener all clear +``` + +## License + +MIT © [Himanshu Jangra](https://github.com/h-jangra) diff --git a/keyviz/overlay.luau b/keyviz/overlay.luau new file mode 100644 index 00000000..38935e8f --- /dev/null +++ b/keyviz/overlay.luau @@ -0,0 +1,122 @@ +--!nonstrict + +local symbols = { + Up = "↑", + Down = "↓", + Left = "←", + Right = "→", + Enter = "↵", + Backspace = "⌫", + Tab = "⇥", + Space = "␣", + Esc = "Esc", + Super = "⌘", + Ctrl = "Ctrl", + Alt = "Alt", + Shift = "⇧", +} + +local function getFontSize() + local size = noctalia.getConfig("font_size") or "medium" + + if size == "small" then + return 11 + elseif size == "large" then + return 15 + end + + return 13 +end + +local function getStyle() + local style = noctalia.getConfig("badge_style") or "glass" + + if style == "solid" then + return "surface_container_high", "outline", 1 + elseif style == "accent" then + return "primary/0.16", "primary/0.75", 1 + end + + return "surface_container_high/0.92", "outline/0.55", 1 +end + +local function render() + local keys = noctalia.state.get("active_keys") or {} + + if #keys == 0 then + panel.render(ui.row({})) + return + end + + local fontSize = getFontSize() + local fill, border, borderWidth = getStyle() + local gap = noctalia.getConfig("margin") or 6 + local padding = noctalia.getConfig("padding") or 6 + local items = {} + + for _, combo in ipairs(keys) do + local children = {} + local parts = string.split(combo, " + ") + + for i, part in ipairs(parts) do + table.insert(children, ui.label({ + text = symbols[part] or part, + fontSize = fontSize, + fontWeight = "bold", + color = "on_surface", + })) + + if i < #parts then + table.insert(children, ui.label({ + text = "+", + fontSize = math.max(9, fontSize - 3), + fontWeight = "bold", + color = "on_surface_variant", + })) + end + end + + local isSingleKey = #parts == 1 and #combo <= 3 + local padH = isSingleKey and 7 or 10 + local itemHeight = 30 + + table.insert(items, ui.row({ + height = itemHeight, + paddingH = padH, + gap = 6, + fill = fill, + border = border, + borderWidth = borderWidth, + radius = 7, + align = "center", + justify = "center", + }, children)) + end + + panel.render(ui.row({ + flexGrow = 1, + align = "center", + justify = "center", + }, { + ui.row({ + gap = gap, + padding = padding, + align = "center", + justify = "center", + }, items), + })) +end + +noctalia.state.watch("active_keys", render) + +function onConfigChanged() + render() +end + +function onOpen() + render() +end + +render() + + diff --git a/keyviz/plugin.toml b/keyviz/plugin.toml new file mode 100644 index 00000000..44d8ce96 --- /dev/null +++ b/keyviz/plugin.toml @@ -0,0 +1,110 @@ +id = "h-jangra/keyviz" +name = "Key Visualizer" +version = "0.1.0" +plugin_api = 13 +author = "h-jangra" +license = "MIT" +dependencies = [] +tags = ["utility", "input", "visualizer", "overlay", "key"] +icon = "keyboard" +description = "Real-time floating on-screen keystroke visualizer for Noctalia." + +[[setting]] +key = "enabled_by_default" +type = "bool" +label_key = "settings.enabled_by_default.label" +description_key = "settings.enabled_by_default.description" +default = true + +[[setting]] +key = "padding" +type = "int" +label_key = "settings.padding.label" +description_key = "settings.padding.description" +default = 6 +min = 0 +max = 30 +step = 1 + +[[setting]] +key = "margin" +type = "int" +label_key = "settings.margin.label" +description_key = "settings.margin.description" +default = 6 +min = 0 +max = 30 +step = 1 + +[[setting]] +key = "timeout_ms" +type = "int" +label_key = "settings.timeout_ms.label" +description_key = "settings.timeout_ms.description" +default = 500 +min = 200 +max = 5000 +step = 100 + +[[setting]] +key = "max_keys" +type = "int" +label_key = "settings.max_keys.label" +description_key = "settings.max_keys.description" +default = 4 +min = 1 +max = 8 + +[[setting]] +key = "font_size" +type = "select" +label_key = "settings.font_size.label" +description_key = "settings.font_size.description" +options = [ + { value = "small", label_key = "settings.font_size.options.small" }, + { value = "medium", label_key = "settings.font_size.options.medium" }, + { value = "large", label_key = "settings.font_size.options.large" }, +] +default = "medium" + +[[setting]] +key = "badge_style" +type = "select" +label_key = "settings.badge_style.label" +description_key = "settings.badge_style.description" +options = [ + { value = "glass", label_key = "settings.badge_style.options.glass" }, + { value = "solid", label_key = "settings.badge_style.options.solid" }, + { value = "accent", label_key = "settings.badge_style.options.accent" }, +] +default = "glass" + +[[setting]] +key = "show_modifiers_only" +type = "bool" +label_key = "settings.show_modifiers_only.label" +description_key = "settings.show_modifiers_only.description" +default = false + +[[service]] +id = "keylistener" +entry = "service.luau" + +[[panel]] +id = "overlay" +entry = "overlay.luau" +width = 340 +height = 48 +placement = "floating" +position = "bottom_center" +persistent = true +dismiss_on_outside_click = false +keyboard_focus = "none" + +[[widget]] +id = "widget" +entry = "widget.luau" + +[[shortcut]] +id = "toggle" +entry = "shortcut.luau" diff --git a/keyviz/scripts/listener.py b/keyviz/scripts/listener.py new file mode 100644 index 00000000..5251b840 --- /dev/null +++ b/keyviz/scripts/listener.py @@ -0,0 +1,401 @@ +#!/usr/bin/env python3 +""" +scripts/listener.py - Keyboard Event Listener for Noctalia Keyviz + +Reads Linux /dev/input/event* devices using blocking I/O in reader threads, +tracks modifier states, formats Keyviz-style key combinations, +and emits JSON events to stdout for service.luau. +""" + +import argparse +import glob +import json +import os +import signal +import struct +import sys +import threading +import time + +# Handle termination signals cleanly +signal.signal(signal.SIGTERM, lambda _s, _f: sys.exit(0)) +signal.signal(signal.SIGINT, lambda _s, _f: sys.exit(0)) + +EVENT_FORMAT = "qqHHi" +EVENT_SIZE = struct.calcsize(EVENT_FORMAT) +EV_KEY = 1 + +KEY_NAMES = { + 1: "Esc", + 2: "1", + 3: "2", + 4: "3", + 5: "4", + 6: "5", + 7: "6", + 8: "7", + 9: "8", + 10: "9", + 11: "0", + 12: "-", + 13: "=", + 14: "Backspace", + 15: "Tab", + 16: "Q", + 17: "W", + 18: "E", + 19: "R", + 20: "T", + 21: "Y", + 22: "U", + 23: "I", + 24: "O", + 25: "P", + 26: "[", + 27: "]", + 28: "Enter", + 29: "Ctrl", + 30: "A", + 31: "S", + 32: "D", + 33: "F", + 34: "G", + 35: "H", + 36: "J", + 37: "K", + 38: "L", + 39: ";", + 40: "'", + 41: "`", + 42: "Shift", + 43: "\\", + 44: "Z", + 45: "X", + 46: "C", + 47: "V", + 48: "B", + 49: "N", + 50: "M", + 51: ",", + 52: ".", + 53: "/", + 54: "Shift", + 55: "KP *", + 56: "Alt", + 57: "Space", + 58: "CapsLock", + 59: "F1", + 60: "F2", + 61: "F3", + 62: "F4", + 63: "F5", + 64: "F6", + 65: "F7", + 66: "F8", + 67: "F9", + 68: "F10", + 69: "NumLock", + 70: "ScrollLock", + 71: "KP 7", + 72: "KP 8", + 73: "KP 9", + 74: "KP -", + 75: "KP 4", + 76: "KP 5", + 77: "KP 6", + 78: "KP +", + 79: "KP 1", + 80: "KP 2", + 81: "KP 3", + 82: "KP 0", + 83: "KP .", + 87: "F11", + 88: "F12", + 96: "KP Enter", + 97: "Ctrl", + 98: "KP /", + 99: "SysRq", + 100: "Alt", + 102: "Home", + 103: "Up", + 104: "PageUp", + 105: "Left", + 106: "Right", + 107: "End", + 108: "Down", + 109: "PageDown", + 110: "Insert", + 111: "Delete", + 113: "Mute", + 114: "VolDown", + 115: "VolUp", + 116: "Power", + 117: "KP =", + 119: "Pause", + 125: "Super", + 126: "Super", + 127: "Menu", + 128: "Stop", + 183: "F13", + 184: "F14", + 185: "F15", + 186: "F16", + 187: "F17", + 188: "F18", + 189: "F19", + 190: "F20", + 191: "F21", + 192: "F22", + 193: "F23", + 194: "F24", +} + +MODIFIER_CODES = { + 29: "Ctrl", + 97: "Ctrl", + 42: "Shift", + 54: "Shift", + 56: "Alt", + 100: "Alt", + 125: "Super", + 126: "Super", +} + + +def _read_ev_bits(dev_path): + """Read EV capability bitmask from sysfs for a device path.""" + try: + real = os.path.realpath(dev_path) + event_name = os.path.basename(real) + sysfs = f"/sys/class/input/{event_name}/device/capabilities/ev" + with open(sysfs, "r") as f: + return int(f.read().strip(), 16) + except Exception: + return None + + +def _is_real_keyboard(dev_path): + """Return True only for devices that have both EV_KEY (1) and EV_REP (20) capabilities.""" + ev = _read_ev_bits(dev_path) + if ev is None: + return True + EV_KEY_BIT = 1 << 1 + EV_REP_BIT = 1 << 20 + return bool(ev & EV_KEY_BIT) and bool(ev & EV_REP_BIT) + + +def find_keyboard_devices(): + """Discover real keyboard input event nodes (devices with EV_KEY + EV_REP).""" + devices = [] + seen = set() + + if os.path.exists("/proc/bus/input/devices"): + try: + with open("/proc/bus/input/devices", "r") as f: + content = f.read() + for block in content.split("\n\n"): + is_kbd = False + event_name = None + for line in block.splitlines(): + if ( + "sysrq" in line.lower() + or "kbd" in line.lower() + or "EV=120013" in line + or "EV=100013" in line + or "EV=12001f" in line + ): + is_kbd = True + if line.startswith("H: Handlers="): + for part in line.split(): + if part.startswith("event"): + event_name = part + if is_kbd and event_name: + dev_path = f"/dev/input/{event_name}" + if dev_path not in seen and _is_real_keyboard(dev_path): + devices.append(dev_path) + seen.add(dev_path) + except Exception: + pass + + for pattern in ["/dev/input/by-id/*kbd*", "/dev/input/by-path/*kbd*"]: + for path in glob.glob(pattern): + try: + target = os.path.realpath(path) + if target not in seen and _is_real_keyboard(target): + devices.append(target) + seen.add(target) + except Exception: + pass + + if not devices: + for path in sorted(glob.glob("/dev/input/event*")): + if path not in seen and _is_real_keyboard(path): + devices.append(path) + seen.add(path) + + return devices + + +def format_combination(modifiers, key_name): + parts = [] + for mod in ["Super", "Ctrl", "Alt", "Shift"]: + if mod != key_name and mod in set(modifiers): + parts.append(mod) + parts.append(key_name) + return " + ".join(parts) + + +def read_device_blocking(fd, dev, q): + try: + while True: + try: + data = os.read(fd, EVENT_SIZE * 16) + except OSError: + break + if not data: + break + q.put(("data", fd, dev, data)) + finally: + q.put(("closed", fd, dev, b"")) + + +def main(): + parser = argparse.ArgumentParser(description="Noctalia Keyviz Keyboard Listener") + parser.add_argument("--test-devices", action="store_true", help="List discovered keyboard devices") + args = parser.parse_args() + + if args.test_devices: + all_devs = find_keyboard_devices() + readable = [d for d in all_devs if os.access(d, os.R_OK)] + print(f"Total discovered keyboard devices: {len(all_devs)}") + for d in all_devs: + status = "READABLE" if d in readable else "PERMISSION_DENIED" + print(f" {d} -> {status}") + sys.exit(0) + + + + import queue + + last_error_time = 0 + + while True: + all_devs = find_keyboard_devices() + readable_devs = [d for d in all_devs if os.access(d, os.R_OK)] + + if not readable_devs: + now = time.time() + if now - last_error_time > 5: + error_payload = { + "type": "error", + "error": "permission_denied", + "message": "Input permission required: run `sudo usermod -aG input $USER` and re-login.", + "devices_found": all_devs, + "pid": os.getpid(), + } + print(json.dumps(error_payload), flush=True) + last_error_time = now + time.sleep(2) + continue + + fds = {} + for dev in readable_devs: + try: + fd = os.open(dev, os.O_RDONLY) + fds[fd] = dev + except Exception: + pass + + if not fds: + time.sleep(2) + continue + + ready_payload = { + "type": "ready", + "device_count": len(fds), + "devices": list(fds.values()), + "pid": os.getpid(), + } + print(json.dumps(ready_payload), flush=True) + + active_modifiers = set() + dev_queue = queue.SimpleQueue() + + for fd, dev in fds.items(): + t = threading.Thread( + target=read_device_blocking, + args=(fd, dev, dev_queue), + daemon=True, + ) + t.start() + + open_fds = set(fds.keys()) + + try: + while open_fds: + try: + kind, fd, dev, data = dev_queue.get(timeout=2.0) + except Exception: + continue + + if kind == "closed": + open_fds.discard(fd) + continue + + offset = 0 + while offset + EVENT_SIZE <= len(data): + chunk = data[offset : offset + EVENT_SIZE] + offset += EVENT_SIZE + tv_sec, tv_usec, ev_type, code, value = struct.unpack(EVENT_FORMAT, chunk) + + if ev_type != EV_KEY: + continue + + if code in MODIFIER_CODES: + mod_name = MODIFIER_CODES[code] + if value in (1, 2): + active_modifiers.add(mod_name) + elif value == 0: + active_modifiers.discard(mod_name) + out = { + "type": "release", + "key": mod_name, + "code": code, + "modifiers": list(active_modifiers), + } + print(json.dumps(out), flush=True) + + if value == 1: # Initial key press + key_name = KEY_NAMES.get(code, f"Key_{code}") + combo = format_combination(active_modifiers, key_name) + mods_list = list(active_modifiers) + out = { + "type": "press", + "key": key_name, + "combo": combo, + "code": code, + "is_modifier": code in MODIFIER_CODES, + "modifiers": mods_list, + "timestamp": int(time.time() * 1000), + } + print(json.dumps(out), flush=True) + + except Exception as exc: + err_out = { + "type": "error", + "error": "listener_crashed", + "message": str(exc) or "Listener loop crashed, restarting.", + } + print(json.dumps(err_out), flush=True) + finally: + for fd in list(fds.keys()): + try: + os.close(fd) + except Exception: + pass + fds.clear() + time.sleep(2) + + +if __name__ == "__main__": + main() diff --git a/keyviz/service.luau b/keyviz/service.luau new file mode 100644 index 00000000..982aee74 --- /dev/null +++ b/keyviz/service.luau @@ -0,0 +1,167 @@ +--!nonstrict + +local active = noctalia.getConfig("enabled_by_default") ~= false +local keys = {} +local lastPress = 0 +local lastWasModifier = false +local listenerRunning = false +local listenerPid: number? = nil + +noctalia.state.set("is_active", active) +noctalia.state.set("active_keys", {}) + +local script = `{noctalia.pluginDir()}/scripts/listener.py` + +local function openPanel() + if type(noctalia.runAsync) == "function" then + noctalia.runAsync("/usr/bin/noctalia msg panel-open h-jangra/keyviz:overlay", function() end) + end +end + +local function closePanel() + if type(noctalia.runAsync) == "function" then + noctalia.runAsync("/usr/bin/noctalia msg panel-close h-jangra/keyviz:overlay", function() end) + end +end + +local function clear() + keys = {} + lastWasModifier = false + lastPress = 0 + noctalia.state.set("active_keys", {}) + closePanel() +end + +local function decodeJson(str: string) + if type(json) == "table" and type(json.decode) == "function" then + return pcall(json.decode, str) + elseif type(noctalia.json) == "table" and type(noctalia.json.decode) == "function" then + return pcall(noctalia.json.decode, str) + end + return false, nil +end + +local function stopListener() + if listenerPid and type(noctalia.runAsync) == "function" then + noctalia.runAsync(`kill -TERM {listenerPid}`, function() end) + listenerPid = nil + end + + if type(noctalia.runAsync) == "function" then + noctalia.runAsync(`pkill -TERM -f "{script}"`, function() end) + end + + listenerRunning = false + clear() +end + +local function startListener() + if listenerRunning then + return + end + + listenerRunning = true + + noctalia.runStream(`python3 -u "{script}"`, function(line) + local ok, event = decodeJson(line) + + if not ok or type(event) ~= "table" then + return + end + + if type(event.pid) == "number" then + listenerPid = event.pid + end + + if event.type == "release" then + if not event.modifiers or #event.modifiers == 0 then + lastWasModifier = false + end + return + end + + if event.type ~= "press" or not active then + return + end + + local mods = event.modifiers or {} + + if noctalia.getConfig("show_modifiers_only") == true and #mods == 0 then + return + end + + local combo = event.combo or event.key + local isMod = event.is_modifier == true + + if isMod then + if lastWasModifier and #keys > 0 then + keys[#keys] = combo + else + table.insert(keys, combo) + end + lastWasModifier = true + else + if lastWasModifier and #keys > 0 then + keys[#keys] = combo + else + table.insert(keys, combo) + end + lastWasModifier = false + end + + local maxKeys = noctalia.getConfig("max_keys") or 4 + + while #keys > maxKeys do + table.remove(keys, 1) + end + + lastPress = noctalia.nowMs() + + local copy = {} + + for _, key in ipairs(keys) do + table.insert(copy, key) + end + + noctalia.state.set("active_keys", copy) + openPanel() + end) +end + +noctalia.state.watch("is_active", function(value) + active = value == true + + if active then + startListener() + else + stopListener() + end +end) + +function onIpc(event: string, _payload: any) + if event == "toggle" then + noctalia.state.set("is_active", not active) + elseif event == "enable" then + noctalia.state.set("is_active", true) + elseif event == "disable" then + noctalia.state.set("is_active", false) + elseif event == "clear" then + clear() + end +end + +function onExit() + stopListener() +end + +noctalia.setUpdateInterval(50) + +function update() + if #keys > 0 and noctalia.nowMs() - lastPress >= (noctalia.getConfig("timeout_ms") or 500) then + clear() + end +end + +if active then + startListener() +end diff --git a/keyviz/shortcut.luau b/keyviz/shortcut.luau new file mode 100644 index 00000000..181689f4 --- /dev/null +++ b/keyviz/shortcut.luau @@ -0,0 +1,29 @@ +--!nonstrict + +local active = noctalia.state.get("is_active") ~= false + +local function render() + shortcut.setLabel(active and "Keyviz On" or "Keyviz Off") + shortcut.setIcon(active and "keyboard" or "keyboard-off") + shortcut.setActive(active) +end + +noctalia.state.watch("is_active", function(value) + active = value == true + render() +end) + +function onClick() + active = not active + noctalia.state.set("is_active", active) + if active and type(noctalia.runAsync) == "function" then + noctalia.runAsync("/usr/bin/noctalia msg panel-open h-jangra/keyviz:overlay", function() end) + end + render() +end + +function onRightClick() + onClick() +end + +render() diff --git a/keyviz/thumbnail.webp b/keyviz/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..79462437544c1ad6b04f5046c5f1c50adeb6cabc GIT binary patch literal 32422 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 Date: Sun, 23 Aug 2026 15:56:34 +0530 Subject: [PATCH 2/3] update readme/toml & listener.py --- keyviz/README.md | 72 ++++++++++++++++++-------------------- keyviz/plugin.toml | 4 +-- keyviz/scripts/listener.py | 3 +- 3 files changed, 38 insertions(+), 41 deletions(-) diff --git a/keyviz/README.md b/keyviz/README.md index 08052a2a..8b525017 100644 --- a/keyviz/README.md +++ b/keyviz/README.md @@ -1,42 +1,48 @@ -# Keyviz (Key Visualizer) +# Key Visualizer -A minimal, real-time floating on-screen keystroke visualizer HUD for [Noctalia](https://noctalia.dev). Displays typed keys and modifier combinations (e.g. `Ctrl + Shift + P`, `Super + Space`, `Alt + Tab`) as translucent, blurred glass keycaps directly on your screen with zero typing latency. +A minimal, real-time floating on-screen keystroke visualizer HUD for Noctalia. Displays typed keys and modifier combinations as translucent, blurred glass keycaps directly on your screen. -## Features +## Plugin -- **Floating On-Screen HUD**: Minimal translucent glass keycaps floating at the bottom-center of your screen. -- **Zero Background When Idle**: Automatically renders transparent when not typing—no lingering boxes or frames. -- **Zero Typing Interference**: Runs in a non-focusing layer (`keyboard_focus = "none"`), ensuring uninterrupted continuous typing. -- **Split Keycap Design**: Combinations like `Ctrl + Shift + P` are rendered as distinct, elevated keycaps with clean typography. -- **Bar Widget**: Status icon on your Noctalia bar with one-click toggle to show/hide and enable/disable overlay visualizer. -- **Control Center Shortcut**: Quick-toggle tile to easily pause and resume key visualizer at any time. -- **Customizable In Settings**: - - Inner overlay padding (`0px` – `30px`). - - Keycap margin gap (`0px` – `30px`). - - Inactivity timeout slider (`200ms` – `5000ms`). - - Max key combinations (`1` – `8`). - - Font size (`Small`, `Medium`, `Large`). - - Visual style (`Glass (Blurred)`, `Solid Surface`, `Accent Outline`). - - Shortcuts-only filter (Ctrl/Alt/Shift/Super). +| Field | Value | +| --- | --- | +| ID | `h-jangra/keyviz` | +| Entries | Bar widget: `widget`; panel: `overlay`; shortcut: `toggle`; service: `keylistener` | -## Prerequisites & Permissions +## Requirements -On Linux (Wayland / Hyprland), capturing global keystrokes requires read access to `/dev/input/event*` devices. +- `python3` on `PATH` (used by the background event listener service). +- Linux user in the `input` group to read `/dev/input/event*` devices: + ```sh + sudo usermod -a -G input $USER + ``` + *(Note: Log out and log back in for group membership to take effect).* -Add your user to the `input` group: +## Usage + +### Panel + +Toggle the key visualizer overlay HUD directly via IPC: ```sh -sudo usermod -a -G input $USER +noctalia msg panel-toggle h-jangra/keyviz:overlay ``` -> **Note:** Log out and log back in (or restart your session) for the group membership to take effect. +### Bar Widget & Shortcut + +- **Bar Widget (`widget`)**: Add `h-jangra/keyviz:widget` to your bar items in Noctalia settings to get a quick visual status icon and toggle button. +- **Control Center Shortcut (`toggle`)**: Add `h-jangra/keyviz:toggle` to your control center shortcuts to pause or resume key visualization. -## Installation & Activation +### IPC Commands -Enable the plugin in Noctalia: +Control the listener service dynamically: ```sh -noctalia msg plugins enable h-jangra/keyviz +# Toggle key visualizer on/off +noctalia msg plugin h-jangra/keyviz:keylistener all toggle + +# Clear currently displayed keys +noctalia msg plugin h-jangra/keyviz:keylistener all clear ``` ## Settings @@ -48,22 +54,12 @@ Configure Keyviz in **Noctalia Settings → Plugins → Key Visualizer**: | `enabled_by_default` | `bool` | `true` | Start visualizer automatically when Noctalia starts. | | `padding` | `int` | `6` | Internal padding spacing inside overlay around keycaps (`0` – `30`). | | `margin` | `int` | `6` | Spacing gap between visualized key combinations (`0` – `30`). | -| `timeout_ms` | `int` | `500` | Inactivity duration (ms) before keys disappear. | -| `max_keys` | `int` | `4` | Maximum number of key combinations to display. | +| `timeout_ms` | `int` | `500` | Inactivity duration (ms) before keys disappear (`200` – `5000`). | +| `max_keys` | `int` | `4` | Maximum number of key combinations to display (`1` – `8`). | | `font_size` | `select` | `medium` | Text size of keycaps (`small`, `medium`, `large`). | | `badge_style` | `select` | `glass` | Visual style (`glass`, `solid`, `accent`). | | `show_modifiers_only` | `bool` | `false` | Only visualize combinations with Ctrl, Alt, Shift, or Super. | -## IPC Commands - -```sh -# Toggle key visualizer on/off -noctalia msg plugin h-jangra/keyviz:keylistener all toggle - -# Clear currently displayed keys -noctalia msg plugin h-jangra/keyviz:keylistener all clear -``` - ## License -MIT © [Himanshu Jangra](https://github.com/h-jangra) +MIT diff --git a/keyviz/plugin.toml b/keyviz/plugin.toml index 44d8ce96..78aa000b 100644 --- a/keyviz/plugin.toml +++ b/keyviz/plugin.toml @@ -4,8 +4,8 @@ version = "0.1.0" plugin_api = 13 author = "h-jangra" license = "MIT" -dependencies = [] -tags = ["utility", "input", "visualizer", "overlay", "key"] +dependencies = ["python3"] +tags = ["utility", "bar", "service", "shortcut", "panel"] icon = "keyboard" description = "Real-time floating on-screen keystroke visualizer for Noctalia." diff --git a/keyviz/scripts/listener.py b/keyviz/scripts/listener.py index 5251b840..9160ed33 100644 --- a/keyviz/scripts/listener.py +++ b/keyviz/scripts/listener.py @@ -114,7 +114,7 @@ 96: "KP Enter", 97: "Ctrl", 98: "KP /", - 99: "SysRq", + 99: "Print", 100: "Alt", 102: "Home", 103: "Up", @@ -148,6 +148,7 @@ 192: "F22", 193: "F23", 194: "F24", + 210: "Print", } MODIFIER_CODES = { From 9a946d0bd45523677c71bccec5d388f1ae0781c4 Mon Sep 17 00:00:00 2001 From: Himanshu <75300696+h-jangra@users.noreply.github.com> Date: Sun, 23 Aug 2026 16:20:18 +0530 Subject: [PATCH 3/3] update thumbnail --- keyviz/thumbnail.webp | Bin 32422 -> 45094 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/keyviz/thumbnail.webp b/keyviz/thumbnail.webp index 79462437544c1ad6b04f5046c5f1c50adeb6cabc..b0996b7ac114d2def33d1d47df9fa9b73fb02ad6 100644 GIT binary patch literal 45094 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

w!4fLp+tfA%eNZ?gzO?ZTTq^0>Df)+Scl*M4| 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