Compare commits

...

9 Commits

Author SHA1 Message Date
cc688392da Update .conduit.yaml to build from source 2018-08-16 11:05:30 +01:00
f3752929e2 Add layouts to contain tmux layout scripts 2018-08-15 15:23:59 +01:00
d0842dc020 Use tmux-256color to enable bold/italic terminfo 2018-08-15 15:23:23 +01:00
8ce4cbb15d Restore old next/previous window bindings 2018-08-15 14:18:07 +01:00
135a793d1c Add strikethrough support in VTE terminals 2018-08-15 13:07:42 +01:00
4d493a9917 Don't use removed utf-8 options 2018-06-08 19:54:17 +01:00
529a65c06b Add tmux-yank binding for Linux 2018-06-08 19:52:34 +01:00
a6b8580ef0 Support changing cursor shape in iTerm2
Use iTerm2 proprietary escape sequence for changing cursor shape per
pane. Apps like vim or zsh should emit VTE compatible escape sequences
for this to work.
2018-01-02 16:17:20 +00:00
71d5314331 Add conduit file & tmux.conf config file 2017-12-06 00:52:01 +00:00
3 changed files with 130 additions and 0 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}

4
layouts/2vt Normal file
View File

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

111
tmux.conf Normal file
View File

@@ -0,0 +1,111 @@
# Use vim keybindings in copy mode
set -g mode-keys vi
# Change prefix to C-Space
unbind C-b
set -g prefix C-Space
bind Space send-prefix
# Address vim mode switching delay
set -s escape-time 0
# Increase scrollback buffer size
set -g history-limit 50000
# Set tmux messages display time to 4 seconds
set -g display-time 4000
# Refresh 'status-left' and 'status-right' more often
set -g status-interval 5
# Upgrade $TERM
set -g default-terminal "tmux-256color"
# Focus events enabled for terminals that support them
set -g focus-events on
# TODO: Change this comment to something that explains the setting
# super useful when using "grouped sessions" and multi-monitor setup
setw -g aggressive-resize on
# Start window & pane index at 1
set -g pane-base-index 1
# Enable mouse support
set-option -g mouse on
# Enable changing cursor shape per pane in iTerm2 or VTE compatible terminals,
# vim or zsh should emit VTE compatible escape sequences to change cursor shape
if -b '[ -n $ITERM_PROFILE ]' \
"set -ga terminal-overrides '*:Ss=\E]1337;CursorShape=%p1%d\7'" \
"set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[2 q'"
# Enable strikethrough on VTE compatible terminals.
set -ga terminal-overrides 'xterm*:smxx=\E[9m'
# Set only on OS X where it's required
if -b '[ "`uname`" = "Darwin" ]' \
"set -g default-command 'reattach-to-user-namespace -l $SHELL'"
# Restore old next/previous window bindings
bind C-n next-window
bind C-p previous-window
# Make new splits open in current directory
bind "\"" split-window -c "#{pane_current_path}"
bind "%" split-window -h -c "#{pane_current_path}"
# Integrate pane selection with vim
is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"'
bind -n C-h if-shell "$is_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-k if-shell "$is_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-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
# Integrate urlview
bind-key u capture-pane \; split-window "tmux show-buffer | urlview -"
# Enter copy mode with C-U
bind-key C-u copy-mode -u
# Begin selection in copy mode with v not Space
bind-key -T copy-mode-vi v send-keys -X begin-selection
# Yank to the system clipboard in copy mode
if -b '[ "`uname`" = "Linux" ]' \
"bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xsel -i -p && xsel -o -p | xsel -i -b'"
# Left status style
set-window-option -g status-left " #S"
set-window-option -g status-left-fg colour240
set-window-option -g status-left-bg colour233
# Centre status style
set-window-option -g status-fg colour240
set-window-option -g status-bg colour233
# Right status style
set-window-option -g status-right "%a %d-%m-%y %H:%M "
set-window-option -g status-right-fg white
set-window-option -g status-right-bg colour233
# Active window status style
set-window-option -g window-status-current-format " #I: #W"
set-window-option -g window-status-current-fg white
set-window-option -g window-status-current-bg colour233
# Inactive window status style
set-window-option -g window-status-format " #I: #W"
set-window-option -g window-status-fg colour240
set-window-option -g window-status-bg colour233
# Active pane border
set-option -g pane-active-border-fg 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
set-window-option -g mode-style fg=colour233,bg=colour30
set-option -g message-style fg=colour233,bg=colour30