Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation


Logo

🦎 dotfiles-openSUSE

The openSUSE OS-native layer β€” zypper, Tumbleweed + Leap, over the shared Core.
Explore the docs Β»

View Demo Β· Report Bug Β· Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. What's In This Layer
  4. Contributing
  5. License
  6. Contact

About The Project

dotfiles-openSUSE β€” terminal demo

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,Debian,openSUSE,Alpine,Gentoo} (this repo among them) package manager, clipboard, paths
Role dotfiles-Offense, dotfiles-Defense offensive / defensive tooling

Languages

No new languages β€” this layer is shell and package config over Core's language stack.

Tools

(back to top)

Getting Started

Prerequisites

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.

Installation

git clone https://github.com/dotgibson/dotfiles-openSUSE ~/dotfiles-openSUSE
cd ~/dotfiles-openSUSE
./bootstrap.sh
exec zsh

core/ is a vendored copy 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.

Not sure what it will touch? Preview the whole plan first β€” this writes nothing:

./bootstrap.sh --dry-run
Flag Effect
--dry-run Print every link/seed/backup that would happen; mutate nothing
--links-only Re-wire symlinks without touching zypper
--no-flatpak Skip the Flathub remote (already auto-skipped on WSL)
--only zsh,nvim Wire ONLY these Core module groups
--skip tmux Wire everything EXCEPT these groups
--tolerate-failures Exit 0 even if optional tools failed (for CI)

Module groups: zsh nvim tmux git prompt tools. --only and --skip are mutually exclusive and affect wiring only, never package provisioning.

Exit codes: 0 success Β· 1 bad arguments or a failed precondition Β· 2 the run completed but one or more optional tools failed to install β€” the failure ledger is printed at the end with a retry command for each, so a lossy install is never silently reported as a clean one.

Escalation is via sudo by default. On a box with no sudo, set BLIB_SU="" when running as root, or BLIB_SU=doas.

Windows / \\wsl.localhost checkouts: run git config core.fileMode false in your clone. See CONTRIBUTING.md β€” without it, git reports every executable as modified and a commit can strip +x from bootstrap.sh.

(back to top)

What's In This Layer

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 β€” zypper provision + Core/OS symlink wiring (idempotent)
  • install/packages.txt β€” the zypper package list (modern CLI stack)
  • os/opensuse.zsh β€” clipboard + package-manager aliases β†’ ~/.config/zsh/80-os.zsh
  • test/ β€” the repo's own suite: is the package list still installable, and do the Tumbleweed and Leap capability declarations still differ in only the two ways they may?
  • core/ β€” vendored from dotfiles-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 :

β†’ dotfiles-openSUSE on the documentation hub

(back to top)

Contributing

This is an OS-native layer, so the contribution rule is a boundary rule:

  1. Never hand-edit core/. It is a vendored copy of dotfiles-core and is overwritten on the next sync. Fix shared config upstream in dotfiles-core, run make audit there, then make sync fans it out here.
  2. 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.
  3. Green the lint gate. This repo's CI runs shellcheck + bash -n / zsh -n on the repo-owned shell (the vendored core/ is excluded β€” it is gated upstream), plus this repo's own suite in test/. Run make test before pushing to get the same answer locally.

Full details, including the Windows checkout caveat and the local gate, are in CONTRIBUTING.md . Security policy: SECURITY.md .

Bugs and ideas: open an issue.

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

Garrett Allen - @gerrrrt - garrettallen2@gmail.com - LinkedIn

Project Link: dotgibson

(back to top)

About

🦎 The openSUSE layer (zypper β€” Tumbleweed + Leap) of a cross-platform dotfiles system. Shared zsh/nvim/tmux core, native glue.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /