No description
- Go 52.1%
- Shell 47.9%
| bin | ||
| go | ||
| .gitignore | ||
| pika.tmux | ||
| readme.md | ||
tmux-pika
Customizable tmux status line with modular widgets.
Installation (TPM)
set -g @plugin "https://git.k4li.de/pika/tmux-pika.git"
Auto-builds Go binary on install if go available. Falls back to shell scripts otherwise.
Module control
# Comma-separated list. Order determines display order.
# Modules: git, battery, clock, hostname, uptime, diskspace, ip, hostname-ip, ip-hostname
set -g @pika-modules:right "git,hostname-ip,battery,uptime,clock,diskspace"
# Disable completely:
set -g @pika-modules:right "none"
Each module also respects its own @pika-show:<name> toggle (secondary gate):
| Module | @pika-show:* default |
Description |
|---|---|---|
| git | false | Branch, diff stats, remote sync |
| battery | false | Charge percentage with icon |
| clock | true | Time + optional date |
| hostname | true | Machine hostname |
| uptime | false | System uptime |
| diskspace | false | Available disk space |
| ip | false | Network IP address |
| hostname-ip | true | Alternates hostname/IP every n seconds |
| ip-hostname | true | Alias for hostname-ip |
Example:
set -g @pika-show:git true
set -g @pika-show:battery true
Theme
set -g @pika-theme "tokyonight"
# Options: tokyonight, gruvbox, oldschool (or 8bit/retro)
set -g @pika-tmux_transparent true # makes background transparent
Number styles (window/pane index)
set -g @pika-style:window "digital" # legacy — use format names below
set -g @pika-style:pane "hsquare"
set -g @pika-style:zoom "dsquare"
| Format | Example |
|---|---|
| hsquare | |
| fsquare | |
| dsquare | |
| super | ¹² |
| sub | ₁₂ |
| arabic | 12 |
| earabic | ١٢ |
| none/hide | (hidden) |
Icons
set -g @pika-tmux_terminal_icon "" # inactive window icon
set -g @pika-tmux_active_terminal_icon "" # active window icon
set -g @pika-icon:prefix-on ""
set -g @pika-icon:prefix-off ""
set -g @pika-icon:clock " "
set -g @pika-icon:date " "
set -g @pika-icon:hostname " "
set -g @pika-icon:ip " "
set -g @pika-icon:uptime ""
Per-module settings
clock
set -g @pika-clock:format "24H" # 24H, 24HS, 12H, 12HS
set -g @pika-clock:date-format "" # "" (none), D, DM
set -g @pika-color:clock "purple" # theme color name or #hex
hostname
set -g @pika-color:hostname "aqua" # theme color name or #hex
set -g @pika-icon:hostname " "
ip
set -g @pika-show:ip true
set -g @pika-color:ip "green" # theme color name or #hex
set -g @pika-icon:ip " "
hostname-ip / ip-hostname
Combined module. Alternates between hostname and IP every @pika-animation:speed seconds.
Shows user@host style when connected via SSH.
set -g @pika-show:hostname-ip true
set -g @pika-color:hostname "aqua" # theme color name or #hex
set -g @pika-color:ip "green" # theme color name or #hex
set -g @pika-icon:hostname " "
set -g @pika-icon:ip " "
set -g @pika-animation:speed 8 # alternation interval (seconds, min: tmux status-interval)
battery
set -g @pika-battery "BAT0" # auto-detected if unset
set -g @pika-battery:low 20 # low threshold percent
Reads /sys/class/power_supply/BAT* (Linux) or pmset (macOS).
uptime
set -g @pika-color:uptime "white" # theme color name or #hex
set -g @pika-icon:uptime "" # optional prefix icon
diskspace
set -g @pika-diskspace:show-mount "true" # show mount point path
set -g @pika-diskspace:color "bpurple" # color for normal state
git
set -g @pika-show:git true
``` Shows branch, staged/unstaged changes, insertions/deletions, untracked files, and remote sync status.
Auto-fetches every 5 minutes to check remote ahead/behind.
## Architecture
`bin/pika-modules` is a Go binary built from `go/`. Single invocation per status-interval replaces 6 shell scripts. Modules run in parallel via goroutines. Graceful fallback to shell scripts if binary unavailable.
## Color reference
| Key | gruvbox | tokyonight | oldschool |
|------------|-----------|------------|------------|
| background | `#1b1b1b` | `#24283b` | `#0d0d0d` |
| foreground | `#fbf1c7` | `#a9b1d6` | `#c0c0c0` |
| black | `#1b1b1b` | `#1f2335` | `#000000` |
| blue | `#458588` | `#7aa2f7` | `#29adff` |
| aqua | `#689d6a` | `#7dcfff` | `#00e4b5` |
| green | `#98971a` | `#9ece6a` | `#00e436` |
| purple | `#b16286` | `#bb9af7` | `#b378ff` |
| red | `#cc241d` | `#f7768e` | `#ff3355` |
| white | `#fbf1c7` | `#a9b1d6` | `#bcbcbc` |
| yellow | `#d79921` | `#e0af68` | `#ffe000` |
| bblack | `#181818` | `#292e42` | `#161616` |
| bblue | `#83a598` | `#565f89` | `#6fc0ff` |
| baqua | `#8ec07c` | `#73daca` | `#5fffd7` |
| bgreen | `#b8bb26` | `#b4f9f8` | `#5ff75f` |
| bpurple | `#d3869b` | `#9d7cd8` | `#c999ff` |
| bred | `#fb4934` | `#ff757f` | `#ff5577` |
| bwhite | `#EBDBB2` | `#787c99` | `#e8e8e8` |
| byellow | `#fabd2f` | `#ff9e64` | `#ffec4d` |
| ghgreen | `#b8bb26` | `#9ece6a` | `#00e436` |
| ghpurple | `#d3869b` | `#bb9af7` | `#b378ff` |
| ghred | `#fb4934` | `#f7768e` | `#ff3355` |
| ghyellow | `#fabd2f` | `#e0af68` | `#ffe000` |