Dotfiles/docs/md/modules.md

9.9 KiB

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

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