From ef6dff4cce15186a66ba34cdd7bd39958ebf7f58 Mon Sep 17 00:00:00 2001 From: awy Date: Tue, 29 Jul 2025 03:42:18 +0300 Subject: first commit --- .local/bin/cron/README.md | 14 ++++++++++++++ .local/bin/cron/checkup | 17 +++++++++++++++++ .local/bin/cron/crontog | 6 ++++++ .local/bin/cron/mailup | 9 +++++++++ .local/bin/cron/newsup | 18 ++++++++++++++++++ 5 files changed, 64 insertions(+) create mode 100644 .local/bin/cron/README.md create mode 100755 .local/bin/cron/checkup create mode 100755 .local/bin/cron/crontog create mode 100755 .local/bin/cron/mailup create mode 100755 .local/bin/cron/newsup (limited to '.local/bin/cron') diff --git a/.local/bin/cron/README.md b/.local/bin/cron/README.md new file mode 100644 index 0000000..e314296 --- /dev/null +++ b/.local/bin/cron/README.md @@ -0,0 +1,14 @@ +# Important Note + +These cronjobs have components that require information about your current display to display notifications correctly. + +When you add them as cronjobs, I recommend you precede the command with commands as those below: + +``` +export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u $USER)/bus; export WAYLAND_DISPLAY=wayland-1; . $HOME/.zprofile; then_command_goes_here +``` + +This ensures that notifications will display, wtype/wlrctl commands will function and environmental variables will work as well. + +# Also important +DBUS_SESSION_BUS_ADDRESS variable will always have a random address in the /tmp directory when you are using dinit as your init system. diff --git a/.local/bin/cron/checkup b/.local/bin/cron/checkup new file mode 100755 index 0000000..fbe8e0f --- /dev/null +++ b/.local/bin/cron/checkup @@ -0,0 +1,17 @@ +#!/bin/sh + +# Syncs repositories and downloads updates, meant to be run as a cronjob. + +notify-send "📦 Repository Sync" "Checking for package updates..." + +doas pacman -Syyuw --noconfirm || notify-send "Error downloading updates. + +Check your internet connection, if pacman is already running, or run update manually to see errors." +pkill -RTMIN+8 "${STATUSBAR:-waybar}" + +if pacman -Qu | rg -v "\[ignored\]" +then + notify-send "🎁 Repository Sync" "Updates available. Click statusbar icon (📦) for update." +else + notify-send "📦 Repository Sync" "Sync complete. No new packages for update." +fi diff --git a/.local/bin/cron/crontog b/.local/bin/cron/crontog new file mode 100755 index 0000000..c9a640f --- /dev/null +++ b/.local/bin/cron/crontog @@ -0,0 +1,6 @@ +#!/bin/sh + +# Toggles all cronjobs off/on. +# Stores disabled crontabs in ~/.config/cronsaved until restored. + +([ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved ] && crontab - < "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && rm "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && notify-send "🕓 Cronjobs re-enabled.") || ( crontab -l > "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && crontab -r && notify-send "🕓 Cronjobs saved and disabled.") diff --git a/.local/bin/cron/mailup b/.local/bin/cron/mailup new file mode 100755 index 0000000..0b2ab2d --- /dev/null +++ b/.local/bin/cron/mailup @@ -0,0 +1,9 @@ +#!/bin/sh + +pgrep -f mailsync && exit + +echo 🔃 > /tmp/mailupdate +pkill -RTMIN+12 "${STATUSBAR:-waybar}" +/usr/local/bin/mailsync +rm -f /tmp/mailupdate +pkill -RTMIN+12 "${STATUSBAR:-waybar}" diff --git a/.local/bin/cron/newsup b/.local/bin/cron/newsup new file mode 100755 index 0000000..efdf4ae --- /dev/null +++ b/.local/bin/cron/newsup @@ -0,0 +1,18 @@ +#!/bin/sh + +# Set as a cron job to check for new RSS entries for newsboat. +# If newsboat is open, sends it an "R" key to refresh. + +export XDG_RUNTIME_DIR=/run/user/1000 +export WAYLAND_DISPLAY=wayland-1 + +/usr/bin/notify-send "📰 Updating RSS feeds..." + +pgrep -f newsboat$ && /usr/bin/wlrctl window focus title:newsboat && /usr/bin/wlrctl keyboard type R && exit + +echo 🔃 > /tmp/newsupdate +pkill -RTMIN+6 "${STATUSBAR:-waybar}" +/usr/bin/newsboat -x reload +rm -f /tmp/newsupdate +pkill -RTMIN+6 "${STATUSBAR:-waybar}" +/usr/bin/notify-send "📰 RSS feed update complete." -- cgit v1.2.3