This repository contains some GNU/Linux scripts I've found useful. For my Linux instructions, please see my website at agx.fi.
android: Scripts for working with Android devices. Firmware flashing, backup, app installation etc.backup: Backup scriptscrypto: Cryptocurrency miningdrivers: Scripts for installing driversgames: Scripts for installing and configuring games and emulatorsgit: Git configs and scripts, e.g.pull.pyfor pulling all repositories in~/Giti3: i3 window manager configsimages: Scripts for converting imagesinstall: Software installation for Ubuntu-based systems. Includes also Flatpak, Snap and asdf. Run./install/install.py(orpython3 -m install) as a normal user. It runs./install/install_sudo.pywith sudo. Add--sourcesto configure the apt repositories as well, e.g. on the first run.iperf: Scripts for measuring network performancekde: KDE Plasma configslibrenms: LibreNMS configsluks-tpm: Scripts for unlocking LUKS encrypted volumes with TPMmaintenance: General system maintenance: updates, cleaning, security scans, TRIM etc. Run./maintenance/__main__.py(orpython3 -m maintenance) as a normal user. It runs./maintenance/sudo.pywith sudo for the steps that require root privileges. Run with--helpto see the options, e.g.--deepfor deep cleaning.neovim: Neovim configsobs-studio: OBS Studio configsopentabletdriver: Graphics tablet driver configspgp: PGP configs and utilities, e.g. converting ASCII-armored keys to the binary formatphysics: Scripts for installing and configuring various software for physics researchproxmox: Proxmox hypervisor configspycharm: PyCharm configssamba: Scripts for configuring a Samba Active Directory domain memberssh: SSH configs.ssh/config.d/is symlinked to~/.ssh/config.d/, andssh/openssh10.confto~/.ssh/openssh10.confon systems with OpenSSH 10.0 or newer.startup: startup scripts.agx_startup.pyis run as root byagx-startup.service, andagx-user-startup.shis run byagx-user-startup.desktopas the current user.testing: Performance and reliability testing scriptstests: Unit tests for the scripts in this repositorytmux: tmux terminal multiplexer configsusbip: USB/IP configs for passing USB devices over IPutils: Shared Python utilities for the scripts, e.g.utils/misc_utils.pyvirtualbox: VirtualBox maintenance scriptsvscodium: VSCodium configs for e.g. SSH remotingwacom: Custom script for configuring Wacom tablets. Requires X11 and doesn't work on Wayland. Use Kubuntu's settings GUI or the configs inopentabletdriver/instead.wireguard: WireGuard configs, e.g. autostart scriptxournalpp: Xournal++ configs. Symlinked to Xournal++'s config directory.zsh: zsh configs, e.g.zsh/.zshrc, which is symlinked to~/.zshrc, andzsh/custom/, which contains custom zsh commands.
These can be symlinked to ~/ where needed.
.bashrc: Bash configuration that switches to zsh. For environments where it's not possible to change the login shell withchsh..gdbinit: GDB (GNU Debugger) config.profile: Config for login shells.xprofile: Config for X11 sessions
kernel_remover.py: Remove old kernel versionskubuntu_release_upgrade.sh: Kubuntu release upgrade script, with proper loggingmodem.py: Script for configuring the integrated WWAN modem of ThinkPad laptops
The Python dependencies are managed with uv.
Run uv sync to create the virtual environment in .venv/,
and uv run pytest to run the unit tests.