Modules Reference
The setup system is modular — core components are installed first, then any combination of optional apps can be added. All module scripts are idempotent (safe to re-run).
Core Modules
These are selected during the initial tui-install.sh run.
pkg — Package Managers
Installs the AUR helper, language runtimes, and build toolchains:
- yay — AUR helper (built from source via
makepkg)
- Rust / Cargo — via
rustup with the stable toolchain
- nvm — Node Version Manager; installs Node.js v22 LTS by default
core — Core Packages
~100 packages including:
7zip · base-devel · bluez · bluez-utils · btop · fastfetch · fdupes · ffmpeg · git · greetd-tuigreet · htop · jq · less · lynx · neovim · networkmanager · openssh · pipewire · pipewire-alsa · pipewire-pulse · ripgrep · rsync · tmux · udiskie · yazi · zram-generator
Also installs pamtester from the AUR.
svc — Core Services
Enables and starts these systemd units:
| Service |
Purpose |
NetworkManager |
Network connectivity |
cronie |
Cron daemon |
fail2ban |
Brute-force protection |
greetd |
Login session manager |
udisks2 |
Removable media |
Also deploys greetd-tuigreet config from the dotfiles.
shell — Shell Setup
- zsh with Oh My Zsh and plugins (zsh-syntax-highlighting, zsh-autosuggestions)
- Starship shell prompt
- Neovim with Vim-Plug (see Editors)
- Micro editor
- Yazi file manager
- Deploys
.bashrc, .zshrc, starship.toml, Micro config, Neovim config
plymouth — Boot Splash (on by default)
Installs the M-Archy Plymouth theme: the skull logo (resources/bg-skull.svg) centred on a dark background with a 12-dot magenta spinner animation below it.
- Converts the bundled SVG to PNG via
rsvg-convert (Plymouth's image loader is PNG-only)
- Injects the
plymouth or sd-plymouth mkinitcpio hook automatically (detects udev vs systemd hook set)
- Adds
quiet splash to GRUB_CMDLINE_LINUX_DEFAULT and regenerates GRUB config
- Rebuilds the initramfs so the theme is baked in
To install with a custom image on an existing system, use install-modules.sh and select Plymouth (custom) — you will be prompted for a PNG or SVG path.
Desktop Environments
| ID |
Name |
Notes |
hyprlua |
HyprLua |
Lua-based Hyprland — recommended — see Hyprland |
niri |
Niri |
Scrollable-tiling Wayland compositor — see Niri |
hyprland |
Hyprland |
Legacy Hyprlang config |
sway |
Sway |
Wayland tiling WM, lighter |
kde-plasma |
KDE Plasma |
Full-featured with sddm |
gnome |
GNOME |
Modern Wayland DE with gdm |
cosmic |
COSMIC |
Rust-based DE from System76 |
xfce |
XFCE |
Lightweight X11 with lightdm |
lxqt |
LXQt |
Lightweight Qt X11 with sddm |
Optional Applications
Install via tui-install.sh at first install, or add later:
bash ~/Dotfiles/setup/install-modules.sh
This table is generated from setup/modules.conf. Run setup/generate-modules.sh to regenerate.
AI & Machine Learning
| ID |
Description |
ollama |
local LLM runner and API server |
llama-cpp |
standalone LLM inference CLI and server |
open-webui |
browser UI for Ollama and LLM backends |
claude |
Anthropic Claude Code CLI via npm |
Networking & Security
| ID |
Description |
networking-cli |
nmap, nethogs, mitmproxy, httpie |
disk-recovery |
ddrescue and f3 disk recovery tools |
himalaya |
terminal email client (AUR) |
mail-notmuch |
isync, msmtp, notmuch, alot mail stack |
caldav-sync |
vdirsyncer and khal CalDAV calendar sync |
ssh-server |
openssh with key-auth and systemd unit enabled |
wireshark |
network packet analyser GUI |
anti-malware |
ClamAV, rkhunter, chkrootkit |
Development
| ID |
Description |
gnuplot |
scientific plotting tool |
blender-povray |
3D modelling and ray-tracing (Blender + POV-Ray) |
toot |
Mastodon CLI client (AUR) |
db-clients |
pgcli and mycli interactive database CLIs |
mysql |
MariaDB server with initial setup |
productivity |
taskwarrior, watson, jrnl — task management and time tracking |
python |
pyright, pipx, pynvim Python tooling |
k8s |
kubectl and podman-desktop Kubernetes tools |
docker |
docker and docker-compose |
podman |
rootless containers with buildah |
cockpit |
web UI for machines and containers |
System Utilities
| ID |
Description |
tlp |
laptop battery optimisation |
butter |
btrfs snapshot backup manager (AUR) |
localsend |
LAN file transfer, AirDrop-like (AUR) |
croc |
cross-platform encrypted file transfer |
opendeck |
Stream Deck controller — ydotool + OpenDeck (Flatpak) |
localtunnel |
expose localhost over a public URL |
timeshift |
system snapshot and backup with autosnap |
zfs |
zfs-dkms kernel module |
wprs |
Wayland proxy for remote sessions (wprs-git, AUR) |
plymouth-custom |
boot splash with a user-supplied image |
Gaming
| ID |
Description |
steam |
Steam gaming platform |
vesktop |
Discord client with Vencord theme |
spotify |
Spotify launcher with Spicetify theming |
prism |
PrismLauncher Minecraft launcher (Flatpak) |
vintagestory |
Vintage Story survival game (AUR) |
openarena |
open-source Quake III Arena |
tetris |
bastet and vitetris terminal Tetris |
doom |
Chocolate Doom with Freedoom data |
sauerbraten |
Sauerbraten open-source FPS (Cube 2) |
stuntrally |
Stunt Rally racing game (Flatpak) |
Notes & Office
| ID |
Description |
onlyoffice |
office suite — Docs, Sheets, Slides (AUR) |
xournal |
note-taking and PDF annotator |
rnote |
handwriting and note-taking with stylus support (Flatpak) |
obsidian |
knowledge base and Markdown note-taking (Flatpak) |
tangent-notes |
networked Markdown note-taking (Flatpak) |
Media
| ID |
Description |
ffmpeg |
GStreamer codecs and ffmpegthumbnailer |
sox |
command-line audio processing toolkit |
imagemagick |
image manipulation suite |
yt-dlp |
YouTube and media downloader |
Graphic Design
| ID |
Description |
gimp |
GNU Image Manipulation Program |
inkscape |
vector graphics editor |
krita |
digital painting and illustration |
Video Editing
| ID |
Description |
kdenlive |
KDE non-linear video editor |
openshot |
cross-platform video editor |
shotcut |
cross-platform video editor |
Audio Production
| ID |
Description |
ardour |
professional DAW |
audacity |
multi-track audio editor |
lmms |
Linux MultiMedia Studio music production |
mixxx |
DJ mixing software |
cecilia |
audio synthesis and signal processing (AUR) |
Browsers
| ID |
Description |
chromium |
open-source Chromium browser (official) |
firefox-browser |
Mozilla Firefox (official) |
zen-browser |
privacy-focused Firefox fork (AUR) |
nyxt |
keyboard-driven hackable browser (AUR) |
librewolf |
hardened Firefox fork (AUR) |
min-browser |
minimal Electron browser (AUR) |
IDEs & Editors
| ID |
Description |
vscodium |
telemetry-free VS Code build (AUR) |
zed-ide |
high-performance Rust IDE (official) |
geany |
lightweight IDE with plugins (official) |
codeblocks |
C/C++ IDE (official) |
kate |
KDE advanced text editor (official) |
Virtualisation & Remote Desktop
| ID |
Description |
rdp-client |
Remmina with FreeRDP and VNC plugins |
lamco-rdp-server |
native Wayland RDP server (AUR, Rust) |
qemu |
full QEMU/KVM stack with virt-manager |
lamco-rdp-server notes:
- Enabled as a user service:
systemctl --user enable lamco-rdp-server.service
- Start manually:
systemctl --user start lamco-rdp-server
- Optional GUI tray:
lamco-rdp-server-gui
- Requires an
xdg-desktop-portal matching your compositor (-hyprland, -wlr, -gnome, -kde)
Identity & Infrastructure
| ID |
Description |
freeipa-client |
sssd and ipa-client-install with auto-enrollment |
freeipa-server |
interactive FreeIPA server setup with client generator |
freeipa-image |
OCI/LXC/Proxmox image builder with Keycloak |
Container Shell Setups
Scripts in setup/Setup-shell-4-containers/ configure a minimal shell environment inside containers or chroots for each major distribution:
| Script |
Target |
alpine.sh |
Alpine Linux |
arch.sh |
Arch Linux |
debian.sh |
Debian |
fedora.sh |
Fedora |
suse.sh |
openSUSE |
ubuntu.sh |
Ubuntu |
void.sh |
Void Linux |
other.sh |
Generic fallback |