Created
September 16, 2014 13:50
-
-
Save guipdutra/54fbc2b2ddad8909f5ef to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # SCREENSHOT EXAMPLE: http://grab.by/bzg3 | |
| ############################## | |
| # _ | |
| # | |_ _ __ ___ _ ___ __ | |
| # | __| '_ ` _ \| | | \ \/ / | |
| # | |_| | | | | | |_| |> < | |
| # \__|_| |_| |_|\__,_/_/\_\ | |
| # | |
| ############################# | |
| ############################################################################ | |
| ############################################################################ | |
| # Reset Prefix | |
| ############################################################################ | |
| set -g prefix C-a | |
| bind-key a send-prefix # for nested tmux sessions | |
| ############################################################################ | |
| # Global options | |
| ############################################################################ | |
| # large history | |
| set-option -g history-limit 10000 | |
| ########################### | |
| # Colors | |
| ########################### | |
| # color status bar | |
| set -g status-bg colour235 | |
| set -g status-fg white | |
| set -g default-terminal "xterm-256color" | |
| # highlight current window | |
| set-window-option -g window-status-current-fg black | |
| set-window-option -g window-status-current-bg green | |
| # set color of active pane | |
| set -g pane-border-fg colour235 | |
| set -g pane-border-bg black | |
| set -g pane-active-border-fg green | |
| set -g pane-active-border-bg black | |
| # utf8 support | |
| set-window-option -g utf8 on | |
| # basic settings | |
| set-window-option -g xterm-keys on # for vim | |
| set-window-option -g mode-keys vi # vi key | |
| set-window-option -g monitor-activity on | |
| set-window-option -g window-status-current-fg white | |
| setw -g window-status-current-attr reverse | |
| # Automatically set window title | |
| setw -g automatic-rename | |
| # use mouse # More on mouse support http://floriancrouzat.net/2010/07/run-tmux-with-mouse-support-in-mac-os-x-terminal-app/ | |
| setw -g mode-mouse on | |
| #setw -g mouse-resize-pane on | |
| #set -g mouse-select-window on | |
| set -g mouse-select-pane on | |
| set -g terminal-overrides 'xterm*:smcup@:rmcup@' | |
| # vi movement keys | |
| # set-option -g status-keys vi | |
| ########################### | |
| # Status Bar | |
| ########################### | |
| # enable UTF-8 support in status bar | |
| set -g status-utf8 on | |
| # set refresh interval for status bar | |
| set -g status-interval 30 | |
| # center the status bar | |
| set -g status-justify left | |
| # show session, window, pane in left status bar | |
| set -g status-left-length 40 | |
| set -g status-left '#[fg=green]#S#[fg=blue] #I:#P#[default]' | |
| # show hostname, date, time, and battery in right status bar | |
| set-option -g status-right '#[fg=green]#(cat ~/.pomo_stat) #[fg=green]#H#[default] %m/%d/%y %I:%M\ | |
| #[fg=red]#(battery discharging)#[default]#(battery charging)' | |
| ########################### | |
| # Key Bindings | |
| ########################### | |
| # tmux prefix | |
| unbind C-b | |
| set -g prefix C-a | |
| # copy with 'enter' or 'y' and send to mac os clipboard: http://goo.gl/2Bfn8 | |
| unbind -t vi-copy Enter | |
| bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy" | |
| bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy" | |
| bind y run-shell "tmux show-buffer | xclip -sel clip -i" | |
| #clear terminal | |
| bind -n C-k send-keys -R \; clear-history | |
| # create 'v' alias for selecting text | |
| bind-key -t vi-copy v begin-selection | |
| # paste | |
| unbind C-p | |
| bind C-p paste-buffer | |
| # window splitting | |
| unbind % | |
| bind | split-window -h | |
| unbind '"' | |
| bind - split-window -v | |
| set-option -g default-shell /bin/bash | |
| # resize panes | |
| bind -r H resize-pane -L 5 | |
| bind -r J resize-pane -D 5 | |
| bind -r K resize-pane -U 5 | |
| bind -r L resize-pane -R 5 | |
| # quickly switch panes | |
| unbind ^J | |
| bind ^J select-pane -t :.+ | |
| bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-h) || tmux select-pane -L" | |
| bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-j) || tmux select-pane -D" | |
| bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-k) || tmux select-pane -U" | |
| bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-l) || tmux select-pane -R" | |
| bind -n C-\ run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys 'C-\\') || tmux select-pane -l" | |
| # force a reload of the config file | |
| unbind r | |
| bind r source-file ~/.tmux.conf \; display "Reloaded!" | |
| ############################################################################ | |
| # windows | |
| ############################################################################ | |
| set-window-option -g window-status-current-bg red | |
| bind C-j previous-window | |
| bind C-k next-window | |
| bind-key C-a last-window # C-a C-a for last active window | |
| bind A command-prompt "rename-window %%" | |
| # By default, all windows in a session are constrained to the size of the | |
| # smallest client connected to that session, | |
| # even if both clients are looking at different windows. | |
| # It seems that in this particular case, Screen has the better default | |
| # where a window is only constrained in size if a smaller client | |
| # is actively looking at it. | |
| setw -g aggressive-resize on | |
| ############################################################################ | |
| # panes | |
| ############################################################################ | |
| # Navigation --------------------------------------------------------------- | |
| # use the vim motion keys to move between panes | |
| bind-key h select-pane -L | |
| bind-key j select-pane -D | |
| bind-key k select-pane -U | |
| bind-key l select-pane -R | |
| # Resizing --------------------------------------------------------------- | |
| bind-key C-h resize-pane -L | |
| bind-key C-j resize-pane -D | |
| bind-key C-k resize-pane -U | |
| bind-key C-l resize-pane -R | |
| # use vim motion keys while in copy mode | |
| setw -g mode-keys vi | |
| # copy & paste between tmux and x clipboard | |
| bind C-p run-shell "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer" | |
| bind C-y run-shell "tmux show-buffer | xclip -sel clip -i" | |
| ############################################################################ | |
| # layouts | |
| ############################################################################ | |
| bind o select-layout "active-only" | |
| bind M-- select-layout "even-vertical" | |
| bind M-| select-layout "even-horizontal" | |
| bind M-r rotate-window | |
| set-environment -gu RBENV_VERSION | |
| # focus on first window | |
| # select-window -t 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment