aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorCody Hiar <codyfh@gmail.com>2017-04-20 19:37:10 -0600
committerCody Hiar <codyfh@gmail.com>2017-04-20 19:37:10 -0600
commit2dd809781527976307b47a598887062047e202c9 (patch)
tree8b29daba2c1ef072f380ef530b7e7d9256e43eb3 /lib
parentbaeb698bb006193559fc5aa1901180a3ccc73b7a (diff)
Making tmux configuration much easier to manage
Diffstat (limited to 'lib')
-rw-r--r--lib/arg_processing.sh9
-rw-r--r--lib/formatting.sh5
-rw-r--r--lib/muting.sh20
-rw-r--r--lib/powerline.sh142
-rw-r--r--lib/rcfile.sh68
-rw-r--r--lib/text_roll.sh63
-rw-r--r--lib/tmux_adapter.sh12
7 files changed, 0 insertions, 319 deletions
diff --git a/lib/arg_processing.sh b/lib/arg_processing.sh
deleted file mode 100644
index d8fb92c..0000000
--- a/lib/arg_processing.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#! Check script arguments.
-
-check_arg_side() {
- local side="$1"
- if ! [ "$side" == "left" -o "$side" == "right" ]; then
- echo "Argument must be must be the side to handle {left, right} and not \"${side}\"."
- exit 1
- fi
-}
diff --git a/lib/formatting.sh b/lib/formatting.sh
deleted file mode 100644
index d891863..0000000
--- a/lib/formatting.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-__print_colored_content() {
- echo -n "#[fg=colour$3, bg=colour$2]"
- echo -n "$1"
- echo -n "#[default]"
-}
diff --git a/lib/muting.sh b/lib/muting.sh
deleted file mode 100644
index 595ba87..0000000
--- a/lib/muting.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-# Muting Logic
-# In all cases $1 is the side to be muted (eg left/right).
-
-powerline_muted() {
- [ -e "$(__powerline_mute_file $1)" ];
-}
-
-toggle_powerline_mute_status() {
- if powerline_muted $1; then
- rm "$(__powerline_mute_file $1)"
- else
- touch "$(__powerline_mute_file $1)"
- fi
-}
-
-__powerline_mute_file() {
- local tmux_session=$(tmux display -p "#S")
-
- echo -n "${TMUX_POWERLINE_DIR_TEMPORARY}/mute_${tmux_session}_$1"
-}
diff --git a/lib/powerline.sh b/lib/powerline.sh
deleted file mode 100644
index 3a3fb68..0000000
--- a/lib/powerline.sh
+++ /dev/null
@@ -1,142 +0,0 @@
-# Library functions
-
-print_powerline() {
- local side="$1"
- local upper_side=$(echo "$1" | tr '[:lower:]' '[:upper:]')
- eval "local input_segments=(\"\${TMUX_POWERLINE_${upper_side}_STATUS_SEGMENTS[@]}\")"
- local powerline_segments=()
- local powerline_segment_contents=()
-
- __check_platform
-
- __process_segment_defaults
- __process_scripts
- __process_colors
-
- __process_powerline
-}
-
-__process_segment_defaults() {
- for segment_index in "${!input_segments[@]}"; do
- local input_segment=(${input_segments[$segment_index]})
- eval "local default_separator=\$TMUX_POWERLINE_DEFAULT_${upper_side}SIDE_SEPARATOR"
-
- powerline_segment_with_defaults=(
- ${input_segment[0]:-"no_script"} \
- ${input_segment[1]:-$TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR} \
- ${input_segment[2]:-$TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR} \
- ${input_segment[3]:-$default_separator} \
- )
-
- powerline_segments[$segment_index]="${powerline_segment_with_defaults[@]}"
- done
-}
-
-__process_scripts() {
- for segment_index in "${!powerline_segments[@]}"; do
- local powerline_segment=(${powerline_segments[$segment_index]})
-
- if [ -n "$TMUX_POWERLINE_DIR_USER_SEGMENTS" ] && [ -f "$TMUX_POWERLINE_DIR_USER_SEGMENTS/${powerline_segment[0]}.sh" ] ; then
- local script="$TMUX_POWERLINE_DIR_USER_SEGMENTS/${powerline_segment[0]}.sh"
- else
- local script="$TMUX_POWERLINE_DIR_SEGMENTS/${powerline_segment[0]}.sh"
- fi
-
- export TMUX_POWERLINE_CUR_SEGMENT_BG="${powerline_segment[1]}"
- export TMUX_POWERLINE_CUR_SEGMENT_FG="${powerline_segment[2]}"
- source "$script"
- local output
- output=$(run_segment)
- local exit_code="$?"
- unset -f run_segment
-
- if [ "$exit_code" -ne 0 ] && debug_mode_enabled ; then
- local seg_name="${script##*/}"
- echo "Segment '${seg_name}' exited with code ${exit_code}. Aborting."
- exit 1
- fi
-
- if [ -n "$output" ]; then
- powerline_segment_contents[$segment_index]=" $output "
- else
- unset -v powerline_segments[$segment_index]
- fi
- done
-}
-
-__process_colors() {
- for segment_index in "${!powerline_segments[@]}"; do
- local powerline_segment=(${powerline_segments[$segment_index]})
- # Find the next segment that produces content (i.e. skip empty segments).
- for next_segment_index in $(eval echo {$(($segment_index + 1))..${#powerline_segments}}) ; do
- [[ -n ${powerline_segments[next_segment_index]} ]] && break
- done
- local next_segment=(${powerline_segments[$next_segment_index]})
-
- if [ $side == 'left' ]; then
- powerline_segment[4]=${next_segment[1]:-$TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR}
- elif [ $side == 'right' ]; then
- powerline_segment[4]=${previous_background_color:-$TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR}
- fi
-
- if __segment_separator_is_thin; then
- powerline_segment[5]=${powerline_segment[2]}
- else
- powerline_segment[5]=${powerline_segment[1]}
- fi
-
- local previous_background_color=${powerline_segment[1]}
-
- powerline_segments[$segment_index]="${powerline_segment[@]}"
- done
-}
-
-__process_powerline() {
- for segment_index in "${!powerline_segments[@]}"; do
- local powerline_segment=(${powerline_segments[$segment_index]})
-
- local background_color=${powerline_segment[1]}
- local foreground_color=${powerline_segment[2]}
- local separator=${powerline_segment[3]}
- local separator_background_color=${powerline_segment[4]}
- local separator_foreground_color=${powerline_segment[5]}
-
- eval "__print_${side}_segment ${segment_index} ${background_color} ${foreground_color} ${separator} ${separator_background_color} ${separator_foreground_color}"
- done
-}
-
-__print_left_segment() {
- local content=${powerline_segment_contents[$1]}
- local content_background_color=$2
- local content_foreground_color=$3
- local separator=$4
- local separator_background_color=$5
- local separator_foreground_color=$6
-
- __print_colored_content "$content" $content_background_color $content_foreground_color
- __print_colored_content $separator $separator_background_color $separator_foreground_color
-}
-
-__print_right_segment() {
- local content=${powerline_segment_contents[$1]}
- local content_background_color=$2
- local content_foreground_color=$3
- local separator=$4
- local separator_background_color=$5
- local separator_foreground_color=$6
-
- __print_colored_content $separator $separator_background_color $separator_foreground_color
- __print_colored_content "$content" $content_background_color $content_foreground_color
-}
-
-__segment_separator_is_thin() {
- [[ ${powerline_segment[3]} == $TMUX_POWERLINE_SEPARATOR_LEFT_THIN || \
- ${powerline_segment[3]} == $TMUX_POWERLINE_SEPARATOR_RIGHT_THIN ]];
-}
-
-__check_platform() {
- if [ "$SHELL_PLATFORM" == "unknown" ] && debug_mode_enabled; then
- echo "Unknown platform; modify config/shell.sh" &1>&2
- fi
-}
-
diff --git a/lib/rcfile.sh b/lib/rcfile.sh
deleted file mode 100644
index db88198..0000000
--- a/lib/rcfile.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-# Read user rc file.
-
-process_settings() {
- __read_rcfile
-
- if [ -z "$TMUX_POWERLINE_DEBUG_MODE_ENABLED" ]; then
- export TMUX_POWERLINE_DEBUG_MODE_ENABLED="${TMUX_POWERLINE_DEBUG_MODE_ENABLED_DEFAULT}"
- fi
-
- if [ -z "$TMUX_POWERLINE_PATCHED_FONT_IN_USE" ]; then
- export TMUX_POWERLINE_PATCHED_FONT_IN_USE="${TMUX_POWERLINE_PATCHED_FONT_IN_USE_DEFAULT}"
- fi
-
- if [ -z "$TMUX_POWERLINE_THEME" ]; then
- export TMUX_POWERLINE_THEME="${TMUX_POWERLINE_THEME_DEFAULT}"
- fi
-
- eval TMUX_POWERLINE_DIR_USER_SEGMENTS="$TMUX_POWERLINE_DIR_USER_SEGMENTS"
- eval TMUX_POWERLINE_DIR_USER_THEMES="$TMUX_POWERLINE_DIR_USER_THEMES"
- if [ -n "$TMUX_POWERLINE_DIR_USER_THEMES" ] && [ -f "${TMUX_POWERLINE_DIR_USER_THEMES}/${TMUX_POWERLINE_THEME}.sh" ]; then
- source "${TMUX_POWERLINE_DIR_USER_THEMES}/${TMUX_POWERLINE_THEME}.sh"
- else
- source "${TMUX_POWERLINE_DIR_THEMES}/${TMUX_POWERLINE_THEME}.sh"
- fi
-
-}
-
-generate_default_rc() {
- read -d '' rccontents << EORC
-# 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="${TMUX_POWERLINE_DEBUG_MODE_ENABLED_DEFAULT}"
- # Use patched font symbols.
- export TMUX_POWERLINE_PATCHED_FONT_IN_USE="${TMUX_POWERLINE_PATCHED_FONT_IN_USE_DEFAULT}"
- # The theme to use.
- export TMUX_POWERLINE_THEME="${TMUX_POWERLINE_THEME_DEFAULT}"
- # Overlay dirctory 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 dirctory 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=""
-# }
-EORC
-
- for segment in ${TMUX_POWERLINE_DIR_SEGMENTS}/*.sh; do
- source "$segment"
- if declare -f generate_segmentrc >/dev/null; then
- segmentrc=$(generate_segmentrc | sed -e 's/^/\\t/g')
- unset -f generate_segmentrc
- local seg_name="${segment##*/}"
- rccontents="${rccontents}\n\n# ${seg_name} {\n${segmentrc}\n# }"
- fi
- done
-
- echo -e "$rccontents" > "$TMUX_POWERLINE_RCFILE_DEFAULT"
- echo "Default configuration file generated to: ${TMUX_POWERLINE_RCFILE_DEFAULT}"
- echo "Copy/move it to \"${TMUX_POWERLINE_RCFILE}\" and make your changes."
-}
-
-__read_rcfile() {
- if [ -f "$TMUX_POWERLINE_RCFILE" ]; then
- source "$TMUX_POWERLINE_RCFILE"
- fi
-}
diff --git a/lib/text_roll.sh b/lib/text_roll.sh
deleted file mode 100644
index e53247f..0000000
--- a/lib/text_roll.sh
+++ /dev/null
@@ -1,63 +0,0 @@
-# Rolling anything what you want.
-# arg1: text to roll.
-# arg2: max length to display.
-# arg3: roll speed in characters per second.
-roll_text() {
- local text="$1" # Text to print
-
- if [ -z "$text" ]; then
- return;
- fi
-
- local max_len="10" # Default max length.
-
- if [ -n "$2" ]; then
- max_len="$2"
- fi
-
- local speed="1" # Default roll speed in chars per second.
-
- if [ -n "$3" ]; then
- speed="$3"
- fi
-
- # Skip rolling if the output is less than max_len.
- if [ "${#text}" -le "$max_len" ]; then
- echo "$text"
- return
- fi
-
- # Anything starting with 0 is an Octal number in Shell,C or Perl,
- # so we must explicitly state the base of a number using base#number
- local offset=$((10#$(date +%s) * ${speed} % ${#text}))
-
- # Truncate text.
- text=${text:offset}
-
- local char # Character.
- local bytes # The bytes of one character.
- local index
-
- for ((index=0; index < max_len; index++)); do
- char=${text:index:1}
- bytes=$(echo -n $char | wc -c)
- # The character will takes twice space
- # of an alphabet if (bytes > 1).
- if ((bytes > 1)); then
- max_len=$((max_len - 1))
- fi
- done
-
- text=${text:0:max_len}
-
- #echo "index=${index} max=${max_len} len=${#text}"
- # How many spaces we need to fill to keep
- # the length of text that will be shown?
- local fill_count=$((${index} - ${#text}))
-
- for ((index=0; index < fill_count; index++)); do
- text="${text} "
- done
-
- echo "${text}"
-}
diff --git a/lib/tmux_adapter.sh b/lib/tmux_adapter.sh
deleted file mode 100644
index 17674e4..0000000
--- a/lib/tmux_adapter.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-# Get the current path in the segment.
-get_tmux_cwd() {
- local env_name=$(tmux display -p "TMUXPWD_#D" | tr -d %)
- local env_val=$(tmux show-environment | grep --color=never "$env_name")
- # The version below is still quite new for tmux. Uncomment this in the future :-)
- #local env_val=$(tmux show-environment "$env_name" 2>&1)
-
- if [[ ! $env_val =~ "unknown variable" ]]; then
- local tmux_pwd=$(echo "$env_val" | sed 's/^.*=//')
- echo "$tmux_pwd"
- fi
-}