Last active
September 21, 2018 13:34
-
-
Save HendrikPetertje/974bb363bc446c3517718bdf7d392556 to your computer and use it in GitHub Desktop.
Tmux conf
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
# Default configuration file for tmux-powerline. | |
# Modeline { | |
# vi: foldmarker={,} foldmethod=marker foldlevel=0 tabstop=4 filetype=sh | |
# } | |
# General { | |
# Show which segment fails and its exit code. | |
export TMUX_POWERLINE_DEBUG_MODE_ENABLED="false" | |
# Use patched font symbols. | |
export TMUX_POWERLINE_PATCHED_FONT_IN_USE="true" | |
# The theme to use. | |
export TMUX_POWERLINE_THEME="default" | |
# Overlay directory to look for themes. There you can put your own themes outside the repo. Fallback will still be the "themes" directory in the repo. | |
export TMUX_POWERLINE_DIR_USER_THEMES="" | |
# Overlay directory to look for segments. There you can put your own segments outside the repo. Fallback will still be the "segments" directory in the repo. | |
export TMUX_POWERLINE_DIR_USER_SEGMENTS="" | |
# } | |
# battery.sh { | |
# How to display battery remaining. Can be {percentage, cute}. | |
export TMUX_POWERLINE_SEG_BATTERY_TYPE="percentage" | |
# How may hearts to show if cute indicators are used. | |
export TMUX_POWERLINE_SEG_BATTERY_NUM_HEARTS="5" | |
# } | |
# date.sh { | |
# date(1) format for the date. If you don't, for some reason, like ISO 8601 format you might want to have "%D" or "%m/%d/%Y". | |
export TMUX_POWERLINE_SEG_DATE_FORMAT="%F" | |
# } | |
# earthquake.sh { | |
# The data provider to use. Currently only "goo" is supported. | |
export TMUX_POWERLINE_SEG_EARTHQUAKE_DATA_PROVIDER="goo" | |
# How often to update the earthquake data in seconds. | |
# Note: This is not an early warning detector, use this | |
# to be informed about recent earthquake magnitudes in your | |
# area. If this is too often, goo may decide to ban you form | |
# their server | |
export TMUX_POWERLINE_SEG_EARTHQUAKE_UPDATE_PERIOD="600" | |
# Only display information when earthquakes are within this many minutes | |
export TMUX_POWERLINE_SEG_EARTHQUAKE_ALERT_TIME_WINDOW="60" | |
# Display time with this format | |
export TMUX_POWERLINE_SEG_EARTHQUAKE_TIME_FORMAT='(%H:%M)' | |
# Display only if magnitude is greater or equal to this number | |
export TMUX_POWERLINE_SEG_EARTHQUAKE_MIN_MAGNITUDE="3" | |
# } | |
# hostname.sh { | |
# Use short or long format for the hostname. Can be {"short, long"}. | |
export TMUX_POWERLINE_SEG_HOSTNAME_FORMAT="short" | |
# } | |
# macos_notification_count.sh { | |
# App ids to query in notification center, separated by space | |
# To get the app id that is associated with a specific app run: | |
# sqlite3 -list "/var/folders/7s/w7_7n8zd5d37kpgn0jlhkjn00000gn/0//com.apple.notificationcenter/db/db" 'select * from app_info' | |
# The first column contains the app ids | |
# "5" is the app id of Messages.app | |
# Only "banner" notifications are supported (see settings in the notification center) | |
export TMUX_POWERLINE_SEG_MACOS_NOTIFICATION_COUNT_APPIDS="5" | |
# Notification symbol | |
export TMUX_POWERLINE_SEG_MACOS_NOTIFICATION_COUNT_CHAR="💬" | |
# } | |
# mailcount.sh { | |
# Mailbox type to use. Can be any of {apple_mail, gmail, maildir, mbox, mailcheck} | |
export TMUX_POWERLINE_SEG_MAILCOUNT_MAILBOX_TYPE="" | |
## Gmail | |
# Enter your Gmail username here WITH OUT @gmail.com.( OR @domain) | |
export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_USERNAME="" | |
# Google password. Recomenned to use application specific password (https://accounts.google.com/b/0/IssuedAuthSubTokens) Leave this empty to get password from OS X keychain. | |
# For OSX users : MAKE SURE that you add a key to the keychain in the format as follows | |
# Keychain Item name : http://<value-you-fill-in-server-variable-below> | |
# Account name : <username-below>@<server-below> | |
# Password : Your password ( Once again, try to use 2 step-verification and application-specific password) | |
# See http://support.google.com/accounts/bin/answer.py?hl=en&answer=185833 for more info. | |
export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_PASSWORD="" | |
# Domain name that will complete your email. For normal GMail users it probably is "gmail.com but can be "foo.tld" for Google Apps users. | |
export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_SERVER="gmail.com" | |
# How often in minutes to check for new mails. | |
export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_INTERVAL="5" | |
## Maildir | |
# Path to the maildir to check. | |
export TMUX_POWERLINE_SEG_MAILCOUNT_MAILDIR_INBOX="/Users/peter/.mail/inbox/new" | |
## mbox | |
# Path to the mbox to check. | |
export TMUX_POWERLINE_SEG_MAILCOUNT_MBOX_INBOX="" | |
## mailcheck | |
# Optional path to mailcheckrc | |
export TMUX_POWERLINE_SEG_MAILCOUNT_MAILCHECKRC="/Users/peter/.mailcheckrc" | |
# } | |
# now_playing.sh { | |
# Music player to use. Can be any of {audacious, banshee, cmus, itunes, lastfm, mocp, mpd, mpd_simple, pithos, rdio, rhythmbox, spotify, spotify_wine, file}. | |
export TMUX_POWERLINE_SEG_NOW_PLAYING_MUSIC_PLAYER="spotify" | |
# File to be read in case the song is being read from a file | |
export TMUX_POWERLINE_SEG_NOW_PLAYING_FILE_NAME="" | |
# Maximum output length. | |
export TMUX_POWERLINE_SEG_NOW_PLAYING_MAX_LEN="40" | |
# How to handle too long strings. Can be {trim, roll}. | |
export TMUX_POWERLINE_SEG_NOW_PLAYING_TRIM_METHOD="trim" | |
# Charcters per second to roll if rolling trim method is used. | |
export TMUX_POWERLINE_SEG_NOW_PLAYING_ROLL_SPEED="2" | |
# Hostname for MPD server in the format "[password@]host" | |
export TMUX_POWERLINE_SEG_NOW_PLAYING_MPD_HOST="localhost" | |
# Port the MPD server is running on. | |
export TMUX_POWERLINE_SEG_NOW_PLAYING_MPD_PORT="6600" | |
# Song display format for mpd_simple. See mpc(1) for delimiters. | |
export TMUX_POWERLINE_SEG_NOW_PLAYING_MPD_SIMPLE_FORMAT="%artist% - %title%" | |
# Song display format for rhythmbox. see "FORMATS" in rhythmbox-client(1). | |
export TMUX_POWERLINE_SEG_NOW_PLAYING_RHYTHMBOX_FORMAT="%aa - %tt" | |
# Username for Last.fm if that music player is used. | |
export TMUX_POWERLINE_SEG_NOW_PLAYING_LASTFM_USERNAME="" | |
# How often in seconds to update the data from last.fm. | |
export TMUX_POWERLINE_SEG_NOW_PLAYING_LASTFM_UPDATE_PERIOD="30" | |
# Fancy char to display before now playing track | |
export TMUX_POWERLINE_SEG_NOW_PLAYING_NOTE_CHAR="♫" | |
# } | |
# pwd.sh { | |
# Maximum length of output. | |
export TMUX_POWERLINE_SEG_PWD_MAX_LEN="40" | |
# } | |
# time.sh { | |
# date(1) format for the time. Americans might want to have "%I:%M %p". | |
export TMUX_POWERLINE_SEG_TIME_FORMAT="%H:%M" | |
# } | |
# uptime.sh { | |
# Name of GNU grep binary if in PATH, or path to it. | |
export TMUX_POWERLINE_SEG_UPTIME_GREP="/usr/local/bin/grep" | |
# } | |
# weather.sh { | |
# The data provider to use. Currently only "yahoo" is supported. | |
export TMUX_POWERLINE_SEG_WEATHER_DATA_PROVIDER="yahoo" | |
# What unit to use. Can be any of {c,f,k}. | |
export TMUX_POWERLINE_SEG_WEATHER_UNIT="c" | |
# How often to update the weather in seconds. | |
export TMUX_POWERLINE_SEG_WEATHER_UPDATE_PERIOD="600" | |
# Name of GNU grep binary if in PATH, or path to it. | |
export TMUX_POWERLINE_SEG_WEATHER_GREP="/usr/local/bin/grep" | |
# Your location. Find a code that works for you: | |
# 1. Go to Yahoo weather http://weather.yahoo.com/ | |
# 2. Find the weather for you location | |
# 3. Copy the last numbers in that URL. e.g. "http://weather.yahoo.com/united-states/california/newport-beach-12796587/" has the numbers "12796587" | |
export TMUX_POWERLINE_SEG_WEATHER_LOCATION="906742" | |
# } | |
# server_stats.sh { | |
export TMUX_SERVER_STATS_SERVERS="https://www.allehanda.se https://swift.mmcloud.se https://git.picodevelopment.nl/users/sign_in" | |
export TMUX_SERVER_STATS_ICONS="ⓐ ⓢ ⓖ" | |
# } |
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
# Put this in your .zshrc, that way you can start named tmux sessions easier by just typing `tmuxgo work` or `tmuxgo play` | |
tmuxgo() { | |
if [ $# -lt 1 ]; then | |
echo "No arguments provided ussage:\nfsearch foo /bar" | |
return 1 | |
fi | |
if tmux has-session -t $1; then | |
tmux attach -t $1 | |
else | |
echo "Creating new session $1" | |
tmux new -s $1 | |
fi | |
} | |
# You could even go as far as to load special bash scripts when you open your work env (automatically sourcing your .env or something) | |
TMUXENV=`tmux display-message -p '#S'` | |
if [ -f ~/.dotfiles/tmux-envs/$TMUXENV.sh ]; then | |
source ~/.dotfiles/tmux-envs/$TMUXENV.sh | |
fi |
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
# Powerline | |
set-option -g status on | |
set-option -g status-interval 5 | |
set-option -g status-justify "centre" | |
set-option -g status-left-length 60 | |
set-option -g status-right-length 90 | |
set-option -g status-left "#(~/.config/tmux-powerline/powerline.sh left)" | |
set-option -g status-right "#(~/.config/tmux-powerline/powerline.sh right)" | |
set -g default-terminal "screen-256color" | |
set-window-option -g window-status-format "#[fg=colour18, bg=colour19]#[fg=colour7, bg=colour19] #I #W #[fg=colour19, bg=colour18]" | |
set-window-option -g window-status-current-format "#[fg=colour18, bg=colour0]#[fg=colour7, bg=colour0] #I #W #[fg=colour0, bg=colour18]" | |
# Kil window | |
bind q killp | |
# Change b to < because ctrl-p in vim | |
unbind C-b | |
set-option -g prefix M-b | |
# clear the scren with ctrl+k | |
bind -n C-k clear-history | |
# Keyboard shortcuts on panes | |
bind -n M-Left select-pane -L | |
bind -n M-Right select-pane -R | |
bind -n M-Up select-pane -U | |
bind -n M-Down select-pane -D | |
# Copy-paste integration | |
set-option -g default-shell /bin/zsh | |
set-option -g default-command "reattach-to-user-namespace -l zsh" | |
# Vim style navigation in copy mode | |
setw -g mode-keys vi | |
bind-key -Tcopy-mode-vi 'v' send -X begin-selection | |
bind-key -Tcopy-mode-vi 'y' send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" | |
# Mousse panes | |
set -g mouse on | |
# Default colors | |
set -g status-bg "colour18" | |
set -g message-command-fg "colour231" | |
set -g status-justify "centre" | |
set -g status-left-length "100" | |
set -g status "on" | |
set -g pane-active-border-fg "colour254" | |
set -g message-bg "colour31" | |
set -g status-right-length "100" | |
set -g status-right-attr "none" | |
set -g message-fg "colour231" | |
set -g message-command-bg "colour31" | |
set -g status-attr "none" | |
set -g pane-border-fg "colour240" | |
set -g status-left-attr "none" | |
setw -g window-status-fg "colour250" | |
setw -g window-status-attr "none" | |
setw -g window-status-activity-bg "colour0" | |
setw -g window-status-activity-attr "underscore" | |
setw -g window-status-activity-fg "colour250" | |
setw -g window-status-separator "" | |
setw -g window-status-bg "colour19" | |
# Make escape time 0 to speed up hitting escape | |
set -sg escape-time 0 | |
# Open new windows in same PWD | |
bind '%' split-window -h -c '#{pane_current_path}' # Split panes horizontal | |
bind '"' split-window -v -c '#{pane_current_path}' # Split panes vertically | |
bind c new-window -c '#{pane_current_path}' # Create new window |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment