# 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](editors.md)) - **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](hyprland.md) | | `niri` | Niri | Scrollable-tiling Wayland compositor — see [Niri](niri.md) | | `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 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 |