165 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			165 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
#
 | 
						|
# Last update: 02-02-2020 
 | 
						|
#
 | 
						|
 | 
						|
xset s off -dpms&
 | 
						|
xset b off&
 | 
						|
xset s off&
 | 
						|
xset -dpms&
 | 
						|
compton&
 | 
						|
feh --bg-fill $HOME/.wall.jpg &
 | 
						|
redshift -l 52.2327:18.3036 -t 6500:3200&
 | 
						|
nm-applet --sm-disable&
 | 
						|
/usr/local/bin/st -e /bin/sh -c "tmux new-session -s BASE -n HOME '/bin/zsh'\; split-window -h \; split-window 'htop'\; new-window -n IRC 'irssi'\; new-window -n MUSIC 'cmus'"&
 | 
						|
firefox&
 | 
						|
thunderbird-bin&
 | 
						|
sudo keepassxc&
 | 
						|
#megasync&
 | 
						|
dunst -config&
 | 
						|
/usr/bin/ibus-daemon -d&
 | 
						|
transmission-daemon&
 | 
						|
#teamviewer&
 | 
						|
#pl&
 | 
						|
(sleep 30 && getforecast)&
 | 
						|
sudo /usr/bin/rdate -s -l ntp.task.gda.pl && sudo /sbin/hwclock --systohc
 | 
						|
/opt/MEGAcmd/mega-cmd-server --debug-full > /var/log/megacmd/megacmd.log&
 | 
						|
 | 
						|
print_torrent(){
 | 
						|
	transmission-remote -l | grep % |
 | 
						|
	sed " # This first sed command is to ensure a desirable order with sort
 | 
						|
	s/.*Stopped.*/A/g;
 | 
						|
	s/.*Seeding.*/Z/g;
 | 
						|
	s/.*100%.*/N/g;
 | 
						|
	s/.*Idle.*/B/g;
 | 
						|
	s/.*Uploading.*/L/g;
 | 
						|
	s/.*%.*/M/g" |
 | 
						|
		sort -h | uniq -c | sed " # Now we replace the standin letters with icons.
 | 
						|
				s/A//g;
 | 
						|
				s/B//g;
 | 
						|
				s/L//g;
 | 
						|
				s/M//g;
 | 
						|
				s/N//g;
 | 
						|
				s/Z//g" | awk '{print $2, $1}' | sed -e "s/ $//g"
 | 
						|
}
 | 
						|
 | 
						|
testweather() { 
 | 
						|
[ "$(stat -c %y "/home/yorune/.weatherreport" 2>/dev/null | cut -d' ' -f1)" != "$(date '+%Y-%m-%d')" ] && curl -s "wttr.in/$location" > "/home/yorune/.weatherreport" && notify-send " Weather" "New weather forecast for today."
 | 
						|
 | 
						|
printf "%s " "$(sed '16q;d' "/home/yorune/.weatherreport" | grep -wo "[0-9]*%" | sort -n | sed -e '$!d' | sed -e "s/^/ /g" | tr -d '\n')" &&  sed '13q;d' "/home/yorune/.weatherreport" | grep -o "m\\(-\\)*[0-9]\\+" | sort -n -t 'm' -k 2n | sed -e 1b -e '$!d' | tr '\n|m' ' ' | awk '{print " ",$1 "°","",$2 "°"}'
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
print_volume() {
 | 
						|
[ "$(pulsemixer --get-mute)" = "1" ] && printf "" && exit
 | 
						|
vol=$(pulsemixer --get-volume | awk '{print $1}')
 | 
						|
printf "%s%%\\n" " $vol"
 | 
						|
}
 | 
						|
 | 
						|
print_wifi() 
 | 
						|
{	
 | 
						|
[ "$(cat /sys/class/net/w*/operstate)" = 'down' ] && wifiicon=""
 | 
						|
 | 
						|
[ ! -n "${wifiicon+var}" ] && wifiicon=$(grep "^\s*w" /proc/net/wireless | awk '{ print "", int($3 * 100 / 70) "%" }')
 | 
						|
 | 
						|
printf "%s %s" "$wifiicon" "$(cat /sys/class/net/e*/operstate | sed "s/down//;s/up//")"
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
print_temp(){
 | 
						|
	echo -e " $(sensors | awk '/Core 0/ {print $3}') +$(sudo nvidia-smi -q -d temperature | grep -i "GPU Current" |sed -r 's/GPU Current Temp            ://'| sed -r 's/ C//' |sed -e 's/^[ \t]*//').0°C"
 | 
						|
}
 | 
						|
 | 
						|
print_date(){
 | 
						|
	echo -e " $(date +"%d/%m %H:%M")"
 | 
						|
}
 | 
						|
print_mail(){
 | 
						|
	RESULT=$(echo "$(du -a ~/.mailbox/*/inbox/new/* 2>/dev/null | sed -n '$=')$(cat /tmp/imapsyncicon_$USER 2>/dev/null)")
 | 
						|
	if [ -z $RESULT ]; then
 | 
						|
        	echo "0"
 | 
						|
	else
 | 
						|
        	echo "$(du -a ~/.mailbox/*/inbox/new/* 2>/dev/null | sed -n '$=')$(cat /tmp/imapsyncicon_$USER 2>/dev/null)"
 | 
						|
	fi
 | 
						|
}
 | 
						|
 | 
						|
batLevel() {
 | 
						|
	# Find the battery level
 | 
						|
	hash acpi || return 0
 | 
						|
	onl="$(acpi -V | grep "on-line")"
 | 
						|
	charge="$(cat /sys/class/power_supply/BAT*/capacity)"
 | 
						|
    time="$(awk '{print $5}' <(acpi))"
 | 
						|
 | 
						|
	# Determine battery glyph by percentage range
 | 
						|
	if [[ -z $onl && ${charge} -gt 80 ]]; then
 | 
						|
		echo -e " ${charge}% ${time}"
 | 
						|
	elif [[ -z $onl && ${charge} -le 80 && ${charge} -gt 60 ]]; then
 | 
						|
		echo -e " ${charge}% ${time}"
 | 
						|
	elif [[ -z $onl && ${charge} -le 60 && ${charge} -gt 40 ]]; then
 | 
						|
		echo -e " ${charge}% ${time}"
 | 
						|
	elif [[ -z $onl && ${charge} -le 40 && ${charge} -gt 20 ]]; then
 | 
						|
		echo -e " ${charge}% ${time}"
 | 
						|
	elif [[ -z $onl && ${charge} -le 20 ]]; then
 | 
						|
		echo -e " ${charge}% ${time}"
 | 
						|
	# If charging, use animated glyph
 | 
						|
	else
 | 
						|
		echo -e ""
 | 
						|
	fi
 | 
						|
}
 | 
						|
 | 
						|
usageData() {
 | 
						|
	read cpu a b c pi rest < /proc/stat
 | 
						|
	pt=$((a+b+c+pi))
 | 
						|
	sleep 0.1
 | 
						|
	read cpu a b c i rest < /proc/stat
 | 
						|
	t=$((a+b+c+i))
 | 
						|
	cpuUse=$((100*( (t-pt) - (i-pi) ) / (t-pt) ))
 | 
						|
 | 
						|
	ramUseA=$(free -m -h | grep Mem | awk '{print $3"/"$2}')
 | 
						|
	ramPer=$(free -m | grep Mem | awk '{print 100*($3/$2)}')
 | 
						|
	ramUseB="${ramPer%.*}"
 | 
						|
 | 
						|
	echo -e " $cpuUse%  $ramUseB%"
 | 
						|
}
 | 
						|
 | 
						|
playerCmus(){
 | 
						|
cmus=$(cmus-remote -Q | grep status)
 | 
						|
case "$cmus" in
 | 
						|
"status stop"*)
 | 
						|
    echo ""
 | 
						|
    ;;
 | 
						|
"status paused"*)
 | 
						|
    echo ""
 | 
						|
    ;;
 | 
						|
'status playing'*)
 | 
						|
    INFO_CMUS=$(cmus-remote -Q 2>/dev/null)
 | 
						|
        if [[ $? -eq 0 ]]; then
 | 
						|
          INFO_TITLE=$(echo "${INFO_CMUS}" | sed -n -e 's/^.*title//p' | head -n 1)
 | 
						|
          INFO_ALBUM=$(echo "${INFO_CMUS}" | sed -n -e 's/^.*album//p' | head -n 1)
 | 
						|
          INFO_ARTIST=$(echo "${INFO_CMUS}" | sed -n -e 's/^.*artist//p' | head -n 1)
 | 
						|
        else
 | 
						|
          exit
 | 
						|
        fi
 | 
						|
        if [[ "${INFO_ARTIST}" ]] && [[ "${INFO_TITLE}" ]]; then
 | 
						|
          OUT_TEXT="${INFO_ARTIST} -${INFO_TITLE}"
 | 
						|
        elif [[ "${INFO_TITLE}" ]]; then
 | 
						|
          OUT_TEXT="${INFO_TITLE}"
 | 
						|
        fi
 | 
						|
    echo -e ""
 | 
						|
    #echo -e "${OUT_TEXT}"
 | 
						|
    ;;
 | 
						|
"")
 | 
						|
    echo ""
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
while true
 | 
						|
do
 | 
						|
    xsetroot -name "$(print_temp) | $(usageData) | $(print_wifi) | $(testweather) | $(batLevel) | $(print_volume) | $(print_date)"
 | 
						|
    #xsetroot -name "$(print_wifi) | $(batLevel) | $(print_volume) | $(print_date)"
 | 
						|
	sleep 2 
 | 
						|
done
 |