Skip to content
This repository has been archived by the owner on Oct 14, 2020. It is now read-only.

Commit

Permalink
finished integration of Tmux Powerline
Browse files Browse the repository at this point in the history
  • Loading branch information
ddnomad committed Aug 10, 2020
1 parent 92e456c commit 7339b6b
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 146 deletions.
25 changes: 11 additions & 14 deletions .config/tmux/theme.sh
Original file line number Diff line number Diff line change
@@ -1,30 +1,27 @@
# Base16 Default Dark inspired theme
TMUX_POWERLINE_SEPARATOR_LEFT_BOLD=""
TMUX_POWERLINE_SEPARATOR_LEFT_THIN=""
TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD=""
TMUX_POWERLINE_SEPARATOR_RIGHT_THIN=""

TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR=${TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR:-'235'}
TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR=${TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR:-'255'}
TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR=${TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR:-'0'}
TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR=${TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR:-'7'}

TMUX_POWERLINE_DEFAULT_LEFTSIDE_SEPARATOR=${TMUX_POWERLINE_DEFAULT_LEFTSIDE_SEPARATOR:-$TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD}
TMUX_POWERLINE_DEFAULT_RIGHTSIDE_SEPARATOR=${TMUX_POWERLINE_DEFAULT_RIGHTSIDE_SEPARATOR:-$TMUX_POWERLINE_SEPARATOR_LEFT_BOLD}

# Format: segment_name background_color foreground_color [non_default_separator]

if [ -z $TMUX_POWERLINE_LEFT_STATUS_SEGMENTS ]; then
if [ -z "${TMUX_POWERLINE_LEFT_STATUS_SEGMENTS}" ]; then
TMUX_POWERLINE_LEFT_STATUS_SEGMENTS=(
"hostname 33 0" \
"wan_ip 24 255" \
"pwd 89 211" \
"hostname 4 0" \
"wan_ip 19 7" \
"pwd 18 7" \
)
fi

if [ -z $TMUX_POWERLINE_RIGHT_STATUS_SEGMENTS ]; then
if [ -z "${TMUX_POWERLINE_RIGHT_STATUS_SEGMENTS}" ]; then
TMUX_POWERLINE_RIGHT_STATUS_SEGMENTS=(
"now_playing 33 0" \
"date_day 235 136" \
"date 235 136 ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}" \
"time 235 136 ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}" \
"now_playing 18 20" \
"date_day 9 0" \
"date 9 0 ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}" \
"time 9 0 ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}" \
)
fi
2 changes: 1 addition & 1 deletion .config/tmux/tmux.conf
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ set -g pane-border-style 'fg=white'

# Tmux Powerline integration
set-option -g status on
set-option -g status-interval 2
set-option -g status-interval 1
set-option -g status-justify "centre"

set-option -g status-left-length 90
Expand Down
156 changes: 25 additions & 131 deletions .config/tmux/tpl.conf
Original file line number Diff line number Diff line change
Expand Up @@ -8,140 +8,34 @@ export TMUX_POWERLINE_DIR_USER_THEMES="${HOME}/.config/tmux"
export TMUX_POWERLINE_DIR_USER_SEGMENTS="${HOME}/.config/tmux/scripts"

###############################################################################
# Segment: battery.sh
# Segment: hostname
###############################################################################
# How to display battery remaining. Can be {percentage, cute}.
export TMUX_POWERLINE_SEG_BATTERY_TYPE="cute"
# How may hearts to show if cute indicators are used.
export TMUX_POWERLINE_SEG_BATTERY_NUM_HEARTS="5"
export TMUX_POWERLINE_SEG_HOSTNAME_FORMAT="short"

# 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"
# }

# disk_usage.sh {
# Filesystem to retrieve disk space information. Any from the filesystems available (run "df | awk '{print }'" to check them).
export TMUX_POWERLINE_SEG_DISK_USAGE_FILESYSTEM="/"
# }

# 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/bg/b4g_9vj95s3g1gdf3v97dnvh0000gn/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/damnparanoia/.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/damnparanoia/.mailcheckrc"
# }
###############################################################################
# Segment: pwd
###############################################################################
export TMUX_POWERLINE_SEG_PWD_MAX_LEN="40"

# 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="♫"
# }
###############################################################################
# Segment: now_playing
###############################################################################
export TMUX_POWERLINE_SEG_NOW_PLAYING_MUSIC_PLAYER="spotify"
export TMUX_POWERLINE_SEG_NOW_PLAYING_MAX_LEN="60"
export TMUX_POWERLINE_SEG_NOW_PLAYING_TRIM_METHOD="trim"

# pwd.sh {
# Maximum length of output.
export TMUX_POWERLINE_SEG_PWD_MAX_LEN="40"
# }
export TMUX_POWERLINE_SEG_NOW_PLAYING_MPD_HOST="localhost"
export TMUX_POWERLINE_SEG_NOW_PLAYING_MPD_PORT="6600"
export TMUX_POWERLINE_SEG_NOW_PLAYING_MPD_SIMPLE_FORMAT="%artist% - %title%"
export TMUX_POWERLINE_SEG_NOW_PLAYING_RHYTHMBOX_FORMAT="%aa - %tt"
export TMUX_POWERLINE_SEG_NOW_PLAYING_NOTE_CHAR=""

# time.sh {
# date(1) format for the time. Americans might want to have "%I:%M %p".
export TMUX_POWERLINE_SEG_TIME_FORMAT="%H:%M"
# }
###############################################################################
# Segment: date
###############################################################################
export TMUX_POWERLINE_SEG_DATE_FORMAT="%F"

# 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="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"
TMUX_POWERLINE_SEG_WEATHER_LOCATION=""
# }
###############################################################################
# Segment: time
###############################################################################
export TMUX_POWERLINE_SEG_TIME_FORMAT="%H:%M"
11 changes: 11 additions & 0 deletions .config/tmux/tpl.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ readonly TPL_OLD_CFG='$HOME/.tmux-powerlinerc'
# shellcheck disable=SC2016
readonly TPL_NEW_CFG='$HOME/.config/tmux/tpl.conf'
readonly TPL_PATHS_FILE="${TPL_DIR}/config/paths.sh"
readonly TPL_SPOTIFY_MAC_FILE="${TPL_DIR}/segments/np_spotify_mac.script"

function init {
if test -f "${TPL_DIR}"; then
Expand All @@ -23,6 +24,16 @@ function init {
-i \
's@^\(.*\)'"${TPL_OLD_CFG}"'\(.*\)$@\1'"${TPL_NEW_CFG}"'\2@' \
"${TPL_PATHS_FILE}"

echo 'Patching Tmux Powerline Now Playing segment ...'
gsed \
-i \
's@\(\t*.*to "\)►\(.*\)@\1\2@' \
"${TPL_SPOTIFY_MAC_FILE}"
gsed \
-i \
's@\(\t*.*to "\)❙❙\(.*\)@\1\2@' \
"${TPL_SPOTIFY_MAC_FILE}"
}

function main {
Expand Down

0 comments on commit 7339b6b

Please sign in to comment.