histui

module
v0.0.2-0a757c6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 27, 2025 License: MIT

README

histui

Build Release Latest Tag

A terminal UI for browsing and managing notification history on Linux desktops.

Features

  • Browse notification history from dunst (more daemons planned)
  • Search notifications by app, summary, or body
  • Copy notification content to clipboard
  • Dismiss or permanently delete notifications
  • Persistent history across sessions
  • Vim-style keybindings

Quick Start

Download the latest release binary and run:

# Launch the TUI
./histui

# Or import and list notifications via CLI
./histui get

Keybindings

Key Action
j/k or arrows Navigate up/down
enter View notification details
/ Search
d Dismiss/undismiss notification
D Delete permanently
a Toggle showing dismissed
c Copy body to clipboard
s Copy summary to clipboard
? Show help
q Quit

Configuration

Configuration file is created at ~/.config/histui/config.toml on first run.

History is stored at ~/.local/share/histui/history.jsonl.

Waybar Integration

histui includes a status command for Waybar integration. See contrib/waybar for full examples.

"custom/notifications": {
  "exec": "histui status --all --since 24h",
  "interval": 5,
  "return-type": "json",
  // Middle click: floating TUI
  "on-click-middle": "hyprctl dispatch exec '[float;size 900 600;center] kitty --class histui-float -e histui'",
  // Right click: dmenu picker (copies body to clipboard)
  "on-click-right": "histui get | fuzzel -d | cut -d'|' -f1 | xargs histui get --field body | wl-copy"
}

License

MIT License - see LICENSE for details.

Directories

Path Synopsis
cmd
histui command
Package main is the entrypoint for histui CLI.
Package main is the entrypoint for histui CLI.
internal
adapter/input
Package input provides input adapters for notification sources.
Package input provides input adapters for notification sources.
adapter/output
Package output provides output formatters for notifications.
Package output provides output formatters for notifications.
config
Package config handles configuration file loading and parsing.
Package config handles configuration file loading and parsing.
core
Package core provides filtering, sorting, and lookup logic.
Package core provides filtering, sorting, and lookup logic.
model
Package model defines the core data structures for histui.
Package model defines the core data structures for histui.
store
Package store provides the history store for notifications.
Package store provides the history store for notifications.
tui
Package tui provides the BubbleTea-based terminal user interface.
Package tui provides the BubbleTea-based terminal user interface.
specs
001-notification-history-browser/contracts
Package contracts defines the interfaces for histui.
Package contracts defines the interfaces for histui.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL