9dca431279
already determined that we are connected. save and use old weather status if we're not connected because it's printed regardless.
930 lines
39 KiB
Bash
Executable file
930 lines
39 KiB
Bash
Executable file
#!/bin/sh
|
|
# Status bar for speedwm
|
|
# Written by speedie.gq in POSIX sh for https://speedie.gq/speedwm
|
|
# Licensed under the GNU GPLv3 free software license.
|
|
#
|
|
# NOTE: Anything in the DISPLAY function will be printed to your status bar.
|
|
# This means stdout will be printed regardless.
|
|
# You can output to /dev/null to silence most commands.
|
|
#
|
|
# Once you're done editing, run 'make clean install'.
|
|
#
|
|
# CONFIG
|
|
# This is the configuration for the status bar
|
|
#
|
|
# I highly recommend editing ~/.config/speedwm-de/status/config instead though
|
|
# All settings with the exception of changing the order of items can be
|
|
# changed there. Otherwise, carefully edit the file and recompile speedwm!
|
|
|
|
# General settings
|
|
USEWAL=true # Use Pywal if possible (true/false)
|
|
RUNONCE=false # Only run status bar once (true/false)
|
|
REFRESHDELAY=7 # How long delay in seconds between each reload (int)
|
|
DATEBINDIR="/bin/" # Directory where your 'date' binary is. Default should be fine for most people
|
|
SETMETHOD="xsetroot -name" # Method used to set the status bar
|
|
SEP="<" # Separator to use. Alternative separators: "❰", "<", "|"
|
|
COLORFG=true # Color foreground (true/false)
|
|
COLORBG=false # Color background (true/false)
|
|
USEBUILTINCOL=true # Use built in speedwm colors (col_status<num>). This also supports Pywal. (true/false)
|
|
CHARLIMIT=auto # Limit characters to CHARLIMIT. Enter false to not have a limit. Enter auto to use xdpyinfo. (num/auto/false)
|
|
|
|
# Status bar modules
|
|
# Set to true/false to enable/disable.
|
|
# Keep in mind, if the dependencies are not installed, then they will not be used regardless of what the option is set to.
|
|
ENABLE_ITEM1=true # Enable RAM usage (true/false)
|
|
ENABLE_ITEM2=true # Enable Time (HH:MM) (true/false)
|
|
ENABLE_ITEM3=true # Enable Date (DD/MM/YY) (true/false)
|
|
ENABLE_ITEM4=true # Enable Volume/Mute status (<perc>%) (true/false)
|
|
ENABLE_ITEM5=true # Enable Weather (true/false)
|
|
ENABLE_ITEM6=true # Enable Network Traffic (<num>B/s (true/false)
|
|
ENABLE_ITEM7=true # Enable dfmpeg status (true/false)
|
|
ENABLE_ITEM8=true # Enable CPU temp (true/false)
|
|
ENABLE_ITEM9=true # Enable music status (true/false)
|
|
ENABLE_ITEM10=false # Enable newsboat unread (true/false)
|
|
ENABLE_ITEM11=true # Enable battery percentage and charging status (true/false)
|
|
|
|
ITEM1_ICON=" " # Icon for ITEM1
|
|
ITEM2_ICON=" " # Icon for ITEM2
|
|
ITEM3_ICON=" " # Icon for ITEM3
|
|
ITEM4_ICON=" " # Icon for ITEM4
|
|
ITEM5_ICON=" " # Icon for ITEM5
|
|
ITEM6_ICON=" " # Icon for ITEM6
|
|
ITEM7_ICON=" " # Icon for ITEM7
|
|
ITEM8_ICON="糖" # Icon for ITEM8
|
|
ITEM9_ICON=" " # Icon for ITEM9
|
|
ITEM10_ICON=" " # Icon for ITEM10
|
|
ITEM11_ICON=" " # Icon for ITEM11
|
|
|
|
ITEM9_BACKEND="auto" # Backend for the music status (cmus/mocp/auto)
|
|
ITEM9_DISPLAY_ARTIST="false" # Display artist or not (true/false)
|
|
ITEM9_DISPLAY_TITLE="false" # Display title or not (true/false)
|
|
ITEM9_DISPLAY_ALBUM="false" # Display album or not (true/false)
|
|
ITEM9_DISPLAY_GENRE="false" # Display genre or not (true/false)
|
|
ITEM9_DISPLAY_TIMEELAPSED="false" # Display time elapsed or not. If you use this, you will probably want the delay set pretty low. (true/false)
|
|
ITEM9_DISPLAY_TIMETOTAL="false" # Display total time or not (true/false_
|
|
ITEM9_DISPLAY_FILE="true" # Display filename or not. This option will disable everything else. Path and file extension will be cut. (true/false)
|
|
ITEM9_HIDE_EMPTY_ARTIST="true" # Hide empty artist (true/false)
|
|
ITEM9_HIDE_EMPTY_TITLE="true" # Hide empty title (true/false)
|
|
ITEM9_HIDE_EMPTY_ALBUM="true" # Hide empty album (true/false)
|
|
ITEM9_HIDE_EMPTY_GENRE="true" # Hide empty genre (true/false)
|
|
ITEM9_HIDE_EMPTY_FILE="true" # Hide empty file (true/false)
|
|
ITEM9_HIDE_EMPTY_TT="true" # Hide empty total time (true/false)
|
|
ITEM9_HIDE_EMPTY_TE="true" # Hide empty time elapsed (true/false)
|
|
ITEM9_PRE_FILE="" # Text to display before the filename
|
|
ITEM9_POST_FILE="" # Text to display after the filename
|
|
ITEM9_PRE_ARTIST="" # Text to display before the artist
|
|
ITEM9_POST_ARTIST="" # Text to display after the artist
|
|
ITEM9_PRE_TITLE="" # Text to display before the title
|
|
ITEM9_POST_TITLE="" # Text to display after the title
|
|
ITEM9_PRE_ALBUM="from " # Text to display before the album
|
|
ITEM9_POST_ALBUM="" # Text to display after the album
|
|
ITEM9_PRE_GENRE="(" # Text to display before the genre
|
|
ITEM9_POST_GENRE=")" # Text to display after the genre
|
|
ITEM9_PRE_TE="[" # Text to display before the time elapsed.
|
|
ITEM9_POST_TE=" /" # Text to display after the time elapsed.
|
|
ITEM9_PRE_TT=" " # Text to display before the total time.
|
|
ITEM9_POST_TT="]" # Text to display before the total time.
|
|
ITEM9_TT_TE_NO_SPACING="true" # No spacing between time elapsed and total time (true/false)
|
|
ITEM9_TE_REVERSE="true" # Reverse time elapsed (replace with time left) (true/false)
|
|
ITEM9_SEPARATOR="-" # Separator between ARTIST, TITLE and ALBUM
|
|
|
|
ITEM11_SHOW_CHARGING_STATUS=true # Show 'Charging', 'Not charging' or 'Fully charged' status after the percentage. (true/false)
|
|
ITEM11_DISCHARGING_TEXT="Not charging" # Text when not charging (char)
|
|
ITEM11_CHARGING_TEXT="Charging" # Text when charging (char)
|
|
|
|
# Systray options
|
|
HIDE_STATUS_SYSTRAY=true # Hide the status when a systray is running (true/false)
|
|
SYSTRAY="trayer" # Systray to use (<systray executable>).
|
|
STATUS_WHEN_HIDDEN="" # Status to print when status is hidden (char)
|
|
|
|
# Order of colors and items in the status bar
|
|
PRINT() {
|
|
$SETMETHOD "\
|
|
$FSETCOLORCMD11\
|
|
$BSETCOLORCMD11\
|
|
$ITEMCMD2 \
|
|
$FSETCOLORCMD10\
|
|
$BSETCOLORCMD10\
|
|
$ITEMCMD3 \
|
|
$FSETCOLORCMD13\
|
|
$BSETCOLORCMD13\
|
|
$ITEMCMD11 \
|
|
$FSETCOLORCMD8\
|
|
$BSETCOLORCMD8\
|
|
$ITEMCMD4 \
|
|
$FSETCOLORCMD7\
|
|
$BSETCOLORCMD7\
|
|
$ITEMCMD1 \
|
|
$FSETCOLORCMD6\
|
|
$BSETCOLORCMD6\
|
|
$ITEMCMD6 \
|
|
$FSETCOLORCMD4\
|
|
$BSETCOLORCMD4\
|
|
$ITEMCMD8 \
|
|
$FSETCOLORCMD3\
|
|
$BSETCOLORCMD3\
|
|
$ITEMCMD5 \
|
|
$FSETCOLORCMD2\
|
|
$BSETCOLORCMD2\
|
|
$ITEMCMD9 \
|
|
$FSETCOLORCMD5\
|
|
$BSETCOLORCMD5\
|
|
$ITEMCMD7 \
|
|
$FSETCOLORCMD9\
|
|
$BSETCOLORCMD9\
|
|
$ITEMCMD10 \
|
|
$FSETCOLORCMD14\
|
|
$BSETCOLORCMD14\
|
|
$ITEMCMD12"
|
|
}
|
|
|
|
# Colors
|
|
####################################
|
|
# The colors under SETCOLORS will be used if Pywal is not enabled.
|
|
|
|
# Default colorscheme, for when pywal is not enabled or available.
|
|
# I recommend using Vim, vim-plugin and colorizer so that you can actually see the colors.
|
|
SETCOLORS() {
|
|
# Foreground/Text colors
|
|
FCOLOR1=#131210
|
|
FCOLOR2=#bf616a
|
|
FCOLOR3=#A16F9D
|
|
FCOLOR4=#68ABAA
|
|
FCOLOR5=#A89F93
|
|
FCOLOR6=#D3A99B
|
|
FCOLOR7=#AFC9AC
|
|
FCOLOR8=#eae1cb
|
|
FCOLOR9=#a39d8e
|
|
FCOLOR10=#6D5E8E
|
|
FCOLOR11=#A16F9D
|
|
FCOLOR12=#D3A99B
|
|
FCOLOR13=#AFC9AC
|
|
FCOLOR14=#eae1cb
|
|
FCOLOR15=#6D5E8E
|
|
|
|
# Background colors
|
|
BCOLOR1=#222222
|
|
BCOLOR2=#222222
|
|
BCOLOR3=#222222
|
|
BCOLOR4=#222222
|
|
BCOLOR5=#222222
|
|
BCOLOR6=#222222
|
|
BCOLOR7=#222222
|
|
BCOLOR8=#222222
|
|
BCOLOR9=#222222
|
|
BCOLOR10=#222222
|
|
BCOLOR11=#222222
|
|
BCOLOR12=#222222
|
|
BCOLOR13=#222222
|
|
BCOLOR14=#222222
|
|
BCOLOR15=#222222
|
|
|
|
# Compatibility with old status configurations.
|
|
COLOR1=$FCOLOR1
|
|
COLOR2=$FCOLOR2
|
|
COLOR3=$FCOLOR3
|
|
COLOR4=$FCOLOR4
|
|
COLOR5=$FCOLOR5
|
|
COLOR6=$FCOLOR6
|
|
COLOR7=$FCOLOR7
|
|
COLOR8=$FCOLOR8
|
|
COLOR9=$FCOLOR9
|
|
COLOR10=$FCOLOR10
|
|
COLOR11=$FCOLOR11
|
|
COLOR12=$FCOLOR12
|
|
COLOR13=$FCOLOR13
|
|
COLOR14=$FCOLOR14
|
|
COLOR15=$FCOLOR15
|
|
}
|
|
|
|
# Add colors to status2d compatible variable to use with xsetroot later.
|
|
SETCOLORS_CMD() {
|
|
if [ "$COLORFG" = "true" ]; then
|
|
FSETCOLORCMD1="^c${FCOLOR1}^"
|
|
FSETCOLORCMD2="^c${FCOLOR2}^"
|
|
FSETCOLORCMD3="^c${FCOLOR3}^"
|
|
FSETCOLORCMD4="^c${FCOLOR4}^"
|
|
FSETCOLORCMD5="^c${FCOLOR5}^"
|
|
FSETCOLORCMD6="^c${FCOLOR6}^"
|
|
FSETCOLORCMD7="^c${FCOLOR7}^"
|
|
FSETCOLORCMD8="^c${FCOLOR8}^"
|
|
FSETCOLORCMD9="^c${FCOLOR9}^"
|
|
FSETCOLORCMD10="^c${FCOLOR10}^"
|
|
FSETCOLORCMD11="^c${FCOLOR11}^"
|
|
FSETCOLORCMD12="^c${FCOLOR12}^"
|
|
FSETCOLORCMD13="^c${FCOLOR13}^"
|
|
FSETCOLORCMD14="^c${FCOLOR14}^"
|
|
FSETCOLORCMD15="^c${FCOLOR15}^"
|
|
fi
|
|
|
|
if [ "$COLORBG" = "true" ]; then
|
|
BSETCOLORCMD1="^b${BCOLOR1}^"
|
|
BSETCOLORCMD2="^b${BCOLOR2}^"
|
|
BSETCOLORCMD3="^b${BCOLOR3}^"
|
|
BSETCOLORCMD4="^b${BCOLOR4}^"
|
|
BSETCOLORCMD5="^b${BCOLOR5}^"
|
|
BSETCOLORCMD6="^b${BCOLOR6}^"
|
|
BSETCOLORCMD7="^b${BCOLOR7}^"
|
|
BSETCOLORCMD8="^b${BCOLOR8}^"
|
|
BSETCOLORCMD9="^b${BCOLOR9}^"
|
|
BSETCOLORCMD10="^b${BCOLOR10}^"
|
|
BSETCOLORCMD11="^b${BCOLOR11}^"
|
|
BSETCOLORCMD12="^b${BCOLOR12}^"
|
|
BSETCOLORCMD13="^b${BCOLOR13}^"
|
|
BSETCOLORCMD14="^b${BCOLOR14}^"
|
|
BSETCOLORCMD15="^b${BCOLOR15}^"
|
|
fi
|
|
|
|
if [ "$USEBUILTINCOL" = "true" ]; then
|
|
if [ "$COLORFG" = "true" ]; then
|
|
FSETCOLORCMD1="^C1^"
|
|
FSETCOLORCMD2="^C2^"
|
|
FSETCOLORCMD3="^C3^"
|
|
FSETCOLORCMD4="^C4^"
|
|
FSETCOLORCMD5="^C5^"
|
|
FSETCOLORCMD6="^C6^"
|
|
FSETCOLORCMD7="^C7^"
|
|
FSETCOLORCMD8="^C8^"
|
|
FSETCOLORCMD9="^C9^"
|
|
FSETCOLORCMD10="^C10^"
|
|
FSETCOLORCMD11="^C11^"
|
|
FSETCOLORCMD12="^C12^"
|
|
FSETCOLORCMD13="^C13^"
|
|
FSETCOLORCMD14="^C14^"
|
|
FSETCOLORCMD15="^C15^"
|
|
fi
|
|
|
|
if [ "$COLORBG" = "true" ]; then
|
|
BSETCOLORCMD1="^B1^"
|
|
BSETCOLORCMD2="^B2^"
|
|
BSETCOLORCMD3="^B3^"
|
|
BSETCOLORCMD4="^B4^"
|
|
BSETCOLORCMD5="^B5^"
|
|
BSETCOLORCMD6="^B6^"
|
|
BSETCOLORCMD7="^B7^"
|
|
BSETCOLORCMD8="^B8^"
|
|
BSETCOLORCMD9="^B9^"
|
|
BSETCOLORCMD10="^B10^"
|
|
BSETCOLORCMD11="^B11^"
|
|
BSETCOLORCMD12="^B12^"
|
|
BSETCOLORCMD13="^B13^"
|
|
BSETCOLORCMD14="^B14^"
|
|
BSETCOLORCMD15="^B15^"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Grab colors from pywal if possible
|
|
# For example, 1,1p means the first line
|
|
SETCOLORS_WAL() {
|
|
if [ "$USEWAL" = "true" ]; then
|
|
if [ -e "$HOME/.cache/wal/colors" ]; then
|
|
# Foreground colors
|
|
FCOLOR1=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
FCOLOR2=$(sed -n 2,2p $HOME/.cache/wal/colors)
|
|
FCOLOR3=$(sed -n 3,3p $HOME/.cache/wal/colors)
|
|
FCOLOR4=$(sed -n 4,4p $HOME/.cache/wal/colors)
|
|
FCOLOR5=$(sed -n 5,5p $HOME/.cache/wal/colors)
|
|
FCOLOR6=$(sed -n 6,6p $HOME/.cache/wal/colors)
|
|
FCOLOR7=$(sed -n 7,7p $HOME/.cache/wal/colors)
|
|
FCOLOR8=$(sed -n 8,8p $HOME/.cache/wal/colors)
|
|
FCOLOR9=$(sed -n 9,9p $HOME/.cache/wal/colors)
|
|
FCOLOR10=$(sed -n 10,10p $HOME/.cache/wal/colors)
|
|
FCOLOR11=$(sed -n 11,11p $HOME/.cache/wal/colors)
|
|
FCOLOR12=$(sed -n 12,12p $HOME/.cache/wal/colors)
|
|
FCOLOR13=$(sed -n 13,13p $HOME/.cache/wal/colors)
|
|
FCOLOR14=$(sed -n 14,14p $HOME/.cache/wal/colors)
|
|
FCOLOR15=$(sed -n 15,15p $HOME/.cache/wal/colors)
|
|
|
|
# Background colors
|
|
BCOLOR1=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
BCOLOR2=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
BCOLOR3=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
BCOLOR4=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
BCOLOR5=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
BCOLOR6=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
BCOLOR7=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
BCOLOR8=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
BCOLOR9=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
BCOLOR10=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
BCOLOR11=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
BCOLOR12=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
BCOLOR13=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
BCOLOR14=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
BCOLOR15=$(sed -n 1,1p $HOME/.cache/wal/colors)
|
|
USINGWAL=true
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# End of configuration
|
|
#########################################################################
|
|
|
|
# Set bindir
|
|
case "$BINDIR" in
|
|
"") BINDIR=$(cat /usr/share/speedwm-bindir) ;;
|
|
esac
|
|
|
|
rm -f /tmp/itest
|
|
rm -f /tmp/wstatus
|
|
|
|
mkdir -p $HOME/.config/speedwm-de/status
|
|
|
|
# Load config and create options if it does not exist
|
|
LOADCONFIG() {
|
|
if [ -e "$HOME/.config/speedwm-de/status/config" ]; then
|
|
. $HOME/.config/speedwm-de/status/config && echo "Loaded configuration file"
|
|
else
|
|
touch $HOME/.config/speedwm-de/status/config && echo "Created configuration file"
|
|
printf "USEWAL=$USEWAL # Use Pywal if possible (true/false)" > $HOME/.config/speedwm-de/status/config
|
|
printf "\nRUNONCE=$RUNONCE # Only run status bar once (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nREFRESHDELAY=$REFRESHDELAY # How long delay in seconds between each reload (int)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nSEP='$SEP' # Separator to use. Alternative separators: '❰', '<', '|'" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nCHARLIMIT=$CHARLIMIT # Limit characters to CHARLIMIT. Enter false to not have a limit. Enter auto to use xdpyinfo. (num/auto/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\n\nENABLE_ITEM1=$ENABLE_ITEM1 # Enable RAM usage (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nENABLE_ITEM2=$ENABLE_ITEM2 # Enable Time (HH:MM) (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nENABLE_ITEM3=$ENABLE_ITEM3 # Enable Date (DD/MM/YY) (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nENABLE_ITEM4=$ENABLE_ITEM4 # Enable Volume/Mute status (<perc>) (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nENABLE_ITEM5=$ENABLE_ITEM5 # Enable Weather (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nENABLE_ITEM6=$ENABLE_ITEM6 # Enable Network Traffic (<num>B/s) (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nENABLE_ITEM7=$ENABLE_ITEM7 # Enable dfmpeg status (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nENABLE_ITEM8=$ENABLE_ITEM8 # Enable CPU temp (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nENABLE_ITEM9=$ENABLE_ITEM9 # Enable music status (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nENABLE_ITEM10=$ENABLE_ITEM10 # Enable newsboat unread (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nENABLE_ITEM11=$ENABLE_ITEM11 # Enable battery percentage and charging status (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\n\nITEM1_ICON='$ITEM1_ICON' # Icon for ITEM1" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM2_ICON='$ITEM2_ICON' # Icon for ITEM2" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM3_ICON='$ITEM3_ICON' # Icon for ITEM3" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM4_ICON='$ITEM4_ICON' # Icon for ITEM4" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM5_ICON='$ITEM5_ICON' # Icon for ITEM5" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM6_ICON='$ITEM6_ICON' # Icon for ITEM6" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM7_ICON='$ITEM7_ICON' # Icon for ITEM7" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM8_ICON='$ITEM8_ICON' # Icon for ITEM8" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_ICON='$ITEM9_ICON' # Icon for ITEM9" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM10_ICON='$ITEM10_ICON' # Icon for ITEM10" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM11_ICON='$ITEM11_ICON' # Icon for ITEM11" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\n\nITEM9_BACKEND=$ITEM9_BACKEND # Backend for the music status (cmus/mocp/auto)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_DISPLAY_ARTIST=$ITEM9_DISPLAY_ARTIST # Display artist or not (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_DISPLAY_TITLE=$ITEM9_DISPLAY_TITLE # Display title or not (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_DISPLAY_ALBUM=$ITEM9_DISPLAY_ALBUM # Display album or not (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_DISPLAY_GENRE=$ITEM9_DISPLAY_GENRE # Display genre or not (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_DISPLAY_FILE=$ITEM9_DISPLAY_FILE # Display filename or not. This option will disable everything else. Path and file extension will be cut. (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_DISPLAY_TIMEELAPSED=$ITEM9_DISPLAY_TIMEELAPSED # Display time elapsed or not (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_DISPLAY_TIMETOTAL=$ITEM9_DISPLAY_TIMETOTAL # Display total time or not (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_PRE_FILE='$ITEM9_PRE_FILE' # Text to display before the filename" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_POST_FILE='$ITEM9_POST_FILE' # Text to display after the filename" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_PRE_ARTIST='$ITEM9_PRE_ARTIST' # Text to display before the artist" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_POST_ARTIST='$ITEM9_POST_ARTIST' # Text to display after the artist" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_PRE_TITLE='$ITEM9_PRE_TITLE' # Text to display before the title" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_POST_TITLE='$ITEM9_POST_TITLE' # Text to display after the title" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_PRE_ALBUM='$ITEM9_PRE_ALBUM' # Text to display before the album" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_POST_ALBUM='$ITEM9_POST_ALBUM' # Text to display after the album" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_PRE_GENRE='$ITEM9_PRE_GENRE' # Text to display before the genre" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_POST_GENRE='$ITEM9_POST_GENRE' # Text to display after the genre" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_PRE_TE='$ITEM9_PRE_TE' # Text to display before the time elapsed." >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_POST_TE='$ITEM9_POST_TE' # Text to display after the time elapsed." >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_PRE_TT='$ITEM9_PRE_TT' # Text to display before the total time." >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_POST_TT='$ITEM9_POST_TT' # Text to display before the total time." >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_TT_TE_NO_SPACING=$ITEM9_TT_TE_NO_SPACING # No spacing between time elapsed and total time (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_TE_REVERSE=$ITEM9_TE_REVERSE # Reverse time elapsed (replace with current time) (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_HIDE_EMPTY_ARTIST=$ITEM9_HIDE_EMPTY_ARTIST # Hide empty artist (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_HIDE_EMPTY_TITLE=$ITEM9_HIDE_EMPTY_ARTIST # Hide empty title (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_HIDE_EMPTY_ALBUM=$ITEM9_HIDE_EMPTY_ALBUM # Hide empty album (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_HIDE_EMPTY_GENRE=$ITEM9_HIDE_EMPTY_GENRE # Hide empty genre (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_HIDE_EMPTY_TT=$ITEM9_HIDE_EMPTY_TT # Hide empty total time (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_HIDE_EMPTY_TE=$ITEM9_HIDE_EMPTY_TE # Hide empty time elapsed (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM9_SEPARATOR='$ITEM9_SEPARATOR' # Separator between ARTIST, TITLE and ALBUM" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\n\nITEM11_SHOW_CHARGING_STATUS=$ITEM11_SHOW_CHARGING_STATUS # Show 'Charging', 'Not charging' or 'Fully charged' status after the percentage. (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM11_DISCHARGING_TEXT='$ITEM11_DISCHARGING_TEXT' # Text when not charging (char)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nITEM11_CHARGING_TEXT='$ITEM11_CHARGING_TEXT' # Text when charging (char)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\n\nHIDE_STATUS_SYSTRAY=$HIDE_STATUS_SYSTRAY # Hide the status when a systray is running (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nSYSTRAY=$SYSTRAY # Systray to use (<systray executable>)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nSTATUS_WHEN_HIDDEN=$STATUS_WHEN_HIDDEN # Status to print when status is hidden (char)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nCOLORFG=$COLORFG # Color foreground (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nCOLORBG=$COLORBG # Color background (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nUSEBUILTINCOL=$USEBUILTINCOL # Use built in speedwm colors (col_status<num>). This also supports Pywal. (true/false)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\n\nFCOLOR1=$FCOLOR1 # Color for ITEM1 text (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nFCOLOR2=$FCOLOR2 # Color for ITEM2 text (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nFCOLOR3=$FCOLOR3 # Color for ITEM3 text (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nFCOLOR6=$FCOLOR6 # Color for ITEM6 text (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nFCOLOR7=$FCOLOR7 # Color for ITEM7 text (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nFCOLOR8=$FCOLOR8 # Color for ITEM8 text (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nFCOLOR9=$FCOLOR9 # Color for ITEM9 text (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nFCOLOR10=$FCOLOR10 # Color for ITEM10 text (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nFCOLOR11=$FCOLOR11 # Color for ITEM11 text (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nFCOLOR12=$FCOLOR12 # Color for ITEM12 text (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nFCOLOR13=$FCOLOR13 # Color for ITEM13 text (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nFCOLOR14=$FCOLOR14 # Color for ITEM14 text (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nFCOLOR15=$FCOLOR15 # Color for ITEM15 text (hex color)\n" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nBCOLOR1=$BCOLOR1 # Color for ITEM1 text (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nBCOLOR2=$BCOLOR2 # Color for ITEM2 background (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nBCOLOR3=$BCOLOR3 # Color for ITEM3 background (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nBCOLOR6=$BCOLOR6 # Color for ITEM6 background (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nBCOLOR7=$BCOLOR7 # Color for ITEM7 background (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nBCOLOR8=$BCOLOR8 # Color for ITEM8 background (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nBCOLOR9=$BCOLOR9 # Color for ITEM9 background (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nBCOLOR10=$BCOLOR10 # Color for ITEM10 background (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nBCOLOR11=$BCOLOR11 # Color for ITEM11 background (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nBCOLOR12=$BCOLOR12 # Color for ITEM12 background (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nBCOLOR13=$BCOLOR13 # Color for ITEM13 background (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nBCOLOR14=$BCOLOR14 # Color for ITEM14 background (hex color)" >> $HOME/.config/speedwm-de/status/config
|
|
printf "\nBCOLOR15=$BCOLOR15 # Color for ITEM15 background (hex color)\n" >> $HOME/.config/speedwm-de/status/config
|
|
fi
|
|
}
|
|
|
|
SLEEPTIME=$REFRESHDELAY # Compatibility with old configurations
|
|
|
|
# Set it to /usr/bin if it was not possible to get it through /usr/share/speedwm-bindir
|
|
case "$BINDIR" in
|
|
"") BINDIR="/usr/bin" ;;
|
|
esac
|
|
|
|
# Check if muted, for use with volume status bar. Unmute if muted.
|
|
case "$MUTED" in
|
|
"") MUTED=false ;;
|
|
"true") MUTED=false ;;
|
|
esac
|
|
|
|
# Systray stuff
|
|
PRINT_SYSTRAY() {
|
|
if [ "$SYSTRAY" = "trayer" ]; then
|
|
grep -q "USE_SRG=true" $HOME/.config/speedwm-de/systray/config && SYSTRAY="trayer-srg"
|
|
fi
|
|
|
|
if [ "$HIDE_STATUS_SYSTRAY" = "true" ]; then
|
|
pgrep -x $SYSTRAY > /dev/null && SYSTRAYRUNNING=true
|
|
case "$SYSTRAYRUNNING" in
|
|
"true") $SETMETHOD "$STATUS_WHEN_HIDDEN" && exit 0 ;;
|
|
esac
|
|
fi
|
|
|
|
# Output of commands
|
|
# We're doing this so we can manipulate them easily for various reasons.
|
|
ITEMCMD1="$(echo "$(ITEM1)" | sed ':a;N;$!ba;s/\n//g')"
|
|
ITEMCMD2="$(echo "$(ITEM2)" | sed ':a;N;$!ba;s/\n//g')"
|
|
ITEMCMD3="$(echo "$(ITEM3)" | sed ':a;N;$!ba;s/\n//g')"
|
|
ITEMCMD4="$(echo "$(ITEM4)" | sed ':a;N;$!ba;s/\n//g')"
|
|
ITEMCMD5="$(echo "$(ITEM5)" | sed ':a;N;$!ba;s/\n//g')"
|
|
ITEMCMD6="$(echo "$(ITEM6)" | sed ':a;N;$!ba;s/\n//g')"
|
|
ITEMCMD7="$(echo "$(ITEM7)" | sed ':a;N;$!ba;s/\n//g')"
|
|
ITEMCMD8="$(echo "$(ITEM8)" | sed ':a;N;$!ba;s/\n//g')"
|
|
ITEMCMD9="$(echo "$(ITEM9)" | sed ':a;N;$!ba;s/\n//g')"
|
|
ITEMCMD10="$(echo "$(ITEM10)" | sed ':a;N;$!ba;s/\n//g')"
|
|
ITEMCMD11="$(echo "$(ITEM11)" | sed ':a;N;$!ba;s/\n//g')"
|
|
|
|
if [ "$CHARLIMIT" = "auto" ]; then
|
|
command -v xdpyinfo > /dev/null && CHARS="$(xdpyinfo | awk '/dimensions/ {print $2}' | sed 's/.x....*//g')"
|
|
if [ "$CHARS" = "" ]; then
|
|
CHARS=false
|
|
fi
|
|
elif [ "$CHARLIMIT" != "false" ]; then
|
|
CHARS=$CHARLIMIT
|
|
else
|
|
CHARS=false
|
|
fi
|
|
|
|
if [ "$CHARS" != "false" ]; then
|
|
# Truncate item 11
|
|
if [ "$(echo -n $ITEMCMD1$ITEMCMD2$ITEMCMD3$ITEMCMD4$ITEMCMD5$ITEMCMD6$ITEMCMD7$ITEMCMD8$ITEMCMD9$ITEMCMD10$ITEMCMD11 | wc -c)" -gt "$CHARS" ]; then
|
|
ITEMCMD11=""
|
|
fi
|
|
|
|
# Truncate item 10
|
|
if [ "$(echo -n $ITEMCMD1$ITEMCMD2$ITEMCMD3$ITEMCMD4$ITEMCMD5$ITEMCMD6$ITEMCMD7$ITEMCMD8$ITEMCMD9$ITEMCMD10$ITEMCMD11 | wc -c)" -gt "$CHARS" ]; then
|
|
ITEMCMD10=""
|
|
fi
|
|
|
|
# Truncate item 9
|
|
if [ "$(echo -n $ITEMCMD1$ITEMCMD2$ITEMCMD3$ITEMCMD4$ITEMCMD5$ITEMCMD6$ITEMCMD7$ITEMCMD8$ITEMCMD9$ITEMCMD10$ITEMCMD11 | wc -c)" -gt "$CHARS" ]; then
|
|
ITEMCMD9=""
|
|
fi
|
|
|
|
# Truncate item 8
|
|
if [ "$(echo -n $ITEMCMD1$ITEMCMD2$ITEMCMD3$ITEMCMD4$ITEMCMD5$ITEMCMD6$ITEMCMD7$ITEMCMD8$ITEMCMD9$ITEMCMD10$ITEMCMD11 | wc -c)" -gt "$CHARS" ]; then
|
|
ITEMCMD8=""
|
|
fi
|
|
|
|
# Truncate item 7
|
|
if [ "$(echo -n $ITEMCMD1$ITEMCMD2$ITEMCMD3$ITEMCMD4$ITEMCMD5$ITEMCMD6$ITEMCMD7$ITEMCMD8$ITEMCMD9$ITEMCMD10$ITEMCMD11 | wc -c)" -gt "$CHARS" ]; then
|
|
ITEMCMD7=""
|
|
fi
|
|
|
|
# Truncate item 6
|
|
if [ "$(echo -n $ITEMCMD1$ITEMCMD2$ITEMCMD3$ITEMCMD4$ITEMCMD5$ITEMCMD6$ITEMCMD7$ITEMCMD8$ITEMCMD9$ITEMCMD10$ITEMCMD11 | wc -c)" -gt "$CHARS" ]; then
|
|
ITEMCMD6=""
|
|
fi
|
|
|
|
# Truncate item 5
|
|
if [ "$(echo -n $ITEMCMD1$ITEMCMD2$ITEMCMD3$ITEMCMD4$ITEMCMD5$ITEMCMD6$ITEMCMD7$ITEMCMD8$ITEMCMD9$ITEMCMD10$ITEMCMD11 | wc -c)" -gt "$CHARS" ]; then
|
|
ITEMCMD5=""
|
|
fi
|
|
|
|
# Truncate item 4
|
|
if [ "$(echo -n $ITEMCMD1$ITEMCMD2$ITEMCMD3$ITEMCMD4$ITEMCMD5$ITEMCMD6$ITEMCMD7$ITEMCMD8$ITEMCMD9$ITEMCMD10$ITEMCMD11 | wc -c)" -gt "$CHARS" ]; then
|
|
ITEMCMD4=""
|
|
fi
|
|
|
|
# Truncate item 3
|
|
if [ "$(echo -n $ITEMCMD1$ITEMCMD2$ITEMCMD3$ITEMCMD4$ITEMCMD5$ITEMCMD6$ITEMCMD7$ITEMCMD8$ITEMCMD9$ITEMCMD10$ITEMCMD11 | wc -c)" -gt "$CHARS" ]; then
|
|
ITEMCMD3=""
|
|
fi
|
|
|
|
# Truncate item 2
|
|
if [ "$(echo -n $ITEMCMD1$ITEMCMD2$ITEMCMD3$ITEMCMD4$ITEMCMD5$ITEMCMD6$ITEMCMD7$ITEMCMD8$ITEMCMD9$ITEMCMD10$ITEMCMD11 | wc -c)" -gt "$CHARS" ]; then
|
|
ITEMCMD2=""
|
|
fi
|
|
|
|
# Truncate item 1
|
|
if [ "$(echo -n $ITEMCMD1$ITEMCMD2$ITEMCMD3$ITEMCMD4$ITEMCMD5$ITEMCMD6$ITEMCMD7$ITEMCMD8$ITEMCMD9$ITEMCMD10$ITEMCMD11 | wc -c)" -gt "$CHARS" ]; then
|
|
ITEMCMD1=""
|
|
fi
|
|
fi
|
|
|
|
if [ "$HIDE_SYSTEM_SYSTRAY" = "true" ]; then
|
|
if [ "$SYSTRAYRUNNING" != "true" ]; then
|
|
PRINT
|
|
fi
|
|
else
|
|
PRINT
|
|
fi
|
|
}
|
|
|
|
# RAM usage
|
|
ITEM1() {
|
|
if [ "$ENABLE_ITEM1" = "true" ]; then
|
|
if [ -e "${BINDIR}free" ]; then
|
|
echo "$SEP $ITEM1_ICON $(echo $(free -h --giga | awk '/^Mem/ {print $3}')B)"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Time
|
|
ITEM2() {
|
|
if [ "$ENABLE_ITEM2" = "true" ]; then
|
|
if [ -e "${DATEBINDIR}date" ]; then
|
|
echo "$SEP $ITEM2_ICON $(date +%H:%M)"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Date
|
|
ITEM3() {
|
|
if [ "$ENABLE_ITEM3" = "true" ]; then
|
|
if [ -e "${DATEBINDIR}date" ]; then
|
|
echo "$SEP $ITEM3_ICON $(date +%d/%m/%Y)"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Volume
|
|
ITEM4() {
|
|
if [ "$ENABLE_ITEM4" = "true" ]; then
|
|
if [ -e "${BINDIR}pulsemixer" ]; then
|
|
echo "$SEP $ITEM4_ICON $(echo $(pulsemixer --get-volume | awk '{ print $1 }')%)"
|
|
test /tmp/speedwm-audioctrl-mutestatus && grep "Not muted" /tmp/speedwm-audioctrl-mutestatus > /dev/null && MUTED=false
|
|
test /tmp/speedwm-audioctrl-mutestatus && grep "Not muted" /tmp/speedwm-audioctrl-mutestatus > /dev/null || MUTED=true
|
|
test /tmp/speedwm-audioctrl-mutestatus || MUTED=false
|
|
else
|
|
echo "$SEP $ITEM4_ICON $(echo $(amixer -c 0 get Master | tail -n1 | sed -r "s/.*\[(.*)%\].*/\1/")%)"
|
|
fi
|
|
|
|
if [ "$MUTED" != "false" ]; then
|
|
printf "\n (Muted)"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Weather
|
|
ITEM5() {
|
|
if [ "$ENABLE_ITEM5" = "true" ]; then
|
|
if [ -e "${BINDIR}curl" ]; then
|
|
if [ -e "/tmp/itest" ]; then
|
|
if [ -e "/tmp/wstatus" ]; then
|
|
cat /tmp/wstatus
|
|
else
|
|
echo "$SEP $ITEM5_ICON $(echo $(curl -s wttr.in/?format="%C"), $(curl -s wttr.in/?format=3 | sed 's/.* //' | sed 's/.*\(.....\)/\1/'))" > /tmp/wstatus
|
|
fi
|
|
else
|
|
curl -so /tmp/itest wttr.in && hasinternet=true
|
|
|
|
if [ "$hasinternet" != "true" ]; then
|
|
rm -f /tmp/itest
|
|
ITEMCMD5=""
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Network traffic
|
|
ITEM6() {
|
|
if [ "$ENABLE_ITEM6" = "true" ]; then
|
|
if [ -e "${BINDIR}awk" ]; then
|
|
echo "$SEP $ITEM6_ICON $(awk '{$1=$1/1024000; print $1"B";}' /sys/class/net/[ew]*/statistics/tx_bytes | sed 's/.*\(....\)/\1/' | sed "s|B|B/s |")"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Dfmpeg status
|
|
ITEM7() {
|
|
# Check if we're recording with dfmpeg or not
|
|
if [ "$ENABLE_ITEM7" = "true" ]; then
|
|
if [ -e "/tmp/dfmpeg-recording" ]; then
|
|
echo "$SEP $ITEM7_ICON Recording"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# CPU temp
|
|
ITEM8() {
|
|
if [ "$ENABLE_ITEM8" = "true" ]; then
|
|
if [ -e "${BINDIR}sensors" ]; then
|
|
echo "$SEP $ITEM8_ICON $(sensors | grep "temp1" | sed 's/(.*//' | sed "s/temp1.//" | sed -r 's/\s+//g' | awk '{ print $1 }')"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# mocp/cmus status
|
|
ITEM9() {
|
|
# Auto set backend if set to auto
|
|
if [ "$ITEM9_BACKEND" = "auto" ]; then
|
|
if [ -e "${BINDIR}cmus" ]; then
|
|
ITEM9_BACKEND="cmus"
|
|
elif [ -e "${BINDIR}mocp" ]; then
|
|
ITEM9_BACKEND="mocp"
|
|
fi
|
|
fi
|
|
|
|
if [ "$ENABLE_ITEM9" = "true" ]; then
|
|
if [ "$ITEM9_BACKEND" = "mocp" ]; then
|
|
if [ -e "${BINDIR}mocp" ]; then
|
|
if [ "$(echo $(mocp -Q %file))" != "" ]; then
|
|
|
|
# reverse time elapsed (?)
|
|
if [ "$ITEM9_TE_REVERSE" = "true" ]; then
|
|
TECMD="tl"
|
|
else
|
|
TECMD="ct"
|
|
fi
|
|
|
|
# filename
|
|
if [ "$ITEM9_DISPLAY_FILE" = "true" ]; then
|
|
echo "$SEP $ITEM9_ICON $ITEM9_PRE_FILE$(basename "$(mocp -Q %file)" | sed 's|\(.*\)[.].*|\1|')$ITEM9_POST_FILE"
|
|
else
|
|
|
|
# artist
|
|
if [ "$ITEM9_DISPLAY_ARTIST" = "true" ]; then
|
|
if [ "$ITEM9_HIDE_EMPTY_ARTIST" = "true" ]; then
|
|
if [ "$(mocp -Q %artist | head -n 1)" != "" ]; then
|
|
data="$ITEM9_PRE_ARTIST$(printf "$data $(mocp -Q %artist) $ITEM9_SEPARATOR")$ITEM9_POST_ARTIST"
|
|
fi
|
|
else
|
|
data="$ITEM9_PRE_ARTIST$(printf "$data $(mocp -Q %artist) $ITEM9_SEPARATOR")$ITEM9_POST_ARTIST"
|
|
fi
|
|
|
|
fi
|
|
|
|
# title
|
|
if [ "$ITEM9_DISPLAY_TITLE" = "true" ]; then
|
|
if [ "$ITEM9_HIDE_EMPTY_TITLE" = "true" ]; then
|
|
if [ "$(mocp -Q %song | head -n 1)" != "" ]; then
|
|
data="$ITEM9_PRE_TITLE$(printf "$data $(mocp -Q %song)")$ITEM9_POST_TITLE"
|
|
fi
|
|
else
|
|
data="$ITEM9_PRE_TITLE$(printf "$data $(mocp -Q %song)")$ITEM9_POST_TITLE"
|
|
fi
|
|
fi
|
|
|
|
# album
|
|
if [ "$ITEM9_DISPLAY_ALBUM" = "true" ]; then
|
|
if [ "$ITEM9_HIDE_EMPTY_ALBUM" = "true" ]; then
|
|
if [ "$(mocp -Q %album | head -n 1)" != "" ]; then
|
|
data="$(printf "$data $ITEM9_PRE_ALBUM$(mocp -Q %album)$ITEM9_POST_ALBUM")"
|
|
fi
|
|
else
|
|
data="$(printf "$data $ITEM9_PRE_ALBUM$(mocp -Q %album)$ITEM9_POST_ALBUM")"
|
|
fi
|
|
|
|
fi
|
|
|
|
# time elapsed
|
|
if [ "$ITEM9_DISPLAY_TIMEELAPSED" = "true" ]; then
|
|
if [ "$ITEM9_HIDE_EMPTY_TE" = "true" ]; then
|
|
if [ "$(mocp -Q %tl | head -n 1)" != "" ]; then
|
|
data="$(printf "$data $ITEM9_PRE_TE$(mocp -Q %$TECMD)$ITEM9_POST_TE")"
|
|
fi
|
|
else
|
|
data="$(printf "$data $ITEM9_PRE_TE$(mocp -Q %$TECMD)$ITEM9_POST_TE")"
|
|
fi
|
|
|
|
fi
|
|
|
|
# total time
|
|
if [ "$ITEM9_TT_TE_NO_SPACING" = "false" ]; then
|
|
if [ "$ITEM9_DISPLAY_TIMETOTAL" = "true" ]; then
|
|
if [ "$ITEM9_HIDE_EMPTY_TT" = "true" ]; then
|
|
if [ "$(mocp -Q %tt | head -n 1)" != "" ]; then
|
|
data="$(printf "$data $ITEM9_PRE_TT$(mocp -Q %tt)$ITEM9_POST_TT")"
|
|
fi
|
|
else
|
|
data="$(printf "$data $ITEM9_PRE_TT$(mocp -Q %tt)$ITEM9_POST_TT")"
|
|
fi
|
|
|
|
fi
|
|
else
|
|
# total time without spacing
|
|
if [ "$ITEM9_DISPLAY_TIMETOTAL" = "true" ]; then
|
|
if [ "$ITEM9_HIDE_EMPTY_TT" = "true" ]; then
|
|
if [ "$(mocp -Q %tt | head -n 1)" != "" ]; then
|
|
data="$(printf "$data $ITEM9_PRE_TT$(mocp -Q %tt)$ITEM9_POST_TT")"
|
|
fi
|
|
else
|
|
data="$(printf "$data$ITEM9_PRE_TT$(mocp -Q %tt)$ITEM9_POST_TT")"
|
|
fi
|
|
|
|
fi
|
|
fi
|
|
|
|
# actually print it
|
|
echo "$SEP $ITEM9_ICON $data"
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ "$ENABLE_ITEM9" = "true" ]; then
|
|
if [ -e "${BINDIR}cmus-remote" ]; then
|
|
if [ "$(cmus-remote -C status | head -n 1 | awk '{ print $2 }')" = "playing" ]; then
|
|
if [ "$ITEM9_DISPLAY_FILE" = "true" ]; then
|
|
echo "$SEP $ITEM9_ICON $ITEM9_PRE_FILE$(basename "$(cmus-remote -C status | grep file)"| sed 's|\(.*\)[.].*|\1|')$ITEM9_POST_FILE"
|
|
else
|
|
|
|
# artist
|
|
if [ "$ITEM9_DISPLAY_ARTIST" = "true" ]; then
|
|
if [ "$ITEM9_HIDE_EMPTY_ARTIST" = "true" ]; then
|
|
if [ "$(cmus-remote -C status | grep "tag artist")" != "" ]; then
|
|
data="$(printf "$data $ITEM9_PRE_ARTIST$(cmus-remote -C status | grep "tag artist" | sed "s/tag artist //g")$ITEM9_POST_ARTIST $ITEM9_SEPARATOR")"
|
|
fi
|
|
else
|
|
data="$(printf "$data $ITEM9_PRE_ARTIST$(cmus-remote -C status | grep "tag artist" | sed "s/tag artist //g")$ITEM9_POST_ARTIST $ITEM9_SEPARATOR")"
|
|
fi
|
|
|
|
fi
|
|
|
|
# title
|
|
if [ "$ITEM9_DISPLAY_TITLE" = "true" ]; then
|
|
if [ "$ITEM9_HIDE_EMPTY_TITLE" = "true" ]; then
|
|
if [ "$(cmus-remote -C status | grep "tag title")" != "" ]; then
|
|
data="$(printf "$data $ITEM9_PRE_TITLE$(cmus-remote -C status | grep "tag title" | sed "s/tag title //g")$ITEM9_POST_TITLE")"
|
|
fi
|
|
else
|
|
data="$(printf "$data $ITEM9_PRE_TITLE$(cmus-remote -C status | grep "tag title" | sed "s/tag title //g")$ITEM9_POST_TITLE")"
|
|
fi
|
|
fi
|
|
|
|
# album
|
|
if [ "$ITEM9_DISPLAY_ALBUM" = "true" ]; then
|
|
if [ "$ITEM9_HIDE_EMPTY_ALBUM" = "true" ]; then
|
|
if [ "$(cmus-remote -C status | grep "tag album")" != "" ]; then
|
|
data="$(printf "$data $ITEM9_PRE_ALBUM$(cmus-remote -C status | grep "tag album" | sed "s/tag album //g")$ITEM9_POST_ALBUM")"
|
|
fi
|
|
else
|
|
data="$(printf "$data $ITEM9_PRE_ALBUM$(cmus-remote -C status | grep "tag album" | sed "s/tag album //g")$ITEM9_POST_ALBUM")"
|
|
fi
|
|
fi
|
|
|
|
# genre
|
|
if [ "$ITEM9_DISPLAY_GENRE" = "true" ]; then
|
|
if [ "$ITEM9_HIDE_EMPTY_GENRE" = "true" ]; then
|
|
if [ "$(cmus-remote -C status | grep "tag genre")" != "" ]; then
|
|
data="$(printf "$data $ITEM9_PRE_GENRE$(cmus-remote -C status | grep "tag genre" | sed "s/tag genre //g")$ITEM9_POST_GENRE")"
|
|
fi
|
|
else
|
|
data="$(printf "$data $ITEM9_PRE_GENRE$(cmus-remote -C status | grep "tag genre" | sed "s/tag genre //g")$ITEM9_POST_GENRE")"
|
|
fi
|
|
|
|
fi
|
|
|
|
# time elapsed
|
|
if [ "$ITEM9_DISPLAY_TIMEELAPSED" = "true" ]; then
|
|
if [ "$ITEM9_HIDE_EMPTY_TE" = "true" ]; then
|
|
if [ "$(cmus-remote -Q | grep position | sed "s/position //g")" != "" ]; then
|
|
data="$(printf "$data $ITEM9_PRE_TE$(cmus-remote -Q | grep position | sed "s/position //g" | awk '{printf "%02d:%02d:%02d",$0/3600,$0%3600/60,$0%60}' | sed "s/00://")$ITEM9_POST_TE")"
|
|
fi
|
|
else
|
|
data="$(printf "$data $ITEM9_PRE_TE$(cmus-remote -Q | grep position | sed "s/position //g" | awk '{printf "%02d:%02d:%02d",$0/3600,$0%3600/60,$0%60}' | sed "s/00://")$ITEM9_POST_TE")"
|
|
fi
|
|
|
|
fi
|
|
|
|
# total time
|
|
if [ "$ITEM9_TT_TE_NO_SPACING" = "false" ]; then
|
|
if [ "$ITEM9_DISPLAY_TIMETOTAL" = "true" ]; then
|
|
if [ "$ITEM9_HIDE_EMPTY_TT" = "true" ]; then
|
|
if [ "$(cmus-remote -Q | grep duration | sed "s/duration //g")" != "" ]; then
|
|
data="$(printf "$data $ITEM9_PRE_TT$(cmus-remote -Q | grep duration | sed "s/duration //g" | awk '{printf "%02d:%02d:%02d",$0/3600,$0%3600/60,$0%60}' | sed "s/00://")$ITEM9_POST_TT")"
|
|
|
|
fi
|
|
else
|
|
data="$(printf "$data $ITEM9_PRE_TT$(cmus-remote -Q | grep duration | sed "s/duration //g" | awk '{printf "%02d:%02d:%02d",$0/3600,$0%3600/60,$0%60}' | sed "s/00://")$ITEM9_POST_TT")"
|
|
fi
|
|
|
|
fi
|
|
else
|
|
# total time without spacing
|
|
if [ "$ITEM9_DISPLAY_TIMETOTAL" = "true" ]; then
|
|
if [ "$ITEM9_HIDE_EMPTY_TT" = "true" ]; then
|
|
if [ "$(cmus-remote -Q | grep duration | sed "s/duration //g")" != "" ]; then
|
|
data="$(printf "$data$ITEM9_PRE_TT$(cmus-remote -Q | grep duration | sed "s/duration //g" | awk '{printf "%02d:%02d:%02d",$0/3600,$0%3600/60,$0%60}' | sed "s/00://")$ITEM9_POST_TT")"
|
|
|
|
fi
|
|
else
|
|
data="$(printf "$data$ITEM9_PRE_TT$(cmus-remote -Q | grep duration | sed "s/duration //g" | awk '{printf "%02d:%02d:%02d",$0/3600,$0%3600/60,$0%60}' | sed "s/00://")$ITEM9_POST_TT")"
|
|
fi
|
|
|
|
fi
|
|
fi
|
|
|
|
# actually print it
|
|
if [ "$data" != "" ]; then
|
|
echo "$SEP $ITEM9_ICON $data"
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Newsboat unreads
|
|
ITEM10() {
|
|
if [ "$ENABLE_ITEM10" = "true" ]; then
|
|
if [ -e "${BINDIR}newsboat" ]; then
|
|
pgrep -x newsboat > /dev/null || echo "$SEP $ITEM10_ICON $(newsboat -x print-unread | sed "s| unread articles||") unread!"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Battery percentage/charging status
|
|
ITEM11() {
|
|
if [ "$ENABLE_ITEM11" = "true" ]; then
|
|
# print capacity
|
|
if [ -e "/sys/class/power_supply/BAT0/capacity" ]; then
|
|
echo "$SEP $ITEM11_ICON $(cat /sys/class/power_supply/BAT0/capacity)%"
|
|
fi
|
|
|
|
# print capacity for second battery if it exists
|
|
if [ -e "/sys/class/power_supply/BAT1/capacity" ]; then
|
|
echo "$SEP $ITEM11_ICON $(cat /sys/class/power_supply/BAT1/capacity)%"
|
|
fi
|
|
|
|
# show charging status
|
|
if [ -e "${BINDIR}acpi" ]; then
|
|
if [ "$ITEM11_SHOW_CHARGING_STATUS" = "true" ]; then
|
|
CHARGESTATUS=$(echo ", $(acpi | awk '{ print $3 }' | sed "s|,||g" | sed "s|Discharging|$ITEM11_DISCHARGING_TEXT|g" | sed "s|Charging|$ITEM11_CHARGING_TEXT|g")") && echo $CHARGESTATUS
|
|
fi
|
|
fi
|
|
fi
|
|
}
|
|
|
|
BASE() {
|
|
# Determine whether or not
|
|
if [ "$USEWAL" = "true" ]; then
|
|
if [ "$USINGWAL" = "true" ]; then
|
|
if [ "$COLOR1" != "$(sed 1,1p $HOME/.cache/wal/colors)" ]; then
|
|
SETCOLORS_WAL && SETCOLORS_CMD
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# Run once if set to false (useful for maybe a shell)
|
|
case "$RUNONCE" in
|
|
"false") PRINT_SYSTRAY && sleep $REFRESHDELAY ;;
|
|
"true") exit 0 ;;
|
|
esac
|
|
|
|
BASE
|
|
}
|
|
|
|
# Set base colors
|
|
SETCOLORS
|
|
|
|
# Use pywal once if possible
|
|
USE_PYWAL_COLORS() {
|
|
if [ -e "${BINDIR}xsetroot" ]; then
|
|
if [ -e "${BINDIR}xrdb" ]; then
|
|
if [ "$USEWAL" = "true" ]; then
|
|
command -v wal > /dev/null && SETCOLORS_WAL
|
|
fi
|
|
fi
|
|
fi
|
|
}
|
|
|
|
LOADCONFIG
|
|
USE_PYWAL_COLORS
|
|
SETCOLORS_CMD
|
|
PRINT_SYSTRAY
|
|
BASE
|
|
|
|
exit 0
|