diff --git a/eww/images/icons/apps/discord.png b/eww/images/icons/apps/discord.png new file mode 100644 index 0000000..f7e6073 Binary files /dev/null and b/eww/images/icons/apps/discord.png differ diff --git a/eww/images/icons/apps/files.png b/eww/images/icons/apps/files.png new file mode 100644 index 0000000..728ca8b Binary files /dev/null and b/eww/images/icons/apps/files.png differ diff --git a/eww/images/icons/apps/firefox.png b/eww/images/icons/apps/firefox.png new file mode 100644 index 0000000..483b03d Binary files /dev/null and b/eww/images/icons/apps/firefox.png differ diff --git a/eww/images/icons/apps/notes.png b/eww/images/icons/apps/notes.png new file mode 100644 index 0000000..f197628 Binary files /dev/null and b/eww/images/icons/apps/notes.png differ diff --git a/eww/images/icons/apps/reddit.png b/eww/images/icons/apps/reddit.png new file mode 100644 index 0000000..8943d8a Binary files /dev/null and b/eww/images/icons/apps/reddit.png differ diff --git a/eww/images/icons/apps/telegram.png b/eww/images/icons/apps/telegram.png new file mode 100644 index 0000000..0deac60 Binary files /dev/null and b/eww/images/icons/apps/telegram.png differ diff --git a/eww/images/icons/apps/terminal.png b/eww/images/icons/apps/terminal.png new file mode 100644 index 0000000..f16934a Binary files /dev/null and b/eww/images/icons/apps/terminal.png differ diff --git a/eww/images/icons/battery/battery-1.png b/eww/images/icons/battery/battery-1.png new file mode 100644 index 0000000..4e07622 Binary files /dev/null and b/eww/images/icons/battery/battery-1.png differ diff --git a/eww/images/icons/battery/battery-2.png b/eww/images/icons/battery/battery-2.png new file mode 100644 index 0000000..9606aef Binary files /dev/null and b/eww/images/icons/battery/battery-2.png differ diff --git a/eww/images/icons/battery/battery-3.png b/eww/images/icons/battery/battery-3.png new file mode 100644 index 0000000..bd80964 Binary files /dev/null and b/eww/images/icons/battery/battery-3.png differ diff --git a/eww/images/icons/battery/charge.png b/eww/images/icons/battery/charge.png new file mode 100644 index 0000000..04667ff Binary files /dev/null and b/eww/images/icons/battery/charge.png differ diff --git a/eww/images/icons/battery/full.png b/eww/images/icons/battery/full.png new file mode 100644 index 0000000..9e0b12d Binary files /dev/null and b/eww/images/icons/battery/full.png differ diff --git a/eww/images/icons/battery/low.png b/eww/images/icons/battery/low.png new file mode 100644 index 0000000..4e07622 Binary files /dev/null and b/eww/images/icons/battery/low.png differ diff --git a/eww/images/icons/dashboard.svg b/eww/images/icons/dashboard.svg new file mode 100644 index 0000000..f497a74 --- /dev/null +++ b/eww/images/icons/dashboard.svg @@ -0,0 +1,2 @@ + + diff --git a/eww/images/icons/gmail.png b/eww/images/icons/gmail.png new file mode 100644 index 0000000..94f05a2 Binary files /dev/null and b/eww/images/icons/gmail.png differ diff --git a/eww/images/icons/music/next-button.png b/eww/images/icons/music/next-button.png new file mode 100644 index 0000000..fa4ce72 Binary files /dev/null and b/eww/images/icons/music/next-button.png differ diff --git a/eww/images/icons/music/pause-button.png b/eww/images/icons/music/pause-button.png new file mode 100644 index 0000000..062d736 Binary files /dev/null and b/eww/images/icons/music/pause-button.png differ diff --git a/eww/images/icons/music/play-button.png b/eww/images/icons/music/play-button.png new file mode 100644 index 0000000..abaa5f3 Binary files /dev/null and b/eww/images/icons/music/play-button.png differ diff --git a/eww/images/icons/music/previous-button.png b/eww/images/icons/music/previous-button.png new file mode 100644 index 0000000..a727f66 Binary files /dev/null and b/eww/images/icons/music/previous-button.png differ diff --git a/eww/images/icons/quotes.png b/eww/images/icons/quotes.png new file mode 100644 index 0000000..11ef10f Binary files /dev/null and b/eww/images/icons/quotes.png differ diff --git a/eww/images/icons/search.svg b/eww/images/icons/search.svg new file mode 100644 index 0000000..ab5c50a --- /dev/null +++ b/eww/images/icons/search.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/eww/images/icons/system/no-wifi.png b/eww/images/icons/system/no-wifi.png new file mode 100644 index 0000000..1e00942 Binary files /dev/null and b/eww/images/icons/system/no-wifi.png differ diff --git a/eww/images/icons/system/poweroff.png b/eww/images/icons/system/poweroff.png new file mode 100644 index 0000000..80e89d1 Binary files /dev/null and b/eww/images/icons/system/poweroff.png differ diff --git a/eww/images/icons/system/shutdown.png b/eww/images/icons/system/shutdown.png new file mode 100644 index 0000000..7f113b5 Binary files /dev/null and b/eww/images/icons/system/shutdown.png differ diff --git a/eww/images/icons/system/sys-exit.png b/eww/images/icons/system/sys-exit.png new file mode 100644 index 0000000..cf1ab31 Binary files /dev/null and b/eww/images/icons/system/sys-exit.png differ diff --git a/eww/images/icons/system/sys-lock.png b/eww/images/icons/system/sys-lock.png new file mode 100644 index 0000000..72530d6 Binary files /dev/null and b/eww/images/icons/system/sys-lock.png differ diff --git a/eww/images/icons/system/sys-reboot.png b/eww/images/icons/system/sys-reboot.png new file mode 100644 index 0000000..b433e24 Binary files /dev/null and b/eww/images/icons/system/sys-reboot.png differ diff --git a/eww/images/icons/system/sys-sleep.png b/eww/images/icons/system/sys-sleep.png new file mode 100644 index 0000000..a425d19 Binary files /dev/null and b/eww/images/icons/system/sys-sleep.png differ diff --git a/eww/images/icons/system/wifi.png b/eww/images/icons/system/wifi.png new file mode 100644 index 0000000..142a2df Binary files /dev/null and b/eww/images/icons/system/wifi.png differ diff --git a/eww/images/icons/volume/mute.png b/eww/images/icons/volume/mute.png new file mode 100644 index 0000000..33488c1 Binary files /dev/null and b/eww/images/icons/volume/mute.png differ diff --git a/eww/images/icons/volume/volume.png b/eww/images/icons/volume/volume.png new file mode 100644 index 0000000..0be34b8 Binary files /dev/null and b/eww/images/icons/volume/volume.png differ diff --git a/eww/images/music.png b/eww/images/music.png new file mode 100644 index 0000000..3ded333 Binary files /dev/null and b/eww/images/music.png differ diff --git a/eww/images/profile.jpg b/eww/images/profile.jpg new file mode 100644 index 0000000..575528e Binary files /dev/null and b/eww/images/profile.jpg differ diff --git a/eww/ml4w-dashboard/eww.scss b/eww/ml4w-dashboard/eww.scss new file mode 100644 index 0000000..37aa574 --- /dev/null +++ b/eww/ml4w-dashboard/eww.scss @@ -0,0 +1,80 @@ +/** Global *******************************************/ +*{ + all: unset; + font-family: feather; + font-family: "JetBrains Mono"; + color: #151515; +} + + +/** Boxes ***********************************/ +.winbox { + background-color: #F5EEE6; + border: 1px solid #161616; + border-radius: 12px; +} + +/** Resources ***********************************/ +.res_box { + background-color: #F0E9E1; + border: 1px solid #E6DFD7; + border-radius: 12px; + padding: 14px 18px 14px 18px; +} + +.res_circle { + background-color: #E1DCD2; + border: 0px solid #161616; + border-radius: 100%; + padding: 0px; +} + +.res_circle_small { + background-color: #F5EEE6; + border: 0px solid #161616; + border-radius: 100%; + padding: 40px; +} + +.res_text { + background-color: #E6E1D7; + border: 1px solid #161616; + border-radius: 16px; + font-size : 14px; + padding: 0px 8px 0px 8px; + margin: 0px 0px 0px 0px; + font-weight : bold; +} + +.res_cpu { + color: #FD6B85; +} + +.res_mem { + color: #B1A6EE; +} + +.res_disk { + color: #67D4F1; +} + +/** Power Buttons ***********************************/ +.powericons { + background-repeat: no-repeat; + background-size: 48px; + min-height: 48px; + min-width: 48px; +} + +/** Quotes ***********************************/ +.quote_box { + margin: 20px; +} + +.quote_text { + font-size : 14px; + font-style: italic; + font-weight : bold; +} + +/** EOF *************************************************/ \ No newline at end of file diff --git a/eww/ml4w-dashboard/eww.yuck b/eww/ml4w-dashboard/eww.yuck new file mode 100644 index 0000000..23e949b --- /dev/null +++ b/eww/ml4w-dashboard/eww.yuck @@ -0,0 +1,145 @@ +;; ** +;; ** Widgets config for EWW +;; ** Created by : @adi1090x +;; ** + +;; ** Variables *********************************************************************** + +;; System vars +(defpoll HOST :interval "5s" `hostname`) +(defpoll CPU_USAGE :interval "1s" `../scripts/sys_info --cpu`) +(defpoll MEM_USAGE :interval "1s" `../scripts/sys_info --mem`) +(defpoll DISK_USAGE :interval "1s" `../scripts/sys_info --disk`) +(defpoll BLIGHT :interval "1s" `../scripts/sys_info --blight`) +(defpoll BATTERY :interval "5s" `../scripts/sys_info --bat`) +(defpoll QUOTE :interval "5m" `../scripts/quotes`) + +;; ** Widgets ************************************************************************* + +;; resources +(defwidget resources [] + (box :class "winbox" + (centerbox :orientation "h" + (box :class "res_box" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false" + (box :class "res_circle" :orientation "v" :valign "center" :halign "center" + (circular-progress :class "res_cpu" :value CPU_USAGE :thickness 15 + (label :class "res_circle_small" :text "CPU"))) + (label :class "res_text" :valign "end" :halign "center" :text "${CPU_USAGE}%")) + (box :class "res_box" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false" + (box :class "res_circle" :orientation "v" :valign "center" :halign "center" + (circular-progress :class "res_mem" :value MEM_USAGE :thickness 15 + (label :class "res_circle_small" :text "MEMORY"))) + (label :class "res_text" :valign "end" :halign "center" :text "${MEM_USAGE}%")) + (box :class "res_box" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false" + (box :class "res_circle" :orientation "v" :valign "center" :halign "center" + (circular-progress :class "res_disk" :value DISK_USAGE :thickness 15 + (label :class "res_circle_small" :text "DISK"))) + (label :class "res_text" :valign "end" :halign "center" :text "${DISK_USAGE}%"))))) + +;; powermenus +(defwidget logout [] + (box :class "winbox" + (button :style "background-image: url('../images/icons/system/sys-exit.png');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system --logout"))) +(defwidget suspend [] + (box :class "winbox" + (button :style "background-image: url('../images/icons/system/sys-sleep.png');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system --suspend"))) +(defwidget lock [] + (box :class "winbox" + (button :style "background-image: url('../images/icons/system/sys-lock.png');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system --suspend"))) +(defwidget reboot [] + (box :class "winbox" + (button :style "background-image: url('../images/icons/system/sys-reboot.png');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system --reboot"))) +(defwidget shutdown [] + (box :class "winbox" + (button :style "background-image: url('../images/icons/system/poweroff.png');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system --shutdown"))) + +;; quotes +(defwidget quotes [] + (box :class "winbox" + (box :class "quote_box" :orientation "h" :valign "center" :halign "center" :spacing 10 :space-evenly "false" + (box :class "powericons" :style "background-image: url('../images/icons/quotes.png');") + (box :class "powericons" :style "background-image: url('../images/icons/quotes.png');") + (box :class "powericons" :style "background-image: url('../images/icons/quotes.png');") + (label :class "quote_text" :valign "center" :halign "center" :text QUOTE :wrap true :limit-width 90 )))) + +;; ** Windows ************************************************************************* + +;; resources +(defwindow resources + :monitor 0 + :geometry (geometry :x "15px" + :y "15px" + :width "480px" + :height "200px" + :anchor "top right") + :stacking "fg" + :wm-ignore false +(resources)) + +;; powermenu +(defwindow logout + :monitor 0 + :geometry (geometry :x "1420px" + :y "320px" + :width "80px" + :height "80px" + :anchor "top left") + :stacking "fg" + :wm-ignore false +(logout)) + +(defwindow suspend + :monitor 0 + :geometry (geometry :x "1520px" + :y "320px" + :width "80px" + :height "80px" + :anchor "top left") + :stacking "fg" + :wm-ignore false +(suspend)) + +(defwindow lock + :monitor 0 + :geometry (geometry :x "1620px" + :y "320px" + :width "80px" + :height "80px" + :anchor "top left") + :stacking "fg" + :wm-ignore false +(lock)) + +(defwindow reboot + :monitor 0 + :geometry (geometry :x "1720px" + :y "320px" + :width "80px" + :height "80px" + :anchor "top left") + :stacking "fg" + :wm-ignore false +(reboot)) + +(defwindow shutdown + :monitor 0 + :geometry (geometry :x "1820px" + :y "320px" + :width "80px" + :height "80px" + :anchor "top left") + :stacking "fg" + :wm-ignore false +(shutdown)) + +;; quotes +(defwindow quotes + :monitor 0 + :geometry (geometry :x "1420px" + :y "420px" + :width "480px" + :height "100px" + :anchor "top left") + :stacking "fg" + :wm-ignore false +(quotes)) \ No newline at end of file diff --git a/eww/ml4w-dashboard/launch.sh b/eww/ml4w-dashboard/launch.sh new file mode 100755 index 0000000..9dc5f98 --- /dev/null +++ b/eww/ml4w-dashboard/launch.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +## Files and CMD +FILE="$HOME/.cache/eww_launch.sidebar" +CFG="$HOME/dotfiles/eww/ml4w-dashboard" +EWW=`which eww` + +## Run eww daemon if not running already +if [[ ! `pidof eww` ]]; then + ${EWW} daemon + sleep 1 +fi + +## Open widgets +run_eww() { + ${EWW} --config "$CFG" open-many \ + resources \ + logout \ + suspend \ + lock \ + reboot \ + shutdown \ + quotes +} + +## Launch or close widgets accordingly +if [[ ! -f "$FILE" ]]; then + touch "$FILE" + run_eww +else + ${EWW} --config "$CFG" close resources logout suspend lock reboot shutdown quotes + rm "$FILE" +fi \ No newline at end of file diff --git a/eww/scripts/battery b/eww/scripts/battery new file mode 100755 index 0000000..97b7f95 --- /dev/null +++ b/eww/scripts/battery @@ -0,0 +1,29 @@ +#!/bin/bash + +## Get battery info +BATTERY="$(acpi | awk -F ' ' 'END {print $4}' | tr -d \%,)" +CHARGE="$(acpi | awk -F ' ' 'END {print $3}' | tr -d \,)" + +main() { + if [[ ($CHARGE = *"Charging"*) && ($BATTERY -lt "100") ]]; then + echo "images/icons/battery/charge.png" + elif [[ $CHARGE = *"Full"* ]]; then + echo "images/icons/battery/full.png" + else + if [[ ($BATTERY -lt 100) && (($BATTERY -gt 65) || ($BATTERY -eq 65)) ]]; then + echo "images/icons/battery/battery-3.png" + elif [[ ($BATTERY -lt 65) && (($BATTERY -gt 35) || ($BATTERY -eq 35)) ]]; then + echo "images/icons/battery/battery-2.png" + elif [[ ($BATTERY -lt 35) && (($BATTERY -gt 10) || ($BATTERY -eq 10)) ]]; then + echo "images/icons/battery/battery-1.png" + elif [[ ($BATTERY -lt 10) && (($BATTERY -gt 0) || ($BATTERY -eq 0)) ]]; then + echo "images/icons/battery/low.png" + fi + fi +} + +if [[ $1 == '--icon' ]]; then + main +elif [[ $1 == '--perc' ]]; then + echo "${BATTERY}%" +fi diff --git a/eww/scripts/check-network b/eww/scripts/check-network new file mode 100755 index 0000000..9efc80f --- /dev/null +++ b/eww/scripts/check-network @@ -0,0 +1,27 @@ +#!/bin/bash + +count=0 + +ID="$(ip link | awk '/state UP/ {print $2}')" +SSID="$(iwgetid -r)" + +net_stat () { + if (ping -c 1 archlinux.org || ping -c 1 google.com || ping -c 1 bitbucket.org || ping -c 1 github.com || ping -c 1 sourceforge.net) &>/dev/null; then + if [[ $ID == e* ]]; then + echo "Online" + echo "images/icons/system/wifi.png" + else + echo "$SSID" + echo "images/icons/system/wifi.png" + fi + else + echo "Offline" + echo "images/icons/system/no-wifi.png" + fi +} + +if [[ $1 == '--stat' ]]; then + net_stat | head -n1 +elif [[ $1 == '--icon' ]]; then + net_stat | tail -n1 +fi diff --git a/eww/scripts/mails b/eww/scripts/mails new file mode 100755 index 0000000..974d00a --- /dev/null +++ b/eww/scripts/mails @@ -0,0 +1,7 @@ +#!/bin/python + +import imaplib +obj = imaplib.IMAP4_SSL('imap.gmail.com',993) +obj.login('username@gmail.com','PASSWORD') # write your email and password +obj.select() +print(len(obj.search(None, 'UnSeen')[1][0].split())) diff --git a/eww/scripts/music_info b/eww/scripts/music_info new file mode 100755 index 0000000..6831cc6 --- /dev/null +++ b/eww/scripts/music_info @@ -0,0 +1,97 @@ +#!/bin/bash + +## Get data +STATUS="$(mpc status)" +COVER="/tmp/.music_cover.jpg" +MUSIC_DIR="$HOME/Music" + +## Get status +get_status() { + if [[ $STATUS == *"[playing]"* ]]; then + echo "images/icons/music/pause-button.png" + else + echo "images/icons/music/play-button.png" + fi +} + +## Get song +get_song() { + song=`mpc -f %title% current` + if [[ -z "$song" ]]; then + echo "Offline" + else + echo "$song" + fi +} + +## Get artist +get_artist() { + artist=`mpc -f %artist% current` + if [[ -z "$artist" ]]; then + echo "Offline" + else + echo "$artist" + fi +} + +## Get time +get_time() { + time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'` + if [[ -z "$time" ]]; then + echo "0" + else + echo "$time" + fi +} +get_ctime() { + ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'` + if [[ -z "$ctime" ]]; then + echo "0:00" + else + echo "$ctime" + fi +} +get_ttime() { + ttime=`mpc -f %time% current` + if [[ -z "$ttime" ]]; then + echo "0:00" + else + echo "$ttime" + fi +} + +## Get cover +get_cover() { + ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null + STATUS=$? + + # Check if the file has a embbeded album art + if [ "$STATUS" -eq 0 ];then + echo "$COVER" + else + echo "images/music.png" + fi +} + +## Execute accordingly +if [[ "$1" == "--song" ]]; then + get_song +elif [[ "$1" == "--artist" ]]; then + get_artist +elif [[ "$1" == "--status" ]]; then + get_status +elif [[ "$1" == "--time" ]]; then + get_time +elif [[ "$1" == "--ctime" ]]; then + get_ctime +elif [[ "$1" == "--ttime" ]]; then + get_ttime +elif [[ "$1" == "--cover" ]]; then + get_cover +elif [[ "$1" == "--toggle" ]]; then + mpc -q toggle +elif [[ "$1" == "--next" ]]; then + { mpc -q next; get_cover; } +elif [[ "$1" == "--prev" ]]; then + { mpc -q prev; get_cover; } +fi diff --git a/eww/scripts/quotes b/eww/scripts/quotes new file mode 100755 index 0000000..8706cb3 --- /dev/null +++ b/eww/scripts/quotes @@ -0,0 +1,4 @@ +#!/bin/bash + +quote="`fortune -n 90 -s | head -n 1`" +echo "$quote" diff --git a/eww/scripts/sys_info b/eww/scripts/sys_info new file mode 100755 index 0000000..27a589a --- /dev/null +++ b/eww/scripts/sys_info @@ -0,0 +1,85 @@ +#!/bin/bash + +## Files and Data +PREV_TOTAL=0 +PREV_IDLE=0 +cpuFile="/tmp/.cpu_usage" + +## Get CPU usage +get_cpu() { + if [[ -f "${cpuFile}" ]]; then + fileCont=$(cat "${cpuFile}") + PREV_TOTAL=$(echo "${fileCont}" | head -n 1) + PREV_IDLE=$(echo "${fileCont}" | tail -n 1) + fi + + CPU=(`cat /proc/stat | grep '^cpu '`) # Get the total CPU statistics. + unset CPU[0] # Discard the "cpu" prefix. + IDLE=${CPU[4]} # Get the idle CPU time. + + # Calculate the total CPU time. + TOTAL=0 + + for VALUE in "${CPU[@]:0:4}"; do + let "TOTAL=$TOTAL+$VALUE" + done + + if [[ "${PREV_TOTAL}" != "" ]] && [[ "${PREV_IDLE}" != "" ]]; then + # Calculate the CPU usage since we last checked. + let "DIFF_IDLE=$IDLE-$PREV_IDLE" + let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL" + let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10" + echo "${DIFF_USAGE}" + else + echo "?" + fi + + # Remember the total and idle CPU times for the next check. + echo "${TOTAL}" > "${cpuFile}" + echo "${IDLE}" >> "${cpuFile}" +} + +## Get Used memory +get_mem() { + printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}') +} + +## Get Brightness +get_blight() { + CARD=`ls /sys/class/backlight | head -n 1` + + if [[ "$CARD" == *"intel_"* ]]; then + BNESS=`xbacklight -get` + LIGHT=${BNESS%.*} + else + BNESS=`blight -d $CARD get brightness` + PERC="$(($BNESS*100/255))" + LIGHT=${PERC%.*} + fi + + echo "$LIGHT" +} + +## Get Battery +get_battery() { + BAT=`ls /sys/class/power_supply | grep BAT | head -n 1` + cat /sys/class/power_supply/${BAT}/capacity +} + +## Get Disk Usage +get_disk() { + df -h / | awk '{print $5}' | tail -n1 | sed 's/%//g' +} + +## Execute accordingly +if [[ "$1" == "--cpu" ]]; then + get_cpu +elif [[ "$1" == "--mem" ]]; then + get_mem +elif [[ "$1" == "--blight" ]]; then + get_blight +elif [[ "$1" == "--bat" ]]; then + get_battery +elif [[ "$1" == "--disk" ]]; then + get_disk +fi diff --git a/eww/scripts/system b/eww/scripts/system new file mode 100755 index 0000000..4d805df --- /dev/null +++ b/eww/scripts/system @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +CFG="$HOME/.config/eww/arin/sidedar" +EWW=`which eww` + +close_eww() { + ${EWW} --config "$CFG" close resources logout suspend lock reboot shutdown quotes +} + +## Options ############################################# +if [[ $1 = "--lock" ]]; then + close_eww + betterlockscreen --lock + +elif [[ $1 = "--logout" ]]; then + close_eww + #openbox --exit + berryc quit + +elif [[ $1 = "--suspend" ]]; then + close_eww + amixer set Master mute + systemctl suspend + +elif [[ $1 = "--reboot" ]]; then + close_eww + systemctl reboot + +elif [[ $1 = "--shutdown" ]]; then + close_eww + systemctl poweroff + +## Help Menu ############################################# +else +echo " +Available options: +--lock --logout --suspend --reboot --shutdown +" +fi diff --git a/eww/scripts/volume b/eww/scripts/volume new file mode 100755 index 0000000..4e679a2 --- /dev/null +++ b/eww/scripts/volume @@ -0,0 +1,70 @@ +#!/bin/bash + +# Get Volume +get_volume() { + status=`amixer get Master | tail -n1 | grep -wo 'on'` + + if [[ "$status" == "on" ]]; then + volume=`amixer get Master | tail -n1 | awk -F ' ' '{print $5}' | tr -d '[]'` + echo "$volume" + else + echo "Mute" + fi +} + +# Get icons +get_icon() { + vol="$(get_volume)" + current="${vol%%%}" + status=`amixer get Master | tail -n1 | grep -wo 'on'` + + if [[ "$status" == "on" ]]; then + if [[ "$current" -eq "0" ]]; then + echo "images/icons/volume/mute.png" + elif [[ ("$current" -ge "0") && ("$current" -le "30") ]]; then + echo "images/icons/volume/volume.png" + elif [[ ("$current" -ge "30") && ("$current" -le "60") ]]; then + echo "images/icons/volume/volume.png" + elif [[ ("$current" -ge "60") && ("$current" -le "100") ]]; then + echo "images/icons/volume/volume.png" + fi + else + echo "images/icons/volume/mute.png" + fi +} + +# Increase Volume +inc_volume() { + amixer -Mq set Master,0 5%+ unmute +} + +# Decrease Volume +dec_volume() { + amixer -Mq set Master,0 5%- unmute +} + +# Toggle Mute +toggle_mute() { + status=`amixer get Master | tail -n1 | grep -wo 'on'` + + if [[ "$status" == "on" ]]; then + amixer set Master toggle + else + amixer set Master toggle + fi +} + +# Execute accordingly +if [[ "$1" == "--get" ]]; then + get_volume +elif [[ "$1" == "--icon" ]]; then + get_icon +elif [[ "$1" == "--inc" ]]; then + inc_volume +elif [[ "$1" == "--dec" ]]; then + dec_volume +elif [[ "$1" == "--toggle" ]]; then + toggle_mute +else + get_volume +fi diff --git a/eww/scripts/weather_info b/eww/scripts/weather_info new file mode 100755 index 0000000..6fee821 --- /dev/null +++ b/eww/scripts/weather_info @@ -0,0 +1,147 @@ +#!/bin/bash + +## Collect data +cache_dir="$HOME/.cache/eww/weather" +cache_weather_stat=${cache_dir}/weather-stat +cache_weather_degree=${cache_dir}/weather-degree +cache_weather_quote=${cache_dir}/weather-quote +cache_weather_hex=${cache_dir}/weather-hex +cache_weather_icon=${cache_dir}/weather-icon + +## Weather data +KEY="YOUR_KEY" +ID="CITY_ID" +UNIT="metric" # Available options : 'metric' or 'imperial' + +## Make cache dir +if [[ ! -d "$cache_dir" ]]; then + mkdir -p ${cache_dir} +fi + +## Get data +get_weather_data() { + weather=`curl -sf "http://api.openweathermap.org/data/2.5/weather?APPID="$KEY"&id="$ID"&units="$UNIT""` + echo ${weather} + + if [ ! -z "$weather" ]; then + weather_temp=`echo "$weather" | jq ".main.temp" | cut -d "." -f 1` + weather_icon_code=`echo "$weather" | jq -r ".weather[].icon" | head -1` + weather_description=`echo "$weather" | jq -r ".weather[].description" | head -1 | sed -e "s/\b\(.\)/\u\1/g"` + + #Big long if statement of doom + if [ "$weather_icon_code" == "50d" ]; then + weather_icon=" " + weather_quote="Forecast says it's misty \nMake sure you don't get lost on your way..." + weather_hex="#84afdb" + elif [ "$weather_icon_code" == "50n" ]; then + weather_icon=" " + weather_quote="Forecast says it's a misty night \nDon't go anywhere tonight or you might get lost..." + weather_hex="#84afdb" + elif [ "$weather_icon_code" == "01d" ]; then + weather_icon=" " + weather_quote="It's a sunny day, gonna be fun! \nDon't go wandering all by yourself though..." + weather_hex="#ffd86b" + elif [ "$weather_icon_code" == "01n" ]; then + weather_icon=" " + weather_quote="It's a clear night \nYou might want to take a evening stroll to relax..." + weather_hex="#fcdcf6" + elif [ "$weather_icon_code" == "02d" ]; then + weather_icon=" " + weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..." + weather_hex="#adadff" + elif [ "$weather_icon_code" == "02n" ]; then + weather_icon=" " + weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?" + weather_hex="#adadff" + elif [ "$weather_icon_code" == "03d" ]; then + weather_icon=" " + weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..." + weather_hex="#adadff" + elif [ "$weather_icon_code" == "03n" ]; then + weather_icon=" " + weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?" + weather_hex="#adadff" + elif [ "$weather_icon_code" == "04d" ]; then + weather_icon=" " + weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..." + weather_hex="#adadff" + elif [ "$weather_icon_code" == "04n" ]; then + weather_icon=" " + weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?" + weather_hex="#adadff" + elif [ "$weather_icon_code" == "09d" ]; then + weather_icon=" " + weather_quote="It's rainy, it's a great day! \nGet some ramen and watch as the rain falls..." + weather_hex="#6b95ff" + elif [ "$weather_icon_code" == "09n" ]; then + weather_icon=" " + weather_quote=" It's gonna rain tonight it seems \nMake sure your clothes aren't still outside..." + weather_hex="#6b95ff" + elif [ "$weather_icon_code" == "10d" ]; then + weather_icon=" " + weather_quote="It's rainy, it's a great day! \nGet some ramen and watch as the rain falls..." + weather_hex="#6b95ff" + elif [ "$weather_icon_code" == "10n" ]; then + weather_icon=" " + weather_quote=" It's gonna rain tonight it seems \nMake sure your clothes aren't still outside..." + weather_hex="#6b95ff" + elif [ "$weather_icon_code" == "11d" ]; then + weather_icon="" + weather_quote="There's storm for forecast today \nMake sure you don't get blown away..." + weather_hex="#ffeb57" + elif [ "$weather_icon_code" == "11n" ]; then + weather_icon="" + weather_quote="There's gonna be storms tonight \nMake sure you're warm in bed and the windows are shut..." + weather_hex="#ffeb57" + elif [ "$weather_icon_code" == "13d" ]; then + weather_icon=" " + weather_quote="It's gonna snow today \nYou'd better wear thick clothes and make a snowman as well!" + weather_hex="#e3e6fc" + elif [ "$weather_icon_code" == "13n" ]; then + weather_icon=" " + weather_quote="It's gonna snow tonight \nMake sure you get up early tomorrow to see the sights..." + weather_hex="#e3e6fc" + elif [ "$weather_icon_code" == "40d" ]; then + weather_icon=" " + weather_quote="Forecast says it's misty \nMake sure you don't get lost on your way..." + weather_hex="#84afdb" + elif [ "$weather_icon_code" == "40n" ]; then + weather_icon=" " + weather_quote="Forecast says it's a misty night \nDon't go anywhere tonight or you might get lost..." + weather_hex="#84afdb" + else + weather_icon=" " + weather_quote="Sort of odd, I don't know what to forecast \nMake sure you have a good time!" + weather_hex="#adadff" + fi + echo "$weather_icon" > ${cache_weather_icon} + echo "$weather_description" > ${cache_weather_stat} + echo "$weather_temp""°C" > ${cache_weather_degree} + echo -e "$weather_quote" > ${cache_weather_quote} + echo "$weather_hex" > ${cache_weather_hex} + else + echo "Weather Unavailable" > ${cache_weather_stat} + echo " " > ${cache_weather_icon} + echo -e "Ah well, no weather huh? \nEven if there's no weather, it's gonna be a great day!" > ${cache_weather_quote} + echo "-" > ${cache_weather_degree} + echo "#adadff" > ${tcache_weather_hex} + fi +} + +## Execute +if [[ "$1" == "--getdata" ]]; then + get_weather_data +elif [[ "$1" == "--icon" ]]; then + cat ${cache_weather_icon} +elif [[ "$1" == "--temp" ]]; then + cat ${cache_weather_degree} +elif [[ "$1" == "--hex" ]]; then + cat ${cache_weather_hex} +elif [[ "$1" == "--stat" ]]; then + cat ${cache_weather_stat} +elif [[ "$1" == "--quote" ]]; then + cat ${cache_weather_quote} | head -n1 +elif [[ "$1" == "--quote2" ]]; then + cat ${cache_weather_quote} | tail -n1 +fi + diff --git a/eww/scripts/widget_apps b/eww/scripts/widget_apps new file mode 100755 index 0000000..5d24e8f --- /dev/null +++ b/eww/scripts/widget_apps @@ -0,0 +1,33 @@ +#!/bin/bash + +if [[ "$1" == "--tr" ]]; then + alacritty --working-directory ~ & + +elif [[ "$1" == "--ff" ]]; then + firefox & + +elif [[ "$1" == "--fm" ]]; then + thunar ~ & + +elif [[ "$1" == "--ge" ]]; then + geany & + +elif [[ "$1" == "--dc" ]]; then + discord & + +elif [[ "$1" == "--tg" ]]; then + telegram-desktop & + +elif [[ "$1" == "--rd" ]]; then + firefox --new-tab "https://reddit.com" + +elif [[ "$1" == "--ml" ]]; then + firefox --new-tab "https://mail.google.com" + +elif [[ "$1" == "--pow" ]]; then + xfce4-power-manager-settings & + +elif [[ "$1" == "--nm" ]]; then + networkmanager_dmenu + +fi diff --git a/eww/scripts/widget_search b/eww/scripts/widget_search new file mode 100755 index 0000000..176fcfd --- /dev/null +++ b/eww/scripts/widget_search @@ -0,0 +1,9 @@ +#!/bin/bash + +if [[ "$1" == "--menu" ]]; then + rofi -show drun + +elif [[ "$1" == "--search" ]]; then + firefox --new-tab "https://google.com" + +fi