Skip to main content

InputBar 2.0.1

· One min read

Fixes

  • WinKeyHook launch fallback: daemon startup now tries three strategies in order — (1) Task Scheduler task WinKeyHook (silent, no UAC prompt), (2) direct process launch (works when exe carries no requireAdministrator manifest), (3) ShellExecute runas (shows UAC prompt once as last resort). Previous behaviour used only strategy 2, causing silent failure on hardened systems.

Downloads

View on GitHub

InputBar 2.0.0

· 2 min read

Breaking Changes

  • IPC protocol: plain-text SHOW / SEARCH:text still accepted (backward-compatible). New JSON envelope format introduced: {"protocol": 1, "command": "show", "args": {}}. Old scripts continue to work unchanged.
  • Dev mode data path: generated data now routes to src/gen/Data/ instead of src/Data/. A one-time migration runs automatically on first launch.
  • --verbose flag: new CLI flag to enable DEBUG logging in compiled mode.

Improvements

  • Logging: timestamped format [YYYY-MM-DD HH:MM:SS.mmmZ] [LEVEL] [module]. Bootstrap log at %TEMP%\InputBar\bootstrap.log active before path resolution. Log rotation (5 MB max, 3 files kept). Levels: DEBUG / INFO / WARN / ERROR / FATAL.
  • Crash handler: unhandled exceptions now write a InputBar_crash_<timestamp>.log to %TEMP% before exiting.
  • Atomic config writes: Settings.json, hotkeys.json, Plugins.json now written via temp+rename to prevent corruption on crash.
  • Schema versioning: Settings.json and hotkeys.json carry a schema_version field enabling structured migrations.
  • Graceful shutdown: SIGTERM / SIGINT handled. Plugins teardown() called in reverse load order. 5-second hard timeout on shutdown.
  • WinKeyHook install prompt: user is asked before installing WinKeyHook. SHA-256 integrity check runs if a hash is configured in build/project.json.
  • Path traversal guard: ConfigDirectory values pointing at system directories are rejected.
  • Thread safety: _pipe_handle protected by a lock. Reader thread uses threading.Event stop flag.
  • IPC quit command: both plain-text QUIT and JSON {"command":"quit"} trigger a graceful shutdown.
  • Plugin teardown contract: plugins may expose teardown() -> None — called on shutdown.
  • Named constants: all magic timing/retry values named (no bare literals).
  • Type annotations: all public functions in Core modules annotated.
  • build/project.json: single source of truth for name, version, publisher, GUID. build_app.bat and CMakeLists.txt both read from it.
  • pyproject.toml: ruff linter configured for the project.
  • .docs/ARCHITECTURE.md: module map, startup sequence, directory layout.
  • .docs/DECISIONS.md: ADRs for all major technical choices.

Infrastructure

  • Git root: .git moved from src/ to project root (§3.1 compliance).
  • .gitignore: root-level gitignore added. build/, releases/, publish scripts, src/gen/, CONTEXT.md all excluded.
  • Dev data isolation: src/gen/ directory (gitignored) holds all dev-mode generated data.

Downloads

View on GitHub

InputBar 1.3.0

· One min read

WinKeyHook — External Daemon

The bundled winkey_hook.exe (previously shipped in Lib\Core\) has been removed and replaced by the WinKeyHook Daemon, an independent open-source tool available at: https://github.com/BlessEphraem/WinKeyHook

What changes for you:

  • The installer automatically removes the old Lib\Core\winkey_hook.exe if present.
  • On first launch, InputBar automatically installs the WinKeyHook Daemon if it is not already present (a UAC prompt will appear).
  • Once installed, InputBar launches the daemon automatically whenever a win, lwin, or rwin hotkey is configured.
  • If the daemon is already running (e.g. from another app), InputBar connects to it directly without re-launching it.

Downloads

View on GitHub

InputBar 1.2.4

· One min read

Data Directory Management

  • Choose your data location at install time — A new step in the installer lets you pick where InputBar stores its settings, themes and history. Leave it as-is to keep data in the install folder (default behaviour).
  • Config path change detection — If you redirect Path\Config.json to a new location and restart InputBar, a dialog will offer to move your existing data there automatically.
  • Old data cleanup — If you decline the move, a second dialog lets you delete the now-unused data instead of leaving it behind.
  • Dead data detection — On startup, if your active data directory differs from the install folder, InputBar checks for leftover Data\ and Plugins\ directories in the install folder and offers to remove them.

Downloads

View on GitHub

InputBar 1.2.2

· 2 min read

New Configuration Key - Per-plugin result limit

Each plugin now exposes a "limit" key in Plugins.json (default 15). Raise it to see more results per plugin, lower it for a tighter list.

Updated Plugin - Shell

  • Custom terminal emulators — Define any terminal (WezTerm, Alacritty, Windows Terminal…) in default_shell.json under "extra_shells" and use it as your default shell or as a per-entry prefix in favorites.data.
  • / keyword — Type / <command> as a shorter alternative to shell <command>.
  • Silent execution — Use extra_shells with cmd /c or PowerShell -WindowStyle Hidden to run commands without a visible window (see Shell docs for examples).
  • CWD fix — Shell commands now open in the user's home directory instead of InputBar's install folder.

Quick Fixes

  • App plugin — Auxiliary shortcuts (Help, Uninstall, ReadMe…) no longer appear in results. Get-StartApps, Start Menu .lnk files, and registry entries are now all filtered by name and target executable. Non-executable UWP entries (documents, text files…) registered via Get-StartApps are no longer indexed.
  • ListMax setting removed — superseded by MaxItemToShow in the theme. Existing Settings.json files are cleaned up automatically on first launch.

Downloads

View on GitHub