A developer-focused Arch Linux distribution with Hyprland, BTRFS, and a rolling-release upgrade story.
Website: shedos.org
ShedOS ships as an ISO and a signed pacman repo at
repo.shedos.org. Once installed, an existing
system stays current via shedman update — no reinstall, no image swap.
- Hyprland: Tiling window manager with Catppuccin Mocha theme.
- Waybar: Status bar with media controls, bluetooth, keyboard state, and an update-available indicator.
- Walker: Application launcher with 7+ search engines (StackOverflow, Arch Wiki, etc.).
- Visuals: Custom geometric wallpapers and consistent "ShedOS" branding.
- Screen Recording: Built-in interactive menu (
Super+R). - Color Picker: Integrated
hyprpicker(Super+Shift+P). - Clipboard: History manager via Walker (
Super+C).
- Tools: Neovim (LazyVim), VSCode, Zsh + Oh My Zsh.
- Languages: Pre-configured for Python, Node, Go, Rust, C++.
- Containers: Docker + K8s tools ready (kubectl, minikube, helm, lazydocker).
- Native-package install: All ShedOS-specific content is delivered as signed Arch packages (see
packaging/). - BTRFS: Pre-configured subvolumes and snapshots.
- Secure: Optional LUKS encryption.
- In-place upgrades:
shedman update+ the waybar indicator surface updates the moment they land on the repo. - Self-healing boot: three consecutive failed boots auto-boot the newest snapshot and the desktop explains what happened.
- Manual checkpoints:
shedman snapshot <label>before risky changes; restore viashedman rollback. - Disk health: daily SMART checks and monthly btrfs scrubs surface in
shedman healthand the waybar pill. - Hibernation: wired automatically on machines with a disk swap partition.
WiFi firmware: ShedOS ships the linux-firmware splits for AMD/Intel/NVIDIA GPUs plus Atheros, Realtek, Mediatek, Marvell, Broadcom, and more out of the box — WiFi works on first boot on virtually all laptops.
Printing: not in the default install.
shedman install cups hplip system-config-printerif you need it.
| Key | Action |
|---|---|
Super + Return |
Terminal (Kitty) |
Super + D |
Launcher (Walker) |
Super + B |
Browser |
Super + R |
Record Screen (Menu) |
Super + Shift + R |
Stop Recording |
Super + Shift + P |
Color Picker |
Super + C |
Clipboard History |
Alt + Tab |
Window switcher (most recent first; + Shift reverses) |
Super + Alt + K |
Keybindings reference dialog |
Super + F9 |
Night light toggle |
Click the waybar update indicator, or run:
shedman updateIt surfaces the list of pending updates and waits for your explicit
y/N — the only shedman prompt in the run. After that pacman -Syu
runs (pacman still asks its own questions), AUR updates apply, and
shedman config --sync runs without a second prompt; conflicts land
as .shedosnew files instead of overwriting your edits. See
docs/upgrading.md for the full flow,
including how conflicts surface as .shedosnew files (same model as
pacman's .pacnew).
No ISO reinstall is required to move between releases.
Every ShedOS utility is a subcommand of shedman. The headline set:
| Command | Does |
|---|---|
shedman |
List every subcommand with summaries. |
shedman update |
Interactive upgrade (pacman -Syu + yay -Sua + config sync, bracketed by a snapper snapshot pair). |
shedman config --sync |
3-way merge packaged defaults into $HOME; conflicts land as .shedosnew. |
shedman status |
One-screen dashboard (updates, conflicts, health, doctor). |
shedman rollback -l |
Show recent snapper snapshots to roll back to. |
shedman snapshot <label> |
Manual btrfs checkpoint; restore with shedman rollback. |
shedman db create/drop/list |
Per-project Postgres databases owned by your user. |
shedman tour |
Replay the first-run welcome tour. |
shedman help <cmd> |
Full usage for any subcommand. |
For the full CLI reference (every flag, short aliases, pacman/yay cheatsheets) see shedos.org/docs/commands.
# One-time: hydrate the build-local AUR repo (archiso/shedos-repo/).
sudo make download-packages
# Build the ISO.
sudo make isoThe ISO picks up VERSION from the repo root. For a versioned build
matching a release tag, set SHEDOS_ISO_TAG (this is what CI does):
sudo make iso SHEDOS_ISO_TAG=2026.04.21-rc2ShedOS uses CalVer (YYYY.MM.DD) with optional -rcN suffix:
v2026.05.02-rc1,v2026.05.02-rc2, … — release candidates of one cycle.v2026.05.02— stable cut of that cycle.
Two channels at repo.shedos.org:
/test/x86_64/— every push tomainand every RC tag publishes here. Receiving channel for in-development packages./stable/x86_64/— frozen until promoted. Pushing a stable tag (v<CalVer>without-rcN) triggersrclone copy /test/ → /stable/in CI — no rebuild. Stable userspacman -Syufrom here.
bump-version.sh is hash-aware: only packages whose content drifted
since the manifest in packaging/.last-release-hashes.toml get
pkgver/pkgrel bumped. CI caches per-package builds keyed on content
hash, so unchanged packages skip makepkg entirely.
Installs are fully offline. The ISO ships every package needed for
a default ShedOS install. mkarchiso pacstraps the full environment
into the airootfs squashfs at build time, and Calamares copies that
squashfs onto /target with unpackfs. Target install time is 5–8
minutes; no network connection is required.
For the full pipeline (R2 bucket layout, signing, retention sweep,
build incrementality) see
docs/repo-architecture.md.
# UEFI
./scripts/test-iso.sh
# Legacy BIOS
./scripts/test-iso.sh biosshedos/
├── archiso/ # Archiso profile for the live + install ISO
├── packaging/ # Native shedos-* PKGBUILDs (source of truth)
├── packages/ # Package source-of-truth lists
│ ├── official/*.txt # Arch repo packages, by category
│ ├── aur.txt # AUR packages built locally and shipped
│ └── aur-norepublish.txt # Proprietary AUR (bundled into ISO, never republished)
├── installer/ # Calamares branding + custom Python modules + shared library
├── branding/ # Wallpapers, ASCII logos, /etc/issue, /etc/motd
├── scripts/ # Build, release, and package-list helpers
├── docs/ # Maintainer documentation
├── site/ # Astro source for shedos.org
├── test/ # Fixture-driven test suites
├── .github/workflows/ # CI: build-packages, build-iso,
│ # aur-cache-refresh, deploy-site, tests
├── architecture.txt # System architecture overview
├── Makefile
├── LICENSE
└── VERSION
| Subvolume | Mountpoint | CoW | Purpose |
|---|---|---|---|
@ |
/ |
Yes | Root filesystem |
@home |
/home |
Yes | User data |
@var |
/var |
Yes | Variable data |
@snapshots |
/.snapshots |
Yes | Snapper snapshots |
@log |
/var/log |
No | System logs |
@cache |
/var/cache |
No | Cache files |
@tmp |
/tmp |
No | Temporary files |
@pkg |
/var/cache/pacman/pkg |
No | Package cache |
@srv |
/srv |
Yes | Server data |
@opt |
/opt |
Yes | Optional software |
@docker |
/var/lib/docker |
No | Docker data |
@machines |
/var/lib/machines |
No | systemd-nspawn / VM images |
Contributions are welcome. Changes to packaging/, packages/, or
archiso/airootfs/ ripple through CI automatically — see
docs/repo-architecture.md for what triggers what.
GPL-3.0