From 0c0e816bd417f98a1d1027dc41ce66a8572555c7 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Sun, 4 Oct 2015 05:11:36 +0200 Subject: improved tmux config --- dot/tmux.conf | 147 +++-------------------------------------------- dot/tmux.stage2.conf | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++ dot/xinitrc | 4 +- 3 files changed, 165 insertions(+), 143 deletions(-) create mode 100644 dot/tmux.stage2.conf diff --git a/dot/tmux.conf b/dot/tmux.conf index 2533760..6802fe9 100644 --- a/dot/tmux.conf +++ b/dot/tmux.conf @@ -1,143 +1,10 @@ -# use UTF8 -set -g utf8 -set-window-option -g utf8 on +# this allows 'tmux attach' to work without an existing session; like screen -xRR +new-session -# make tmux display things in 256 colors -#set -g default-terminal "screen-256color" +# However, we don't want new-session to execute for reloads; so the rest +# of the configuration will go in a separate file that will be sourced +# here. -unbind C-b -set -g prefix C-z -bind z send-prefix - -# shorten command delay -set -sg escape-time 1 - -# set window and pane index to 1 (0 by default) -set-option -g base-index 1 -setw -g pane-base-index 1 - -# reload ~/.tmux.conf using PREFIX r -bind r source-file ~/.tmux.conf \; display "Reloaded!" - -# use PREFIX | to split window horizontally and PREFIX - to split vertically -bind | split-window -h -bind - split-window -v - -# Make the current window the first window -bind C-z swap-window -t 1 - -# map Vi movement keys as pane movement keys -bind h select-pane -L -bind j select-pane -D -bind k select-pane -U -bind l select-pane -R - -# and use C-h and C-l to cycle thru panes -bind -r C-h select-window -t :- -bind -r C-l select-window -t :+ - -# resize panes using PREFIX H, J, K, L -bind H resize-pane -L 5 -bind J resize-pane -D 5 -bind K resize-pane -U 5 -bind L resize-pane -R 5 - -# C-i for even-vertical arrangement and C-o to zoom current pane -#bind-key C-i select-layout even-vertical -#bind-key C-v select-layout even-horizontal -#bind-key C-o resize-pane -y 1000 - -# Sync panes -#bind C-s set-window-option synchronize-panes - -# explicitly disable mouse control -#setw -g mode-mouse off -#set -g mouse-select-pane off -#set -g mouse-resize-pane off -#set -g mouse-select-window off - -# --------------------- -# Copy & Paste -# --------------------- -# provide access to the clipboard for pbpaste, pbcopy -#set-option -g default-command "reattach-to-user-namespace -l zsh" -#set-window-option -g automatic-rename on - -# use vim keybindings in copy mode -setw -g mode-keys vi - -# setup 'v' to begin selection as in Vim -#bind-key -t vi-copy v begin-selection -#bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy" - -# update default binding of 'Enter' to also use copy-pipe -#unbind -t vi-copy Enter -#bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy" - -#bind y run 'tmux save-buffer - | reattach-to-user-namespace pbcopy ' -#bind C-y run 'tmux save-buffer - | reattach-to-user-namespace pbcopy ' - -# Save entire tmux history to a file - file will be on machine where tmux is -# running -#bind-key * command-prompt -p 'save history to filename:' -I '~/tmux.history' 'capture-pane -S -32768 ; save-buffer %1 ; delete-buffer' - -# ----------------------- -# Multistart panes -# ---------------------- -#bind-key P run-shell 'tmux-multistart as' -#bind-key A run-shell 'tmux-multistart alpha' -#bind-key B run-shell 'tmux-multistart beta' -#bind-key W run-shell 'tmux-multistart web' -#bind-key D run-shell 'tmux-multistart dev' -#bind-key T run-shell 'tmux-multistart txhub' - -#bind-key C command-prompt -p "machine(s)/group: " "run-shell 'tmux-multistart %1'" - -# ---------------------- -# set some pretty colors -# ---------------------- -# set pane colors - hilight the active pane -#set-option -g pane-border-fg colour235 #base02 -#set-option -g pane-active-border-fg colour33 #blue -#set-option -g pane-active-border-fg colour240 #base01 - -# colorize messages in the command line -#set-option -g message-bg black #base02 -#set-option -g message-fg brightred #orange - -# ---------------------- -# Status Bar -# ----------------------- -#set-option -g status on # turn the status bar on -#set -g status-utf8 on # set utf-8 for the status bar -#set -g status-interval 5 # set update frequencey (default 15 seconds) -#set -g status-justify centre # center window list for clarity -# set-option -g status-position top # position the status bar at top of screen - -# visual notification of activity in other windows -#setw -g monitor-activity on -#set -g visual-activity on - -# set color for status bar -#set-option -g status-bg colour235 #base02 -#set-option -g status-fg yellow #yellow -#set-option -g status-attr dim - -# set window list colors - red for active and cyan for inactive -#set-window-option -g window-status-fg brightblue #base0 -#set-window-option -g window-status-bg colour236 -#set-window-option -g window-status-attr dim - -#set-window-option -g window-status-current-fg brightred #orange -#set-window-option -g window-status-current-bg colour236 -#set-window-option -g window-status-current-attr bright - -# show host name and IP address on left side of status bar -#set -g status-left-length 85 -#set -g status-left "#[fg=green]: #h : #[fg=brightblue]#(dig +short myip.opendns.com @resolver1.opendns.com) #[fg=yellow]#(ifconfig en0 | grep 'inet ' | awk '{print \"en0 \" $2}') #(ifconfig en1 | grep 'inet ' | awk '{print \"en1 \" $2}') #(ifconfig en3 | grep 'inet ' | awk '{print \"en3 \" $2}') #[fg=red]#(ifconfig tun0 | grep 'inet ' | awk '{print \"vpn \" $2}') #[fg=green]#(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk -F': ' '/ SSID/{print $2}') " - -# show session name, window & pane number, date and time on right side of -# status bar -#set -g status-right-length 60 -#set -g status-right "#[fg=blue]#S #I:#P #[fg=yellow]: %d %b %Y #[fg=green]: %l:%M %p : #(date -u | awk '{print $4}') :" +bind r source-file ~/.tmux.stage2.conf \; display "Reloaded!" +source-file ~/.tmux.stage2.conf diff --git a/dot/tmux.stage2.conf b/dot/tmux.stage2.conf new file mode 100644 index 0000000..915b203 --- /dev/null +++ b/dot/tmux.stage2.conf @@ -0,0 +1,157 @@ +# use UTF8 +set -g utf8 +set-window-option -g utf8 on + +# make tmux display things in 256 colors +#set -g default-terminal "screen-256color" + +unbind C-b +set -g prefix C-z +bind z send-prefix + +# redundantly bind some frequent commands so that the Control key does not have to be released +bind-key C-n next-window +bind-key C-p previous-window +bind-key C-z last-window +bind-key C-c new-window + +# Use vi-like keys to do selection and copying. Ctrl-A Escape starts copy mode, +# 'v' starts text selection and 'y' copies (yanks). +bind-key Escape copy-mode +bind-key [ copy-mode +bind-key C-[ copy-mode +bind-key -t vi-copy v begin-selection +bind-key -t vi-copy y copy-selection +bind-key -t vi-copy Enter copy-selection +#bind-key C-y run "tmux save-buffer - | xclip -i -selection clipboard" +#bind-key C-p run "tmux set-buffer \"$(xclip -o -selection clipboard)\"; tmux paste-buffer" + +# TODO: get more from https://github.com/aaronbieber/dotfiles/blob/master/configs/tmux.conf + +# shorten command delay +set -sg escape-time 1 + +# set window and pane index to 1 (0 by default) +set-option -g base-index 1 +setw -g pane-base-index 1 + +# use PREFIX | to split window horizontally and PREFIX - to split vertically +bind | split-window -h +bind - split-window -v + +# map Vi movement keys as pane movement keys +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R + +# and use C-h and C-l to cycle thru panes +bind -r C-h select-window -t :- +bind -r C-l select-window -t :+ + +# resize panes using PREFIX H, J, K, L +bind H resize-pane -L 5 +bind J resize-pane -D 5 +bind K resize-pane -U 5 +bind L resize-pane -R 5 + +# C-i for even-vertical arrangement and C-o to zoom current pane +#bind-key C-i select-layout even-vertical +#bind-key C-v select-layout even-horizontal +#bind-key C-o resize-pane -y 1000 + +# Sync panes +#bind C-s set-window-option synchronize-panes + +# explicitly disable mouse control +#setw -g mode-mouse off +#set -g mouse-select-pane off +#set -g mouse-resize-pane off +#set -g mouse-select-window off + +# --------------------- +# Copy & Paste +# --------------------- +# provide access to the clipboard for pbpaste, pbcopy +#set-option -g default-command "reattach-to-user-namespace -l zsh" +#set-window-option -g automatic-rename on + +# use vim keybindings in copy mode +setw -g mode-keys vi + +# setup 'v' to begin selection as in Vim +#bind-key -t vi-copy v begin-selection +#bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy" + +# update default binding of 'Enter' to also use copy-pipe +#unbind -t vi-copy Enter +#bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy" + +#bind y run 'tmux save-buffer - | reattach-to-user-namespace pbcopy ' +#bind C-y run 'tmux save-buffer - | reattach-to-user-namespace pbcopy ' + +# Save entire tmux history to a file - file will be on machine where tmux is +# running +#bind-key * command-prompt -p 'save history to filename:' -I '~/tmux.history' 'capture-pane -S -32768 ; save-buffer %1 ; delete-buffer' + +# ----------------------- +# Multistart panes +# ---------------------- +#bind-key P run-shell 'tmux-multistart as' +#bind-key A run-shell 'tmux-multistart alpha' +#bind-key B run-shell 'tmux-multistart beta' +#bind-key W run-shell 'tmux-multistart web' +#bind-key D run-shell 'tmux-multistart dev' +#bind-key T run-shell 'tmux-multistart txhub' + +#bind-key C command-prompt -p "machine(s)/group: " "run-shell 'tmux-multistart %1'" + +# ---------------------- +# set some pretty colors +# ---------------------- +# set pane colors - hilight the active pane +#set-option -g pane-border-fg colour235 #base02 +#set-option -g pane-active-border-fg colour33 #blue +#set-option -g pane-active-border-fg colour240 #base01 + +# colorize messages in the command line +#set-option -g message-bg black #base02 +#set-option -g message-fg brightred #orange + +# ---------------------- +# Status Bar +# ----------------------- +#set-option -g status on # turn the status bar on +#set -g status-utf8 on # set utf-8 for the status bar +#set -g status-interval 5 # set update frequencey (default 15 seconds) +#set -g status-justify centre # center window list for clarity +# set-option -g status-position top # position the status bar at top of screen + +# visual notification of activity in other windows +#setw -g monitor-activity on +#set -g visual-activity on + +# set color for status bar +#set-option -g status-bg colour235 #base02 +#set-option -g status-fg yellow #yellow +#set-option -g status-attr dim + +# set window list colors - red for active and cyan for inactive +#set-window-option -g window-status-fg brightblue #base0 +#set-window-option -g window-status-bg colour236 +#set-window-option -g window-status-attr dim + +#set-window-option -g window-status-current-fg brightred #orange +#set-window-option -g window-status-current-bg colour236 +#set-window-option -g window-status-current-attr bright + +# show host name and IP address on left side of status bar +#set -g status-left-length 85 +#set -g status-left "#[fg=green]: #h : #[fg=brightblue]#(dig +short myip.opendns.com @resolver1.opendns.com) #[fg=yellow]#(ifconfig en0 | grep 'inet ' | awk '{print \"en0 \" $2}') #(ifconfig en1 | grep 'inet ' | awk '{print \"en1 \" $2}') #(ifconfig en3 | grep 'inet ' | awk '{print \"en3 \" $2}') #[fg=red]#(ifconfig tun0 | grep 'inet ' | awk '{print \"vpn \" $2}') #[fg=green]#(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk -F': ' '/ SSID/{print $2}') " + +# show session name, window & pane number, date and time on right side of +# status bar +#set -g status-right-length 60 +#set -g status-right "#[fg=blue]#S #I:#P #[fg=yellow]: %d %b %Y #[fg=green]: %l:%M %p : #(date -u | awk '{print $4}') :" + + diff --git a/dot/xinitrc b/dot/xinitrc index 2117999..796fb15 100755 --- a/dot/xinitrc +++ b/dot/xinitrc @@ -21,9 +21,7 @@ setxkbmap -option terminate:ctrl_alt_bksp -option caps:super gsettings set org.gnome.libgnomekbd.keyboard options "['terminate\tterminate:ctrl_alt_bksp', 'caps\tcaps:super']" ( - cd $HOME/src/samizdat; - screen -d -m -S samizdat; - exec xterm -geometry 160x64+0+0 -e screen -xRR samizdat + exec xterm -e tmux attach ) & # xcompmgr -c & if [ "$USING_GNOME" ]; then -- cgit v1.2.3