The Fedora OS-native layer β and the template every other Linux repo is stamped from.
Explore the docs Β»
View Demo
Β·
Report Bug
Β·
Request Feature
Table of Contents
dotfiles-Fedora is the OS-native layer for Fedora β one node in a
cross-platform dotfiles system. The shared Core (zsh, tmux, Neovim, git,
starship, mise) is authored once in
dotfiles-core and vendored under
core/ via git subtree, so a clone is self-contained. This repo adds only what
is genuinely Fedora: dnf + RPM Fusion, Flathub, the Wayland clipboard shim, and
SELinux helpers.
It is also the template the other Linux repos are stamped from β swap the package manager and clipboard backend, keep the structure. The full docs live on the documentation site.
The system is three layers, each building on the one below:
| Layer | Lives in | Owns |
|---|---|---|
| Core | dotfiles-core β vendored into every OS repo's core/ |
zsh, tmux, nvim, git, starship β identical everywhere |
| OS-native | this repo + dotfiles-{MacBook,Windows,Arch,openSUSE,Alpine,Gentoo} |
package manager, clipboard, paths |
| Role | dotfiles-Kali, dotfiles-Defense |
offensive / defensive tooling |
No new languages β this layer is shell and package config over Core's language stack.
A Fedora box (Workstation, Server, or a WSL image) and Git. Everything else β
zsh, tmux, nvim, starship, and the modern-CLI stack β is provisioned by
bootstrap.sh.
git clone https://github.com/dotgibson/dotfiles-Fedora ~/dotfiles-Fedora
cd ~/dotfiles-Fedora
./bootstrap.sh
exec zshcore/ is a vendored subtree and is already present in a clone β there is no
submodule step. bootstrap.sh is idempotent: it provisions dnf packages and
symlinks Core + the Fedora layer into place. Flags: --links-only (re-link
without touching dnf), --no-flatpak (skip Flatpak).
Only what changes with the OS. The heavy lifting β the shell modules, editor, and prompt β comes from vendored Core; this repo owns the Fedora specifics:
bootstrap.shβdnfprovision + Core/OS symlink wiring (idempotent)install/packages.txtβ thednfpackage list (modern CLI stack)os/fedora.zshβ clipboard + package-manager aliases β~/.config/zsh/os.zshcore/β vendored fromdotfiles-core(read-only here; edit upstream)
The things that actually bite on Fedora β dnf5, RPM Fusion, the Wayland clipboard
shim, and SELinux (se-restore / se-denials / se-why) β are written up on
the hub, alongside the per-distro porting matrix:
This is an OS-native layer, so the contribution rule is a boundary rule:
- Never hand-edit
core/. It is a vendored copy ofdotfiles-coreand is overwritten on the next sync. Fix shared config upstream indotfiles-core, runmake auditthere, thenmake syncfans it out here. - Keep changes genuinely Fedora. If it would be identical on every distro, it belongs in Core; if it changes with the operator, it belongs in a role repo.
- Green the lint gate. This repo's CI runs shellcheck +
bash -n/zsh -non the repo-owned shell (the vendoredcore/is excluded β it is gated upstream).
Structural changes to the OS-native layout start here and propagate per the porting matrix. Bugs and ideas: open an issue.
Distributed under the MIT License. See LICENSE for more information.
Garrett Allen - @gerrrrt - garrettallen2@gmail.com - LinkedIn
Project Link: dotgibson