This repository provides a comprehensive, self-contained tmux configuration known as 'Oh my tmux!'. It is a single `.tmux.conf` file with an embedded shell script that dynamically applies themes, key bindings, pane management, status line widgets (battery, uptime, load average, SSH-aware hostname/username), clipboard integration, and plugin management via tpm. The configuration is highly customizable through a separate `.tmux.conf.local` file. The code demonstrates advanced tmux scripting techniques, including conditional version checks, Unicode escape handling, and background processes for status updates. While the configuration is tightly coupled to tmux and not reusable as a standalone library, the shell functions for battery bars, uptime, and SSH detection exhibit high craftsmanship and could inform similar tmux configurations. The repository also includes an install script and detailed documentation.
tmux-which-key is a tmux plugin that provides a customizable popup menu for executing tmux commands and user-defined macros. The plugin architecture centers around a YAML configuration file that defines menu structure, keybindings, and macros, which is processed by a Python build script to generate tmux initialization code. At runtime, the plugin uses tmux's display-menu command to show nested menus and executes commands via command-aliases for performance. The plugin supports XDG directory compliance for immutable systems like NixOS and offers both YAML-based configuration (requiring Python) and direct tmux script editing alternatives. Key features include transient menus (that stay open for repeated commands), user macros (chained commands), and integration with TPM for plugin management.