Compare commits

..

29 Commits

Author SHA1 Message Date
2af643db6f
feat tmux: add htop & neofetch button 2025-06-02 00:23:21 +08:00
847e14a043
feat tmux: add split button 2025-06-02 00:10:29 +08:00
5a43b5163c
feat tmux: add detach button 2025-06-01 23:44:31 +08:00
2517657f90
feat tmux: add kill-window button & clock button 2025-06-01 23:36:44 +08:00
1be24df165
feat tmux: 調整 window count 2025-06-01 23:21:44 +08:00
a32d7af6fe
feat tmux: add window count 2025-06-01 23:10:15 +08:00
24e7cc06ed
feat tmux: add new-window button 2025-06-01 22:56:07 +08:00
f65b84498e
feat tmux: 調整statusbar顯示樣式 2025-06-01 22:27:00 +08:00
8edae81ffc
feat tmux: 調整statusbar顯示組件內容 2025-06-01 22:14:22 +08:00
b5bf45ed91
feat tmux: 調整statusbar顯示組件內容 2025-06-01 22:02:21 +08:00
c9f6e56d3b
feat tmux: add uptime 2025-06-01 21:28:23 +08:00
cb38b810e3
feat tmux: 微調statusbar 2025-06-01 20:52:21 +08:00
98102b784c
feat tmux: 微調status-left 2025-06-01 20:02:34 +08:00
249cdb195c
feat tmux: mode statusbar bold 2025-06-01 19:59:21 +08:00
560dd8baef
feat tmux: window statusbar style 2025-06-01 19:48:22 +08:00
8df5519f0d
feat tmux: window list style 2025-06-01 19:22:35 +08:00
b7768c7630
feat tmux: 調整statusbar左側樣式 2025-06-01 18:43:18 +08:00
76b23842a8
feat tmux: 調整statusbar mode 顏色與字 2025-06-01 18:27:26 +08:00
d72a49c2db
feat tmux: add mode in statusbar 2025-06-01 18:10:52 +08:00
85f7f9a560
fix nvim: Disable default open Minimap 2025-06-01 17:22:47 +08:00
92343ab2ae
fix nvim: 在ToggleTerm內部由git呼叫到編輯器時,依然在Term內部不要讓flatten接管變成Buffer 2025-06-01 17:22:28 +08:00
afa0757a8a
feat tmux: statusline先做初步調整 2025-06-01 17:16:59 +08:00
87cd0d2499
fet tmux: add tmux-powerline 2025-06-01 13:52:01 +08:00
9045a87e7a
feat tmux: enable mouse support 2025-06-01 13:50:48 +08:00
b5d17051cd
add tmux: init TPM 2025-06-01 13:49:37 +08:00
4703d9c3d7 Revert "add tmux: add oh-my-tmux"
This reverts commit a57bf598b770285ed0afc7d44c6630a712b1d54a.
2025-06-01 12:29:39 +08:00
f04b8988db Revert "feat tmux: oh-my-tmux 調整"
This reverts commit 6f9cde3e09d116e3c68ae81f42e2b3e8c35c64b5.
2025-06-01 12:29:29 +08:00
6f9cde3e09
feat tmux: oh-my-tmux 調整 2025-06-01 12:28:17 +08:00
a57bf598b7
add tmux: add oh-my-tmux 2025-05-31 20:39:58 +08:00
6 changed files with 715 additions and 1 deletions

View File

@ -3,6 +3,11 @@
url = "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim"
refreshPeriod = "168h"
[".tmux/plugins/tpm"]
type = "git-repo"
url = "https://github.com/tmux-plugins/tpm"
refreshPeriod = "168h"
[".oh-my-bash"]
type = "git-repo"
url = "https://github.com/ohmybash/oh-my-bash"

View File

@ -76,7 +76,7 @@ return {
--- Put your configuration here
---@type Neominimap.UserConfig
vim.g.neominimap = {
auto_enable = true,
auto_enable = false,
click = {
-- Enable mouse click on the minimap

View File

@ -0,0 +1,442 @@
# 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"
export TMUX_POWERLINE_THEME="my-theme"
# 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="centre"
# 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"
# }
# 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"
# }
# date_week.sh {
# Symbol for calendar week.
# export TMUX_POWERLINE_SEG_DATE_WEEK_SYMBOL="󰨳"
# export TMUX_POWERLINE_SEG_DATE_WEEK_SYMBOL_COLOUR="255"
# }
# 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=""
# Replace 'Uploading' in the status
export TMUX_POWERLINE_SEG_DROPBOX_UPLOAD_GLYPH=""
# Replace 'Downloading' in the status
export TMUX_POWERLINE_SEG_DROPBOX_DOWNLOAD_GLYPH=""
# Replace 'Indexing' in the status
export TMUX_POWERLINE_SEG_DROPBOX_INDEX_GLYPH=""
# Replace 'Syncing' in the status
export TMUX_POWERLINE_SEG_DROPBOX_SYNC_GLYPH=""
# }
# 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 or long format for the hostname. Can be {"short, long"}.
export TMUX_POWERLINE_SEG_HOSTNAME_FORMAT="short"
# }
# 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/yuan/.mail/inbox/new"
## mbox
# Path to the mbox to check.
export TMUX_POWERLINE_SEG_MAILCOUNT_MBOX_INBOX="/var/spool/mail/yuan"
## mailcheck
# Optional path to mailcheckrc
export TMUX_POWERLINE_SEG_MAILCOUNT_MAILCHECKRC="/home/yuan/.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="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"
# 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/yuan/.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_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="⌨ "
# }

View File

@ -0,0 +1,142 @@
# shellcheck shell=bash
# Default Theme
# If changes made here does not take effect, then try to re-create the tmux session to force reload.
if 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.
TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR=${TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR:-'235'}
TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR=${TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR:-'255'}
# shellcheck disable=SC2034
TMUX_POWERLINE_SEG_AIR_COLOR=$(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=(
"#[$(format inverse)]"
"$TMUX_POWERLINE_DEFAULT_LEFTSIDE_SEPARATOR"
" #I#F "
"$TMUX_POWERLINE_SEPARATOR_RIGHT_THIN"
" #W "
"#[$(format regular)]"
"$TMUX_POWERLINE_DEFAULT_LEFTSIDE_SEPARATOR"
)
fi
# shellcheck disable=SC2128
if [ -z "$TMUX_POWERLINE_WINDOW_STATUS_STYLE" ]; then
TMUX_POWERLINE_WINDOW_STATUS_STYLE=(
"$(format regular)"
)
fi
# shellcheck disable=SC2128
if [ -z "$TMUX_POWERLINE_WINDOW_STATUS_FORMAT" ]; then
TMUX_POWERLINE_WINDOW_STATUS_FORMAT=(
"#[$(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):
# * 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
TMUX_POWERLINE_LEFT_STATUS_SEGMENTS=(
"mode_indicator 165 0"
"tmux_session_info 148 234"
"hostname 33 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"
"vcs_branch 29 88"
#"vcs_compare 60 255"
#"vcs_staged 64 255"
#"vcs_modified 9 255"
#"vcs_others 245 0"
)
fi
# shellcheck disable=SC1143,SC2128
if [ -z "$TMUX_POWERLINE_RIGHT_STATUS_SEGMENTS" ]; then
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}"
#"xkb_layout 125 117"
"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

View File

@ -14,6 +14,7 @@
{{ end }}
[core]
excludesfile = {{ joinPath .chezmoi.homeDir ".gitignore_global" }}
editor = unset NVIM && $EDITOR
[difftool "sourcetree"]
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
path =

124
dot_tmux.conf Normal file
View File

@ -0,0 +1,124 @@
# Tmux Basic Configure
set -g mouse on
set -g mode-keys vi
# 讓終端支援 Truecolor
set-option -ga terminal-overrides ',*:Tc'
# == TPM Configure ============================================================
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'github_username/plugin_name#branch'
# set -g @plugin 'git@github.com:user/plugin'
# set -g @plugin 'git@bitbucket.com:user/plugin'
# set -g @plugin 'MunifTanjim/tmux-mode-indicator'
set -g @plugin 'aacebedo/tmux-mode-indicator'
set -g @plugin 'robhurring/tmux-uptime'
set -g @plugin 'tassaron/tmux-df'
# set -g @plugin 'anghootys/tmux-ip-address'
set -g @plugin 'tmux-plugins/tmux-net-speed' # Warning! 這個套件副作用會處理多餘空隔(對策是全形空隔)以及內部可能有做正規表示式處理造成tmux-ip-address不正常
# == Plugin Configure =========================================================
set -g @net_speed_format "#[fg=green]⇣%s #[fg=yellow]⇡%s"
# ---- tmux-mode-indicator ----------------------------------------------------
# prompt to display when tmux prefix key is pressed
set -g @mode_indicator_prefix_prompt ' PREFIX '
# prompt to display when tmux is in copy mode
set -g @mode_indicator_copy_prompt " COPY "
# prompt to display when tmux has synchronized panes
set -g @mode_indicator_sync_prompt ' SYNC '
# prompt to display when tmux is in normal mode
set -g @mode_indicator_empty_prompt ' TERM '
# add an element at the start of the indicator in <mode> mode (replace it with prefix, copy, sync or empty)
set -g @mode_indicator_prefix_end_prompt ''
set -g @mode_indicator_copy_end_prompt ''
set -g @mode_indicator_sync_end_prompt ''
set -g @mode_indicator_empty_end_prompt ''
# style values for prefix prompt
set -g @mode_indicator_prefix_mode_style 'bg=green,fg=black,bold'
# style values for copy prompt
set -g @mode_indicator_copy_mode_style 'bg=violet,fg=black,bold'
# style values for sync prompt
set -g @mode_indicator_sync_mode_style 'bg=red,fg=black,bold'
# style values for empty prompt
set -g @mode_indicator_empty_mode_style 'bg=cyan,fg=black,bold'
# stàle the element at the start of the indicator in <mode> mode (replace it with prefix, copy, sync or empty)
set -g @mode_indicator_prefix_mode_end_style 'fg=green,bg=yellow'
set -g @mode_indicator_copy_mode_end_style 'fg=violet,bg=yellow'
set -g @mode_indicator_sync_mode_end_style 'fg=red,bg=yellow'
set -g @mode_indicator_empty_mode_end_style 'fg=cyan,bg=yellow'
# == StatusBar Configure ======================================================
# tmux show-options -g | grep status-left
set -g status-interval 1
set -g status-keys vi
# set -g status-justify centre
set -g status-left-length 100
set -g status-right-length 100
set -g status-bg default
set -g status-fg white
set -g status-style "bg=black,fg=white"
set -g status-left "#{tmux_mode_indicator}#[range=user|detach]#[fg=black,bg=yellow] ❐ #{session_name} #[norange]#[fg=yellow,bg=white]#[fg=black,bg=white]#[range=user|sv]  #[norange]#[range=user|sh]  #[norange]#[range=user|new] 󰖲 #(tmux list-windows -t #{session_name} | wc -l)  #[norange]#[fg=white,bg=default] "
set -g status-right "#[fg=gray,bg=default] ⇄ #{net_speed} #[bg=default,fg=cyan]#[range=user|htop]#[fg=black,bg=cyan]  #{df_avail} #[fg=pink,bg=cyan]#[norange]#[range=user|sysinfo]#[fg=black,bg=pink] #{?window_bigger,[#{window_offset_x}#,#{window_offset_y}] ,}\"#{=21:pane_title}\" #[norange]#[fg=white,bg=pink]#[range=user|clock]#[bg=white,fg=black]  #{uptime}  %H:%M:%S #[norange]"
# set -g status-left '#{tmux_mode_indicator}#[fg=colour240]#(whoami)'
# set -g status-left '#{tmux_mode_indicator}#[fg=colour240]#[fg=colour255,bg=colour240] #(whoami) #[fg=colour240,bg=default]'
# set -g status-left "#[bg=colour240]aaaaa #[fg=colour240]#[fg=colour255,bg=colour240] #(whoami) #[fg=black,bg=colour240]"
# set -g status-left "#[bg=colour240]aaaaa #[fg=colour240]#[fg=colour255,bg=colour240] #(whoami) #[fg=black,bg=colour240]"
# set -g status-right "#(date '+%Y-%m-%d %H:%M') #[fg=colour240]#[fg=white,bg=colour240] #(uptime | cut -d ',' -f 1)"
# == StatusBar window Configure ===============================================
# set -g window-status-activity-style "reverse"
# set -g window-status-bell-style "reverse"
# set -g window-status-current-format "#I:#W#F"
# set -g window-status-current-style "default"
# set -g window-status-format "#I:#W#F"
# set -g window-status-last-style "default"
# set -g window-status-separator " "
# set -g window-status-style "default"
set -wg window-status-format "#[fg=blue,bg=default]#{?#{<:#{window_index},10}, #{window_index},#{window_index}}#[bg=default,fg=blue]#[bg=default,fg=black]#[bg=default,fg=gray] #W#{?window_flags,#{window_flags}, }  #[fg=blue,bg=default]"
set -wg window-status-current-format "#[fg=blue,bg=default]#[bg=blue,fg=black]#{?#{<:#{window_index},10}, #{window_index},#{window_index}}#[bg=blue,fg=black]#[bg=blue,fg=white] #W#{?window_flags,#{window_flags}, }#[range=user|close] 󰖭 #[norange]#[fg=blue,bg=default]" # 状态栏当前窗口名称格式(#I序号#w窗口名 称,#F间隔符)
# set -wg window-status-current-style "fg=#d7fcaf,bg=#60875f" # 状态栏当前窗口名称的样式
set -wg window-status-separator " " # 状态栏窗口名称之间的间隔
bind -Troot MouseDown1Status if -F '#{==:#{mouse_status_range},window}' {
select-window
} {
if -F '#{==:#{mouse_status_range},new}' {
new-window
}
if -F '#{==:#{mouse_status_range},close}' {
kill-pane
}
if -F '#{==:#{mouse_status_range},sv}' {
split-pane
}
if -F '#{==:#{mouse_status_range},sh}' {
split-pane -h
}
if -F '#{==:#{mouse_status_range},detach}' {
detach
}
if -F '#{==:#{mouse_status_range},htop}' {
new-window htop
}
if -F '#{==:#{mouse_status_range},sysinfo}' {
new-window "neofetch && read -n 1 -p 'Press any key to continue...'"
}
if -F '#{==:#{mouse_status_range},clock}' {
clock-mode
}
}
# == TPM Footer =------========================================================
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'