From fd3d79f61fce6b36f54348ab9c020490db0c0b09 Mon Sep 17 00:00:00 2001 From: Fi3w0 <98111375+Fi3w0@users.noreply.github.com> Date: Sat, 3 Oct 2026 23:57:58 +0200 Subject: [PATCH] Trim maintenance clutter and add desktop screenshots --- README.md | 191 ++++++++---------------- assets/Screenshots/Install-script.png | Bin 0 -> 342747 bytes assets/Screenshots/Main-screen.png | Bin 0 -> 3697048 bytes cmd/dots/main_test.go | 207 -------------------------- docs/boot.md | 8 +- docs/ci.md | 2 +- docs/package-audit.md | 29 ---- docs/scripts.md | 54 +++---- optional/fiw-limine-splice | 54 ------- packages/audit-exceptions.json | 3 - tests/test_ci_mirror.py | 52 ------- tests/test_configs.py | 108 -------------- tests/test_devices_capture.py | 119 --------------- tests/test_proposals.py | 131 ---------------- tests/test_release.py | 81 ---------- tests/test_restoration.py | 119 --------------- tests/test_setup.py | 143 ------------------ tools/audit-packages.py | 92 ------------ tools/ci/check.py | 8 +- 19 files changed, 89 insertions(+), 1312 deletions(-) create mode 100644 assets/Screenshots/Install-script.png create mode 100644 assets/Screenshots/Main-screen.png delete mode 100644 cmd/dots/main_test.go delete mode 100644 docs/package-audit.md delete mode 100755 optional/fiw-limine-splice delete mode 100644 packages/audit-exceptions.json delete mode 100644 tests/test_ci_mirror.py delete mode 100644 tests/test_configs.py delete mode 100644 tests/test_devices_capture.py delete mode 100644 tests/test_proposals.py delete mode 100644 tests/test_release.py delete mode 100644 tests/test_restoration.py delete mode 100644 tests/test_setup.py delete mode 100644 tools/audit-packages.py diff --git a/README.md b/README.md index 57a84f5..04987ae 100644 --- a/README.md +++ b/README.md @@ -9,178 +9,109 @@    - -[KDE styling](docs/kde-style.md) · [Shortcuts](docs/shortcuts.md) · [Packages](#package-sections) · [Setup](docs/setup.md) +[Setup](docs/setup.md) · [Shortcuts](docs/shortcuts.md) · [Styling](docs/kde-style.md) · [Packages](#packages) ---- +## About -## Overview +My personal Gentoo restoration kit, mainly for my own devices: -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 colours, fonts, cursor, window styling and my exact keybinds. +- Separate package lists and individually optional app configs. +- Fish, Kitty and Neovim preferences that work across compositors. +- Binaries preferred, with a small deliberate source-build list. +- A Bubble Tea chooser with a final preview, conflict prompts and backups. -- **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. +Package and boot actions still need a first run on a fresh Gentoo installation. -**Work in progress:** configuration restoration and the TUI are ready for review. -Package and boot execution need a supervised first run on a fresh Gentoo system. -The existing installation has not been changed by creating this repo. +## Screenshots + +### Desktop + + + +My running desktop. Wallpapers and panels stay local; the saved Fastfetch +preset uses the built-in Gentoo logo. + +### Installer + + ## Start ```sh -git clone --branch v0.1.2 https://git.fiwlabs.dev/fiwdev/Fiw-Gentoo-Dots.git +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, individual Flatpaks, optional services and -a final preview. Enter saves without applying. `r` runs the full restore; -`a` restores configs, `i` installs Portage packages, `f` installs Flatpaks, -`v` enables selected services and `b` deploys the selected bootloader. -`e` updates configs while preserving local edits; `p` opens pending changes -for a diff and individual acceptance. `u` opens config backups for preview -and restoration. `n` saves a [named device selection](docs/devices.md), available -alongside Stock and Fiw's Ryzen on the preset screen. Apply actions finish -with a [combined report](docs/reports.md) of outcomes and remaining setup. -Linux amd64 includes a verified prebuilt TUI; Git and Python 3.11+ are enough. -Go 1.24+ is the source fallback for changed frontend code or other platforms. -Saved selections are reused on subsequent launches. See the -[snapshot and build instructions](docs/releases.md). +Start from an installed Gentoo system. Linux amd64 includes a prebuilt TUI; +Git and Python 3.11+ are enough. Go 1.24+ is needed only for source builds. +Choose your packages/configs, review the plan, then select an action. +Enter saves your choices without applying them. -Forgejo is the primary repository; [GitHub](https://github.com/Fi3w0/Fiw-Gentoo-Dots) -receives branches and tags through the [CI mirror workflow](docs/ci.md) after -the checks pass. - -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. +See [setup and TUI keys](docs/setup.md), [tagged snapshots](docs/releases.md), +[saved devices](docs/devices.md), [config updates](docs/updates.md) and +[backup restoration](docs/backups.md). ## 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 | +| Stock | Portable settings, binaries preferred | Generic Gentoo binary kernel | +| Fiw's Ryzen | Ryzen 9900X / Zen 5 tuning and NVIDIA | Custom kernel + 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. +Both compile Fastfetch, jq and zip. Selected custom kernels and modules also +compile. Other source builds require a compile-or-skip choice; missing/skipped +packages appear in the [final report](docs/reports.md). -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 +## Packages | 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 | +| [kde](packages/kde.list) | Plasma, Plasma Login Manager and desktop components | +| [fiw-apps](packages/fiw-apps.list) | Everyday apps, including Dolphin, Ark, Gwenview and Spectacle | +| [cli](packages/cli.list) | Shell and terminal utilities | | [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) | FiwNode binary release, Apdatifier Gentoo, OpenDeck and Music Presence | -| [tidewm](packages/tidewm.list) | Optional compositor and supporting utilities | +| [gaming](packages/gaming.list) | Steam, Proton, Prism, MangoHud and r2modman | +| [system](packages/system.list) | System utilities; kernels follow your selection | +| [fiw-tools](packages/fiw-tools.list) | FiwNode, Apdatifier Gentoo, OpenDeck and Music Presence | +| [tidewm](packages/tidewm.list) | Optional compositor and supporting tools | -Filelight, NVIDIA drivers and Btrfs tools are separate extras. Ext4 does not -require Btrfs tools. LocalSend and Sober are individually optional Flatpaks -in the TUI, grouped with apps and gaming respectively. -Limine and GRUB are optional alternatives; retaining the current loader is -the default. Kernel choice is independent of bootloader choice. Deployment -previews the target ESP and firmware choices; see [boot setup](docs/boot.md). -The [package audit](docs/package-audit.md) accounts for all current explicit -selections. [TideWM](docs/tidewm.md) remains an optional source build. +Filelight, NVIDIA and Btrfs tools are separate extras. Sober and LocalSend are +individually optional Flatpaks. Limine and GRUB are optional; keeping the +existing bootloader is the default. See [boot setup](docs/boot.md). ## Configs -Every config is independently selectable, even when its package section is -unchecked—for example, to configure apps already installed. KDE appearance covers -colours, fonts, cursor and window decorations, with matching GTK preferences. -Dolphin styling has its own checkbox. 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. +Every [app config](docs/app-configs.md) is independently optional. KDE styling +includes matching GTK preferences; autostart has its own checkbox. +Neovim's Catppuccin theme, VS Code's ayu MiDas theme, fonts and cursor assets +are bundled with their licences. Accounts and sessions stay local. -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. -Neovim's Catppuccin and VS Code's ayu MiDas themes are bundled with their -respective optional configs, so their styling is available on fresh devices. -Ark, Gwenview and Prism preferences are individually optional too; see -[app configs and requirements](docs/app-configs.md). Each config's required -packages appear in the final preview without changing package selections. - -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`. -The TUI can [review and accept each proposal](docs/updates.md), backing up the -current file and refusing proposals whose target changed since creation. -KConfig patches preserve unrelated keys and groups; JSON patches preserve -unrelated preferences and login data already on the target device. -The TUI can [restore user config backups](docs/backups.md), with a preview, -confirmation and a new backup of the replaced current files. - -## 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 -``` +Local edits are preserved on updates, with proposed changes saved as `.new` +for review. Replaced files get backups. Spotify stays stock; +[customization](docs/spotify.md) and [Firefox-Privacy](docs/firefox.md) are +explicit optional steps. ## Maintenance ```sh -python3 tools/capture.py # recapture only the explicit allowlist -python3 tools/capture.py --config kde-shortcuts # refresh only shortcuts -python3 tools/capture.py --config kitty neovim # refresh only these apps +python3 tools/capture.py --config kde-shortcuts +python3 tools/capture.py --config kitty neovim python3 tools/check-private.py -python3 -m unittest discover -s tests -go test ./... ``` -Missing selected overlays are staged before package resolution. Optional -service presets enable audio, networking, Bluetooth and power profiles for -the next boot/login. See [setup](docs/setup.md) and the [helper list](docs/scripts.md). - -Review captures before committing. `local/` and built binaries are ignored. -See [selective recapture](docs/capture.md) for supported selections and pinned assets. -This repo starts with fresh history. Third-party theme/cursor assets retain -their licence notices; overlay ebuilds retain their original notices. +Review `git diff` before committing. See [capture options](docs/capture.md) +and [helper commands](docs/scripts.md). Device choices and local files are +gitignored. Forgejo is primary; [GitHub](https://github.com/Fi3w0/Fiw-Gentoo-Dots) +receives branches and tags automatically after [CI checks](docs/ci.md). ## 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). - ---- +Original code and configs: [MIT](LICENSE). Bundled third-party assets keep +their own licences; see [credits](docs/assets.md).
Du3bk0fa+2;i~lm0jzt|qC825VnpZ_Y$8&87
zAc&cTB~o!%3ni%l07P6k)?_M=A_6JjxBvlMuh%NmoV5+BlP3VJDMGfY1%bRWC)WXp
zOCaF-F7j3IQG>#=R2Kwt5HMfl5b`O0n2`0QPR(K2I=6DECJ|Hi3SP$u)hIj95hv~Q
zdZm4YFm!*r|2>aP#N~pp4#C>AT+B&5VC>ynj**;1!t)^-u0X0&La_&auaD=`bwR$0
z<-X@03A$f^yb3?qGv o1^DtJ9G)!EF=SCd9#4V_>~F*Kq`+wcLPuy+hRALcsblqZj7a-
zWQ;_Xb8)J?_Mg6qBwmfD9c`-(O9F}s&L+5qaGgNCYFDCP3FWXczx(>{8Qmik*F>H5
zJH}n=LpNH(!JKe47TYX6v5CwovEwDcJP>XUG<%$1g#i!hDHG?2v+key1b0COAQ5rc
zE c_e+LpzZK?j8j}g%I2CtbZp}_uIh*p!g||{i80K2EHm@lHzU`#!~$LCzMk1n
zNOamZvGy!bVQM{NjMHPMw9UX0B&76u=uG1(#g1Cs06OR;5Ycl0vF(Lb@>of-EcR-^
z8FT8Pxv59y(tr^vEPxzyyYJZpIcpM7F~et!-AK#Ahxp)`R6MJ=IhsxK!1L$_$FuB1
z6M&1lkE@A?WrWu;m!O%+nwCVAMHh|H$D|_=eB*za4&EcUX(vvgN?GfcB!tW7skiS;
z+~7J*+3_x7?zTGJD~rU~3pzJ< ql($8p<&x$oTv4n0IYXA&?*CxaBo)#uyU@tGTl|S=}R1;K%$(#3p|Dem#
zpU?wT1@w5V0 CLU%c6Zu1-|!E|)B!
zbcjjEQnZi!tJxz}^d`<+p}{mCT>5ozUGy`N=pVI_6EsU**H#QtwA-MV^$hwSafOb
zx<{nuG3Oa89^ocxAT*z2Bc$eo8;B};kXz#I%oJ;8EUrf|rhgr28`Z63(swl+MS-sw
z{hBl)H1^!Aw8u(6Y5@2OZsT2qpfQ0DuUfI1WH-41mA6ko~f$WMM4D7r~z9T%*eN$;7w&HOJ#3oCo`wiH9=~lv$O;b>Y?ep
zn=Gd_ONMsqVFwTS7GEaX;e`ggnvt!H%bYuhKdob7DB-cf*;;EHnhMY1W>2#9wuy0A
zYtx3qudg2mo1q9vo&FfV!D-;Bxz_~)+Hg~~Oe&rm=NDPey$7gT%c)$l`{YLI`*p2X
zF#i
H{hl=^lRFI#!
zel#=(JkYE7FbmkRt-0sK@WE-=4D+NoBT4Ien_26@w|$2!*8h^*2}GiY<2oI8#ZJq~
z?XchWpJw`aLlaZEzHP0=2U!k*jxIg4>(A8k@oAtq2#aR=`Ane4_0dnj6*KtgV*(@S
zdpf|2*bR&z0N(ctJ1>Zgr``aDK7&%>kZUfDVS73eTrwuV3>!Ga3R6q~+-H#QMpBIn
z2n)kSjXEQEvv>Rs$_Rc>@>2#VjH)!;Wa@{9Pr{AOP1iPJtGCl;VW9&9_*o_Eo4xPz
z0yWjTf<(SC~&3p0Jxg8tiAcY%t#&VT|8>em4(w^Qb
z{JQ5>=gWEh1nY&5t+z`wbm>N(uGxmK3+;aa@WfJ)47gC~L~j8Qf7abXvqm5EU%*wY
zPF-7D|5o~P_x-TtoA%nC2MCiniC=AoU|qKS_^BW}fiovM7Y_ZZNf9z>4_NDQyJdw2
z9a<~_@2bMbIr0LN`c#=ex-^U|>!E%Toqlhl09Hz8XE*C{o@$DK@ta
zc+8aE^X7!}!=*=<>(|NX4%)7A>%P>|A>*7}vR}qtGxQQ7jnah+eu=LJ$Y}Dm`Y*aB
zl?86z$ztK}p(frFOdKD6U|C7LEW6o@urqah7a{ru85Mv`&FGK^5R)eKP-_6J_DqGM
z