@hackage tui-launcher0.0.1

Small Brick-based terminal launcher

tui-launcher

Hackage

Small Brick-based terminal launcher for shell commands. It reads a TOML config, shows a keyboard-driven tile menu, and replaces itself with the selected command.

Screenshots

Both dark and light terminal styles are shown in square and vertical layouts.

Dark square screenshot

Dark vertical screenshot

Light square screenshot

Light vertical screenshot

Installation

Install from Hackage:

cabal install tui-launcher

Or download the latest release binary from GitHub Releases and put it on your PATH:

curl -Lo tui-launcher \
  https://github.com/TharkunAB/tui-launcher/releases/latest/download/tui-launcher-linux-x86_64
chmod +x tui-launcher
install -Dm755 tui-launcher ~/.local/bin/tui-launcher

Then run:

tui-launcher

On first launch, tui-launcher creates ~/.config/tui-launcher/config.toml if it does not already exist.

Features

  • Arrow keys and hjkl move the selection
  • Enter launches the selected entry
  • Mouse click launches an entry and mouse wheel scrolls
  • Dedicated Exit button at the bottom of the launcher
  • Optional per-entry color for tile text
  • Per-entry working-dir, shell-program, and shell-login
  • Auto-created default config at ~/.config/tui-launcher/config.toml
  • Uses your terminal's default colors

Configuration

Use the default config path:

tui-launcher

Or point at an explicit file:

tui-launcher --config /path/to/config.toml

Example config:

[layout]
tile-width = 20
tile-height = 5
tile-spacing = 1

# [shell]
# program = "/bin/bash"
# login = false

[[entries]]
name = "Shell"
command = "exec \"${SHELL:-/bin/sh}\""
color = "bright-blue"

[[entries]]
name = "nvim"
command = "nvim"
color = "blue"
working-dir = "~/Code"

[[entries]]
name = "Codex"
command = "codex"
color = "bright-magenta"

[[entries]]
name = "Claude"
command = "claude"
color = "orange"

[[entries]]
name = "Tmux"
command = "tmux"
color = "cyan"
working-dir = "~/Code/project"
shell-program = "/bin/zsh"
shell-login = true

Layout settings:

  • tile-width: positive integer, default 20
  • tile-height: positive integer, default 5
  • tile-spacing: non-negative integer, default 1

Shell resolution order:

  • entries.shell-program
  • [shell].program
  • $SHELL
  • /bin/sh

Relative working-dir resolution:

  • default config: relative to $HOME
  • --config /path/to/config.toml: relative to that config file's directory

Supported entry colors:

  • black
  • red
  • orange
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white
  • bright-black
  • bright-red
  • bright-green
  • bright-yellow
  • bright-blue
  • bright-magenta
  • bright-cyan
  • bright-white

Development

Use the provided Nix shell for the project toolchain:

nix-shell

Common commands:

make build
make test
make lint
nix-shell --command "make snapshots"