Refresh clock on the minute instead of every 10 seconds.

This commit is contained in:
Tom Alexander 2024-05-07 08:52:34 -04:00
parent a2bdb93d5e
commit 5fa7f918a1
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
8 changed files with 89 additions and 170 deletions

View File

@ -94,7 +94,6 @@ sysutils/lsof
sysutils/moreutils
sysutils/ncdu
sysutils/nvme-cli
sysutils/powermon
sysutils/pstree
sysutils/pv
sysutils/radeontop

View File

@ -0,0 +1,2 @@
# Do not power devices that have no driver attached.
hw.pci.do_power_nodriver=3

View File

@ -3,3 +3,13 @@
# name:
# - foo
# state: present
- name: Install loader.conf
copy:
src: "files/{{ item }}_loader.conf"
dest: "/boot/loader.conf.d/{{ item }}.conf"
mode: 0644
owner: root
group: wheel
loop:
- power_off_no_driver

View File

@ -38,17 +38,17 @@
}
}
/* -----------------------------------------------------------------------------
* Base styles
* -------------------------------------------------------------------------- */
/* The whole bar */
#waybar {
background: #323232;
color: white;
font-family: Cascadia Mono, monospace;
font-family:
Cascadia Mono,
monospace;
font-size: 10px;
}
@ -65,7 +65,6 @@ tooltip {
#custom-clock,
#custom-sound,
#custom-temperature,
#custom-recording_indicator,
#idle_inhibitor,
#memory,
#mode,
@ -78,7 +77,6 @@ tooltip {
border: 1px solid white;
}
/* -----------------------------------------------------------------------------
* Module styles
* -------------------------------------------------------------------------- */
@ -144,7 +142,7 @@ tooltip {
}
#mode {
background: #64727D;
background: #64727d;
border-top: 2px solid white;
/* To compensate for the top border and still have vertical centering */
padding-bottom: 2px;
@ -205,7 +203,3 @@ tooltip {
border-color: #c9545d;
color: #c9545d;
}
#custom-recording_indicator {
color: red;
}

View File

@ -1,6 +1,6 @@
{
// "height": 10, // Waybar height (to be removed for auto height)
"modules-left": ["sway/workspaces", "sway/mode", "custom/recording_indicator"],
"modules-left": ["sway/workspaces", "sway/mode"],
"modules-right": ["custom/temperature", "custom/sound", "custom/available_memory", "custom/battery", "idle_inhibitor", "custom/clock", "tray"],
"sway/workspaces": {
"disable-scroll": true
@ -43,10 +43,5 @@
"exec": "waybar_custom_temperature",
"return-type": "json",
"restart-interval": 30
},
"custom/recording_indicator": {
"exec": "waybar_custom_recording_indicator",
"return-type": "json",
"restart-interval": 30
}
}

View File

@ -10,7 +10,6 @@ from functools import lru_cache
from typing import Final, List, Optional
from zoneinfo import ZoneInfo
INTERVAL: Final[int] = 10
LOCAL_TIMEZONE = datetime.datetime.now(datetime.timezone.utc).astimezone().tzinfo
@ -87,10 +86,10 @@ def main():
time_before_next_update = next_update - time.time()
if time_before_next_update > 0:
time.sleep(time_before_next_update)
next_update = time.time() + INTERVAL
next_update = 60 * (1 + int(time.time()) // 60)
now = datetime.datetime.now(tz=tz)
text = now.strftime("%Y-%m-%d %H:%M")
text = now.strftime("%Y-%m-%d %H:%M:%S")
tooltip = make_calendar(now.date(), tz)
out = Update(

View File

@ -1,78 +0,0 @@
#!/usr/bin/env bash
#
# Report screen recording status in FreeBSD
set -euo pipefail
IFS=$'\n\t'
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
SLEEP_INTERVAL=${SLEEP_INTERVAL:-10}
DELAY_ACTION=${DELAY_ACTION:-2}
function main {
local previous_reported="-1"
local now=$(date +%s)
local check_again_at=$((now + SLEEP_INTERVAL))
local next_sleep_interval=$SLEEP_INTERVAL
stream_key_binding_activations | while true; do
if read -t "$next_sleep_interval" event; then
now=$(date +%s)
latest_allowed_check=$((now + DELAY_ACTION))
if [ "$latest_allowed_check" -lt "$check_again_at" ]; then
# Scheduling a debounced action
check_again_at=$latest_allowed_check
next_sleep_interval=$DELAY_ACTION
else
# New debounced event would trigger after a check is already scheduled
next_sleep_interval=$((check_again_at - now))
fi
if [ "$now" -lt "$check_again_at" ]; then
continue
fi
fi
if pgrep -q wl-screenrec; then
local is_running=1
else
local is_running=0
fi
if [ "$is_running" -ne "$previous_reported" ]; then
previous_reported="$is_running"
report "$is_running"
fi
now=$(date +%s)
check_again_at=$((now + SLEEP_INTERVAL))
next_sleep_interval=$SLEEP_INTERVAL
done
}
function stream_key_binding_activations {
echo "{}"
swaymsg --raw --monitor --type subscribe '[ "binding" ]'
}
function report {
is_running="$1"
if [ "$is_running" -eq 0 ]; then
jq --unbuffered --compact-output <<EOF
{
"text":"",
"tooltip":"Not recording",
"percentage":0,
"class":"hidden"
}
EOF
else
jq --unbuffered --compact-output <<EOF
{
"text":"⏺",
"tooltip":"Recording",
"percentage":100,
"class":"visible"
}
EOF
fi
}
main "${@}"

View File

@ -21,5 +21,3 @@
dest: /usr/local/bin/waybar_custom_sound
- src: waybar_temperature_freebsd.bash
dest: /usr/local/bin/waybar_custom_temperature
- src: waybar_recording_indicator_freebsd.bash
dest: /usr/local/bin/waybar_custom_recording_indicator