aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Hovorka <[email protected]>2023-05-01 14:11:41 -0600
committerAlexis Hovorka <[email protected]>2023-05-01 14:11:41 -0600
commit7afa24fc137884edd77925d10ab928cd1cc3adc0 (patch)
tree202e73f9507ff11098849bf72ba0d8a8df01d7ba
parent6d21e6a94fbcc061966a5b3850477202e868a912 (diff)
[feat] Add reference bar to tmux
-rw-r--r--.gitignore1
-rw-r--r--base/tmux.conf1
-rw-r--r--base/tmux/hints138
-rwxr-xr-xbase/tmux/status19
4 files changed, 158 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 81e0b3d..1752e4a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
.dot.args
+base/tmux/hint
diff --git a/base/tmux.conf b/base/tmux.conf
index c432390..ef3a2c3 100644
--- a/base/tmux.conf
+++ b/base/tmux.conf
@@ -90,6 +90,7 @@ bind -r "<" swapw -d -t -1
bind -r ">" swapw -d -t +1
bind T run "bash ~/.tmux/status toggle-task"
+bind H run "bash ~/.tmux/status toggle-hint"
#bind -T root F12 \
# set prefix None \;\
diff --git a/base/tmux/hints b/base/tmux/hints
new file mode 100644
index 0000000..9a83fc4
--- /dev/null
+++ b/base/tmux/hints
@@ -0,0 +1,138 @@
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] s list sessions
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] $ rename session
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] D detach other
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] () switch session
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] w list windows
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] Tab recent window
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] ^O rotate panes
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] o recent pane
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] q pane number
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] {} swap pane
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] ! pane->window
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] eE sync input
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] # list paste bufs
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] = choose paste buf
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] - del paste buf
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] <spc> layout
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] T show tasks
+#[fg=colour19]#[bg=colour19,fg=colour7] tmux #[fg=colour18]#[fg=colour20,bg=colour18] H show hints
+#[fg=colour19]#[bg=colour19,fg=colour7] bash #[fg=colour18]#[fg=colour20,bg=colour18] !! last cmd
+#[fg=colour19]#[bg=colour19,fg=colour7] bash #[fg=colour18]#[fg=colour20,bg=colour18] !$ last args
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] B gE E W
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] | go to col
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] -+ prev/next line
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ma 'a :marks
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] '' jump back
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] '. to last edit
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^o prev mark
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] gd gD to def
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] () sentence
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] {} paragraph
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] [{ ]} c-block
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] [( ]) p-block
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] vas sentence
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] vap paragraph
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] d3a( d/foo
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] d_ = dd
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] 0d^ unindent
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] c% func call
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] gu_ lowercase ln
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] R replace mode
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] X backspace
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ZZ :x ≈ :wq
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ZQ :q!
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] zi invert folds
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] zr reduce fold
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] zm fold more
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^w^w cycle
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^w_ maximize
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^w= equalize
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^w +-<> resize
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^w HJKL move to edge
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^w rR rotate
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^w x swap panes
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^w T pane->tab
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^w c :close
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^w o :only
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] :set lines= columns=
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^] follow help tag
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] I: ^d ^t indent
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] :retab :ret
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] "ayy "ap :reg
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^r+ paste from sys
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] g; g, :changes
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] g+ g- time travel
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] vim *; :n :bn
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] vim *; :split
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] vim *; :tab all
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] :1,$v/re/p
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] :1,$g/re/m
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] :%%g/foo/s/bar/baz/g
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] :r filename :r!cmd
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] !G shellcmd
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] :%!fold {!}fmt
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] :r!wget :r!lynx :r!ssh
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] :set ff={dos,unix}
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] :w ++ff=unix
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] I: ^w ^u del word/ln
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] I:^o oneshot n-mode
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] I:^r=5+10
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] I:^r%/ fname, search
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] I: ^x^y ^x^e scroll
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] I: ^p ^n autocomplete
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] :set complete-=i
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] :set complete-=t
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^x^s autocomp fname
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^x^s spellcheck
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^x^k dictionary
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^x^t thesaurus
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] set spelllang=en_US
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ]s [s next/prev spell
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] z= spell suggest
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] zg good->dict
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] zG good for session
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] zug spell undo good
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] zw wrong->dict
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] zW wrong for session
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] zuw spell undo wrong
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] :spellr unmark all
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] g^G word count
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] vim -b *.bin
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ga show hex
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] 123go to byte
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] set display=uhex
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ,H ,N ,qr
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ,ft fold tag
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ,vp select pasted
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] gv select prev area
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] [<sp> ]<sp> blank ln
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ]p autoindent paste
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] Q hardwrap
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] V:s/=/=<spc…>/ dwj.
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k,. ellipsis
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^kDG degrees
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^kSE section
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^kPI paragraph
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k/- dagger
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k/= dbl dagger
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k.M middle dot
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^koo bullet
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k.P dot operator
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k:x umlaut
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k-N en dash
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k-M em dash
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k'6 lsquo
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k'9 rsquo
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k"6 ldquo
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k"9 rdquo
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k1' prime
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k2' dbl prime
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^kOm ohms
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^kTM trademark
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k-! up arrow
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k-v down arrow
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^kOb composition
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k?2 approx
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^k</ ^k/> big abrk
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] ^kOK ^kXX
+#[fg=colour19]#[bg=colour19,fg=colour7] vim #[fg=colour18]#[fg=colour20,bg=colour18] box-drawing digraphs
diff --git a/base/tmux/status b/base/tmux/status
index e96d10c..6643d46 100755
--- a/base/tmux/status
+++ b/base/tmux/status
@@ -6,6 +6,13 @@ if [[ "$1" = "toggle-task" ]]; then
else
tmux setenv TMUX_SHOW_TASK 1
fi
+
+elif [[ "$1" = "toggle-hint" ]]; then
+ if tmux showenv TMUX_SHOW_HINT &>/dev/null; then
+ tmux setenv -u TMUX_SHOW_HINT
+ else
+ tmux setenv TMUX_SHOW_HINT 1
+ fi
fi
STATUS="#[bg=colour$HOST_COLOR]#[fg=black] $SHORT_HOSTNAME"
@@ -22,12 +29,22 @@ if tmux showenv TMUX_SHOW_TASK &>/dev/null; then
rc.report.x.sort=start-,urgency- x | head -n1 | xargs)"
if [[ "$TASKCTX" ]]; then
- TASKCOUNT="#[fg=colour19]#[bg=colour19,fg=colour7] $TASKCTX: $TASKCOUNT #[fg=colour18]#[bg=colour18]#[fg=colour20]"
+ TASKCOUNT="#[fg=colour19]#[bg=colour19,fg=colour7] $TASKCTX: $TASKCOUNT #[fg=colour18]#[fg=colour20,bg=colour18]"
else
TASKCOUNT="#[fg=colour8]#[fg=colour20] $TASKCOUNT #[fg=colour8]#[fg=colour20]"
fi
TASKLINE="$TASKCOUNT $TOPTASK. $(task $TASKCFG _get ${TOPTASK}.description) "
+
+elif tmux showenv TMUX_SHOW_HINT &>/dev/null; then
+ HINTF="$(dirname "$0")/hint"
+ HINTS="${HINTF}s"
+ if [[ "$(find "$HINTF" -mmin +2)" ]]; then
+ grep -v '^//' "$HINTS"* | shuf | head -n1 >"$HINTF"
+ fi
+
+ TASKLINE="$(cat "$HINTF")"
+
else TASKLINE=""; fi
STATUS="$TASKLINE#[fg=colour19]#[bg=colour19,fg=colour7] %a %m.%d %R"