# 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 --- ## Desktop Environments | ID | Name | Notes | |----|------|-------| | `hyprland` | Hyprland | Primary DE — see [Hyprland](hyprland.md) | | `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 ``` ### AI & Machine Learning | ID | Package | Description | |----|---------|-------------| | `ollama` | ollama | Local LLM runner with REST API server | | `llama-cpp` | llama.cpp | Standalone inference CLI + server | | `open-webui` | open-webui | Browser UI for Ollama / OpenAI-compatible backends | | `claude` | claude (npm) | Anthropic Claude Code CLI | ### Networking & Security | ID | Packages | Description | |----|---------|-------------| | `networking-cli` | nmap · nethogs · mitmproxy · httpie | Network analysis and HTTP tooling | | `disk-recovery` | ddrescue · f3 | Disk imaging and flash drive testing | | `ssh-server` | openssh | SSH daemon with key-auth enforcement | | `wireshark` | wireshark-qt | Packet capture and analysis GUI | ### Development | ID | Packages | Description | |----|---------|-------------| | `python` | pyright · pipx · pynvim | Python LSP, isolated tool runner, Neovim integration | | `docker` | docker · docker-compose | Container runtime | | `podman` | podman · buildah · podman-compose | Rootless containers | | `cockpit` | cockpit · machines · podman | Web-based system management UI | | `k8s` | kubectl · podman-desktop | Kubernetes CLI and desktop client | | `db-clients` | pgcli · mycli | Enhanced interactive database CLIs | | `mysql` | mariadb | MariaDB server with initial setup | ### IDEs & Editors | ID | Package | Description | |----|---------|-------------| | `vscodium` | vscodium-bin (AUR) | VS Code without telemetry | | `zed-ide` | zed | High-performance Rust IDE | | `geany` | geany · geany-plugins | Lightweight IDE | | `codeblocks` | codeblocks | C/C++ IDE | | `kate` | kate | KDE advanced text editor | ### Browsers | ID | Package | Description | |----|---------|-------------| | `chromium` | chromium | Open-source Chromium | | `firefox-browser` | firefox | Mozilla Firefox | | `zen-browser` | zen-browser-bin (AUR) | Privacy-focused Firefox fork | | `nyxt` | nyxt (AUR) | Keyboard-driven, hackable browser | | `librewolf` | librewolf-bin (AUR) | Hardened Firefox fork | | `min-browser` | min (AUR) | Minimal Electron browser | ### Gaming | ID | Package | Description | |----|---------|-------------| | `steam` | steam | Steam gaming platform | | `vesktop` | vesktop (AUR) | Discord client with Vencord built-in | | `spotify` | spotify (AUR) + spicetify | Music player with CyberQueer theme | | `prism` | prismlauncher (Flatpak) | Minecraft launcher | | `vintagestory` | vintagestory (AUR) | Survival / voxel game | ### Media & Creative | ID | Packages | Description | |----|---------|-------------| | `ffmpeg` | gst-plugin-pipewire · gst-plugins-good · ffmpegthumbnailer | GStreamer codecs + thumbnailer | | `sox` | sox | Command-line audio processing | | `imagemagick` | imagemagick | Image manipulation suite | | `yt-dlp` | yt-dlp | YouTube / media downloader | | `blender` | blender | 3D creation suite | | `gnuplot` | gnuplot | Scientific plotting | | `povray` | povray | Ray-tracing renderer | ### Productivity | ID | Packages | Description | |----|---------|-------------| | `productivity` | taskwarrior · watson · jrnl | Task management, time tracking, journaling | | `himalaya` | himalaya (AUR) | Terminal email client | | `toot` | toot (AUR) | Mastodon CLI client | ### System Utilities | ID | Packages | Description | |----|---------|-------------| | `tlp` | tlp · tlp-rdw | Laptop battery optimisation | | `zfs` | zfs-dkms | ZFS kernel module | | `wprs` | wprs-git (AUR) | Wayland proxy for remote sessions | | `butter` | butter (AUR) | Btrfs snapshot backup manager | | `localsend` | localsend (AUR) | LAN file transfer (AirDrop-like) | | `croc` | croc | Cross-platform encrypted file transfer | | `localtunnel` | localtunnel (npm) | Expose localhost over a public URL | | `onlyoffice` | onlyoffice-bin (AUR) | Office suite (Docs, Sheets, Slides) | ### Identity & Infrastructure | ID | Description | |----|-------------| | `freeipa-client` | sssd + ipa-client-install + auto-enrollment (see [FreeIPA](freeipa-ansible.md)) | | `freeipa-server` | Interactive FreeIPA server setup + client generator | | `freeipa-image` | OCI / LXC / Proxmox LXC image builder + 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 |