A concise collection of shell utilities and test harnesses for workstation maintenance, hardware testing, kernel builds, and related developer workflows.
This README focuses on what this repository contains, how to run the most common tools safely, and where to look for further details.
Repository highlights
bash_aliases
— interactive helper functions (gsettings helpers, autologin toggles, device controls).prepare.sh
— environment bootstrap and convenience wiring (adds~/.local/bin
, initializes submodules).install.sh
— package-install wrapper used by many scripts.terminal.sh
— spawn named terminals for long-running tasks.suspend.sh
,suspend-stress.sh
— suspend/resume test runners (fwts or RTC-based flows).build-kernel.sh
,kernel-benchmark.sh
,./linux/rebuild.sh
— kernel build and benchmarking helpers.work-files.sh
,sync-images.sh
,update-images.sh
,verify-images.sh
— helpers for copying and validating image sets.phoronix/
— local Phoronix profiles and test suites.
A concise collection of shell utilities and test harnesses for workstation maintenance, hardware testing, kernel builds, and related developer workflows.
Short description and quick navigation are at the top of the file so you can find what you need fast.
A concise collection of small, auditable shell utilities and test harnesses for workstation maintenance, hardware testing, kernel builds, and related developer workflows. The README below is intentionally short and non-repetitive — scan the Table of Contents to go where you need.
- Overview
- Getting started
- Repository layout
- Common workflows
- Safety & permissions
- Troubleshooting
- Contributing
- Roadmap
This repo collects shell scripts and small helpers used for quick hardware checks, suspend/resume testing, kernel builds, and image management. Scripts are designed to be readable and modified — inspect them before running, especially when they require elevated privileges.
Requirements
- Bash (POSIX-compatible) and common GNU tools
sudo
for privileged operations- Optional desktop utilities for GUI helpers:
gsettings
,gnome-terminal
,xdotool
Quick setup
- Inspect the scripts you plan to run.
- Make frequently used scripts executable, for example:
chmod +x suspend.sh busybox_test.sh build-kernel.sh
- Install packages when needed (example):
./install.sh stress-ng fwts nmap xdotool gnome-terminal
- Validate your environment with the harmless test script:
./busybox_test.sh
bash_aliases
— interactive helpers and orchestration functions (gsettings save/restore, autologin toggles, device controls)prepare.sh
— bootstrap helpers and PATH wiringinstall.sh
— package-install wrapper used by other scriptsterminal.sh
— spawn named terminals for long-running taskssuspend.sh
,suspend-stress.sh
— suspend/resume test runners (fwts or RTC-based flows)build-kernel.sh
,kernel-benchmark.sh
,./linux/rebuild.sh
— kernel build helperswork-files.sh
,sync-images.sh
,update-images.sh
,verify-images.sh
— image handling utilitiesphoronix/
— local Phoronix profiles and test suites
There are many additional small scripts at the repo root used for ad-hoc workflows (network, firmware, logging). Use the file names as the primary documentation and open scripts in an editor to see flags and examples.
- Suspend/resume testing (fwts):
./suspend.sh -m 15 -M 30 -r ./resume-hook.sh 10
- Suspend/resume testing (RTC loop):
sudo ./suspend.sh -R 50
- Kernel build: inspect and run
build-kernel.sh
or./linux/rebuild.sh
inside a monitorable terminal - Image sync/verify:
./sync-images.sh
then./verify-images.sh
- Many scripts perform system-level changes (writing
/etc
fragments, modifying GDM/idle settings, usingrtcwake
). Inspect any autogenerated files before applying. - When creating sudoers fragments, validate them with
visudo -cf /etc/sudoers.d/yourfile
before relying on them. - GUI helpers require a graphical session; on Wayland-only setups
xdotool
may have limited functionality.
- If a long-running task doesn't stop cleanly, check terminal titles and
pgrep
patterns used byterminal.sh
. - If package installs fail, re-run
./install.sh
and inspect package manager output; some wrapped installs intentionally continue on failure (look for|| true
).
- Keep changes small and well-documented. Prefer readable shell and clear comments.
- For complex orchestration, consider extracting heavy helpers into
bin/
scripts for easier testing and reuse.
- Extract heavy helpers from
bash_aliases
intobin/
for easier testing and autostarting. - Add PID files and structured logging for long-running tests.
- Harden sudoers and autostart edits with validation steps.
If you'd like, I can split specific helpers into bin/
scripts and add focused usage examples. Tell me which helpers you use most and I'll extract them next.