No description
  • Go 52.1%
  • Shell 47.9%
Find a file
2026-06-22 19:55:35 +02:00
bin removing the binary 2026-06-21 10:47:09 +02:00
go adding detection for ssh 2026-06-22 19:41:14 +02:00
.gitignore removing the binary again 2026-06-21 10:48:45 +02:00
pika.tmux adding build message 2026-06-22 19:55:35 +02:00
readme.md fixing time based animations? 2026-06-21 11:26:07 +02:00

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`  |