# Fiw-Gentoo-Dots
**My Gentoo setup, ready to make home feel like home again.**




[KDE & apps](#configs) · [Packages](#package-sections) · [Setup](docs/setup.md)
---
## Overview
A personal Gentoo rice and restoration kit: my Plasma styling, current
shortcuts, package lists and the app preferences I use every day. Built
mainly for my own devices, with deliberate updates and a preview before
anything is applied.
- **KDE first:** colours, fonts, cursor, window styling and current keybinds.
- **Pick what you want:** package sections and individually optional app configs.
- **Portable terminals:** Fish, Kitty and Neovim work across compositors.
- **Binaries preferred:** a small source list, with a choice before extra builds.
- **Keep your edits:** conflict prompts, backups and `.new` proposals on updates.
**Work in progress:** configuration restoration and the TUI are ready for review.
Package installation needs a supervised first run on a fresh Gentoo system.
The existing installation has not been changed by creating this repo.
## Start
```sh
git clone https://git.fiwlabs.dev/fiwdev/Fiw-Gentoo-Dots.git
cd Fiw-Gentoo-Dots
./install
```
The Bubble Tea interface offers a preset, package sections, individual app
configs, kernel/bootloader choices, extras, and a final preview. Enter at the
preview saves a selection without applying it. `a` restores configs; `i`
starts the package installation workflow with sudo. Go 1.24+ builds the TUI;
Python 3.11+ runs the backend. Go dependencies are recorded in go.mod/go.sum.
For a preview without building the TUI:
```sh
./install --plan --profile stock
./install --plan --profile fiw-ryzen
```
See [setup](docs/setup.md) for installation steps and draft limitations.
## Presets
| Preset | Build settings | Kernel |
|---|---|---|
| Stock | Portable compiler settings; binary packages preferred | Generic Gentoo binary kernel |
| Fiw's Ryzen | Current Ryzen 9900X/Zen 5 tuning and NVIDIA configuration | Tested custom kernel plus generic binary fallback |
Both deliberately compile Fastfetch, jq and zip. Custom kernels and their
matching external modules compile when selected. Other packages prefer
Portage binaries or upstream `-bin` packages. Additional source builds
require a compile-or-skip choice, with compilation recommended; skipped
dependencies also cause dependent requested applications to be skipped.
The custom kernel snapshot currently targets 7.2.8 with the tested
CachyOS 7.2.7-1 patch. Refresh it explicitly when updating the snapshot.
## Package sections
| List | Contents |
|---|---|
| [kde](packages/kde.list) | Plasma, Plasma Login Manager, desktop components and supporting fonts |
| [fiw-apps](packages/fiw-apps.list) | Everyday apps including Dolphin, Ark, Gwenview and Spectacle |
| [cli](packages/cli.list) | Shell, terminal utilities and FFmpeg |
| [dev](packages/dev.list) | Languages and development tools |
| [gaming](packages/gaming.list) | Steam, Proton, Prism, MangoHud and r2modman; Sober is in flatpaks/gaming.list |
| [system](packages/system.list) | System utilities; the selected kernels are added by the installer |
| [fiw-tools](packages/fiw-tools.list) | OpenDeck and Music Presence; FiwNode and Apdatifier packaging is pending |
| [tidewm](packages/tidewm.list) | Optional compositor and supporting utilities |
Filelight, NVIDIA drivers and Btrfs tools are separate extras. Ext4 does not
require Btrfs tools. LocalSend is an optional Flatpak in the apps section.
Limine and GRUB are optional alternatives; retaining the current loader is
the default. Kernel choice is independent of bootloader choice.
## Configs
Every config is independently selectable. KDE appearance covers colours,
fonts, cursor, window decorations and Dolphin styling. Panels, widgets and
wallpapers are excluded. All portable current shortcut assignments,
including disabled defaults, are captured with their launchers and helpers;
unused machine-specific activity IDs are omitted.
Fish, Kitty and Neovim are usable without KDE or KWin. Fastfetch keeps the
tree layout and purple colours with the built-in Gentoo logo. MangoHud and
Vesktop preferences are included; browser profiles, chat sessions and account
data are excluded. App autostart is a separate optional selection.
Spotify is stock by default. The existing customization scripts remain an
[explicit optional step](docs/spotify.md). [Firefox-Privacy](docs/firefox.md)
is also optional.
Existing differences prompt apply-or-keep and get backups when replaced.
Updates leave locally edited configs intact and write the proposal to `.new`.
KConfig patches preserve unrelated keys and groups; JSON patches preserve
unrelated preferences and login data already on the target device.
## Project layout
```text
cmd/dots/ Bubble Tea selection interface
configs/ Optional KDE and app configs
packages/ Categorized Portage package lists
presets/ Stock and Fiw's Ryzen defaults
portage/ Build settings and binary preferences
overlay/ Selected additional packages
optional/ Kernel, boot and app helpers
flatpaks/ Separate optional Flatpak lists
docs/ Setup, decisions and asset credits
```
## Maintenance
```sh
python3 tools/capture.py # recapture only the explicit allowlist
python3 tools/check-private.py
python3 -m unittest discover -s tests
go test ./...
```
Review captures before committing. `local/` and built binaries are ignored.
This repo starts with fresh history. Third-party theme/cursor assets retain
their licence notices; overlay ebuilds retain their original notices.
## License
Original code and configuration contributions are licensed under [MIT](LICENSE).
Bundled third-party assets, fonts, patches and ebuilds keep their own licences
and attribution; see [asset credits](docs/assets.md).
---
A personal Gentoo setup by Fiw.