From 39a62b5845f5e4ec22fd0359f80e774ec3ce684e Mon Sep 17 00:00:00 2001 From: Penelope Gwen Date: Wed, 22 Jul 2026 14:20:19 -0700 Subject: [PATCH] update sdu config, add eww timer --- wayland/config/eww/eww.yuck | 1 + wayland/config/eww/modules/bar.yuck | 2 + .../eww/scripts/bar/timer/bash_timer.sh | 51 +++++++++++++++++++ .../scripts/bar/timer/bash_timer_startup.sh | 34 +++++++++++++ .../eww/scripts/bar/timer/timer_tail.sh | 5 ++ wayland/config/eww/style/bar.scss | 1 + wayland/config/eww/style/bar/timer.scss | 14 +++++ wayland/config/sway-de-utils/config.toml | 9 ++-- 8 files changed, 114 insertions(+), 3 deletions(-) create mode 100755 wayland/config/eww/scripts/bar/timer/bash_timer.sh create mode 100755 wayland/config/eww/scripts/bar/timer/bash_timer_startup.sh create mode 100755 wayland/config/eww/scripts/bar/timer/timer_tail.sh create mode 100644 wayland/config/eww/style/bar/timer.scss diff --git a/wayland/config/eww/eww.yuck b/wayland/config/eww/eww.yuck index 0e6d739..520880e 100644 --- a/wayland/config/eww/eww.yuck +++ b/wayland/config/eww/eww.yuck @@ -5,6 +5,7 @@ :stacking "foreground" :exclusive false :namespace "eww-bar" + :focusable "ondemand" :geometry (geometry :x "0%" ; :y "0%" :y "0px" diff --git a/wayland/config/eww/modules/bar.yuck b/wayland/config/eww/modules/bar.yuck index f8a084b..c08caa2 100644 --- a/wayland/config/eww/modules/bar.yuck +++ b/wayland/config/eww/modules/bar.yuck @@ -35,6 +35,7 @@ :halign "end" (idleinhibit) (utilities) + (timer) (volume) (network) (vpn) @@ -63,6 +64,7 @@ ;rightgroup (include "modules/bar/idle_inhibit.yuck") (include "modules/bar/utilities.yuck") +(include "modules/bar/timer.yuck") (include "modules/bar/volume.yuck") (include "variables/bar/network-manager.yuck") (include "modules/bar/network.yuck") diff --git a/wayland/config/eww/scripts/bar/timer/bash_timer.sh b/wayland/config/eww/scripts/bar/timer/bash_timer.sh new file mode 100755 index 0000000..a0f223f --- /dev/null +++ b/wayland/config/eww/scripts/bar/timer/bash_timer.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +((hours = minutes = seconds = 0)) + +while getopts "h:m:s:" flag; do + case "${flag}" in + h) hours="${OPTARG}" ;;& + m) minutes="${OPTARG}" ;;& + s) seconds="${OPTARG}" ;;& + h | m | s) + re='^[0-9]+$' + if ! [[ "${OPTARG}" =~ $re ]]; then + printf 'Error: flag "-%s" expected an integer, instead found "%s"\n' "${flag}" "${OPTARG}" + exit 1 + fi + ;; + *) + printf 'invalid flag: -%s\n' "${flag}" + exit 1 + ;; + esac +done + +tick() { + if [[ "${1}" -ge 3600 ]]; then + timer_display="$(date -d@"${1}" -u +%H:%M:%S)" + else + timer_display="$(date -d@"${1}" -u +%M:%S)" + fi + printf '%s\n' "${timer_display}" + if [[ "${1}" -gt 0 ]]; then + sleep 1 + return 0 + else + return 1 + fi +} + +#hours=1 +#minutes=0 +#seconds=1 + +((total_s = original_time = $((seconds + (minutes * 60) + (hours * 3600))))) + +#echo "${total_s}" + +while tick "${total_s}"; do ((total_s--)); done +notify-send --urgency=critical --icon=/usr/share/icons/Adwaita/symbolic/status/alarm-symbolic.svg 'Timer elapsed!' "Timer set for $(date -d@"${original_time}" -u +%H:%M:%S) has completed" +if [[ -f "/usr/share/sounds/ocean/stereo/alarm-clock-elapsed.oga" ]]; then + paplay /usr/share/sounds/ocean/stereo/alarm-clock-elapsed.oga +fi diff --git a/wayland/config/eww/scripts/bar/timer/bash_timer_startup.sh b/wayland/config/eww/scripts/bar/timer/bash_timer_startup.sh new file mode 100755 index 0000000..6efb0f6 --- /dev/null +++ b/wayland/config/eww/scripts/bar/timer/bash_timer_startup.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +((hours = minutes = seconds = 0)) + +while getopts "h:m:s:" flag; do + case "${flag}" in + h) hours="${OPTARG}" ;;& + m) minutes="${OPTARG}" ;;& + s) seconds="${OPTARG}" ;;& + h | m | s) + re='^[0-9]+$' + if ! [[ "${OPTARG}" =~ $re ]]; then + printf 'Error: flag "-%s" expected an integer, instead found "%s"\n' "${flag}" "${OPTARG}" + exit 1 + fi + ;; + *) + printf 'invalid flag: -%s\n' "${flag}" + exit 1 + ;; + esac +done + +pkill -f 'bash_timer.sh' + +tmpdir="${XDG_RUNTIME_DIR}/bashtimer/" +trap "rm -r ${tmpdir}" EXIT + +if [[ -d "${tmpdir}" ]]; then + rm -r "${tmpdir}" +fi + +mkdir -p "${tmpdir}" +~/.config/eww/scripts/bar/timer/bash_timer.sh -h "${hours}" -m "${minutes}" -s "${seconds}" >"$(mktemp "${tmpdir}"/tmp.XXXXXX)" diff --git a/wayland/config/eww/scripts/bar/timer/timer_tail.sh b/wayland/config/eww/scripts/bar/timer/timer_tail.sh new file mode 100755 index 0000000..91d51af --- /dev/null +++ b/wayland/config/eww/scripts/bar/timer/timer_tail.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +if [[ -d "${XDG_RUNTIME_DIR}/bashtimer/" ]]; then + tail -n1 "$(ls -d -1 "${XDG_RUNTIME_DIR}/bashtimer/"* | head -n1)" +fi diff --git a/wayland/config/eww/style/bar.scss b/wayland/config/eww/style/bar.scss index 631c889..46c5944 100644 --- a/wayland/config/eww/style/bar.scss +++ b/wayland/config/eww/style/bar.scss @@ -98,6 +98,7 @@ $transition-time: 0.3s; @import "./bar/window_title.scss"; @import "./bar/idle-inhibitor.scss"; @import "./bar/utilities.scss"; + @import "./bar/timer.scss"; @import "./bar/volume.scss"; @import "./bar/networking.scss"; @import "./bar/bluetooth.scss"; diff --git a/wayland/config/eww/style/bar/timer.scss b/wayland/config/eww/style/bar/timer.scss new file mode 100644 index 0000000..2250de6 --- /dev/null +++ b/wayland/config/eww/style/bar/timer.scss @@ -0,0 +1,14 @@ + +.timer { +/* color: $primary; + padding: 0px 10px;*/ + @import "./styles/revealer.scss"; + .timerticker { + button { + padding: 0px 2px; + } + button:hover { + opacity: 0.5; + } + } +} diff --git a/wayland/config/sway-de-utils/config.toml b/wayland/config/sway-de-utils/config.toml index 4677314..913bbb4 100644 --- a/wayland/config/sway-de-utils/config.toml +++ b/wayland/config/sway-de-utils/config.toml @@ -122,8 +122,9 @@ icon = "" [profiles.program_args] browser = ["Development", "--new-window", "https://hass.pogmom.me"] browser_newtab = ["Development", "--new-tab", "https://hass.pogmom.me"] +browser_profile = ["Development"] filemanager = ["~/Development"] -terminal = ["~/Development", "-e", "zellij"] +terminal = ["~/Development"] [[profiles.scripts]] name = "SSH dell-7050sff" icon = "󰒍" @@ -152,8 +153,9 @@ icon = "󰻺" [profiles.program_args] browser = ["Housing", "--new-window", "https://eugenesca.com"] browser_newtab = ["Housing", "--new-tab", "https://eugenesca.com"] -filemanager = ["~/Documents/Housing/SCA/"] -terminal = ["~/Documents/Housing/SCA/"] +browser_profile = ["Housing"] +filemanager = ["~/NextcloudSCA/"] +terminal = ["~/NextcloudSCA/"] [[profiles.scripts]] name = "House Meeting Minutes" icon = "" @@ -174,6 +176,7 @@ icon = "" [profiles.program_args] browser = ["Work", "--new-window", "https://lanecc.edu"] browser_newtab = ["Work", "--new-tab", "https://lanecc.edu"] +browser_profile = ["Work"] filemanager = ["~/Documents/Work/LaneCC"] terminal = ["~/Documents/Work/LaneCC/"] [[profiles.scripts]]