adds waybar
This commit is contained in:
		
							
								
								
									
										42
									
								
								.config/waybar/modules/mail.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										42
									
								
								.config/waybar/modules/mail.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| #!/usr/bin/python | ||||
|  | ||||
| import os | ||||
| import imaplib | ||||
|  | ||||
| import mailsecrets | ||||
|  | ||||
| def getmails(username, password, server): | ||||
|     imap = imaplib.IMAP4_SSL(server, 993) | ||||
|     imap.login(username, password) | ||||
|     imap.select('INBOX') | ||||
|     ustatus, uresponse = imap.uid('search', None, 'UNSEEN') | ||||
|     if ustatus == 'OK': | ||||
|         unread_msg_nums = uresponse[0].split() | ||||
|     else: | ||||
|         unread_msg_nums = [] | ||||
|  | ||||
|     fstatus, fresponse = imap.uid('search', None, 'FLAGGED') | ||||
|     if fstatus == 'OK': | ||||
|         flagged_msg_nums = fresponse[0].split() | ||||
|     else: | ||||
|         flagged_msg_nums = [] | ||||
|  | ||||
|     return [len(unread_msg_nums), len(flagged_msg_nums)] | ||||
|  | ||||
| ping = os.system("ping " + mailsecrets.server + " -c1 > /dev/null 2>&1") | ||||
| if ping == 0: | ||||
|     mails = getmails(mailsecrets.username, mailsecrets.password, mailsecrets.server) | ||||
|     text = '' | ||||
|     alt = '' | ||||
|  | ||||
|     if mails[0] > 0: | ||||
|         text = alt = str(mails[0]) | ||||
|         if mails[1] > 0: | ||||
|             alt = str(mails[1]) + "  " + alt | ||||
|     else: | ||||
|         exit(1) | ||||
|  | ||||
|     print('{"text":"' + text + '", "alt": "' + alt + '"}') | ||||
|  | ||||
| else: | ||||
|     exit(1) | ||||
							
								
								
									
										18
									
								
								.config/waybar/modules/spotify.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										18
									
								
								.config/waybar/modules/spotify.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| class=$(playerctl metadata --player=spotify --format '{{lc(status)}}') | ||||
| icon="" | ||||
|  | ||||
| if [[ $class == "playing" ]]; then | ||||
|   info=$(playerctl metadata --player=spotify --format '{{artist}} - {{title}}') | ||||
|   if [[ ${#info} > 40 ]]; then | ||||
|     info=$(echo $info | cut -c1-40)"..." | ||||
|   fi | ||||
|   text=$info" "$icon | ||||
| elif [[ $class == "paused" ]]; then | ||||
|   text=$icon | ||||
| elif [[ $class == "stopped" ]]; then | ||||
|   text="" | ||||
| fi | ||||
|  | ||||
| echo -e "{\"text\":\""$text"\", \"class\":\""$class"\"}" | ||||
							
								
								
									
										24
									
								
								.config/waybar/modules/storage.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										24
									
								
								.config/waybar/modules/storage.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| mount="/" | ||||
| warning=20 | ||||
| critical=10 | ||||
|  | ||||
| df -h -P -l "$mount" | awk -v warning=$warning -v critical=$critical ' | ||||
| /\/.*/ { | ||||
|   text=$4 | ||||
|   tooltip="Filesystem: "$1"\rSize: "$2"\rUsed: "$3"\rAvail: "$4"\rUse%: "$5"\rMounted on: "$6 | ||||
|   use=$5 | ||||
|   exit 0 | ||||
| } | ||||
| END { | ||||
|   class="" | ||||
|   gsub(/%$/,"",use) | ||||
|   if ((100 - use) < critical) { | ||||
|     class="critical" | ||||
|   } else if ((100 - use) < warning) { | ||||
|     class="warning" | ||||
|   } | ||||
|   print "{\"text\":\""text"\", \"percentage\":"use",\"tooltip\":\""tooltip"\", \"class\":\""class"\"}" | ||||
| } | ||||
| ' | ||||
							
								
								
									
										79
									
								
								.config/waybar/modules/weather.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										79
									
								
								.config/waybar/modules/weather.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,79 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| cachedir=~/.cache/rbn | ||||
| cachefile=${0##*/}-$1 | ||||
|  | ||||
| if [ ! -d $cachedir ]; then | ||||
|     mkdir -p $cachedir | ||||
| fi | ||||
|  | ||||
| if [ ! -f $cachedir/$cachefile ]; then | ||||
|     touch $cachedir/$cachefile | ||||
| fi | ||||
|  | ||||
| # Save current IFS | ||||
| SAVEIFS=$IFS | ||||
| # Change IFS to new line. | ||||
| IFS=$'\n' | ||||
|  | ||||
| cacheage=$(($(date +%s) - $(stat -c '%Y' "$cachedir/$cachefile"))) | ||||
| if [ $cacheage -gt 1740 ] || [ ! -s $cachedir/$cachefile ]; then | ||||
|     data=($(curl -s https://en.wttr.in/$1\?0qnT 2>&1)) | ||||
|     echo ${data[0]} | cut -f1 -d, > $cachedir/$cachefile | ||||
|     echo ${data[1]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile | ||||
|     echo ${data[2]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile | ||||
| fi | ||||
|  | ||||
| weather=($(cat $cachedir/$cachefile)) | ||||
|  | ||||
| # Restore IFSClear | ||||
| IFS=$SAVEIFS | ||||
|  | ||||
| temperature=$(echo ${weather[2]} | sed -E 's/([[:digit:]])+\.\./\1 to /g') | ||||
|  | ||||
| #echo ${weather[1]##*,} | ||||
|  | ||||
| # https://fontawesome.com/icons?s=solid&c=weather | ||||
| case $(echo ${weather[1]##*,} | tr '[:upper:]' '[:lower:]') in | ||||
| "clear" | "sunny") | ||||
|     condition="" | ||||
|     ;; | ||||
| "partly cloudy") | ||||
|     condition="杖" | ||||
|     ;; | ||||
| "cloudy") | ||||
|     condition="" | ||||
|     ;; | ||||
| "overcast") | ||||
|     condition="" | ||||
|     ;; | ||||
| "mist" | "fog" | "freezing fog") | ||||
|     condition="" | ||||
|     ;; | ||||
| "patchy rain possible" | "patchy light drizzle" | "light drizzle" | "patchy light rain" | "light rain" | "light rain shower" | "rain") | ||||
|     condition="" | ||||
|     ;; | ||||
| "moderate rain at times" | "moderate rain" | "heavy rain at times" | "heavy rain" | "moderate or heavy rain shower" | "torrential rain shower" | "rain shower") | ||||
|     condition="" | ||||
|     ;; | ||||
| "patchy snow possible" | "patchy sleet possible" | "patchy freezing drizzle possible" | "freezing drizzle" | "heavy freezing drizzle" | "light freezing rain" | "moderate or heavy freezing rain" | "light sleet" | "ice pellets" | "light sleet showers" | "moderate or heavy sleet showers") | ||||
|     condition="ﭽ" | ||||
|     ;; | ||||
| "blowing snow" | "moderate or heavy sleet" | "patchy light snow" | "light snow" | "light snow showers") | ||||
|     condition="流" | ||||
|     ;; | ||||
| "blizzard" | "patchy moderate snow" | "moderate snow" | "patchy heavy snow" | "heavy snow" | "moderate or heavy snow with thunder" | "moderate or heavy snow showers") | ||||
|     condition="ﰕ" | ||||
|     ;; | ||||
| "thundery outbreaks possible" | "patchy light rain with thunder" | "moderate or heavy rain with thunder" | "patchy light snow with thunder") | ||||
|     condition="" | ||||
|     ;; | ||||
| *) | ||||
|     condition="" | ||||
|     echo -e "{\"text\":\""$condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}" | ||||
|     ;; | ||||
| esac | ||||
|  | ||||
| #echo $temp $condition | ||||
|  | ||||
| echo -e "{\"text\":\""$temperature $condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}" | ||||
		Reference in New Issue
	
	Block a user