1
0
Fork
You've already forked scripts
0
forked from rldane/scripts
Some of my scripts that I wrote, which I use daily
  • Shell 89.2%
  • Python 10%
  • sed 0.8%
2026年03月20日 11:15:09 -05:00
todo-txt todo-txt/timetracker: updated the weekgraph mode to automatically pick the starting date 3 months back using cal output to find the first monday of the month 2026年02月05日 16:47:43 -06:00
acpi_upower acpi_upower: avoid enumerating HID (mouse) batteries 2025年04月19日 13:08:27 -05:00
addscript addscript: expand set -u to set -o nounset to be clearer 2026年02月04日 13:25:14 -06:00
aptsearch aptsearch: removed the old version of the script (which used apt-cache), but left a link to the commit before it was changed. Added some comments to describe how this newer version works. 2025年03月14日 11:21:00 -05:00
backlight backlight: now works better with /usr/bin/backlight in FreeBSD 2025年11月21日 17:43:53 -06:00
battnotify battnotify: changed uname check from checking for just OpenBSD to any BSD (*BSD) 2025年11月25日 11:11:47 -06:00
bibleweb bibleweb: add -o ssl_verify_server=0 to w3m invocation to resolve SSL error with bible hub 2025年03月10日 17:46:33 -05:00
blogme blogme: invoke mktemp differently depending on whether or not the script is running under Linux 2026年03月17日 14:50:17 -05:00
blogwordcount blogwordcount: handle dates better 2026年01月14日 13:25:10 -06:00
bt New script: bt -- 2024年02月04日 17:26:59 -06:00
calc A few new scripts, one rename, and a bunch of changes: 2024年06月16日 11:30:37 -05:00
centertext changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
clipboardtoprimarysel Minor updates: 2024年04月10日 07:40:10 -05:00
clipclear clipclear: now copies "(cleared) into all clipboards before clearing, in case a clipboard manager is active (but set to only keep one clipboard history, because you can't turn it of (such as in KDE Plasma)) 2026年02月04日 13:26:16 -06:00
clipdisp todo comments in three scripts 2024年11月13日 09:27:05 -06:00
clipwatch New scripts and many updates: 2023年08月04日 22:04:08 -05:00
cpubar second try's the charm. Helps to use git add, n00b ;) 2023年01月19日 06:45:33 -06:00
cpugov cpugov: just added an info comment describing what file access (under /sys) the script requires 2025年03月16日 20:46:31 -05:00
cputoggle cputoggle: removed crazy-complicated awk statement and replaced with a single flag to cputoggle (it helps to read the fine manpage!! ;) 2024年12月05日 20:28:40 -06:00
cwmstatus Updates to several scripts, mostly for OpenBSD: 2023年11月19日 23:01:41 -06:00
darkmode Two new scripts and some other changes: 2024年05月18日 15:41:45 -05:00
datestamp datestamp: simplified parsing of a couple command-line options (made more flexible/permissive) 2025年11月30日 10:39:55 -06:00
daylog second try's the charm. Helps to use git add, n00b ;) 2023年01月19日 06:45:33 -06:00
de_banner de_banner: minor fix for unbound variable error in some circumstances 2025年12月21日 22:11:46 -06:00
diceroll changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
displaywindowtitle displaywindowtitle: simplified kdotool invocation 2025年10月15日 14:39:22 -05:00
dot-bash_functions-sample dot-bash_functions-sample: replaced the old yewtu.be function with the newer invid function 2024年12月06日 21:55:33 -06:00
dotconfig-i3status-config-sample updated obsdstatus and searchall... 2023年03月14日 14:22:38 -05:00
dpilove changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
duck duck: add simple --w3m option (as a shorter alternative to --tb=w3m/--tb w3m) 2025年11月30日 10:42:40 -06:00
duh duh: just changed a comment 2025年11月25日 11:13:20 -06:00
emoji-picker emoji-picker: added 119 plain (no box/color) arrows and variants 2026年03月04日 12:19:21 -06:00
extract_pixel_motionphotovideo extract_pixel_motionphotovideo: a new script (taken from [here]( https://linuxreviews.org/Google_Pixel_%22Motion_Photo%22 ) (url is in the script, in case the markdown gets stripped) which extracts the video from a Google Pixel "Motion Photo" .MP.jpg file. 2025年04月08日 11:58:02 -05:00
fbsdstatus fbsdstatus: added a little padding to the right hand side 2025年11月27日 14:43:03 -06:00
fbsduptime fbsduptime: fixed a bug I introduced by only having a single equals sign, oops! 2025年12月10日 15:45:37 -06:00
fcal Minor updates to backlight and fcal: 2024年04月11日 23:30:04 -05:00
fclist-to-csv A few new scripts, one rename, and a bunch of changes: 2024年06月16日 11:30:37 -05:00
fileage fileage: add -s mode for file age in seconds 2025年09月06日 14:26:17 -05:00
filefind filefind: now offers a terminal mode using fzf, because none of the dmenu-style programs I can find offer a word wrap feature, and sometimes file paths are just way too long to be displayed on a single line. 2026年02月19日 08:27:25 -06:00
fileparentdirfind changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
filesizebreakdown changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
findmenu Some more minor modifications: 2024年03月15日 14:59:01 -05:00
folderfind changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
fontpicker changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
fopen fopen: was using $selection instead of $item by mistake, so was printing the list of all files given for each file opened 2025年08月04日 14:54:28 -05:00
formatphonenumber fortmatphonenumber: now calls "clipi -n" rather than just "clipi" to avoid unneeded newline 2024年08月08日 04:30:39 -05:00
fprun fprun: a new script that is like a terminal-based program launcher for flatpak applications (intended for terminal applications, but use it however you like!) 2025年08月10日 22:43:53 -05:00
freebsdfree freebsdfree: new script, implements Linux-style free -h for FreeBSD 2025年11月22日 03:09:34 -06:00
gorun gorun: now deletes the temporary .go source code file after successful compilation 2025年01月06日 10:09:48 -06:00
gping changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
ipscan ipscan: fix the mktemp template for Linux as well 2025年12月06日 13:38:04 -06:00
kdewallpaper changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
kjvfilter kjvfilter: added "deviseth" 2026年02月19日 08:28:55 -06:00
laserfeelings laserfeelings: fix the way the number of rolls is passed to justroll(), also add code to grab high-quality numbers from /dev/urandom, rather than bash built-in $RANDOM. 2026年03月17日 14:51:07 -05:00
LICENSE Updates to LICENSE and timetracker: 2024年05月14日 20:58:27 -05:00
linksclip linksclip: now accepts file:/// urls as well 2024年09月06日 10:52:32 -05:00
manfind manfind: added one lone little echo so that useful data wouldn't be printed at the end of a prompt 2025年05月09日 13:57:00 -05:00
mdis mdis: added -D auto option to invocation to fuzzel to fix DPI scaling issues with higher-resolution displays 2025年07月08日 13:36:19 -05:00
mkcachedir New script: mkcachedir, updates to seven others... 2023年04月03日 22:30:18 -05:00
motionwatcher changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
mousetoggle A couple updates and a new script: mousetoggle 2023年12月29日 02:58:46 -06:00
naturalscrolling changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
new_workspace Changes to four scripts: 2024年01月02日 23:07:19 -06:00
nmapscan nmapscan: changed how the system's ip address is detected, but this will need to be perfected later. 2024年12月06日 18:35:27 -06:00
notice notice: use fold instead of fmt for word wrap, as it works in BSD without having to rely on gfmt (GNU coreutils) 2024年09月24日 18:11:16 -05:00
obsdstatus A few new scripts, one rename, and a bunch of changes: 2024年06月16日 11:30:37 -05:00
openbsd_lsblk openbsd_lsblk: a new script to attempt to make a roughly lsblk-like utility for OpenBSD (only, for now) 2025年05月18日 09:19:03 -05:00
patchlog fixed a typo in patchlog (double "=" instead of single in sh test) 2023年03月10日 23:18:19 -06:00
pinglog pinglog: added graph mode for a text-graphical representation of ping status over time 2025年09月12日 15:08:55 -05:00
pingwatch pingwatch: a new script that produces simple $(date) (up|down) messages via ping(8) 2025年03月26日 15:36:55 -05:00
pkg_size pkg_size: took the simplify() function from my ~/.bash_functions and copied it here for easier sharing 2025年04月26日 10:08:07 -05:00
pkgbins pkgbins, pkgsizes, searchall, system_updates_checker, updateall: add support for Solus linux eopkg 2025年02月24日 21:37:21 -06:00
pkgsizes pkgizes: changed the algorithm for FreeBSD pkg to be much simpler and faster 2025年11月28日 18:51:32 -06:00
pomodoro pomodoro: fixed a minor oopsie in how the time remaining is printed 2025年12月27日 16:46:29 -06:00
powertrack powertrack: adjusted apm command filtering for FreeBSD to include "AC Line status" 2026年01月02日 13:53:59 -06:00
primaryseltoclipboard Minor updates: 2024年04月10日 07:40:10 -05:00
processcheck processcheck: added COLUMNS=9999 to the ps invokation to prevent the text from being cut off in some conditions 2025年03月14日 22:41:57 -05:00
psgrep A few new scripts, one rename, and a bunch of changes: 2024年06月16日 11:30:37 -05:00
README.md New script: verse - This is my version of https://tracker.debian.org/pkg/verse , using their original data (verse selections). Optionally requires my kjvfilter script to update the Jacobian language to something more modern 2026年01月02日 13:54:17 -06:00
say changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
scrunch second try's the charm. Helps to use git add, n00b ;) 2023年01月19日 06:45:33 -06:00
searchall searchall: changed from https://openports.pl to https://openbsd.app for OpenBSD ports search. Also changed from using w3m as the default html renderer to using lynx, as it doesn't try to render the tables (which looks awful in the terminal) 2026年03月20日 11:15:09 -05:00
showclip Updates to several scripts, mostly for OpenBSD: 2023年11月19日 23:01:41 -06:00
smartcd smartcd: changed fzf --keep-right option to --wrap 2026年02月19日 08:29:27 -06:00
smartman smartman: added -iXF parameters to less 2025年11月30日 10:40:20 -06:00
sndionotify add -a {program name} parameter to every invocation of notify-send in nine scripts that use it 2024年08月21日 12:12:16 -05:00
stsizes Huge commit -- sorry, I need to make these more atomic 😁 2024年06月29日 09:44:24 -05:00
suspend suspend: fix path to pm-suspend 2025年12月20日 10:42:43 -06:00
swayrot Some more minor updates (20240521): 2024年05月21日 12:27:58 -05:00
syncthing-quick-status syncthing-quick-status: fallback to gnumfmt (BSD) if numfmt isn't installed, then fall back to not converting the number if neither are found 2025年12月06日 13:39:23 -06:00
system_updates_checker system_updates_checker: added FreeBSD (uses same code as OpenBSD) 2025年11月21日 12:36:27 -06:00
temperaturechart changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
temps changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
termbar second try's the charm. Helps to use git add, n00b ;) 2023年01月19日 06:45:33 -06:00
terminaldir terminaldir: pretty old script used to "open" directories in a terminal (like when a directory is opened using xdg-open by a script). 2024年09月06日 10:57:58 -05:00
terminaldir.desktop forgot git add again, lol 2023年01月23日 06:41:48 -06:00
termsize Some very minor updates + one new script: 2023年03月20日 21:51:58 -05:00
textrot10+3 changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
textrot13 changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
theo.py feat(theo.py): add theo.py 2025年12月21日 14:29:28 +00:00
theo.sh theo.sh: Now gracefully handles OpenBSD, which lacks a random sort mode in sort (sort -R). 2026年01月02日 20:58:12 -06:00
tootcounter tootcounter: fixed breakage because toot was printing ANSI color crap :P 2025年12月09日 19:11:26 -06:00
tootme tootme: changed the uname check from checking for OpenBSD specifically to checking for any BSD (*BSD) 2025年11月25日 11:14:01 -06:00
tootuser tootuser: removed check for a menu program (bemenu, dmenu, fuzzel, rofi, or wofi), because that already happens within mdis 2025年03月10日 08:53:59 -05:00
trackpad changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
tupdate tupdate: put ~/.local/share/applications into a variable, and make sure that it and other needed directories exist before doing anything else 2025年02月24日 21:36:05 -06:00
tut-all-users tut-all-users: changed formatting so each account would be printed on its own line with markdown-style bullets (* ) 2024年12月27日 14:01:52 -06:00
ulocate ulocate: fixed a bug where it wasn't parsing multiple options 2024年08月25日 08:27:51 -05:00
updateall updateall: copy the nice and ionice code from another part of the script and apply it to dnf. 2026年03月17日 14:51:44 -05:00
updateuserdb updateuserdb: now ignores .stversion directories as well 2025年12月06日 13:39:54 -06:00
urlsanitize urlsanitize: added a variable to allow user to select which invidious front-end to use (since they stop working at random times thanks to google's meddling), and removed proxitok, as all of the public instances are now down :( 2026年03月17日 14:52:52 -05:00
verse New script: verse - This is my version of https://tracker.debian.org/pkg/verse , using their original data (verse selections). Optionally requires my kjvfilter script to update the Jacobian language to something more modern 2026年01月02日 13:54:17 -06:00
volume volume: some fixes so that it would work properly with FreeBSD's mixer, and wob 2025年11月27日 14:43:44 -06:00
vrms-pacman changed #!/bin/bash shebang to #!/usr/bin/env bash for the following scripts for better cross-compatibility: 2025年11月20日 20:10:16 -06:00
windowlist windowlist: now works with kdotool and xprop, in addition to swaymsg. 2025年04月22日 17:35:22 -05:00
winresize winresize: removed some unneeded comments 2024年09月24日 18:12:17 -05:00
wofi-calc wofi-calc: add a substitute for tac for systems (BSDs) that lack it 2025年11月28日 18:52:04 -06:00
wofi-windowlist wofi-windowlist: a simple script based on the code example given in wofi(7) to present a window list to the user 2024年07月28日 01:11:08 -05:00
workspace-name A couple new scripts and a few modest changes: 2024年02月19日 08:33:41 -06:00
yt-mpv yt-mpv: NO, I did NOT have a very obvious error in the last commit. YOU SAW NOTHING. 2025年11月09日 10:59:22 -06:00

scripts

todo: update this README

Some of my scripts that I wrote, many of which I use frequently.

I've tried to add some explanatory comments to the beginning of each one

Any comments you see that look like "## needsterm ##" at the beginning of a file are tags that I sometimes use

Contents:

  • LICENSE - MIT License

  • README.md - This file

  • acpi_upower - Linux script to scrape upower and produce acpi-like output. also projects total battery or charging time based on remaining and percentage

  • addscript - Creates a new script in my ~/bin or ~/bin/scripts directory, populates it with a shebang and shopt, makes it executable, and opens it in the $EDITOR

  • aptsearch - "apt search" is a little slow, and produces visually bloated output (3 lines per entry). This script calls "apt-cache search" for a slightly faster search, but also caches a list of packages from "dpkg -l" (updating if the list is over 4 hours old), and uses that to print an indication if a package in the search results is installed (like "apt search"). Since it's calling "apt-cache search," the output is a lot leaner (only one line per entry). Requires the "fileage" script in this repo

  • backlight - Control backlight in Linux and OpenBSD, useful when bound to keys like Ctrl-Super-+/-

  • battnotify - Script gets battery status in Linux and OpenBSD and sends a notification via notify-send

  • bibleweb - When provided a book and chapter (and optional translation) as parameters, it fetches the text from biblehub.com, does some sed processing to remove extraneous footnotes and unwanted characters, and either displays it in the terminal or using enscript and zathura

  • blogme - A script to simplify writing a pelican-style markdown blog post. Automatically fills out the header with date and title (based on first line entered)

  • blogwordcount - A script that queries a Pelican-generated blog and shows a word count (and lines, and characters, too) for each blog post. Only tested with one theme, may not work on your Pelican site

  • bt - a TUI-ish (menu-driven) front-end to bluetoothctl for simple commands like connect and disconnect

  • calc - bc-based calculator for dmenu

  • centertext - Takes text input from $* (ARGV) or STDIN and centers it, filling the left and right margins with spaces. Uses tput to get current terminal columns

  • clipboardtoprimarysel - Move contents of clipboard to primary selection buffer

  • clipclear - Clear the primary and secondary selection buffers, and clipboard

  • clipdisp - Clipboard dispatcher: runs xclip or wl-copy/paste depending on your environment

  • clipwatch - Watch the clipboard for changes and print them

  • cpubar - Prints a CPU utilization bar horizontally down the terminal

  • cpugov - Get status of or control cpu governors (similar to powerprofilesctl, but dead-simple)

  • cputoggle - provides an easy interface for turning individual CPU cores on and off. Requires that the /sys/devices/system/cpu/cpu*/online files are writeable to the user. Optionally depends on "lscpu" for a pretty status display

  • cwmstatus - Takes the output of i3bar and adds the current cwm window group number. Also calls xterm to place the bar on the bottom of the screen (will likely need tweaking for your monitor setup). Depends on obsdstatus, which in turn depends on i3status (comes with the i3/i3-gaps package)

  • darkmode - This is an experimental script to set a dark mode for gtk & qt apps. It is based on scripts found in the dark-mode.d directory of https://gitlab.com/WhyNotHugo/darkman.git

  • datestamp - a simple script to print a standard formatted datestamp or put it in the system clipboard

  • daylog - A little one-line-per day journal program. Looks for and appends to a file called daylog.txt in ~/Documents/Journal/

  • de_banner - print a little banner line describing the current terminal and window manager, compositor, or desktop environment

  • diceroll - Prints a percentage (a roll of 2D10 or 1D100), using /dev/urandom as the PRNG

  • displaywindowtitle - uses zenity to display the current window title. Useful for window managers that don't display a title bar, or for windows that may have a very long title

  • dot-bash_functions-sample - A sample of my ~/.bash_functions file. Some functions in this file are needed by two of these scripts: duh (mountpoint() (but only for OpenBSD) and pkg_size (simplify())

  • dotconfig-i3status-config-sample - A sample of my i3status config. obsdstatus and cwmstatus may be dependent on some particulars of how i3status is configured/formatted

  • dpilove - A simple script to calculate the ppi of a screen. Based loosely on the https://dpi.lv website. Created because I found that site too slow to load

  • duck - A command-line interface to DuckDuckGo, which can call a variety of graphical and terminal web browsers depending on configuration and command-line options

  • duh - Like running du -sh * |sort -h, but including hidden files and excluding mountpoints. Requires the mountpoint() function in my bash_functions sample file if on BSD (calls the mountpoint command in Linux). Note: the mountpoint() function is somewhat half-baked, but is an initial best effort at reproducing the functionality

  • emoji-picker - My fork of https://github.com/end-4/fuzzel-emoji, works in X11, Wayland, and terminal

  • extract_pixel_motionphotovideo - Extract the video from an Android MotionPhoto file to PXL_*.MP.mp4

  • fbsdstatus - insert WiFi signal quality (RSSI) information into i3status output on FreeBSD

  • fsduptime - FreeBSD reports only actual running time as uptime, rather than time since boot. This script prints uptime based on time since last boot recorded in /var/log/messages

  • fcal - The calendar filter - takes a set of days as parameters and filters the output of cal/ncal/gcal to show only those days on the calendar

  • fclist-to-csv - This script runs fc-list and dumps every possible value using the tags found in fontconfig.h Depends on XOrg (obviously) and fc-list

  • fileage - Reports the age of a file in hours. Needed by updateuserdb

  • filefind - Finds a file based on regex and uses dmenu as a picker to open it. Dependent on updateuserdb

  • fileparentdirfind - Finds a file's parent directory based on regex and uses dmenu as a picker to open it. Dependent on updateuserdb

  • filesizebreakdown - Find all the files in the current directory and gives a breakdown of storage used by each file type (by extension)

  • findmenu - A dmenu/bemenu interface for triggering the filefind/folderfind/fileparentdirfind scripts

  • folderfind - Finds a folder based on regex and uses dmenu as a picker to open it. Dependent on updateuserdb

  • fontpicker - lets the user pick a console font and uses setfont to change the console/fb font. Only tested on Debian-based and Arch-based Linux distros

  • fopen - file opener using fzf, kind of like a micro file manager for the terminal (just for opening files)

  • formatphonenumber - Simply take the clipboard, detect a (U.S.) phone number, and format it nicely, e.g., (123) 456-7890

  • fprun - FlatPak RUN - generates a list of installed flatpak apps and lets you launch one via fzf

  • freebsdfree - an implementation of Linux' free -h for FreeBSD

  • gorun - a shebang handler for running go source code like scripts. Caches compiled output for faster execution using an md5 hash of the source code

  • gping - Like cpubar, shows ping times in a graphical way going down the terminal

  • ipscan - uses ping and netcat to scan the subnet for devices

  • kdewallpaper - set the KDE Plasma wallpaper from the command line, optionally keeping a list of favorites

  • kjvfilter - a sed script that attempts to filter the "Authorized Version" / "King James Bible" language into something approaching modern English.

  • linksclip - Simply look for a url in the clipboard and launch xlinks with it. relies on clipdisp (clipo) in this repo

  • manfind - implements man -K (full text search of man db) on systems lacking that function, such as the BSDs

  • mdis - menu dispatcher, detects X11 or wayland and tries to find a suitable menu utility, like dmenu, bemenu, rofi, wofi, or fuzzel

  • mkcachedir - A script I created in OpenBSD to create directories in /tmp for symlinks pointing to /tmp from ~/.cache (using RAMDisk as cache for performance).

  • motionwatcher - A script I wrote to start the 'motion' security camera app whenever the screen was locked. Hasn't been used in a while

  • mousetoggle - A simple script to toggle the mouse pointer on or off using xinput (X11 only). Written for my current OpenBSD laptop

  • naturalscrolling - Uses xinput to enable "natural" scrolling direction for trackpads

  • new_workspace - For i3wm (X11): Figure out which is the next empty workspace and switch to it

  • nmapscan - Calls nmap to scan the subnet

  • notice - a user-level motd-like utility meant to use a single text file synced between all your systems

  • obsdstatus - calls i3status and adds the missing memory usage info for OpenBSD

  • openbsd_lsblk - a simple script to produce a vaguely lsblk-like table of disks in OpenBSD

  • patchlog - Scans through the /var/syspatch directory in OpenBSD and lists the installed patch names, files, and comments

  • pinglog - Simple script to ping an ip address on the internet every minute and keep a log of internet uptime

  • pingwatch - A simple script to print up and down messages as a host becomes available/unavailable via standard ping(8)

  • pkgbins - Searches the file list for the given package names and returns the files in various bin directories (just greps for 'bin'). Works in FreeBSD, OpenBSD and Debian, RPM, and Arch-based Linux distros

  • pkg_size - OpenBSD: takes a list of packages from the command line and calls pkg_add -mis to determine the amount the filesystems would grow by if the package (and all its uninstalled depenencies) were installed. Calls the simplify function from my .bash_functions to convert any number of bytes to the largest SI unit equivalent (e.g., KiB, MiB, GiB)

  • pkgsizes - Shows all installed packages sorted by increasing size. Works on Debian, rpm, and Arch-based Linux distros and OpenBSD

  • pomodoro - because I just HAD to create my own basic pomodoro timer before I did anything else productive. 😂

  • powertrack - Linux-only: calls acpi_upower (another script here) with some parameters every 60 seconds and logs the output to ~/powerstat.txt. Useful for observing trends in power consumption and battery life in laptops

  • primaryseltoclipboard - Copies the primary selection buffer to the system clipboard

  • processcheck - Given a list of programs as args, it checks to see if they are running and prints an error if they aren't. I use this in my .bashrc to make sure that things like syncthing and redshift are running

  • psgrep - like pgrep, but shows the actual ps output, optionally summing up the memory used by all listed processes

  • say - Tries to find a speech synthesis program to speak the words given by STDIN or arguments

  • scrunch - lossy PNG compressor. Not as good as manually doing it in GIMP. Depends on imagemagick's convert

  • searchall - searches all package managers that I'm familiar with: apt, zypper, pacman, OpenBSD pkg_locate or https://openports.pl, yay (AUR), flatpak, snap, and brew.

  • showclip - Shows the contents of the clipboard both in X11 and Wayland

  • smartcd - relies upon my ulocate family of scripts and fzf. You give it a search path, fzf lets you pick a directory, and it goes to it

  • smartman - Calls man, falls back to using tldr if the manpage isn't found, calls back to running $command --help if tldr doesn't find anything

  • sndionotify - watches sndioctl -m (OpenBSD) and sends a notification when the system volume changes

  • stsizes - Shows the size of syncthing folders, useful for deciding which folders to sync on a new machine with limited space

  • suspend - Simple script that syncs the buffers a couple times and calls the command to suspend the machine. For Linux, OpenBSD, and FreeBSD

  • swayrot - rotate a swaywm screen

  • syncthing-quick-status - my minor fork of https://github.com/serl/syncthing-quick-status.git

  • system_updates_checker - attempts to be a very fast script to check the recency of system updates and remind the user if updates are needed. I run it in my .bashrc on every login

  • temperaturechart - prints a temperature char down the terminal like cpubar and gping. Relies on vcgencmd (Raspberry Pi) or sensors (general Linux)

  • temps - Attempts to report current system temperature in OpenBSD and Linux.

  • termbar - My version of https://github.com/vetelko/termbar/blob/master/bars/gonzalo/termbar. I no longer use it in favor of cwmstatus

  • terminaldir.desktop - the desktop file for the terminaldir script

  • terminaldir - Spawns a terminal at a working directory given as an argument. useful when paired with terminaldir.desktop and used as the default program for opening directories (instead of opening a file manager)

  • termsize - reports the size of the terminal once or until q is pressed. Created because some terminals don't display the size of the terminal (in columns and rows) as they are being resized

  • textrot10+3 - A silly rot13 variant the rotates consonants and vowels separately, producing vaguely pronouncable output

  • textrot13 - A very basic rot13 program

  • theo.sh - Theo de Raadt insult generator — I mean... fortune printer. Adapted from https://codeberg.org/amadaluzia/theo.el

  • theo.py - ^ but Python with argument checks

  • todo-txt/timetracker - A front-end for the timetracker plugin to todo.sh that adds a lot of features

  • todo-txt/todo - A front-end for todo.sh/todo-txt which adds a lot of features

  • todo-txt/tstat - A quick status display for todo.sh

  • tootcounter - Uses toot whoami to keep a daily counter of how many toots you toot on Mastodon

  • tootme - My front-end for the toot-editor mode. Gracefully handles failures and toot-too-long conditions

  • tootuser - interactively look up a fediverse user using toot. Pick one with a menu (depends on mdis), and copy to the clipboard (depends on clipdisp)

  • trackpad - Enable and disable the trackpad. uses xinput

  • tupdate - A script I created to update the tut Mastodon TUI client using go install and git. Also installs the manpages for tut

  • tut-all-users - A simple script to get all registered userids from the accounts.toml file in ~/.config/tut/ and call tut -u {accounts} so that you can easily flip between accounts in tut

  • ulocate - my own locate script, just for files in my home directory. used by filefind/folderfind/fileparendirfind and calls updateuserdb

  • updateall - Updates all package managers I'm familiar with. Runs pkcon for KDE Neon, apt for debian-based distros, pacman for arch-based distros, zypper for OpenSuSE, yay for the AUR, syspatch and pkg_add on OpenBSD, checks freebsd-update (but doesn't update) and runs pkg upgrade on FreeBSD, and secondary sources flatpak, snap, and homebrew

  • updateuserdb - the updatedb equivalent of my ulocate command

  • urlsanitize - Attempts to sanitize links to icky websites like youtube to more human-friendly alternative front-ends like Invidious

  • verse - This is my version of https://tracker.debian.org/pkg/verse, using their original data (verse selections). Optionally requires my kjvfilter script to update the Jacobian language to something more modern

  • volume - Changes the system volume in Linux (using amixer), OpenBSD, and FreeBSD. Useful with a hotkey daemon, or a hotkey service within a tiling window manager

  • vrms-pacman - a "Virtual Richard M. Stallman" program (https://packages.debian.org/bullseye/vrms) for pacman. Usually fails miserably because far too many Arch packages lack the license info

  • windowlist - list windows in your swaywm session

  • wofi-calc - This is my fork of https://github.com/Zeioth/wofi-calc I've cleaned it up a good bit and hopefully made it more readable.

  • wofi-windowlist - wofi window switcher -- adapted from wofi(7)

  • winresize - Uses mdis to pop up a message asking what resolution to resize the window to, and then runs xdotool to select the window and then resize it. Useful when you want to resize a window to a precise value, such as setting your browser window to a very common full-screen-equivalent size to make fingerprinting more difficult.

  • workspace-name - Uses xprop to get the name of the current workspace / virtual desktop in both X11 and Wayland. Falls back to specifying the desktop number if no name is found.

  • yt-mpv - calls mpv requesting it uses yt-dlp to view the video url provided (or in the clipboard). Limits video resolution to approximately the resolution of your screen for performance and bandwith reasons