Compare commits

..

58 Commits

Author SHA1 Message Date
fa263fb95e Use powershell for system-info CPU temp on WSL
Replace the query of CPU temp from the OpenHardwareMonitor's JSON served
via the network on the Windows host with a call to powershell to instead
read the WMI objects that OpenHardwareMonitor also emits. This is more
robust since powershell.exe is always available and does not require
Windows Defender firewall rules to allow connections from WSL2's VM to
the Windows host.
2022-10-01 13:21:12 +01:00
d4c2af545d Add layout for the visor sessions 2022-09-20 18:56:25 +01:00
d4ab398e3b Reduce duplication in tasks file 2022-09-20 18:40:20 +01:00
1e14c8f9c6 Add session-created hook to automate session layouts 2022-09-20 13:37:51 +01:00
27025bffbd Remove tasks which now live externally 2022-09-20 13:31:42 +01:00
2050f4f130 Prevent mouse click release events from existing copy mode 2022-09-13 10:38:10 +01:00
fcb2b02eac Create system-info cache directory in WSL 2022-05-22 10:32:33 +01:00
fd76c97c85 Update logic for enabling WSL in left status 2022-03-06 17:17:17 +00:00
37e1195d66 Install gawk on Debian distros 2022-02-13 21:13:28 +00:00
bcc6dac2cc Add more info in WSL to left status 2022-02-10 22:25:36 +00:00
206aa05eee Fix increasing right status length in Linux 2022-02-08 23:49:59 +00:00
054b347595 Add hostname to left status and increase its length 2022-02-08 23:49:40 +00:00
32d0935e1c Don't exit copy-mode on yank with y 2022-01-07 13:10:23 +00:00
2a1453a061 Fix package become & use package name lists 2021-12-15 00:30:26 +00:00
1d5b0ed6aa Create layouts directory 2021-12-15 00:01:44 +00:00
aa010cbce6 Become when installing Debian packages 2021-12-14 23:56:34 +00:00
e912a5902b Begin adding WSL2 support for system-info 2021-11-28 11:40:23 +00:00
1389817cb4 Make system-info right status grey not white 2021-11-28 11:02:42 +00:00
19ec5794b6 Move main.yaml to tasks.yaml 2021-11-19 21:58:25 +00:00
f7b5a6259f Remove conduit config 2021-11-06 16:46:35 +00:00
a52bd76906 Start using Ansible for config management 2021-11-05 11:35:40 +00:00
21d1935ef3 Disable system-info service when WSL is detected 2021-07-11 14:06:22 +01:00
4b2e867721 Install sysstat and jq with dnf 2021-04-09 21:46:08 +01:00
f440e0c04d Fix system-info conduit command 2021-02-21 20:46:39 +00:00
67dc3dffaf Update system-info macOS user agent
Add CPU temperature to `status-info`, conditionally display battery
charge percentage, and documents the commands.
2021-02-17 20:49:29 +00:00
21a88edfaa Add system-info Linux systemd user unit
Update the `system-info` directory with the addition of a `systemd`
service file and an new Linux script to display current CPU temperature
and core/thread utilization. Update `.conduit.yaml` with addition
`apt` dependencies `sysstat` and `jq`. Update the install and remove
scripts to setup and tear down the `systemd` user unit. Lastly, decrease
the `tmux` status line update interval from 5 to 2 seconds.
2021-02-17 18:54:29 +00:00
d96a1b7438 Add system-info macOS user agent
The `system-info` directory contains scripts and configuration files to
install and remove a `launchd` user agent on macOS which collects
information about the system and outputs it to the file
`~/.cache/tmux/system-info`. This file is then read periodically by
`tmux` and the contents displayed in the status line.
2021-02-16 23:55:02 +00:00
1d2a5f249d Fix macOS battery percentage display 2021-02-16 22:11:05 +00:00
91118d58ac Don't map C-\ since I never use it 2021-02-08 22:36:26 +00:00
ed94650f54 Add Fedora support 2020-12-31 16:07:26 +00:00
ef4dddfd40 Add lightning bolt to macOS battery display 2020-12-03 22:36:30 +00:00
eda4a020bf Add visor.zsh for use with iTerm2
iTerm2 has tmux integration which I don't care for, this integration
mucks up using tmux as the shell for a profile. To work around this, the
`visor.zsh` script is used in the _Send text at start_ for the a Quake
style visor profile as follows:

```
source ~/.config/tmux/visor.zsh
```
2020-10-18 16:35:30 +01:00
24bdf7a404 Swap window-wide-left/window-wide-right 2020-05-06 11:19:46 +01:00
59bba33cf1 Add window-wide-{left,right} layouts 2020-05-06 10:56:22 +01:00
ee4e59b281 Improve vi mode word-separator settings 2020-04-02 15:08:00 +01:00
33e2f0f81b Fix unescaped backslash in binding config 2019-12-29 19:58:32 +00:00
d600c671ef Don't select pane first in layouts 2019-12-10 13:54:26 +00:00
0e67cca13b Add window-wide layout 2019-11-11 10:33:09 +00:00
20be7f3bcc Add urlscan as alternative to urlview
Since urlview is not available with pacman but urlscan is, first check
and integrate urlscan then fallback to urlview.
2019-09-17 22:13:02 +01:00
cabd57ae84 Add pacman package dependencies 2019-09-17 21:36:17 +01:00
cd1a73f304 Add battery percentage to status bar on macOS 2019-08-30 16:55:17 +01:00
b6ee1bb677 Emulate mouse scrolling for alternate buffers
For pagers such as `less` which don't support terminal mouse features
enable scrolling with the mouse wheel by emulating the behaviour using
`send-keys -t= {up,down}` when in alternate (fullscreen) mode.

These bindings retain the expected behaviour when using programs which
do support terminal mouse events and copy-mode.
2019-08-24 00:19:00 +01:00
720271baa5 Add session-main layout for basic sessions 2019-08-22 23:08:28 +01:00
6d07c00c2c Use xclip instead of xsel for yanking in copy mode
Sometimes when yanking large blocks of text from a pane larger than its
size in copy mode did not work. Switch to using `xclip` from `xsel` to
see if this works better.
2019-08-22 17:26:33 +01:00
28aa1795da Also install urlview
Ensure that the `C-u` binding works by installing `urlview` upon which
it depends.
2019-08-21 18:24:20 +01:00
b5526ca42b Remove zsh check from vim window flag
Make using the `@vim$TMUX_PANE` window flag much more robust by
unsetting it every time the zsh prompt is drawn and setting it again
using a `FocusGained` `autocmd` in vim. This removes the need for the
hacky check for zsh in the conditional defined in the `in_vim` variable.
2019-08-16 21:54:52 +01:00
43ce79c8c3 Fix in_vim to work on Linux Mint 18 2019-08-13 17:00:47 +01:00
56739ba2e7 Fix navigation annoyances
Fixes #6 by setting a window option called `vim$TMUX_PANE` during vim
setup, and removing it when vim exits:

```vim
if $TMUX !=# ''
  " Set tmux window option to detect when to change pane.
  let s:tmux_option = '@vim'.substitute($TMUX_PANE, '%', '\\%', 'g')
  call system('tmux set-window-option '.s:tmux_option.' 1')
  au VimLeave * call system('tmux set-window-option -u '.s:tmux_option)
endif
```

Then update the `is_vim` conditional shell statement to check if this
variables exists for the current pane to determine when to change tmux
pane or pass through the binding to vim.

```conf
in_vim='[[ "$(tmux show-window-options)" = *"@vim#{pane_id}"* ]] && \
        [[ "#{pane_current_command}" != zsh ]]'
```

Additionally check if the vim task has been backgrounded by comparing
the value of `#{pane_current_command}`, this is likely a bit brittle if
backgrounding is used heavily but works otherwise.
2019-08-11 18:42:57 +01:00
b47c74a33f Fix tmux 2.9 config issues & cleanup 2019-08-11 18:42:02 +01:00
25d7c10240 Fix pane navigation left in copy mode 2019-07-24 14:54:51 +01:00
943412c159 Increase terminal buffer limit 2019-07-24 14:21:36 +01:00
7cb6fec680 Fix C-h not selecting a pane in code-mode-vi 2019-07-14 21:20:27 +01:00
f9f72c13ba Use bind instead of bind-key 2018-08-28 21:48:14 +01:00
69ad546317 Use grey instead of blue for selection highlights 2018-08-26 20:28:05 +01:00
eafbe27379 Add symlink for window-tall layout 2018-08-26 18:37:30 +01:00
94ee8df2f9 Rename layout 2vt to window-tall 2018-08-26 18:34:08 +01:00
a180f60a98 Enable vi-mode yank on macOS 2018-08-26 17:35:48 +01:00
fdcf4c701c Add brew package 2018-08-25 15:10:40 +01:00
18 changed files with 288 additions and 63 deletions

View File

@@ -1,15 +0,0 @@
---
- location: ~/.config/tmux
- apt:
- libevent-dev
- ncurses-dev
- xsel
- repo:
- url: 'https://github.com/tmux/tmux.git'
location: ~/.local/src/tmux
branch: 2.6
actions:
- command: ./configure --prefix=$HOME/.local
- command: {install: make -j8 install, remove: make uninstall}
- symlink:
- {src: tmux.conf, dst: ~/.tmux.conf}

9
hooks/session-create.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
session_name=$(tmux display-message -p '#S')
session_layout=~/.local/share/tmux/layouts/session-$session_name
if [ -f $session_layout ]; then
tmux source-file $session_layout
else
tmux rename-window home
fi

7
layouts/session-local Normal file
View File

@@ -0,0 +1,7 @@
rename-window home
new-window -c ~/.config/local
rename-window local
move-window -s local:local -t 9
select-window -t local:home
# vim: filetype=tmux

4
layouts/session-main Normal file
View File

@@ -0,0 +1,4 @@
rename-session main
rename-window home
# vim: filetype=tmux

5
layouts/session-visor Normal file
View File

@@ -0,0 +1,5 @@
rename-window home
split-window -h htop
select-pane -t visor:home.1
# vim: ft=tmux

View File

@@ -1,4 +1,3 @@
# vim: ft=tmux # vim: ft=tmux
select-pane -t 0
split-window -v -p 34 split-window -v -p 34
select-pane -t 1 select-pane -t 1

3
layouts/window-wide-left Normal file
View File

@@ -0,0 +1,3 @@
# vim: ft=tmux
split-window -h -p 43
select-pane -t 1

View File

@@ -0,0 +1,3 @@
# vim: ft=tmux
split-window -h -p 57
select-pane -t 1

16
system-info/install.sh Executable file
View File

@@ -0,0 +1,16 @@
#!/usr/bin/env bash
script_dir=`dirname $0`
if [ `uname` = Darwin ]; then
cp $script_dir/system-info.plist ~/Library/LaunchAgents/system-info.plist
launchctl load -w ~/Library/LaunchAgents/system-info.plist
else
if [ "$WSL_DISTRO_NAME" = "" ]; then
cp $script_dir/system-info.service ~/.config/systemd/user/system-info.service
systemctl --user enable system-info
systemctl --user start system-info
else
echo -e "\033[0;33mwarning:\033[0m WSL detected, system-info systemd service disabled"
fi
fi

13
system-info/remove.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/usr/bin/env bash
if [ `uname` = Darwin ]; then
launchctl unload ~/Library/LaunchAgents/system-info.plist
rm ~/Library/LaunchAgents/system-info.plist
else
if [ "$WSL_DISTRO_NAME" = "" ]; then
systemctl --user stop system-info
systemctl --user disable system-info
else
echo -e "\033[0;33mwarning:\033[0m WSL detected, system-info systemd service disabled"
fi
fi

View File

@@ -0,0 +1,24 @@
#!/usr/bin/env bash
cache_dir=~/.cache/tmux
cache_file=$cache_dir/system-info
# Make sure the output directory exists.
if [ ! -d $cache_dir ]; then
mkdir -p $cache_dir
fi
# Cleanup cache file when interrupted.
trap '[ -f $cache_file ] && rm $cache_file; exit' INT
trap '[ -f $cache_file ] && rm $cache_file; exit' TERM
while true; do
# Parse the current CPU load on all cores/threads.
cpu_load=`mpstat -P ALL -n 1 -u 1 -o JSON | \
jq '.sysstat.hosts[0].statistics[0]["cpu-load"][1:]|.[].idle' | \
awk '$idle ~ /[-.0-9]*/ { printf "%s", substr("█▇▆▅▄▃▂▁ ", int($idle / 11), 1) }'`
# Parse the current CPU package temperature.
cpu_temp=`sensors coretemp-isa-0000 | awk 'NR == 3 { print substr($4, 2) }'`
# Write to the cache file.
echo "$cpu_temp $cpu_load" > $cache_file
done

32
system-info/system-info-WSL.sh Executable file
View File

@@ -0,0 +1,32 @@
#!/usr/bin/env bash
cache_dir=~/.cache/tmux
cache_file=$cache_dir/system-info
# Make sure the output directory exists.
if [ ! -d $cache_dir ]; then
mkdir -p $cache_dir
fi
if cat /proc/cpuinfo | grep -i intel > /dev/null; then
cpu_temp_sensor="/intelcpu/0/temperature/0"
elif cat /proc/cpuinfo | grep -i amd > /dev/null; then
cpu_temp_sensor="/amdcpu/0/temperature/0"
else
return 1
fi
while true; do
# Assumes OpenHardwareMonitor is running and emitting data to WMI so we can
# access it via the Windows hosts powershell.exe.
raw_cpu_temp=$(powershell.exe -NoProfile "(Get-WmiObject -Namespace \"root/OpenHardwareMonitor\" -Query 'select Value from Sensor WHERE Identifier LIKE \"$cpu_temp_sensor\"').Value" | sed 's/\r//')
cpu_temp=$(printf "%.1f°C" "$raw_cpu_temp")
cpu_load=`mpstat -P ALL -n 1 -u 1 -o JSON | \
jq '.sysstat.hosts[0].statistics[0]["cpu-load"][1:]|.[].idle' | \
awk '$idle ~ /[-.0-9]*/ { printf "%s", substr("█▇▆▅▄▃▂▁ ", int($idle / 11), 1) }'`
echo "$cpu_temp $cpu_load" > $cache_file
# echo -e "HTTP/1.1 200 OK\n\n$cpu_temp $cpu_load" | nc -l -k -p 8080 -q 1;
sleep 2
done

View File

@@ -0,0 +1,29 @@
#!/usr/bin/env bash
cache_dir=~/.cache/tmux
cache_file=$cache_dir/system-info
# Make sure the output directory exists.
if [ ! -d $cache_dir ]; then
mkdir -p $cache_dir
fi
# Cleanup cache file when interrupted.
trap '[ -f $cache_file ] && rm $cache_file; exit' INT
trap '[ -f $cache_file ] && rm $cache_file; exit' TERM
# Check if a battery is installed.
ioreg -w0 -l | grep BatteryInstalled &> /dev/null && \
has_battery=true || has_battery=false
while true; do
# Get the current CPU temperature.
cpu_temp="`/usr/local/bin/osx-cpu-temp`"
# Parse the current battery charge percentage.
$has_battery && \
battery=" `pmset -g batt | grep --color=never -Eo '\d+%'` ↯"
# Write to the cache file.
echo "$cpu_temp$battery" > $cache_file
# Don't spin, sleep instead.
sleep 2
done

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>system-info</string>
<key>ProgramArguments</key>
<array>
<string>/Users/benie/.config/tmux/system-info/system-info-macOS.sh</string>
</array>
<key>KeepAlive</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,8 @@
[Unit]
Description=System Info
[Service]
ExecStart=/home/benie/.config/tmux/system-info/system-info-Linux.sh
[Install]
WantedBy=default.target

24
tasks.yaml Normal file
View File

@@ -0,0 +1,24 @@
---
- name: tmux create layouts directory
file:
state: directory
dest: ~/.local/share/tmux/layouts
- name: tmux create config symbolic link
file:
state: link
src: ~/.config/tmux/tmux.conf
dest: ~/.tmux.conf
- name: tmux create layout symbolic links
file:
state: link
src: '~/.config/tmux/layouts/{{item}}'
dest: '~/.local/share/tmux/layouts/{{item}}'
with_items:
- session-local
- session-main
- session-visor
- window-tall
- window-wide-left
- window-wide-right

138
tmux.conf
View File

@@ -1,3 +1,9 @@
# Set global hooks to perform actions when events occur
set-hook -g session-created 'run ~/.config/tmux/hooks/session-create.sh'
# Set the tmux version to check for command support
run 'tmux setenv -g TMUX_VERSION $(tmux -V | cut -c 6-8)'
# Use vim keybindings in copy mode # Use vim keybindings in copy mode
set -g mode-keys vi set -g mode-keys vi
@@ -10,13 +16,13 @@ bind Space send-prefix
set -s escape-time 0 set -s escape-time 0
# Increase scrollback buffer size # Increase scrollback buffer size
set -g history-limit 50000 set -g history-limit 1000000
# Set tmux messages display time to 4 seconds # Set tmux messages display time to 4 seconds
set -g display-time 4000 set -g display-time 4000
# Refresh 'status-left' and 'status-right' more often # Refresh 'status-left' and 'status-right' more often
set -g status-interval 5 set -g status-interval 2
# Upgrade $TERM # Upgrade $TERM
set -g default-terminal "tmux-256color" set -g default-terminal "tmux-256color"
@@ -33,79 +39,117 @@ set -g pane-base-index 1
# Enable mouse support # Enable mouse support
set-option -g mouse on set-option -g mouse on
# Prevent mouse click up events exiting copy mode
unbind -T copy-mode-vi MouseDragEnd1Pane
# Enable changing cursor shape per pane in iTerm2 or VTE compatible terminals, # Enable changing cursor shape per pane, vim or zsh should emit escape
# vim or zsh should emit VTE compatible escape sequences to change cursor shape # sequences to change cursor shape.
if -b '[ -n $ITERM_PROFILE ]' \ # iTerm2 only requires this before tmux 2.9
"set -ga terminal-overrides '*:Ss=\E]1337;CursorShape=%p1%d\7'" \ if '[ -n $ITERM_PROFILE ] && [[ "$TMUX_VERSION" < "2.9" ]]' \
"set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[2 q'" 'set -ga terminal-overrides "*:Ss=\E]1337;CursorShape=%p1%d\7"'
# VTE compatible terminals.
if '[ ! -n $ITERM_PROFILE ]' \
'set -ga terminal-overrides "*:Ss=\E[%p1%d q:Se=\E[2 q"'
# Enable strikethrough on VTE compatible terminals. # Enable strikethrough on VTE compatible terminals.
set -ga terminal-overrides 'xterm*:smxx=\E[9m' set -ga terminal-overrides 'xterm*:smxx=\E[9m'
# Set only on OS X where it's required # Set only on macOS where it's required
if -b '[ "`uname`" = "Darwin" ]' \ if -b '[ "`uname`" = "Darwin" ]' \
"set -g default-command 'reattach-to-user-namespace -l $SHELL'" 'set -g default-command "reattach-to-user-namespace -l $SHELL"'
# Restore old next/previous window bindings # Restore old next/previous window bindings
bind C-n next-window bind C-n next-window
bind C-p previous-window bind C-p previous-window
# Make new splits open in current directory # Make new splits open in current directory
bind "\"" split-window -c "#{pane_current_path}" bind '"' split-window -c '#{pane_current_path}'
bind "%" split-window -h -c "#{pane_current_path}" bind '%' split-window -h -c '#{pane_current_path}'
# Change word separators to better match Vim.
set -g word-separators "<>(){}[]/'\";@*+,.-_=!£$%^&:#~?`¬|\\ "
# Integrate pane selection with vim # Integrate pane selection with vim
is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"' in_vim='tmux show-window-options | grep -q "@vim#{pane_id}"'
bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L" bind -n C-h if $in_vim 'send-keys C-h' 'select-pane -L'
bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D" bind -n C-j if $in_vim 'send-keys C-j' 'select-pane -D'
bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" bind -n C-k if $in_vim 'send-keys C-k' 'select-pane -U'
bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" bind -n C-l if $in_vim 'send-keys C-l' 'select-pane -R'
bind -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
# Integrate urlview # Integrate urlscan or fallback to urlview
bind-key u capture-pane \; split-window "tmux show-buffer | urlview -" if -b 'which urlscan' \
'bind u capture-pane \; split-window "tmux show-buffer | urlscan"' \
'bind u capture-pane \; split-window "tmux show-buffer | urlview -"'
# Unbind copy mode defaults so pane selection works
unbind -T copy-mode-vi C-h
unbind -T copy-mode-vi C-j
# Enter copy mode with C-U # Enter copy mode with C-U
bind-key C-u copy-mode -u bind C-u copy-mode -u
# Begin selection in copy mode with v not Space # Begin selection in copy mode with v not Space
bind-key -T copy-mode-vi v send-keys -X begin-selection bind -T copy-mode-vi v send-keys -X begin-selection
# Enable mouse scrolling up in alternate buffers.
# If #{mouse_any_flag} is 1 the pane is running with mouse support, e.g. vim.
# If #{alternate_on} is 1 the terminal is in alternate buffer mode, e.g. less.
# If #{pane_in_mode} is 1 the pane is in copy-mode.
bind -n WheelUpPane \
if -Ft= "#{mouse_any_flag}" \
"send-keys -M" \
"if -Ft= \"#{alternate_on}\" \
\"send-keys -t= Up ; \
send-keys -t= Up ; \
send-keys -t= Up ; \" \
\"select-pane -t= ; \
if -Ft= '#{pane_in_mode}' \
'send-keys -M' \
'copy-mode -e ; send-keys -M' \" "
# Emulate mouse scrolling down in alternate buffers.
bind -n WheelDownPane \
if -Ft= "#{mouse_any_flag}" \
"send-keys -M" \
"if -Ft= \"#{alternate_on}\" \
\"send-keys -t= Down ; \
send-keys -t= Down ; \
send-keys -t= Down ; \" \
\"select-pane -t= ; \
send-keys -M\" "
# Yank to the system clipboard in copy mode # Yank to the system clipboard in copy mode
if -b '[ "`uname`" = "Linux" ]' \ if -b '[ "`uname`" = "Darwin" ]' \
"bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xsel -i -p && xsel -o -p | xsel -i -b'" 'bind -T copy-mode-vi y send-keys -X copy-pipe \
"reattach-to-user-namespace pbcopy"' \
'bind -T copy-mode-vi y send -X copy-pipe \
"xclip -i -sel p -f | xclip -i -sel c"'
# Left status style # Left status style
set-window-option -g status-left " #S" if -b '[ "$WSL_DISTRO_NAME" != "" ]' \
set-window-option -g status-left-fg colour240 'setw -g status-left " #(hostname)|#{WSL_DISTRO_NAME}|#{session_name}"' \
set-window-option -g status-left-bg colour233 'setw -g status-left " #(hostname)|#{session_name}"'
setw -g status-left-style fg=colour240,bg=colour233
setw -g status-left-length 32
# Centre status style # Centre status style
set-window-option -g status-fg colour240 setw -g status-style fg=colour240,bg=colour233
set-window-option -g status-bg colour233
# Right status style # Right status style shows system info, date, and time.
set-window-option -g status-right "%a %d-%m-%y %H:%M " setw -g status-right "#[fg=colour240]#(cat ~/.cache/tmux/system-info)#[fg=white] %a %d-%m-%y %H:%M "
set-window-option -g status-right-fg white setw -g status-right-style fg=white,bg=colour233
set-window-option -g status-right-bg colour233 if -b '[ "`uname`" != "Darwin" ]' \
'run "tmux setw -g status-right-length $((`nproc --all` + 32))"'
# Active window status style # Active window status style
set-window-option -g window-status-current-format " #I: #W" setw -g window-status-current-format " #{window_index}: #{window_name}"
set-window-option -g window-status-current-fg white setw -g window-status-current-style fg=white,bg=colour233
set-window-option -g window-status-current-bg colour233
# Inactive window status style # Inactive window status style
set-window-option -g window-status-format " #I: #W" setw -g window-status-format " #{window_index}: #{window_name}"
set-window-option -g window-status-fg colour240 setw -g window-status-style fg=colour240,bg=colour233
set-window-option -g window-status-bg colour233
# Active pane border # Pane border style
set-option -g pane-active-border-fg colour235 set -g pane-border-style fg=colour233,bg=colour233
set-option -g pane-active-border-bg colour235 set -g pane-active-border-style fg=colour235,bg=colour235
# Inactive pane border
set-option -g pane-border-fg colour233
set-option -g pane-border-bg colour233
# Command line window list selection # Command line window list selection
set-window-option -g mode-style fg=colour233,bg=colour30 set-window-option -g mode-style fg=white,bg=colour237
set-option -g message-style fg=colour233,bg=colour30 set-option -g message-style fg=white,bg=colour237

6
visor.zsh Executable file
View File

@@ -0,0 +1,6 @@
if ! tmux list-sessions -F '#{session_name}' | grep 'visor' > /dev/null; then
tmux new-session -d -s visor
tmux rename-window -t visor:0 home
fi
tmux attach-session -t visor
exit