diff options
author | Julio Capote <jcapote@gmail.com> | 2023-01-24 03:20:47 +0000 |
---|---|---|
committer | Julio Capote <jcapote@gmail.com> | 2023-01-24 03:20:47 +0000 |
commit | f24f2d15275961f1c0144e68fde75a60aeaaa165 (patch) | |
tree | 38be1626f3ade436fbd17eadb2753fa2f0effb37 /content/blog/2014-02-24-tmux-session-coloring.markdown | |
parent | bf04383b34c4a4fdfe239de2805a30a051921002 (diff) | |
download | capotej.com-f24f2d15275961f1c0144e68fde75a60aeaaa165.tar.gz |
move to bear theme
Diffstat (limited to 'content/blog/2014-02-24-tmux-session-coloring.markdown')
-rw-r--r-- | content/blog/2014-02-24-tmux-session-coloring.markdown | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/content/blog/2014-02-24-tmux-session-coloring.markdown b/content/blog/2014-02-24-tmux-session-coloring.markdown new file mode 100644 index 0000000..5509f1c --- /dev/null +++ b/content/blog/2014-02-24-tmux-session-coloring.markdown @@ -0,0 +1,38 @@ +--- +title: "Tmux Session Coloring" +date: 2014-02-24T00:00:00Z +comments: true +tags: ["shell scripting", "tmux"] +--- + +Recently, I've really gotten into tmux for managing all my terminal sessions/windows. Not so much for the panes, but more for keeping a highly contextual environment per project or task. + +As the number of sessions grew, they became difficult to tell apart. For a few days now, I've had the idea of hashing the name of the session into a unique color, so that every session had its own `status-bg` color. + +First, the `tmuxHashColor` function: + +```sh +tmuxHashColor() { + local hsh=$(echo $1 | cksum | cut -d ' ' -f 1) + local num=$(expr $hsh % 255) + echo "colour$num" +} +``` + +In our `ns` function (new session), we hash the supplied session name to a color, then use `tmux send-keys` to set its `status-bg` color to it: + +```sh +ns() { + if [ -z $1 ]; then + 1=$(basename $(pwd)) + fi + tmux new-session -d -s $1 + local color=$(tmuxHashColor $1) + tmux send-keys -t $1 "tmux set-option status-bg $color" C-m + tmux send-keys -t $1 "clear" C-m + tmux attach -t $1 +} + +``` + +Now every session has it's own distinct `status-bg` color! |