aboutsummaryrefslogtreecommitdiff
path: root/.config/tmux-powerline
diff options
context:
space:
mode:
authorPascal Dulieu <pascal@dulieu.uk>2025-07-30 11:45:00 +0100
committerPascal Dulieu <pascal@dulieu.uk>2025-07-30 11:45:00 +0100
commitc19fa68472bec357914ff264e52b45945221d530 (patch)
tree8bb993d3f9bf7b91155300fcc7fe1b282faf7066 /.config/tmux-powerline
Diffstat (limited to '.config/tmux-powerline')
-rw-r--r--.config/tmux-powerline/config.sh469
-rw-r--r--.config/tmux-powerline/themes/main.sh230
2 files changed, 699 insertions, 0 deletions
diff --git a/.config/tmux-powerline/config.sh b/.config/tmux-powerline/config.sh
new file mode 100644
index 0000000..14498ef
--- /dev/null
+++ b/.config/tmux-powerline/config.sh
@@ -0,0 +1,469 @@
+# 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"
+# Create error log in tmux runtime temp dir.
+export TMUX_POWERLINE_ERROR_LOGS_ENABLED="false"
+# Only log specific scopes. Space separated list of scopes. Supported scopes: weather.sh lib/text_roll.sh lib/powerline.sh lib/colors.sh config/helpers.sh
+export TMUX_POWERLINE_ERROR_LOGS_SCOPES=""
+# Use patched font symbols.
+export TMUX_POWERLINE_PATCHED_FONT_IN_USE="true"
+
+# The theme to use.
+export TMUX_POWERLINE_THEME="main"
+# 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="${XDG_CONFIG_HOME:-$HOME/.config}/tmux-powerline/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="${XDG_CONFIG_HOME:-$HOME/.config}/tmux-powerline/segments"
+
+# The initial visibility of the status bar. Can be {"on", "off", "2"}. 2 will create two status lines: one for the window list and one with status bar segments.
+export TMUX_POWERLINE_STATUS_VISIBILITY="on"
+# In case of visibility = 2, where to display window status and where left/right status bars.
+# 0: window status top, left/right status bottom; 1: window status bottom, left/right status top
+export TMUX_POWERLINE_WINDOW_STATUS_LINE=0
+# The status bar refresh interval in seconds.
+# Note that events that force-refresh the status bar (such as window renaming) will ignore this.
+export TMUX_POWERLINE_STATUS_INTERVAL="1"
+# The location of the window list. Can be {"absolute-centre, centre, left, right"}.
+# Note that "absolute-centre" is only supported on `tmux -V` >= 3.2.
+export TMUX_POWERLINE_STATUS_JUSTIFICATION="left"
+
+# The maximum length of the left status bar.
+export TMUX_POWERLINE_STATUS_LEFT_LENGTH="60"
+# The maximum length of the right status bar.
+export TMUX_POWERLINE_STATUS_RIGHT_LENGTH="90"
+
+# The separator to use between windows on the status bar.
+export TMUX_POWERLINE_WINDOW_STATUS_SEPARATOR=""
+
+# Uncomment these if you want to enable tmux bindings for muting (hiding) one of the status bars.
+# E.g. this example binding would mute the left status bar when pressing <prefix> followed by Ctrl-[
+#export TMUX_POWERLINE_MUTE_LEFT_KEYBINDING="C-["
+#export TMUX_POWERLINE_MUTE_RIGHT_KEYBINDING="C-]"
+# }
+
+# air.sh {
+# The data provider to use. Currently only "openweather" is supported.
+export TMUX_POWERLINE_SEG_AIR_DATA_PROVIDER="openweather"
+# How often to update the weather in seconds.
+export TMUX_POWERLINE_SEG_AIR_UPDATE_PERIOD="600"
+# Location of the JSON parser, jq
+export TMUX_POWERLINE_SEG_AIR_JSON="jq"
+# Your location
+# Latitude and Longitude:
+TMUX_POWERLINE_SEG_AIR_LAT=""
+TMUX_POWERLINE_SEG_AIR_LON=""
+# Your Open Weather API Key:
+TMUX_POWERLINE_SEG_AIR_OPEN_WEATHER_API_KEY=""
+# }
+
+# battery.sh {
+# How to display battery remaining. Can be {percentage, cute, hearts}.
+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"
+# }
+
+# cpu_temp.sh {
+# CPU temperature icon
+export TMUX_POWERLINE_SEG_CPU_TEMP_ICON=" "
+# Linux only. Regexp to indicate a line containing CPU temperature in 'sensors' output.
+# Check the output of 'sensors' program, decide which line contains desired CPU temperature
+# and store an unique part of that line in this variable. It will be used by 'grep' program
+# to distinct the 'CPU temperature' line from the rest output lines.
+export TMUX_POWERLINE_SEG_CPU_TEMP_SENSORS_LINE_MARKER="Package id 0\|Physical id 0\|temp1"
+# }
+
+# date_week.sh {
+# Symbol for calendar week.
+# export TMUX_POWERLINE_SEG_DATE_WEEK_SYMBOL="󰨳"
+# export TMUX_POWERLINE_SEG_DATE_WEEK_SYMBOL_COLOUR="255"
+# }
+
+# 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="/"
+# }
+
+# dropbox_status.sh {
+# The Dropbox glyph to use
+export TMUX_POWERLINE_SEG_DROPBOX_GLYPH="\uf16b"
+# Replace 'Uploading' in the status
+export TMUX_POWERLINE_SEG_DROPBOX_UPLOAD_GLYPH="\uf093"
+# Replace 'Downloading' in the status
+export TMUX_POWERLINE_SEG_DROPBOX_DOWNLOAD_GLYPH="\uf019"
+# Replace 'Indexing' in the status
+export TMUX_POWERLINE_SEG_DROPBOX_INDEX_GLYPH="\uf02e"
+# Replace 'Syncing' in the status
+export TMUX_POWERLINE_SEG_DROPBOX_SYNC_GLYPH="\uf46a"
+# }
+
+# 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"
+# }
+
+# gcalcli.sh {
+# gcalcli uses 24hr time format by default - if you want to see 12hr time format, set TMUX_POWERLINE_SEG_GCALCLI_MILITARY_TIME_DEFAULT to 0
+export TMUX_POWERLINE_SEG_GCALCLI_24HR_TIME_FORMAT="1"
+# }
+
+# github_notifications.sh {
+# Github token (https://github.com/settings/tokens) with at least "notifications" scope
+export TMUX_POWERLINE_SEG_GITHUB_NOTIFICATIONS_TOKEN=""
+# Include available notification reasons (https://docs.github.com/en/rest/activity/notifications?apiVersion=2022-11-28#about-notification-reasons),
+# in the format "REASON:SEPARATOR"
+# export TMUX_POWERLINE_SEG_GITHUB_NOTIFICATIONS_REASONS="approval_requested:-󰴄 |assign:-󰎔 |author:-󰔗 |comment:- |ci_activity:-󰙨 |invitation:- |manual:-󱥃 |mention:- |review_requested:- |security_alert:-󰒃 |state_change:-󱇯 |subscribed:- |team_mention:- "
+# Or if you don't like so many symbols, try the abbreviation variant
+# export TMUX_POWERLINE_SEG_GITHUB_NOTIFICATIONS_REASONS="approval_requested:areq|assign:as|author:au|comment:co|ci_activity:ci|invitation:in|manual:ma|mention:me|review_requested:rreq|security_alert:sec|state_change:st|subscribed:sub|team_mention:team"
+# Use symbol mode (ignored if you set TMUX_POWERLINE_SEG_GITHUB_NOTIFICATIONS_REASONS yourself)
+# export TMUX_POWERLINE_SEG_GITHUB_NOTIFICATIONS_SYMBOL_MODE="yes"
+# Summarize all notifications
+# export TMUX_POWERLINE_SEG_GITHUB_NOTIFICATIONS_SUMMARIZE="no"
+# Hide if no notifications
+# export TMUX_POWERLINE_SEG_GITHUB_NOTIFICATIONS_HIDE_NO_NOTIFICATIONS="yes"
+# Only show new notifications since date (default: today) (takes up to UPDATE_INTERVAL time to take effect)
+# export TMUX_POWERLINE_SEG_GITHUB_NOTIFICATIONS_SINCE="$(date +%Y-%m-%dT00:00:00Z)"
+# Enable show only notifications since date (takes up to UPDATE_INTERVAL time to take effect)
+# export TMUX_POWERLINE_SEG_GITHUB_NOTIFICATIONS_SINCE_ENABLE="no"
+# Maximum notifications to retreive per page (upstream github default per_page, 50)
+# export TMUX_POWERLINE_SEG_GITHUB_NOTIFICATIONS_PER_PAGE="50"
+# Maximum pages to retreive
+# export TMUX_POWERLINE_SEG_GITHUB_NOTIFICATIONS_MAX_PAGES="10"
+# Update interval to pull latest state from github api
+# export TMUX_POWERLINE_SEG_GITHUB_NOTIFICATIONS_UPDATE_INTERVAL="60"
+# Enable Test Mode (to test how the segment will look like when you have notifications for all types/reasons)
+# export TMUX_POWERLINE_SEG_GITHUB_NOTIFICATIONS_TEST_MODE="no"
+# }
+
+# hostname.sh {
+# Use short, long or custom format for the hostname. Can be {"short", "long", "custom"}.
+export TMUX_POWERLINE_SEG_HOSTNAME_FORMAT="short"
+# Custom name to be used when format is "custom"
+export TMUX_POWERLINE_SEG_HOSTNAME_CUSTOM=""
+# }
+
+# ifstat.sh {
+# Symbol for Download.
+# export TMUX_POWERLINE_SEG_IFSTAT_DOWN_SYMBOL="⇊"
+# Symbol for Upload.
+# export TMUX_POWERLINE_SEG_IFSTAT_UP_SYMBOL="⇈"
+# Symbol for Ethernet.
+# export TMUX_POWERLINE_SEG_IFSTAT_ETHERNET_SYMBOL="󰈀"
+# Symbol for WLAN.
+# export TMUX_POWERLINE_SEG_IFSTAT_WLAN_SYMBOL="󱚻"
+# Symbol for WWAN.
+# export TMUX_POWERLINE_SEG_IFSTAT_WWAN_SYMBOL=""
+# Separator for Interfaces.
+# export TMUX_POWERLINE_SEG_IFSTAT_INTERFACE_SEPARATOR=" | "
+# Space separated list of interface names to be excluded. substring match, regexp can be used.
+# Examples:
+# export TMUX_POWERLINE_SEG_IFSTAT_INTERFACE_EXCLUDES="tun" # will exclude 'tun0', 'utun0', 'itun', 'tun08127387'
+# export TMUX_POWERLINE_SEG_IFSTAT_INTERFACE_EXCLUDES="tun0 tuntun" # will exclude 'tun0', 'utun0', 'tuntun'
+# export TMUX_POWERLINE_SEG_IFSTAT_INTERFACE_EXCLUDES="^tun0$ ^tun1$" # excludes exactly 'tun0' and 'tun1'
+# Default:
+# export TMUX_POWERLINE_SEG_IFSTAT_INTERFACE_EXCLUDES="^u?tun[0-9]+$"
+# }
+
+# kubernetes_context.sh {
+# Kubernetes config context display mode {"name_namespace", "name", "namespace"}.
+# export TMUX_POWERLINE_SEG_KUBERNETES_CONTEXT_DISPLAY_MODE="name_namespace"
+# Kubernetes config context symbol.
+# export TMUX_POWERLINE_SEG_KUBERNETES_CONTEXT_SYMBOL="󱃾"
+# Kubernetes config context symbol colour.
+# export TMUX_POWERLINE_SEG_KUBERNETES_CONTEXT_SYMBOL_COLOUR="255"
+# Separator for display mode "name_namespace"
+# TMUX_POWERLINE_SEG_KUBERNETES_CONTEXT_SEPARATOR="󰿟"
+# }
+
+# lan_ip.sh {
+# Symbol for LAN IP.
+# export TMUX_POWERLINE_SEG_LAN_IP_SYMBOL="ⓛ "
+# Symbol colour for LAN IP
+# export TMUX_POWERLINE_SEG_LAN_IP_SYMBOL_COLOUR="255"
+# }
+
+# macos_notification_count.sh {
+
+# }
+
+# 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 macOS 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="$HOME/.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="$HOME/.mailcheckrc"
+# }
+
+# mode_indicator.sh {
+# Whether the normal & prefix mode section should be enabled. Should be {"true, "false"}.
+export TMUX_POWERLINE_SEG_MODE_INDICATOR_NORMAL_AND_PREFIX_MODE_ENABLED="true"
+# Normal mode text & color overrides. Defaults to "normal" & the segment foreground color set in the theme used.
+export TMUX_POWERLINE_SEG_MODE_INDICATOR_NORMAL_MODE_TEXT="normal"
+export TMUX_POWERLINE_SEG_MODE_INDICATOR_NORMAL_MODE_TEXT_COLOR=""
+# Prefix mode text & color overrides. Defaults to "prefix" & the segment foreground color set in the theme used.
+export TMUX_POWERLINE_SEG_MODE_INDICATOR_PREFIX_MODE_TEXT="prefix"
+export TMUX_POWERLINE_SEG_MODE_INDICATOR_PREFIX_MODE_TEXT_COLOR=""
+# Whether the mouse mode section should be enabled. Should be {"true, "false"}.
+export TMUX_POWERLINE_SEG_MODE_INDICATOR_MOUSE_MODE_ENABLED="true"
+# Mouse mode text & color overrides. Defaults to "mouse" & the segment foreground color set in the theme used.
+export TMUX_POWERLINE_SEG_MODE_INDICATOR_MOUSE_MODE_TEXT="mouse"
+export TMUX_POWERLINE_SEG_MODE_INDICATOR_MOUSE_MODE_TEXT_COLOR=""
+# Whether the copy mode section should be enabled. Should be {"true, "false"}.
+export TMUX_POWERLINE_SEG_MODE_INDICATOR_COPY_MODE_ENABLED="true"
+# Copy mode text & color overrides. Defaults to "copy" & the segment foreground color set in the theme used.
+export TMUX_POWERLINE_SEG_MODE_INDICATOR_COPY_MODE_TEXT="copy"
+export TMUX_POWERLINE_SEG_MODE_INDICATOR_COPY_MODE_TEXT_COLOR=""
+# Suspend mode text & color overrides. Defaults to "SUSPEND" & the segment foreground color set in the theme used.
+export TMUX_POWERLINE_SEG_MODE_INDICATOR_SUSPEND_MODE_TEXT="SUSPEND"
+export TMUX_POWERLINE_SEG_MODE_INDICATOR_SUSPEND_MODE_TEXT_COLOR=""
+# Separator text override. Defaults to " • ".
+export TMUX_POWERLINE_SEG_MODE_INDICATOR_SEPARATOR_TEXT=" • "
+# }
+
+# now_playing.sh {
+# Music player to use. Can be any of {audacious, banshee, cmus, apple_music, itunes, lastfm, plexamp, mocp, mpd, mpd_simple, pithos, playerctl, rdio, rhythmbox, spotify, file}.
+export TMUX_POWERLINE_SEG_NOW_PLAYING_MUSIC_PLAYER="lastfm"
+# 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"
+# Characters per second to roll if rolling trim method is used.
+export TMUX_POWERLINE_SEG_NOW_PLAYING_ROLL_SPEED="2"
+# Mode of roll text {"space", "repeat"}. space: fill up with empty space; repeat: repeat text from beginning
+# export TMUX_POWERLINE_SEG_NOW_PLAYING_ROLL_MODE="repeat"
+# Separator for "repeat" roll mode
+# export TMUX_POWERLINE_SEG_NOW_PLAYING_ROLL_SEPARATOR="  "
+# If set to 'true', 'yes', 'on' or '1', played tracks will be logged to a file.
+# export TMUX_POWERLINE_SEG_NOW_PLAYING_TRACK_LOG_ENABLE="false"
+# If enabled, log played tracks to the following file:
+# export TMUX_POWERLINE_SEG_NOW_PLAYING_TRACK_LOG_FILEPATH="$HOME/.now_playing.log"
+# Maximum number of logged song entries. Set to "unlimited" for unlimited entries.
+# export TMUX_POWERLINE_SEG_NOW_PLAYING_TRACK_LOG_MAX_ENTRIES="100"
+
+# 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 playerctl. see "Format Strings" in playerctl(1).
+export TMUX_POWERLINE_SEG_NOW_PLAYING_PLAYERCTL_FORMAT="{{ artist }} - {{ title }}"
+# Song display format for rhythmbox. see "FORMATS" in rhythmbox-client(1).
+export TMUX_POWERLINE_SEG_NOW_PLAYING_RHYTHMBOX_FORMAT="%aa - %tt"
+
+# Last.fm
+# Set up steps for Last.fm
+# 1. Make sure jq(1) is installed on the system.
+# 2. Create a new API application at https://www.last.fm/api/account/create (name it tmux-powerline) and copy the API key and insert it below in the setting TMUX_POWERLINE_SEG_NOW_PLAYING_LASTFM_API_KEY
+# 3. Make sure the API can access your recently played song by going to you user privacy settings https://www.last.fm/settings/privacy and make sure "Hide recent listening information" is UNCHECKED.
+# Username for Last.fm if that music player is used.
+export TMUX_POWERLINE_SEG_NOW_PLAYING_LASTFM_USERNAME=""
+# API Key for the API.
+export TMUX_POWERLINE_SEG_NOW_PLAYING_LASTFM_API_KEY=""
+# 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="♫"
+
+# Plexamp
+# Set up steps for Plexamp
+# 1. Make sure jq(1) is installed on the system.
+# 2. Make sure you have an instance of Tautulli that is accessible by the computer running tmux-powerline.
+# Username for Plexamp if that music player is used.
+export TMUX_POWERLINE_SEG_NOW_PLAYING_PLEXAMP_USERNAME=""
+# Hostname for Tautulli server in the format "[password@]host"
+export TMUX_POWERLINE_SEG_NOW_PLAYING_PLEXAMP_TAUTULLI_HOST=""
+# API Key for Tautulli.
+export TMUX_POWERLINE_SEG_NOW_PLAYING_PLEXAMP_TAUTULLI_API_KEY=""
+# How often in seconds to update the data from Plexamp.
+export TMUX_POWERLINE_SEG_NOW_PLAYING_PLEXAMP_UPDATE_PERIOD="30"
+# }
+
+# 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"
+# Change this to display a different timezone than the system default.
+# Use TZ Identifier like "America/Los_Angeles"
+# export TMUX_POWERLINE_SEG_TIME_TZ=""
+# }
+
+# tmux_continuum_save.sh {
+# Path to the tmux-continuum git repo.
+export TMUX_POWERLINE_SEG_TMUX_CONTINUUM_PATH="$HOME/.tmux/plugins/tmux-continuum"
+# }
+
+# tmux_continuum_status.sh {
+# Path to the tmux-continuum git repo.
+export TMUX_POWERLINE_SEG_TMUX_CONTINUUM_PATH="$HOME/.tmux/plugins/tmux-continuum"
+# Message to perfix the status indication with.
+export TMUX_POWERLINE_SEG_TMUX_CONTINUUM_PREFIX="Continuum status: "
+# }
+
+# tmux_mem_cpu_load.sh {
+# Arguments passed to tmux-mem-cpu-load.
+# See https://github.com/thewtex/tmux-mem-cpu-load for all available options.
+# export TMUX_POWERLINE_SEG_TMUX_MEM_CPU_LOAD_ARGS="-v"
+# }
+
+# tmux_session_info.sh {
+# Session info format to feed into the command: tmux display-message -p
+# For example, if FORMAT is '[ #S ]', the command is: tmux display-message -p '[ #S ]'
+export TMUX_POWERLINE_SEG_TMUX_SESSION_INFO_FORMAT="#S:#I.#P"
+# }
+
+# utc_time.sh {
+# date(1) format for the UTC time.
+export TMUX_POWERLINE_SEG_UTC_TIME_FORMAT="%H:%M %Z"
+# }
+
+# vcs_branch.sh {
+# Max length of the branch name.
+export TMUX_POWERLINE_SEG_VCS_BRANCH_MAX_LEN=""
+# Symbol when branch length exceeds max length
+# export TMUX_POWERLINE_SEG_VCS_BRANCH_TRUNCATE_SYMBOL="…"
+# Default branch symbol
+export TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL=""
+# Branch symbol for git repositories
+# export TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL="${TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL}"
+# Branch symbol for hg/mercurial repositories
+# export TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL="${TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL}"
+# Branch symbol for SVN repositories
+# export TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL="${TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL}"
+# Branch symbol colour for git repositories
+export TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL_COLOUR="5"
+# Branch symbol colour for hg/mercurial repositories
+export TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL_COLOUR="45"
+# Branch symbol colour for SVN repositories
+export TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL_COLOUR="220"
+# }
+
+# vcs_compare.sh {
+# Symbol if local branch is behind.
+# export TMUX_POWERLINE_SEG_VCS_COMPARE_AHEAD_SYMBOL="↑ "
+# Symbol colour if local branch is ahead. Defaults to "current segment foreground colour"
+# export TMUX_POWERLINE_SEG_VCS_COMPARE_AHEAD_SYMBOL_COLOUR=""
+# Symbol if local branch is ahead.
+# export TMUX_POWERLINE_SEG_VCS_COMPARE_BEHIND_SYMBOL="↓ "
+# Symbol colour if local branch is behind. Defaults to "current segment foreground colour"
+# export TMUX_POWERLINE_SEG_VCS_COMPARE_BEHIND_SYMBOL_COLOUR=""
+# }
+
+# vcs_modified.sh {
+# Symbol for count of modified vcs files.
+# export TMUX_POWERLINE_SEG_VCS_MODIFIED_SYMBOL="± "
+# }
+
+# vcs_others.sh {
+# Symbol for count of untracked vcs files.
+# export TMUX_POWERLINE_SEG_VCS_OTHERS_SYMBOL="⋯"
+# }
+
+# vcs_rootpath.sh {
+# Display mode for vcs_rootpath.
+# Example: (name: folder name only; path: full path, w/o expansion; user_path: full path, w/ tilde expansion)
+# export TMUX_POWERLINE_SEG_VCS_ROOTPATH_MODE="name"
+# }
+
+# vcs_staged.sh {
+# Symbol for count of staged vcs files.
+# export TMUX_POWERLINE_SEG_VCS_STAGED_SYMBOL="⊕ "
+# }
+
+# vpn.sh {
+# Mode for VPN segment {"both", "ip", "name"}. both: Show NIC/IP; ip: Show only IP; name: Show only NIC name
+# export TMUX_POWERLINE_SEG_VPN_DISPLAY_MODE="both"
+# Space separated list of tunnel interface names. First match is being used. substring match, regexp can be used.
+# Examples:
+# export TMUX_POWERLINE_SEG_VPN_NICS="tun" # will match 'tun0', 'utun0', 'itun', 'tun08127387'
+# export TMUX_POWERLINE_SEG_VPN_NICS="tun0 tuntun" # will match 'tun0', 'utun0', 'tuntun'
+# export TMUX_POWERLINE_SEG_VPN_NICS="^tun0$ ^tun1$" # exactly 'tun0' and 'tun1'
+# Default:
+# export TMUX_POWERLINE_SEG_VPN_NICS='^u?tun[0-9]+$'
+# Symbol to use for vpn tunnel.
+# export TMUX_POWERLINE_SEG_VPN_SYMBOL="󱠾 "
+# Colour for vpn tunnel symbol
+# export TMUX_POWERLINE_SEG_VPN_SYMBOL_COLOUR="255"
+# Symbol for separator
+# export TMUX_POWERLINE_SEG_VPN_DISPLAY_SEPARATOR="󰿟"
+# }
+
+# wan_ip.sh {
+# Symbol for WAN IP
+# export TMUX_POWERLINE_SEG_WAN_IP_SYMBOL="ⓦ "
+# Symbol colour for WAN IP
+# export TMUX_POWERLINE_SEG_WAN_IP_SYMBOL_COLOUR="255"
+# }
+
+# weather.sh {
+# The data provider to use. Currently only "yrno" is supported.
+export TMUX_POWERLINE_SEG_WEATHER_DATA_PROVIDER="yrno"
+# 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"
+# How often to update the weather location in seconds (this is only used when latitude and longitude settings are set to "auto")
+export TMUX_POWERLINE_SEG_WEATHER_LOCATION_UPDATE_PERIOD="86400"
+# Your location
+# Latitude and Longtitude for use with yr.no
+# Set both to "auto" to detect automatically based on your IP address, or set them manually
+export TMUX_POWERLINE_SEG_WEATHER_LAT="auto"
+export TMUX_POWERLINE_SEG_WEATHER_LON="auto"
+# }
+
+# xkb_layout.sh {
+# Keyboard icon
+export TMUX_POWERLINE_SEG_XKB_LAYOUT_ICON="⌨ "
+# }
diff --git a/.config/tmux-powerline/themes/main.sh b/.config/tmux-powerline/themes/main.sh
new file mode 100644
index 0000000..c558c2b
--- /dev/null
+++ b/.config/tmux-powerline/themes/main.sh
@@ -0,0 +1,230 @@
+# shellcheck shell=bash
+# Pywal Theme - Integrated with pywal colors
+# If changes made here does not take effect, then try to re-create the tmux session to force reload.
+
+# Source pywal colors if available
+if [ -f "${HOME}/.cache/wal/colors.sh" ]; then
+ # shellcheck source=/dev/null
+ source "${HOME}/.cache/wal/colors.sh"
+fi
+
+if tp_patched_font_in_use; then
+ TMUX_POWERLINE_SEPARATOR_LEFT_BOLD=""
+ TMUX_POWERLINE_SEPARATOR_LEFT_THIN=""
+ TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD=""
+ TMUX_POWERLINE_SEPARATOR_RIGHT_THIN=""
+else
+ TMUX_POWERLINE_SEPARATOR_LEFT_BOLD="◀"
+ TMUX_POWERLINE_SEPARATOR_LEFT_THIN="❮"
+ TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD="▶"
+ TMUX_POWERLINE_SEPARATOR_RIGHT_THIN="❯"
+fi
+
+# See Color formatting section below for details on what colors can be used here.
+# Use pywal colors if available, otherwise fallback to defaults
+if [ -n "$background" ] && [ -n "$foreground" ]; then
+ TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR=${TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR:-"$background"}
+ TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR=${TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR:-"$foreground"}
+else
+ TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR=${TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR:-'235'}
+ TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR=${TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR:-'255'}
+fi
+# shellcheck disable=SC2034
+TMUX_POWERLINE_SEG_AIR_COLOR=$(tp_air_color)
+
+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}
+
+# See `man tmux` for additional formatting options for the status line.
+# The `format regular` and `format inverse` functions are provided as conveniences
+
+# shellcheck disable=SC2128
+if [ -z "$TMUX_POWERLINE_WINDOW_STATUS_CURRENT" ]; then
+ TMUX_POWERLINE_WINDOW_STATUS_CURRENT=(
+ "#[$(tp_format inverse)]"
+ "$TMUX_POWERLINE_DEFAULT_LEFTSIDE_SEPARATOR"
+ " #I#F "
+ "$TMUX_POWERLINE_SEPARATOR_RIGHT_THIN"
+ " #W "
+ "#[$(tp_format regular)]"
+ "$TMUX_POWERLINE_DEFAULT_LEFTSIDE_SEPARATOR"
+ )
+fi
+
+# shellcheck disable=SC2128
+if [ -z "$TMUX_POWERLINE_WINDOW_STATUS_STYLE" ]; then
+ TMUX_POWERLINE_WINDOW_STATUS_STYLE=(
+ "$(tp_format regular)"
+ )
+fi
+
+# shellcheck disable=SC2128
+if [ -z "$TMUX_POWERLINE_WINDOW_STATUS_FORMAT" ]; then
+ TMUX_POWERLINE_WINDOW_STATUS_FORMAT=(
+ "#[$(tp_format regular)]"
+ " #I#{?window_flags,#F, } "
+ "$TMUX_POWERLINE_SEPARATOR_RIGHT_THIN"
+ " #W "
+ )
+fi
+
+# Format: segment_name [background_color|default_bg_color] [foreground_color|default_fg_color] [non_default_separator|default_separator] [separator_background_color|no_sep_bg_color]
+# [separator_foreground_color|no_sep_fg_color] [spacing_disable|no_spacing_disable] [separator_disable|no_separator_disable]
+#
+# * background_color and foreground_color. Color formatting (see `man tmux` for complete list) or run the color_palette.sh in the tmux-powerline root directory:
+# * Named colors, e.g. black, red, green, yellow, blue, magenta, cyan, white
+# * Hexadecimal RGB string e.g. #ffffff
+# * 'default_fg_color|default_bg_color' for the default theme bg and fg color
+# * 'default' for the default tmux color.
+# * 'terminal' for the terminal's default background/foreground color
+# * The numbers 0-255 for the 256-color palette. Run `tmux-powerline/color-palette.sh` to see the colors.
+# * non_default_separator - specify an alternative character for this segment's separator
+# * 'default_separator' for the theme default separator
+# * separator_background_color - specify a unique background color for the separator
+# * 'no_sep_bg_color' for using the default coloring for the separator
+# * separator_foreground_color - specify a unique foreground color for the separator
+# * 'no_sep_fg_color' for using the default coloring for the separator
+# * spacing_disable - remove space on left, right or both sides of the segment:
+# * "no_spacing_disable" - don't disable spacing (default)
+# * "left_disable" - disable space on the left
+# * "right_disable" - disable space on the right
+# * "both_disable" - disable spaces on both sides
+# * - any other character/string produces no change to default behavior (eg "none", "X", etc.)
+#
+# * separator_disable - disables drawing a separator on this segment, very useful for segments
+# with dynamic background colours (eg tmux_mem_cpu_load):
+# * "no_separator_disable" - don't disable the separator (default)
+# * "separator_disable" - disables the separator
+# * - any other character/string produces no change to default behavior
+#
+# Example segment with separator disabled and right space character disabled:
+# "hostname 33 0 {TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD} 0 0 right_disable separator_disable"
+#
+# Example segment with spacing characters disabled on both sides but not touching the default coloring:
+# "hostname 33 0 {TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD} no_sep_bg_color no_sep_fg_color both_disable"
+#
+# Example segment with changing the foreground color of the default separator:
+# "hostname 33 0 default_separator no_sep_bg_color 120"
+#
+## Note that although redundant the non_default_separator, separator_background_color and
+# separator_foreground_color options must still be specified so that appropriate index
+# of options to support the spacing_disable and separator_disable features can be used
+# The default_* and no_* can be used to keep the default behaviour.
+
+# shellcheck disable=SC1143,SC2128
+if [ -z "$TMUX_POWERLINE_LEFT_STATUS_SEGMENTS" ]; then
+ # Use pywal colors if available, otherwise use defaults
+ # shellcheck disable=SC2154
+ if [ -n "$color5" ] && [ -n "$background" ]; then
+ # shellcheck disable=SC2154
+ TMUX_POWERLINE_LEFT_STATUS_SEGMENTS=(
+ # shellcheck disable=SC2154
+ "tmux_session_info ${color5} ${background}"
+ # shellcheck disable=SC2154
+ "hostname ${color3} ${background}"
+ #"mode_indicator 165 0"
+ #"ifstat 30 255"
+ #"ifstat_sys 30 255"
+ # shellcheck disable=SC2154
+ # "lan_ip ${color6} ${background} ${TMUX_POWERLINE_SEPARATOR_RIGHT_THIN}"
+ #"vpn 24 255 ${TMUX_POWERLINE_SEPARATOR_RIGHT_THIN}"
+ # shellcheck disable=SC2154
+ # "wan_ip ${color6} ${background} ${TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD} ${color2} ${background}"
+ # shellcheck disable=SC2154
+ "vcs_branch ${color2} ${background}"
+ #"vcs_compare 60 255"
+ #"vcs_staged 64 255"
+ #"vcs_modified 9 255"
+ #"vcs_others 245 0"
+ )
+ else
+ TMUX_POWERLINE_LEFT_STATUS_SEGMENTS=(
+ "tmux_session_info 148 234"
+ "hostname 33 0"
+ #"mode_indicator 165 0"
+ #"ifstat 30 255"
+ #"ifstat_sys 30 255"
+ # "lan_ip 24 255 ${TMUX_POWERLINE_SEPARATOR_RIGHT_THIN}"
+ #"vpn 24 255 ${TMUX_POWERLINE_SEPARATOR_RIGHT_THIN}"
+ # "wan_ip 24 255 ${TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD} 29 255"
+ "vcs_branch 29 88"
+ #"vcs_compare 60 255"
+ #"vcs_staged 64 255"
+ #"vcs_modified 9 255"
+ #"vcs_others 245 0"
+ )
+ fi
+fi
+
+# shellcheck disable=SC1143,SC2128
+if [ -z "$TMUX_POWERLINE_RIGHT_STATUS_SEGMENTS" ]; then
+ # Use pywal colors if available, otherwise use defaults
+ # shellcheck disable=SC2154
+ if [ -n "$color1" ] && [ -n "$background" ] && [ -n "$foreground" ]; then
+ # shellcheck disable=SC2154
+ TMUX_POWERLINE_RIGHT_STATUS_SEGMENTS=(
+ #"earthquake 3 0"
+ # shellcheck disable=SC2154
+ "pwd ${color4} ${background}"
+ #"macos_notification_count 29 255"
+ #"mailcount 9 255"
+ "now_playing 234 37"
+ #"cpu 240 136"
+ # shellcheck disable=SC2154
+ # "load ${color8} ${background}"
+ #"tmux_mem_cpu_load 234 136"
+ # shellcheck disable=SC2154
+ "battery ${color5} ${background}"
+ #"air ${TMUX_POWERLINE_SEG_AIR_COLOR} 255"
+ # shellcheck disable=SC2154
+ "weather ${color14} ${background}"
+ #"rainbarf 0 ${TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR}"
+ # "$(
+ # if (($(tp_cpu_temp_at_least 60))); then
+ # echo "cpu_temp #ff2020 235"
+ # else
+ # echo "cpu_temp #303080 136"
+ # fi
+ # )" \
+ #"xkb_layout 125 117"
+ #"tmux_continuum_save"
+ #"tmux_continuum_status 14 7"
+ # shellcheck disable=SC2154
+ "date_day ${color1} ${background}"
+ # shellcheck disable=SC2154
+ "date ${color1} ${background} ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}"
+ # shellcheck disable=SC2154
+ "time ${color1} ${background} ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}"
+ #"utc_time 235 136 ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}"
+ )
+ else
+ TMUX_POWERLINE_RIGHT_STATUS_SEGMENTS=(
+ #"earthquake 3 0"
+ "pwd 89 211"
+ #"macos_notification_count 29 255"
+ #"mailcount 9 255"
+ "now_playing 234 37"
+ #"cpu 240 136"
+ # "load 237 167"
+ #"tmux_mem_cpu_load 234 136"
+ "battery 137 127"
+ #"air ${TMUX_POWERLINE_SEG_AIR_COLOR} 255"
+ "weather 37 255"
+ #"rainbarf 0 ${TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR}"
+ # "$(
+ # if (($(tp_cpu_temp_at_least 60))); then
+ # echo "cpu_temp #ff2020 235"
+ # else
+ # echo "cpu_temp #303080 136"
+ # fi
+ # )" \
+ #"xkb_layout 125 117"
+ #"tmux_continuum_save"
+ #"tmux_continuum_status 14 7"
+ "date_day 235 136"
+ "date 235 136 ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}"
+ "time 235 136 ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}"
+ #"utc_time 235 136 ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}"
+ )
+ fi
+fi