Compare commits

..

1 Commits

Author SHA1 Message Date
cc688392da Update .conduit.yaml to build from source 2018-08-16 11:05:30 +01:00
18 changed files with 63 additions and 295 deletions

15
.conduit.yaml Normal file
View File

@@ -0,0 +1,15 @@
---
- 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}

View File

@@ -1,9 +0,0 @@
#!/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

View File

@@ -1,3 +1,4 @@
# 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

View File

@@ -1,7 +0,0 @@
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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,16 +0,0 @@
#!/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

View File

@@ -1,13 +0,0 @@
#!/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

@@ -1,24 +0,0 @@
#!/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

View File

@@ -1,39 +0,0 @@
#!/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) }'`"
raw_battery=$(powershell.exe -NoProfile \
"(Get-WmiObject win32_battery).EstimatedChargeRemaining" \
| sed 's/\r//')
battery=$(printf "%3d%%" "$raw_battery")
echo "$cpu_temp$cpu_load$battery" > $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

@@ -1,29 +0,0 @@
#!/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

@@ -1,14 +0,0 @@
<?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

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

View File

@@ -1,24 +0,0 @@
---
- 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,9 +1,3 @@
# 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
@@ -16,13 +10,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 1000000 set -g history-limit 50000
# 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 2 set -g status-interval 5
# Upgrade $TERM # Upgrade $TERM
set -g default-terminal "tmux-256color" set -g default-terminal "tmux-256color"
@@ -39,117 +33,79 @@ 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, vim or zsh should emit escape # Enable changing cursor shape per pane in iTerm2 or VTE compatible terminals,
# sequences to change cursor shape. # vim or zsh should emit VTE compatible escape sequences to change cursor shape
# iTerm2 only requires this before tmux 2.9 if -b '[ -n $ITERM_PROFILE ]' \
if '[ -n $ITERM_PROFILE ] && [[ "$TMUX_VERSION" < "2.9" ]]' \ "set -ga terminal-overrides '*:Ss=\E]1337;CursorShape=%p1%d\7'" \
'set -ga terminal-overrides "*:Ss=\E]1337;CursorShape=%p1%d\7"' "set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[2 q'"
# 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 macOS where it's required # Set only on OS X 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
in_vim='tmux show-window-options | grep -q "@vim#{pane_id}"' is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"'
bind -n C-h if $in_vim 'send-keys C-h' 'select-pane -L' bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
bind -n C-j if $in_vim 'send-keys C-j' 'select-pane -D' bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
bind -n C-k if $in_vim 'send-keys C-k' 'select-pane -U' bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
bind -n C-l if $in_vim 'send-keys C-l' 'select-pane -R' bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
bind -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
# Integrate urlscan or fallback to urlview # Integrate urlview
if -b 'which urlscan' \ bind-key u capture-pane \; split-window "tmux show-buffer | urlview -"
'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 C-u copy-mode -u bind-key C-u copy-mode -u
# Begin selection in copy mode with v not Space # Begin selection in copy mode with v not Space
bind -T copy-mode-vi v send-keys -X begin-selection bind-key -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`" = "Darwin" ]' \ if -b '[ "`uname`" = "Linux" ]' \
'bind -T copy-mode-vi y send-keys -X copy-pipe \ "bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xsel -i -p && xsel -o -p | xsel -i -b'"
"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
if -b '[ "$WSL_DISTRO_NAME" != "" ]' \ set-window-option -g status-left " #S"
'setw -g status-left " #(hostname)|#{WSL_DISTRO_NAME}|#{session_name}"' \ set-window-option -g status-left-fg colour240
'setw -g status-left " #(hostname)|#{session_name}"' set-window-option -g status-left-bg colour233
setw -g status-left-style fg=colour240,bg=colour233
setw -g status-left-length 32
# Centre status style # Centre status style
setw -g status-style fg=colour240,bg=colour233 set-window-option -g status-fg colour240
set-window-option -g status-bg colour233
# Right status style shows system info, date, and time. # Right status style
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 "%a %d-%m-%y %H:%M "
setw -g status-right-style fg=white,bg=colour233 set-window-option -g status-right-fg white
if -b '[ "`uname`" != "Darwin" ]' \ set-window-option -g status-right-bg colour233
'run "tmux setw -g status-right-length $((`nproc --all` + 32))"'
# Active window status style # Active window status style
setw -g window-status-current-format " #{window_index}: #{window_name}" set-window-option -g window-status-current-format " #I: #W"
setw -g window-status-current-style fg=white,bg=colour233 set-window-option -g window-status-current-fg white
set-window-option -g window-status-current-bg colour233
# Inactive window status style # Inactive window status style
setw -g window-status-format " #{window_index}: #{window_name}" set-window-option -g window-status-format " #I: #W"
setw -g window-status-style fg=colour240,bg=colour233 set-window-option -g window-status-fg colour240
set-window-option -g window-status-bg colour233
# Pane border style # Active pane border
set -g pane-border-style fg=colour233,bg=colour233 set-option -g pane-active-border-fg colour235
set -g pane-active-border-style fg=colour235,bg=colour235 set-option -g pane-active-border-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=white,bg=colour237 set-window-option -g mode-style fg=colour233,bg=colour30
set-option -g message-style fg=white,bg=colour237 set-option -g message-style fg=colour233,bg=colour30

View File

@@ -1,6 +0,0 @@
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