278 lines
9.3 KiB
Markdown
278 lines
9.3 KiB
Markdown
# 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 |
|
|
|----|------|-------|
|
|
| `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
|
|
|
|
<!-- BEGIN GENERATED MODULES: ai -->
|
|
| 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 |
|
|
<!-- END GENERATED MODULES: ai -->
|
|
|
|
### Networking & Security
|
|
|
|
<!-- BEGIN GENERATED MODULES: networking -->
|
|
| 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 |
|
|
<!-- END GENERATED MODULES: networking -->
|
|
|
|
### Development
|
|
|
|
<!-- BEGIN GENERATED MODULES: dev -->
|
|
| 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 |
|
|
<!-- END GENERATED MODULES: dev -->
|
|
|
|
### System Utilities
|
|
|
|
<!-- BEGIN GENERATED MODULES: system -->
|
|
| 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` | boot splash — bundled skull logo and spinner |
|
|
| `plymouth-custom` | boot splash with a user-supplied image |
|
|
<!-- END GENERATED MODULES: system -->
|
|
|
|
### Gaming
|
|
|
|
<!-- BEGIN GENERATED MODULES: 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) |
|
|
<!-- END GENERATED MODULES: gaming -->
|
|
|
|
### Notes & Office
|
|
|
|
<!-- BEGIN GENERATED MODULES: notes -->
|
|
| 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) |
|
|
<!-- END GENERATED MODULES: notes -->
|
|
|
|
### Media
|
|
|
|
<!-- BEGIN GENERATED MODULES: media -->
|
|
| ID | Description |
|
|
|----|-------------|
|
|
| `ffmpeg` | GStreamer codecs and ffmpegthumbnailer |
|
|
| `sox` | command-line audio processing toolkit |
|
|
| `imagemagick` | image manipulation suite |
|
|
| `yt-dlp` | YouTube and media downloader |
|
|
<!-- END GENERATED MODULES: media -->
|
|
|
|
### Graphic Design
|
|
|
|
<!-- BEGIN GENERATED MODULES: graphics -->
|
|
| ID | Description |
|
|
|----|-------------|
|
|
| `gimp` | GNU Image Manipulation Program |
|
|
| `inkscape` | vector graphics editor |
|
|
| `krita` | digital painting and illustration |
|
|
<!-- END GENERATED MODULES: graphics -->
|
|
|
|
### Video Editing
|
|
|
|
<!-- BEGIN GENERATED MODULES: video -->
|
|
| ID | Description |
|
|
|----|-------------|
|
|
| `kdenlive` | KDE non-linear video editor |
|
|
| `openshot` | cross-platform video editor |
|
|
| `shotcut` | cross-platform video editor |
|
|
<!-- END GENERATED MODULES: video -->
|
|
|
|
### Audio Production
|
|
|
|
<!-- BEGIN GENERATED MODULES: audio -->
|
|
| 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) |
|
|
<!-- END GENERATED MODULES: audio -->
|
|
|
|
### Browsers
|
|
|
|
<!-- BEGIN GENERATED MODULES: 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) |
|
|
<!-- END GENERATED MODULES: browsers -->
|
|
|
|
### IDEs & Editors
|
|
|
|
<!-- BEGIN GENERATED MODULES: 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) |
|
|
<!-- END GENERATED MODULES: editors -->
|
|
|
|
### Virtualisation & Remote Desktop
|
|
|
|
<!-- BEGIN GENERATED MODULES: virt -->
|
|
| 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 |
|
|
<!-- END GENERATED MODULES: virt -->
|
|
|
|
**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
|
|
|
|
<!-- BEGIN GENERATED MODULES: infra -->
|
|
| ID | Description |
|
|
|----|-------------|
|
|
| `freeipa-client` | sssd and ipa-client-install with auto-enrollment |
|
|
| `freeipa-server` | interactive FreeIPA server setup with client generator |
|
|
<!-- END GENERATED MODULES: infra -->
|
|
|
|
---
|
|
|
|
## 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 |
|