speedwm-personal/status
speediegq 9dca431279 remove wastage of internet by not checking if we're connected if we've
already determined that we are connected. save and use old weather
status if we're not connected because it's printed regardless.
2022-09-01 23:15:06 +02:00

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