polybar-scripts

This commit is contained in:
Harri Lahtinen 2020-04-07 15:43:05 +03:00
parent 3ee447043d
commit 1f1a8dd5d4
6 changed files with 303 additions and 0 deletions

View File

@ -0,0 +1,3 @@
#!/bin/bash
echo "$(light | cut -d. -f1)"

View File

@ -0,0 +1,19 @@
#!/bin/sh
STATUS=$(expressvpn status | cut -d " " -f 1)
IP=$(ip route get 8.8.8.8 | head -1 | awk '{print $7}')
SSID=$(nmcli -f SSID | head -1 | cut -d " " -f 4)
if [ "$STATUS" != "Not" ]; then
echo "${IP} "
elif [ "$SSID" = "ASUS_5G" ] || [ "$SSID" = "ASUS" ]; then
echo "${IP} "
elif [ "$SSID" = "OP3T" ] || [ "$SSID" = "Samsung" ]; then
echo "${IP} "
elif [ "$SSID" != "ASUS_5G" ] || [ "$SSID" != "ASUS" ] || [ "$SSID" != "OP3T" ] || [ "$SSID" != "Samsung" ] ; then
echo "${IP} "
fi

View File

@ -0,0 +1,39 @@
#!/usr/bin/env bash
command -v jq >/dev/null 2>&1 || { echo >&2 "Program 'jq' required but it is not installed. Aborting."; exit 1; }
command -v wget >/dev/null 2>&1 || { echo >&2 "Program 'wget' required but is not installed. Aborting."; exit 1; }
APIKEY="99e2d54517287c6de1e9db99db2fdc84"
CITY_ID="659181" # customise this for your city
URL="http://api.openweathermap.org/data/2.5/weather?id=${CITY_ID}&units=metric&APPID=${APIKEY}"
WEATHER_RESPONSE=$(wget -qO- "${URL}")
WEATHER_CONDITION=$(echo $WEATHER_RESPONSE | jq '.weather[0].main' | sed 's/"//g')
WEATHER_TEMP=$(echo $WEATHER_RESPONSE | jq '.main.temp')
WIND_DIR=$( echo "$WEATHER_RESPONSE" | jq '.wind.deg')
WIND_SPEED=$( echo "$WEATHER_RESPONSE" | jq '.wind.speed')
#WIND_SPEED=$(awk "BEGIN {print 60*60*$WIND_SPEED/1000}")
WIND_SPEED=$(awk "BEGIN {print $WIND_SPEED}")
WIND_DIR=$(awk "BEGIN {print int(($WIND_DIR % 360)/22.5)}")
DIR_ARRAY=( N NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW N )
WIND_DIR=${DIR_ARRAY[WIND_DIR]}
case $WEATHER_CONDITION in
'Clouds')
WEATHER_ICON=""
;;
'Rain')
WEATHER_ICON=""
;;
'Snow')
WEATHER_ICON=""
;;
*)
WEATHER_ICON=""
;;
esac
echo " ${WEATHER_ICON} ${WEATHER_CONDITION} ${WEATHER_TEMP}°C ${WIND_SPEED} m/s "
#echo "${WEATHER_ICON} ${WEATHER_CONDITION}: ${WEATHER_TEMP}°C: ${WIND_SPEED} m/s ${WIND_DIR} "

View File

@ -0,0 +1,194 @@
#!/usr/bin/env bash
# finds the active sink for pulse audio and increments the volume. useful when you have multiple audio outputs and have a key bound to vol-up and down
osd='no'
inc='2'
capvol='no'
maxvol='150'
autosync='yes'
# Muted status
# yes: muted
# no : not muted
curStatus="no"
active_sink=""
limit=$((100 - inc))
maxlimit=$((maxvol - inc))
reloadSink() {
active_sink=$(pacmd list-sinks | awk '/* index:/{print $3}')
}
function volUp {
getCurVol
if [ "$capvol" = 'yes' ]
then
if [ "$curVol" -le 100 ] && [ "$curVol" -ge "$limit" ]
then
pactl set-sink-volume "$active_sink" -- 100%
elif [ "$curVol" -lt "$limit" ]
then
pactl set-sink-volume "$active_sink" -- "+$inc%"
fi
elif [ "$curVol" -le "$maxvol" ] && [ "$curVol" -ge "$maxlimit" ]
then
pactl set-sink-volume "$active_sink" "$maxvol%"
elif [ "$curVol" -lt "$maxlimit" ]
then
pactl set-sink-volume "$active_sink" "+$inc%"
fi
getCurVol
if [ ${osd} = 'yes' ]
then
qdbus org.kde.kded /modules/kosd showVolume "$curVol" 0
fi
if [ ${autosync} = 'yes' ]
then
volSync
fi
}
function volDown {
pactl set-sink-volume "$active_sink" "-$inc%"
getCurVol
if [ ${osd} = 'yes' ]
then
qdbus org.kde.kded /modules/kosd showVolume "$curVol" 0
fi
if [ ${autosync} = 'yes' ]
then
volSync
fi
}
function getSinkInputs {
input_array=$(pacmd list-sink-inputs | grep -B 4 "sink: $1 " | awk '/index:/{print $2}')
}
function volSync {
getSinkInputs "$active_sink"
getCurVol
for each in $input_array
do
pactl set-sink-input-volume "$each" "$curVol%"
done
}
function getCurVol {
curVol=$(pacmd list-sinks | grep -A 15 "index: $active_sink$" | grep 'volume:' | grep -E -v 'base volume:' | awk -F : '{print $3}' | grep -o -P '.{0,3}%'| sed s/.$// | tr -d ' ')
}
function volMute {
case "$1" in
mute)
pactl set-sink-mute "$active_sink" 1
curVol=0
status=1
;;
unmute)
pactl set-sink-mute "$active_sink" 0
getCurVol
status=0
;;
esac
if [ ${osd} = 'yes' ]
then
qdbus org.kde.kded /modules/kosd showVolume ${curVol} ${status}
fi
}
function volMuteStatus {
curStatus=$(pacmd list-sinks | grep -A 15 "index: $active_sink$" | awk '/muted/{ print $2}')
}
# Prints output for bar
# Listens for events for fast update speed
function listen {
firstrun=0
pactl subscribe 2>/dev/null | {
while true; do
{
# If this is the first time just continue
# and print the current state
# Otherwise wait for events
# This is to prevent the module being empty until
# an event occurs
if [ $firstrun -eq 0 ]
then
firstrun=1
else
read -r event || break
if ! echo "$event" | grep -e "on card" -e "on sink"
then
# Avoid double events
continue
fi
fi
} &>/dev/null
output
done
}
}
function output() {
reloadSink
getCurVol
volMuteStatus
if [ "${curStatus}" = 'yes' ]
then
echo "$curVol%"
else
echo "$curVol%"
fi
} #}}}
reloadSink
case "$1" in
--up)
volUp
;;
--down)
volDown
;;
--togmute)
volMuteStatus
if [ "$curStatus" = 'yes' ]
then
volMute unmute
else
volMute mute
fi
;;
--mute)
volMute mute
;;
--unmute)
volMute unmute
;;
--sync)
volSync
;;
--listen)
# Listen for changes and immediately create new output for the bar
# This is faster than having the script on an interval
listen
;;
*)
# By default print output for bar
output
;;
esac

View File

@ -0,0 +1,41 @@
#!/bin/sh
BAR_HEIGHT=30 # polybar height
BORDER_SIZE=1 # border size from your wm settings
YAD_WIDTH=222 # 222 is minimum possible value
YAD_HEIGHT=193 # 193 is minimum possible value
DATE="$(date +"%d-%m-%y %H:%M")"
case "$1" in
--popup)
if [ "$(xdotool getwindowfocus getwindowname)" = "yad-calendar" ]; then
exit 0
fi
eval "$(xdotool getmouselocation --shell)"
eval "$(xdotool getdisplaygeometry --shell)"
# X
if [ "$((X + YAD_WIDTH / 2 + BORDER_SIZE))" -gt "$WIDTH" ]; then #Right side
: $((pos_x = WIDTH - YAD_WIDTH - BORDER_SIZE))
elif [ "$((X - YAD_WIDTH / 2 - BORDER_SIZE))" -lt 0 ]; then #Left side
: $((pos_x = BORDER_SIZE))
else #Center
: $((pos_x = X - YAD_WIDTH / 2))
fi
# Y
if [ "$Y" -gt "$((HEIGHT / 2))" ]; then #Bottom
: $((pos_y = HEIGHT - YAD_HEIGHT - BAR_HEIGHT - BORDER_SIZE))
else #Top
: $((pos_y = BAR_HEIGHT + BORDER_SIZE))
fi
yad --calendar --undecorated --fixed --close-on-unfocus --no-buttons \
--width=$YAD_WIDTH --height=$YAD_HEIGHT --posx=$pos_x --posy=$pos_y \
--title="yad-calendar" --borders=0 >/dev/null &
;;
*)
echo "$DATE"
;;
esac

View File

@ -0,0 +1,7 @@
#!/bin/bash
rm ~/Hameenlinna_0qp.png
wget wttr.in/Hameenlinna_0qp.png && feh Hameenlinna_0qp.png