The openSUSE OS-native layer β zypper, Tumbleweed + Leap, over the shared Core.
Explore the docs Β»
View Demo
Β·
Report Bug
Β·
Request Feature
Table of Contents
dotfiles-openSUSE is the OS-native layer for openSUSE (Tumbleweed + Leap) β
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 openSUSE: zypper, Packman, AppArmor, Btrfs/snapper, and the
Wayland clipboard shim.
openSUSE is stamped from the dotfiles-Fedora
template per the porting matrix. 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 | dotfiles-{MacBook,Windows,Fedora,Arch,openSUSE,Alpine,Gentoo} (this repo among them) |
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.
An openSUSE box (Tumbleweed or Leap, desktop 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-openSUSE ~/dotfiles-openSUSE
cd ~/dotfiles-openSUSE
./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 refreshes zypper metadata,
installs the package list, and symlinks Core + the openSUSE layer into place. It
only refreshes metadata β the dup-vs-up upgrade choice stays yours. Flags:
--links-only (re-link without touching zypper), --no-flatpak.
Only what changes with the OS. The heavy lifting β the shell modules, editor, and prompt β comes from vendored Core; this repo owns the openSUSE specifics:
bootstrap.shβzypperprovision + Core/OS symlink wiring (idempotent)install/packages.txtβ thezypperpackage list (modern CLI stack)os/opensuse.zshβ clipboard + package-manager aliases β~/.config/zsh/os.zshcore/β vendored fromdotfiles-core(read-only here; edit upstream)
The things that actually bite on openSUSE β the Tumbleweed dup vs Leap up
split, the excellent solver, AppArmor (not SELinux), Btrfs/snapper rollback, and
the Packman codec repo β 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 openSUSE. 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).
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