From 2ac57ebaf80a940ab22d66cc42a42705d69abbc4 Mon Sep 17 00:00:00 2001 From: clxxiii Date: Sat, 4 Nov 2023 17:27:37 -0400 Subject: [PATCH] add new cards --- .gitignore | 10 +- eww/bars/horizontal-bspwm/eww.yuck | 36 ------- eww/bars/horizontal/eww.css | 17 ++-- eww/bars/horizontal/eww.yuck | 2 +- eww/bars/wayland/eww.yuck | 1 - eww/cards.sh | 25 +++++ eww/cards/calendar/eww.yuck | 14 +++ eww/cards/clock/eww.yuck | 29 ++++++ eww/cards/confirmation/eww.yuck | 33 +++++++ eww/cards/distro/eww.yuck | 18 ++++ eww/cards/eww.css | 148 ++++++++++++++++++++++++++- eww/cards/eww.yuck | 17 ++++ eww/cards/frame.yuck | 15 +++ eww/cards/np/eww.yuck | 32 +++--- eww/cards/powermenu/eww.yuck | 19 ++++ eww/cards/profile/eww.yuck | 33 +++++++ eww/cards/quickapps/eww.yuck | 34 +++++++ eww/cards/sliders/eww.yuck | 60 +++++++++++ eww/cards/system/eww.yuck | 97 ++++++++++++++++++ eww/cards/weather/eww.yuck | 32 ++++++ eww/cards/webshortcuts/eww.yuck | 57 +++++++++++ eww/images/eos.png | Bin 0 -> 17555 bytes eww/scripts/battery.sh | 35 ++++--- eww/scripts/getvolume.sh | 2 - eww/scripts/power.sh | 12 +++ eww/scripts/weather.sh | 154 +++++++++++++++++++++++++++++ 26 files changed, 849 insertions(+), 83 deletions(-) create mode 100755 eww/cards.sh create mode 100644 eww/cards/calendar/eww.yuck create mode 100644 eww/cards/clock/eww.yuck create mode 100644 eww/cards/confirmation/eww.yuck create mode 100644 eww/cards/distro/eww.yuck create mode 100644 eww/cards/frame.yuck create mode 100644 eww/cards/powermenu/eww.yuck create mode 100644 eww/cards/profile/eww.yuck create mode 100644 eww/cards/quickapps/eww.yuck create mode 100644 eww/cards/sliders/eww.yuck create mode 100644 eww/cards/system/eww.yuck create mode 100644 eww/cards/weather/eww.yuck create mode 100644 eww/cards/webshortcuts/eww.yuck create mode 100644 eww/images/eos.png delete mode 100755 eww/scripts/getvolume.sh create mode 100755 eww/scripts/power.sh create mode 100755 eww/scripts/weather.sh diff --git a/.gitignore b/.gitignore index cb254be..3f1ff4e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ -.config/ranger/plugins/__pycache__ -.config/cava/shaders +ranger/plugins/__pycache__ +ranger/plugins/ranger_devicons +cava/shaders Wallpapers/wallpaper -.config/ranger/plugins/ranger_devicons -.config/bashtop/error.log +bashtop/error.log +openweatherkey +album.png diff --git a/eww/bars/horizontal-bspwm/eww.yuck b/eww/bars/horizontal-bspwm/eww.yuck index cdf5084..c8d5795 100644 --- a/eww/bars/horizontal-bspwm/eww.yuck +++ b/eww/bars/horizontal-bspwm/eww.yuck @@ -147,42 +147,6 @@ ) -(defwidget h-brightness [] - (box - :class "bright widget" - :orientation "h" - :spacing 5 - :space-evenly "false" - (label :text "") - (scale - :class "volbar" - :value {brightness} - :orientation "h" - :min 0 - :max 101 - :onchange "brightnessctl set {}%" - ) - ) -) - -(defwidget h-volume [] - (box - :class "vol widget" - :spacing 5 - :orientation "h" - :space-evenly "false" - (label :text "") - (scale - :class "vol scale" - :value {volume} - :orientation "h" - :min 0 - :max 101 - :onchange "pactl set-sink-volume @DEFAULT_SINK@ {}%" - ) - ) - ) - (defwidget circle-widget [value class name icon] (overlay :class {class} diff --git a/eww/bars/horizontal/eww.css b/eww/bars/horizontal/eww.css index 7d6c06e..f021934 100644 --- a/eww/bars/horizontal/eww.css +++ b/eww/bars/horizontal/eww.css @@ -50,15 +50,19 @@ color: #a6e3a1; font-size: 1.75rem; } - progressbar trough, scale trough { background-color: #313244; +} + +progressbar.volbar trough, +scale.volbar trough { + background-color: #313244; min-height: 10px; border-radius: 100px; min-width: 90px; } -scale trough highlight, +scale.volbar trough highlight, progressbar trough progress { border-radius: 10px; min-height: 10px; @@ -81,15 +85,12 @@ progressbar trough progress { color: #74c7ec; } -scale trough highlight { - background-color: #74c7ec; +scale.volbar { + font-size: 1rem; } -.vol scale trough highlight { +scale.volbar trough highlight { background-color: #74c7ec; } -scale { - font-size: 1rem; -} .bright scale trough highlight { background-color: #f9e2af; } diff --git a/eww/bars/horizontal/eww.yuck b/eww/bars/horizontal/eww.yuck index 8b85651..a7dab4b 100644 --- a/eww/bars/horizontal/eww.yuck +++ b/eww/bars/horizontal/eww.yuck @@ -170,7 +170,7 @@ :space-evenly "false" (label :text "") (scale - :class "vol scale" + :class "volbar" :value {volume} :orientation "h" :min 0 diff --git a/eww/bars/wayland/eww.yuck b/eww/bars/wayland/eww.yuck index 2eccce7..0619b65 100644 --- a/eww/bars/wayland/eww.yuck +++ b/eww/bars/wayland/eww.yuck @@ -37,7 +37,6 @@ :halign "end" (h-volume) (h-brightness) - (h-bat) (h-wifi) (h-times) ) diff --git a/eww/cards.sh b/eww/cards.sh new file mode 100755 index 0000000..dedda4b --- /dev/null +++ b/eww/cards.sh @@ -0,0 +1,25 @@ +#! /bin/bash +# +# Opens all the eww cards + +EWW="eww-wayland" +CARD_NAMES=(np profile distro quickapps powermenu weather confirmation clock system sliders github youtube brightspace twitch calendar) + +open() { + for i in ${CARD_NAMES[*]}; + do + $EWW open $i + done +} + +close() { + for i in ${CARD_NAMES[*]}; + do + $EWW close $i + done +} + +close +if [[ $1 != "close" ]]; then + open +fi diff --git a/eww/cards/calendar/eww.yuck b/eww/cards/calendar/eww.yuck new file mode 100644 index 0000000..85f5a7d --- /dev/null +++ b/eww/cards/calendar/eww.yuck @@ -0,0 +1,14 @@ +(defwindow calendar + :monitor 0 + :geometry (geometry :x "${320 + 11 * 6}px" + :y "${140 + 61 * 6}px" + :anchor "top left") + :stacking "bg" + :focusable false + :hexpand false + (box + :class "card" + :width {10 * 6} + :height {10 * 6} + ) + ) diff --git a/eww/cards/clock/eww.yuck b/eww/cards/clock/eww.yuck new file mode 100644 index 0000000..ae53d34 --- /dev/null +++ b/eww/cards/clock/eww.yuck @@ -0,0 +1,29 @@ +(defpoll weekday :interval "1s" :inital "" + `date '+%A'` + ) + +(defwindow clock + :monitor 0 + :geometry (geometry :x "${320 + 155 * 6}px" + :y "${140 + 0 * 6}px" + :anchor "top left") + :stacking "bg" + :focusable false + :hexpand false + (box + :class "card" + :width {59 * 6} + :height {25 * 6} + (clock) + ) + ) + +(defwidget clock [] + (box + :orientation "v" + :space-evenly false + (label :class "bigtime" :text "${hour}:${minute}:${second}") + (label :class "weekday" :text weekday) + (label :class "date" :text date) + ) + ) diff --git a/eww/cards/confirmation/eww.yuck b/eww/cards/confirmation/eww.yuck new file mode 100644 index 0000000..9a10d09 --- /dev/null +++ b/eww/cards/confirmation/eww.yuck @@ -0,0 +1,33 @@ +(defvar poweroperation "") + +(defwindow confirmation + :monitor 0 + :geometry (geometry :x "${320 + 9 * 6}px" + :y "${140 + 91 * 6}px" + :anchor "top left") + :stacking "bg" + :focusable false + :hexpand false + + (revealer + :reveal {poweroperation != ""} + :transition "slideleft" + (box + :class "popupl" + :orientation "v" + :valign "center" + :space-evenly false + :spacing 10 + :width {50 * 6} + :height {29 * 6} + (label :class "powerwarning" :text "Really ${poweroperation}?") + (box + :halign "center" + :space-evenly false + :spacing 10 + (button :class "powerno" :onclick "${EWW_CMD} update poweroperation=''" "No") + (button :class "poweryes" :onclick "scripts/power.sh ${poweroperation}" "Yes") + ) + ) + ) +) diff --git a/eww/cards/distro/eww.yuck b/eww/cards/distro/eww.yuck new file mode 100644 index 0000000..6489e22 --- /dev/null +++ b/eww/cards/distro/eww.yuck @@ -0,0 +1,18 @@ +(defwindow distro + :monitor 0 + :geometry (geometry :x "${320 + 0 * 6}px" + :y "${140 + 0 * 6}px" + :anchor "top left") + :stacking "bg" + :focusable false + :hexpand false + (box + :class "card" + :width {10 * 6} + :height {10 * 6} + (image + :path "images/eos.png" + :image-width {6 * 6} + ) + ) + ) diff --git a/eww/cards/eww.css b/eww/cards/eww.css index e250f45..7e30682 100644 --- a/eww/cards/eww.css +++ b/eww/cards/eww.css @@ -1,12 +1,33 @@ .card { background-color: #1e1e2e; border-radius: 8px; + padding: 12px; +} +.popupl { + background-color: #313244; + padding: 12px; + border-top-right-radius: 8px; + border-bottom-right-radius: 8px; +} +.powerwarning { + font-weight: bold; + font-size: 24px; +} +.poweryes, +.powerno { + border-radius: 8px; + color: #1e1e2e; padding: 10px; + background-color: #a6e3a1; +} +.powerno { + background-color: #f38ba8; } .album { border-radius: 8px; } + .duration { font-family: "Jetbrains Mono NFM"; } @@ -15,16 +36,28 @@ scale.songduration trough { background-color: #313244; min-height: 10px; border-radius: 100px; - min-width: 400px; + + min-width: 270px; +} + +.pfp { + margin-top: 20px; + border-radius: 999px; + background-size: cover; +} +.username { + font-family: "Damion", "Product Sans", sans-serif; + color: #cdd6f4; + font-size: 36px; } .title { - color: white; + color: #cdd6f4; font-weight: bold; font-size: 16; } .artist { - color: white; + color: #cdd6f4; font-size: 16; } @@ -34,3 +67,112 @@ scale.songduration trough { color: #cdd6f4; font-size: 24px; } + +.poweroff, +.restart, +.logout { + font-size: 36px; +} +.weblink .icon { + font-size: 128px; + margin-top: -40px; + margin-bottom: -40px; +} + +scale.songduration trough highlight { + background-color: #74c7ec; +} + +.poweroff { + color: #f38ba8; +} +.restart { + color: #89b4fa; +} +.logout { + color: #f9e2af; +} + +.wicon { + font-size: 128px; + margin: -55px 0px -60px 5px; +} +.shortcut { + font-family: "Jetbrains Mono NFM"; + font-size: 36px; + color: #6c7086; +} +.shortcut:hover { + color: #cdd6f4; +} +.wtemp { + font-family: "Jetbrains Mono NFM"; + font-size: 48px; + color: #cdd6f4; +} +.wstat { + font-family: "Damion", "Product Sans", sans-serif; + font-size: 40px; +} +.quote1 { + font-weight: bold; +} +.quote1, +.quote2 { + margin: -5px 0px -5px 0px; + font-family: "Product Sans", sans-serif; + color: #cdd6f4; + font-style: italic; + font-size: 17px; +} +.bigtime { + font-family: "Jetbrains Mono NFM"; + font-size: 48px; + color: #f9e2af; + margin-bottom: -10px; +} +.weekday { + font-family: "Damion", "Product Sans", sans-serif; + font-size: 30px; + color: #a6e3a1; +} +.date { + font-family: "Product Sans", sans-serif; + font-size: 20px; + font-weight: bold; + color: #cdd6f4; +} +.bigcircle .usage { + font-family: "Jetbrains Mono NFM"; + font-size: 32px; +} +.bigcircle .icon { + font-family: "Jetbrains Mono NFM"; + font-size: 100px; + margin-top: -7px; +} +scale.system-slider trough { + min-height: 200px; + border-radius: 8px; + min-width: 40px; +} + +.b-slider { + font-family: "Material Icons"; + font-size: 30px; + color: #f9e2af; +} + +.b-slider scale trough highlight { + background-color: #f9e2af; +} + +.v-slider { + font-family: "Material Icons"; + font-size: 30px; + color: #74c7ec; +} + +.v-slider scale trough highlight { + background-color: #74c7ec; +} diff --git a/eww/cards/eww.yuck b/eww/cards/eww.yuck index 1da8fd6..89f38c0 100644 --- a/eww/cards/eww.yuck +++ b/eww/cards/eww.yuck @@ -1,3 +1,20 @@ (include "cards/np/eww.yuck") +(include "cards/profile/eww.yuck") +(include "cards/distro/eww.yuck") +(include "cards/quickapps/eww.yuck") +(include "cards/powermenu/eww.yuck") +(include "cards/weather/eww.yuck") +(include "cards/confirmation/eww.yuck") +(include "cards/clock/eww.yuck") +(include "cards/system/eww.yuck") +(include "cards/sliders/eww.yuck") +(include "cards/webshortcuts/eww.yuck") +(include "cards/calendar/eww.yuck") + +(include "cards/frame.yuck") + +; Each card is an element that shows up on the bottom of the desktop +; The full dashboard is scaled to be around 1280x720, centered on the screen +; All cards are built in units of 6px, so the spacing remains even in between them diff --git a/eww/cards/frame.yuck b/eww/cards/frame.yuck new file mode 100644 index 0000000..f79a9f0 --- /dev/null +++ b/eww/cards/frame.yuck @@ -0,0 +1,15 @@ +(defwindow frame + :monitor 0 + :geometry (geometry :x "${320 + 0 * 6}px" + :y "${140 + 0 * 6}px" + :anchor "top left") + :stacking "bg" + :focusable false + :hexpand false + (box + :width 1284 + :height 720 + :style "background-color: #aaaaaa" + (empty) + ) + ) diff --git a/eww/cards/np/eww.yuck b/eww/cards/np/eww.yuck index a7017ff..a56c701 100644 --- a/eww/cards/np/eww.yuck +++ b/eww/cards/np/eww.yuck @@ -1,20 +1,20 @@ (defwindow np :monitor 0 - :geometry (geometry :x "0px" - :y "6px" - :anchor "center top") + :geometry (geometry :x "${320 + 62 * 6}px" + :y "${140 + 0 * 6}px" + :anchor "top left") :stacking "bg" :focusable false :hexpand false (box - :width 550 - :height 150 + :width {92 * 6} + :height {25 * 6} :valign "center" :hexpand false :space-evenly false :class "card" (box - :width 530 + :width {88 * 6} :visible {playerstatus == "Stopped"} (label :xalign 0.5 :text "Nothing is playing" ) ) @@ -23,9 +23,11 @@ :spacing 10 :visible {playerstatus != "Stopped"} (controls) + (album) (box :space-evenly false :spacing 15 + :valign "center" :orientation "v" (data) (playerprogress) @@ -51,30 +53,26 @@ ) ) ) -;  -(defwidget data [] - (box - :space-evenly false - :hexpand false - :orientation "h" - :spacing 10 +(defwidget album [] (image - :image-width 100 - :image-height 100 + :image-width {17 * 6} + :image-height {17 * 6} :class "album" :path "${albumart}" ) + ) + +(defwidget data [] (box :space-evenly false :valign "center" - :halign "center" + :halign "start" :hexpand false :orientation "v" (label :limit-width 50 :xalign 0 :class "title" :text {title}) (label :xalign 0 :class "artist" :text {artist}) ) - ) ) (defwidget playerprogress [] (box diff --git a/eww/cards/powermenu/eww.yuck b/eww/cards/powermenu/eww.yuck new file mode 100644 index 0000000..3c90350 --- /dev/null +++ b/eww/cards/powermenu/eww.yuck @@ -0,0 +1,19 @@ +(defwindow powermenu + :monitor 0 + :geometry (geometry :x "${320 + 0 * 6}px" + :y "${140 + 91 * 6}px" + :anchor "top left") + :stacking "bg" + :focusable false + :hexpand false + (box + :class "card" + :orientation "v" + :width {10 * 6} + :height {29 * 6} + (button :onclick "${EWW_CMD} update poweroperation=poweroff" (label :class "poweroff" :text "󰤆")) + (button :onclick "${EWW_CMD} update poweroperation=restart" (label :class "restart" :text "󰜉")) + (button :onclick "${EWW_CMD} update poweroperation=logout" (label :class "logout" :text "󰍃")) + + ) + ) diff --git a/eww/cards/profile/eww.yuck b/eww/cards/profile/eww.yuck new file mode 100644 index 0000000..6204c13 --- /dev/null +++ b/eww/cards/profile/eww.yuck @@ -0,0 +1,33 @@ +(defwindow profile + :monitor 0 + :geometry (geometry :x "${320 + 11 * 6}px" + :y "${140 + 0 * 6}px" + :anchor "left top") + :stacking "bg" + :focusable false + :hexpand false + (box + :class "card" + :space-evenly false + :spacing 10 + :width {50 * 6} + :height {60 * 6} + :orientation "v" + (box + :orientation "h" + :halign "center" + (pfp) + ) + (label :text "Hello, ${username}" :class "username" ) + ) +) + +(defpoll username :initial "" :interval 600 "whoami") + +(defwidget pfp [] + (box + :width 200 + :height 215 + :class "pfp" + :style "background-image: url('/var/lib/AccountsService/icons/${username}')") + ) diff --git a/eww/cards/quickapps/eww.yuck b/eww/cards/quickapps/eww.yuck new file mode 100644 index 0000000..de91f64 --- /dev/null +++ b/eww/cards/quickapps/eww.yuck @@ -0,0 +1,34 @@ +(defwindow quickapps + :monitor 0 + :geometry (geometry :x "${320 + 0 * 6}px" + :y "${140 + 11 * 6}px" + :anchor "top left") + :stacking "bg" + :focusable false + :hexpand false + (box + :class "card" + :width {10 * 6} + :orientation "v" + :height {79 * 6} + (shortcut :text "LibreWolf" :icon "󰈹" :path "librewolf &") + (shortcut :text "Alacritty" :icon "" :path "alacritty &") + (shortcut :text "Spotify" :icon "" :path "spotify-launcher &") + (shortcut :text "Obsidian" :icon "󰠮" :path "obsidian &") + (shortcut :text "Code" :icon "󰨞" :path "code &") + (shortcut :text "Discord" :icon "󰙯" :path "discord &") + (shortcut :text "Vim" :icon "" :path "alacritty -e nvim &") + ) + ) + +(defwidget shortcut [icon path ?text] + (eventbox + :cursor "pointer" + (button + :class "shortcut" + :tooltip "${text}" + :onclick "${path}" + "${icon}" + ) + ) + ) diff --git a/eww/cards/sliders/eww.yuck b/eww/cards/sliders/eww.yuck new file mode 100644 index 0000000..af0a47e --- /dev/null +++ b/eww/cards/sliders/eww.yuck @@ -0,0 +1,60 @@ +(defwindow sliders + :monitor 0 + :geometry (geometry :x "${320 + 180 * 6}px" + :y "${140 + 26 * 6}px" + :anchor "top left") + :stacking "bg" + :focusable false + :hexpand false + (box + :class "card" + :width {34 * 6} + :height {46 * 6} + (box + :valign "center" + :space-evenly false + :halign "center" + :spacing {5 * 6} + (big-volume) + (big-brightness) + ) + ) + ) + +(defwidget big-brightness [] + (box + :class "b-slider" + :orientation "v" + :spacing 5 + :space-evenly "false" + (scale + :class "system-slider" + :value {brightness} + :orientation "v" + :flipped true + :min 0 + :max 101 + :onchange "brightnessctl set {}%" + ) + (label :text "") + ) +) + +(defwidget big-volume [] + (box + :class "v-slider" + :orientation "v" + :spacing 5 + :space-evenly "false" + (scale + :class "system-slider" + :value {volume} + :orientation "v" + :flipped true + :min 0 + :max 101 + :onchange "pactl set-sink-volume @DEFAULT_SINK@ {}%" + ) + (label :text "") + ) +) diff --git a/eww/cards/system/eww.yuck b/eww/cards/system/eww.yuck new file mode 100644 index 0000000..accb5eb --- /dev/null +++ b/eww/cards/system/eww.yuck @@ -0,0 +1,97 @@ +(defvar cpuhover false) +(defvar ramhover false) +(defvar diskhover false) +(defvar bathover false) + +(defwindow system + :monitor 0 + :geometry (geometry :x "${320 + 133 * 6}px" + :y "${140 + 26 * 6}px" + :anchor "top left") + :stacking "bg" + :focusable false + :hexpand false + (box + :class "card" + :width {46 * 6} + :height {46 * 6} + (box + :orientation "v" + :halign "center" + :valign "center" + :space-evenly false + :spacing {2 * 6} + (box + :space-evenly false + :halign "center" + :valign "center" + :spacing {2 * 6} + (bigcircle + :color "#74c7ec" + :value {EWW_CPU.avg} + :class "cpu" + :name "CPU" + :icon "󰻠" + :hover cpuhover + :hovername "cpuhover" + ) + (bigcircle + :color "#cba6f7" + :value {EWW_RAM.used_mem_perc} + :class "ram" + :name "RAM" + :icon "󰘚" + :hover ramhover + :hovername "ramhover" + ) + ) + (box + :space-evenly false + :halign "center" + :valign "center" + :spacing {2 * 6} + (bigcircle + :color "#eba0ac" + :value {EWW_DISK["/"].used_perc} + :class "disk" + :name "Disk" + :icon "󰋊" + :hover diskhover + :hovername "diskhover" + ) + (bigcircle + :value {battery_per} + :color "#a6e3a1" + :class "cpu" + :name "CPU" + :icon "${battery_icon}" + :hover bathover + :hovername "bathover" + ) + ) + ) + ) + ) + +(defwidget bigcircle [value class name icon ?color ?hover ?hovername] + (eventbox + :class "bigcircle" + :onhover "${EWW_CMD} update ${hovername}=true" + :onhoverlost "${EWW_CMD} update ${hovername}=false" + (overlay + :class {class} + :style "color: ${color}" + (circular-progress + :value {value} + :class "circle" + :thickness 15 + :start-at 25 + :height {20 * 6} + :width {20 * 6} + ) + (label :visible {!hover} :class "icon" :text {icon}) + (label :visible {hover} :class "usage" :text {round(value,1)} + ) + ) + ) +) diff --git a/eww/cards/weather/eww.yuck b/eww/cards/weather/eww.yuck new file mode 100644 index 0000000..91d3884 --- /dev/null +++ b/eww/cards/weather/eww.yuck @@ -0,0 +1,32 @@ +(defpoll wicon :interval 60 "scripts/weather.sh --icon") +(defpoll wtemp :interval 60 "scripts/weather.sh --temp") +(defpoll whex :interval 60 "scripts/weather.sh --hex") +(defpoll wstat :interval 60 "scripts/weather.sh --stat") +(defpoll wquote :interval 60 "scripts/weather.sh --quote") +(defpoll wquote2 :interval 60 "scripts/weather.sh --quote2") + +(defwindow weather + :monitor 0 + :geometry (geometry :x "${320 + 62 * 6}px" + :y "${140 + 26 * 6}px" + :anchor "top left") + :stacking "bg" + :focusable false + :hexpand false + (box + :class "card" + :width {70 * 6} + :height {34 * 6} + :orientation "v" + :valign "end" + :space-evenly false + (box :orientation "v" :spacing 10 :space-evenly "false" :vexpand "false" :hexpand "false" + (box :orientation "h" :vexpand "false" :hexpand "false" + (label :class "wicon" :halign "start" :style "color: ${whex};" :text wicon) + (label :class "wtemp" :halign "end" :text wtemp)) + (box :orientation "v" :spacing 10 :halign "start" :space-evenly "false" :vexpand "false" :hexpand "false" + (label :xalign 0 :class "wstat" :text wstat :style "color: ${whex}") + (label :xalign 0 :class "quote1" :text wquote) + (label :xalign 0 :class "quote2" :text wquote2)))) +) + diff --git a/eww/cards/webshortcuts/eww.yuck b/eww/cards/webshortcuts/eww.yuck new file mode 100644 index 0000000..8a73462 --- /dev/null +++ b/eww/cards/webshortcuts/eww.yuck @@ -0,0 +1,57 @@ + +(defwindow youtube + :monitor 0 + :geometry (geometry :x "${320 + 167 * 6}px" + :y "${140 + 73 * 6}px" + :anchor "top left") + :stacking "bg" + :focusable false + :hexpand false + (webshortcut :icon "󰗃" :link "https://youtube.com" :color "#FF0000") + ) + +(defwindow github + :monitor 0 + :geometry (geometry :x "${320 + 167 * 6}px" + :y "${140 + 97 * 6}px" + :anchor "top left") + :stacking "bg" + :focusable false + :hexpand false + (webshortcut :icon "" :link "https://github.com" :color "#181717") + ) + +(defwindow twitch + :monitor 0 + :geometry (geometry :x "${320 + 191 * 6}px" + :y "${140 + 97 * 6}px" + :anchor "top left") + :stacking "bg" + :focusable false + :hexpand false + (webshortcut :icon "󰕃" :link "https://twitch.tv" :color "#9146FF") + ) + +(defwindow brightspace + :monitor 0 + :geometry (geometry :x "${320 + 191 * 6}px" + :y "${140 + 73 * 6}px" + :anchor "top left") + :stacking "bg" + :focusable false + :hexpand false + (webshortcut :icon "" :link "https://www.oswego.edu/mylearning" :color "#444444") + ) + +(defwidget webshortcut [icon color link] + (box + :class "card weblink" + :width {23 * 6} + :style "background-color: ${color}" + :height {23 * 6} + (button + :onclick "$BROWSER ${link}" + (label :class "icon" :text icon) + ) + ) + ) diff --git a/eww/images/eos.png b/eww/images/eos.png new file mode 100644 index 0000000000000000000000000000000000000000..c9bf6bd520fdf0b28b42f0439d51e2451f9d1b58 GIT binary patch literal 17555 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%0Ds0 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 TIVLhNFfe$!`njxgN@xNAy!W$_ literal 0 HcmV?d00001 diff --git a/eww/scripts/battery.sh b/eww/scripts/battery.sh index 5e24e86..38497d9 100755 --- a/eww/scripts/battery.sh +++ b/eww/scripts/battery.sh @@ -4,18 +4,31 @@ bat=/sys/class/power_supply/BAT0/ per="$(cat "$bat/capacity")" icon() { + [ $(cat "$bat/status") = Charging ] && echo "󰂄" && exit -[ $(cat "$bat/status") = Charging ] && echo "" && exit - -if [ "$per" -gt "15" ]; then - icon="" -elif [ "$per" -gt "10" ]; then - icon="" - # notify-send -u critical "Battery Low" "Connect Charger" -else - echo  && exit -fi -echo "$icon" + if [ "$per" -gt "90" ]; then + icon="󰁹" + elif [ "$per" -gt "80" ]; then + icon="󰂂" + elif [ "$per" -gt "70" ]; then + icon="󰂁" + elif [ "$per" -gt "60" ]; then + icon="󰂀" + elif [ "$per" -gt "50" ]; then + icon="󰁿" + elif [ "$per" -gt "40" ]; then + icon="󰁾" + elif [ "$per" -gt "30" ]; then + icon="󰁽" + elif [ "$per" -gt "20" ]; then + icon="󰁼" + elif [ "$per" -gt "10" ]; then + icon="󰂃" + # notify-send -u critical ")Battery Low" "Connect Charger" + else + echo 󰂃 && exit + fi + echo "$icon" } percent() { diff --git a/eww/scripts/getvolume.sh b/eww/scripts/getvolume.sh deleted file mode 100755 index 6d40fa1..0000000 --- a/eww/scripts/getvolume.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -pactl get-sink-volume @DEFAULT_SINK@ | grep -E -o '[1234567890]{1,3}%' | tr -d '%' | head -n 1 diff --git a/eww/scripts/power.sh b/eww/scripts/power.sh new file mode 100755 index 0000000..d5ec2f8 --- /dev/null +++ b/eww/scripts/power.sh @@ -0,0 +1,12 @@ + +if [[ $1 == "poweroff" ]]; then + systemctl shutdown +fi + +if ! [[ $1 != "restart" ]]; then + systemctl reboot +fi + +if ! [[ $1 != "logout" ]]; then + ~/.config/rofi/logout +fi diff --git a/eww/scripts/weather.sh b/eww/scripts/weather.sh new file mode 100755 index 0000000..7aa9139 --- /dev/null +++ b/eww/scripts/weather.sh @@ -0,0 +1,154 @@ +#!/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 +KEYFILE="$HOME/.config/eww/scripts/openweatherkey" +ID="5130076" +UNIT="imperial" # Available options : 'metric' or 'imperial' + +## Get Key +if [[ ! -e $KEYFILE ]]; then + echo "Key not found! Make a file in the script's directory titled 'openweatherkey' and place your api key" + exit 1 +else + KEY="$(cat $KEYFILE)" +fi + +## 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""°F" > ${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 -- 2.51.2