Changelog
One entry per stable release; release candidates roll up into the stable that follows them. The same notes appear on each GitHub Release.
v2026.05.17
2026-05-17Fixed
-
installerbackstop /dev/shm cleanup with fuser and lazy unmount -
installerbypass login shell when generating the user's ssh key -
ciprefetch local pkgs' runtime deps by sourcing their PKGBUILDs -
ciskip prefetch for local pkgs without a built artifact
v2026.05.16
2026-05-16New
-
hyprlandkeep jetbrains-toolbox below the waybar -
waybarclick the clock to open the datetime TUI -
shedmanadd a datetime TUI for timezone, NTP, and manual time -
shedmanship the AUR bundle from shedos-system, install on update -
shedmanbundle fingerprint drivers for pacman -U -
shedmanremove legacy hyprlock before upgrading -
shedmanrefresh mirrorlist before update/migrate; daily cadence -
shedmanmigrate installs the proprietary AUR list via yay -
shedmanauto-migrate pre-cutover installs from shedman update
Fixed
-
ciinclude calamares and cage in the prefetch list -
makedrop iso size cap -
ciinclude -debug splits in the AUR phantom-prune -
packagesdrop goodix-v2 and xps9300-bin from bundle and norepublish -
cistop rebuilding cached shedos packages every run -
buildinvalidate shedos-system cache on AUR bundle drift -
installerexclude full Calamares state from unpackfs copy -
shedmanwire shedos-system migrations into post_install
Internals
-
installerdrop dead shedos_mirrors Calamares module
v2026.05.15
2026-05-15New
-
shedmanconfig --review opens as a centered floating window -
shedmancut over to ReviewScreen and delete the old screens -
shedmanReviewScreen routes file tree + merge panel events -
shedmanMergePanel widget combining 3-pane and single-pane -
shedmanFileTreePanel widget hosting the conflict tree -
shedmanadd inter-widget Message classes for config --review -
shedmanv toggles between 3-pane and single-pane merge views -
shedmanSinglePaneScreen for the merged-result view -
shedmansingle-pane merge renderer -
shedmanbind Enter on the merge screen to the decision modal -
shedmanadd DecisionModal overlay for merge resolution -
shedmanstatus flash after every merge decision -
shedmanadd RESULT preview pane to 2-way merges
Fixed
-
shedmanpost-cutover hotfixes for the IDE review layout -
shedmansingle-pane save runs the same flow as 3-pane -
shedmansingle-pane decisions land with visible feedback -
shedmanuse callback-form push_screen for the decision modal -
shedmanprune MergeScreen footer to essentials -
shedmanHunkStrip shows resolved color on the current hunk -
shedmandefault config --review to the TUI -
waybarkeep update + review terminals open until acknowledged -
shedmansurface pacman prompts in interactive update mode -
shedos-kernelown /boot/vmlinuz-shedos-kernel so upgrades are atomic -
initramfsmigrate mkinitcpio HOOKS off legacy udev+keymap
Internals
-
shedmanhoist MergeState + current_hunk to ReviewApp -
shedmandrop Side.SKIP from config --review
v2026.05.14
2026-05-14New
-
cagedownstream package with touchpad tap-to-click enabled -
shedos-systemexport XDG defaults via /etc/profile.d -
config-reviewswap Meld GUI backend for VS Code merge editor -
hyprlandtheme Meld with Catppuccin Mocha to match the TUI -
config-reviewadd a Meld GUI backend for folder-mode merges -
config-reviewreplace the flat file list with a directory tree -
config-reviewsyntax-highlight the merge TUI hunk panes -
config-reviewword-level diff highlighting within paired hunk lines -
hyprlandworkspace overview via Hyprspace -
hyprlandadd a workspace overview gesture via hyprexpo -
hyprlandbind touchpad swipe and pinch gestures -
shedmanrestore stripped locale and man files on existing installs -
hyprlandship the application dock and full-screen app drawer -
shedmanadd dock subcommand for managing the app dock -
shedmanadd uninstall subcommand with --search -
powerreplace the Waybar power menu with an overlay client -
prompt-uiadd a power dropdown to greeter and lock -
prompt-uireplace text branding with the SHEDOS wordmark -
prompt-uiswitch greeter and lock clock to 12-hour format -
screensaverrebuild logo catalog with 38 solid-fill variants -
systemzsh tab-completion mirrors the bash positional protocol -
systemtab-complete fingerprint args, classify libfprint variant -
hyprlandautostart daemons via systemd -
hyprlandrespawn Hyprland on crash, relock if needed -
screensaverswap hyprlock for our own lock client -
systemshedman fingerprint subcommand -
screensaverfingerprint icon and hint on the lock prompt -
screensaverparallel fingerprint auth thread -
screensaverbundle fprintd and TOD drivers, ship fingerprint pam.d -
screensavercycle screensaver, prompt, and dpms in lock mode -
screensaveradd wlr-output-power-management bindings -
screensaveradd lock-screen state machine -
screensaverauthenticate the lock screen via PAM -
screensaveradd --mode=lock using ext-session-lock-v1 -
screensaverscaffold ext-session-lock-v1 plumbing -
makeadd push target that rebases before pushing -
shedos-systemclear VT text buffers before greetd takeover -
bootmirror Limine config to ESP after rendering -
prompt-uiinotify watcher for live theme reloads -
prompt-uiload theme from greeter.toml with per-field fallback -
prompt-uiport widget rendering from greeter -
prompt-uiscaffold shared lock-surface crate -
themeemit a blurred wallpaper companion -
themeapply wallpaper changes live -
themerefuse to swap broken theme outputs -
releaseadd release-stable and release-rc Makefile targets
Fixed
-
cirefresh pacman cache before mkarchiso -
cibuild cage with --syncdeps so meson is installed -
cmdlinedrop fbcon=map:99 so VT switching works -
greeterESC clears the password input instead of exiting -
prompt-uicap password dots and move CAPS tag to the left -
urlscorrect Theshedman/shedos casing across tracked files -
shedos-hyprland-plugin-hyprspacebump _commit to a181f4a -
ciroll up rc release notes into the stable release -
nvimpreserve XDG_CONFIG_HOME across sudo -
cilet verify-cache.sh fall back to archiso/shedos-repo -
hyprlandskip dim while the screensaver lock runs -
hyprlandbrand the dock launcher and silence the drawer's gtk borders -
nvimmake sudo nvim load the shedos config -
installerstop the live-ISO launcher entry from leaking -
config-reviewrename FileTreeScreen.tree to avoid Screen collision -
packageslist python-dbus in source list for shedos-system dep -
config-reviewbail out cleanly on pathological file sizes -
shedman configwrite manifest and BASE atomically, BASE-first -
config-reviewauto-resolve identical-edit hunks in 3-way merge -
hyprlandrender overview thumbnails inside their workspace boxes -
hyprlandmake overview thumbnails render and reflow windows below the panel -
installerverify locale-gen actually ran after Calamares -
waybarwrap the launch so the clock survives a fragile locale -
archisoship the full locale.gen template -
archisokeep locales, man pages, and docs on the live ISO -
hyprlandinstall the waybar logo and keybindings dialog assets -
packagingpull shedos-power into shedos-hyprland and shedos-meta -
cihash symlink targets so dead absolute-path symlinks don't break pkg-hash -
hyprlandput drawer on overlay layer with explicit waybar/dock margins -
waybarmatch logo and right-side pill hover to the workspace-button style -
shedmancorrect pinned-file path and use pkill -x for dock toggle -
zshrcstop aliasing grep to ripgrep -
hyprlandcatch the airootfs config up with Hyprland 0.55 schema -
installerkill chroot stragglers before umount so the install completes -
waybarunify right-side icon pills with the workspace-button box style -
packagesdrop libfprint-2-tod1-xps9300-bin -
packagesdrop libfprint-2-tod1-goodix-v2 -
ciwire shedos-repo into download-packages so AUR-only deps resolve -
ciunblock aur-cache-refresh on ananicy-cpp-git under gcc 15 -
shedmaninstall the fingerprint subcommand binary -
screensaverclear hyprshade dim before the lock surface renders -
shedmanload review excludes from config, skip git trees by default -
systempass locale env through sudo -
ciexempt shedos-power from makepkg --cleanbuild -
themepoint GTK at the installed Catppuccin directory name -
systemsilence shutdown watchdog and wire Plymouth shutdown splash -
hyprlanddim every monitor on idle via hyprshade -
waybarhide empty custom-module slots, drop the doctor module -
hyprlandcatch the skel config up with Hyprland 0.55 schema -
installerdrop hyprlock from the calamares module -
packagesship sof-firmware, drop hyprlock from the meta -
screensaverpause fingerprint auth thread outside prompt phase -
screensaversuppress spurious fingerprint failure flashes -
screensaveradd clang to makedepends for pam-sys bindgen -
hyprlandgive the waybar shedos-logo a rounded chip -
packagesadd openssl-1.1 dep for libfprint-2-tod1-elan -
cimatch aur build-local pacman section to its db filename -
ciregister cached AUR pkgs in [shedos-aur-build] before makepkg -
installeraccept 8 GB machines in calamares ram check -
updatehandle conflicts= under --noconfirm -
ciinstall built AUR packages so intra-batch deps resolve -
hyprlandbypass start-hyprland watchdog -
screensaverreal-time fingerprint feedback -
screensaverswap stock libfprint for libfprint-tod -
systemset lenient faillock policy (deny=6, unlock_time=300) -
hyprlandset allow_session_lock_restore -
installwrite encoding-qualified locale to /etc/locale.conf -
hyprlandpin wayland-wm stderr to journal -
shedos-systempin [email protected] stderr to journal -
systemdset ShowStatus=no in system.conf and user.conf -
greetdclaim tty1 exclusively -
greetdredirect cage stdio to journald -
installstrip live-ISO welcome banner from installed systems -
greetershow user-friendly auth error messages -
greetercancel greetd session on auth failure to allow retry -
shedos-systemself-correcting cmdline backfill v2 -
installerremove console=tty1 from install-time cmdline -
shedos-hyprlandhold plymouth shutdown 1s for Hyprland DRM release -
shedos-systemback-fill UX cmdline tokens for pre-6f8a21a installs -
prompt-uipaint wallpaper per output rather than spanning canvas
Internals
-
config-reviewsplit TUI palette into hue and semantic layers -
screensaverdrive the wayland event loop via calloop -
screensaverroute OutputSurface through ShellBinding -
greeterconsume shedos-prompt-ui for shared rendering
Docs
-
config-reviewtrim skip-auto-decided comment -
shedmansurface touchpad gestures in the keybindings dialog -
screensaverdocument lock mode -
systemshedman fingerprint man page
Testing
-
config-synccover last-notified-conflict-count in expected-state -
config-reviewcover yours-only and theirs-only auto-classification -
config-reviewcover BOTH_TY, SKIP, 2-way nonoverlap, whole-file identical
Chores
-
greetercollapse pointer press guard into pattern binding -
prompt-uisilence too_many_arguments on pub fn render -
shedmanremove the first-boot welcome -
misctidy archiso, keyring scripts, i18n -
packagestidy tree configs and scripts -
packagesfinish install-scriptlet tidy -
packagestidy install scriptlets -
packagestidy PKGBUILD comments -
citidy workflow comments -
scriptstidy build and helper scripts -
systemtidy shedman config-review TUI -
systemtidy shedman large subcommands -
systemtidy shedman medium subcommands -
systemtidy shedman small subcommands -
screensavertidy effects R-W -
screensavertidy effects I-Q -
screensavertidy effects E-I -
screensavertidy effects A-D -
screensavertidy effects framework -
screensavertidy support crates -
screensavertidy cli sources -
screensavertidy wayland surface -
screensavertidy core modules -
screensavertidy wayland modules -
greetertidy module sources -
screensavertidy lock and auth sources -
prompt-uitidy module sources -
systemtidy shedman completions -
scriptstidy lock-migration + fingerprint -
systemdtidy user units -
packagesdrop stale hyprlock and sddm references -
screensaverpost-upgrade notice for hyprlock removal -
screensaverdrop hyprlock -
screensaversilence clippy warnings across the workspace
v2026.05.08
2026-05-08New
-
devopsadd kubectl, minikube, and helm to default devops set -
keybindingsredesigned reference dialog -
waybaradd ShedOS S logo at far left -
screensaverthree patterned logo variants -
screensaverfive light/illumination effects -
screensaverthree multi-row logo variants -
screensaverfive new logo variants -
screensaverfive geometric-assembly effects -
screensaverfive particle-system effects -
screensaverfive atmospheric-reveal effects -
screensaverper-logo Catppuccin palettes -
screensaveradd --survey for catalog review -
screensaverrender independently on each output -
greetersmooth post-auth transition; suppress console flash -
applyadd [services.docker] enable toggle
Fixed
-
browseropen the system default in a new window -
installerbake UX-critical cmdline tokens into install-time baseline -
keybindingsadd -w flag to nautilus command for opening in a new window -
cigate kernel-cache save on actual files; treat empty hit as miss -
cigate shedos-system pacman.conf hook on build-environment marker -
citrust workspace for git in build-iso and build-packages -
releasehash tracked files only via git ls-files -
cistrip prod [shedos] / [shedos-testing] blocks during build -
applyuse re.sub for cmdline rewrites to avoid prefix collisions -
applyreconcile kernel cmdline across all Limine entries -
screensaveralign --version with package CalVer -
screensaverwayland renderer hung silently on Hyprland -
i18nmake embedded en-US the actual hard fallback -
screensaverdrop unfilled logo variants; rewrite big -
greeterrender UI on primary output only on multi-monitor setups -
keyringorder pam_gnome_keyring after system-local-login -
civerify AUR upstream signatures instead of blanket --skippgpcheck -
packagingdrop calamares from shedos-meta
Internals
-
mirrorlistsingle script for reflector flags shared across the three callers -
installermove wifi persistence from shedos_configs to shedos_finalize
Docs
-
kernelcorrect PKGBUILD note about config provenance - align with offline-install reality; sweep stale references
Testing
-
installercover six untested Calamares custom modules
Chores
-
brandingpoint os-release at shedos.org and drop the orphan -
installerdrop 16 orphan branding assets -
installerdrop welcome geoip probe - drop unused shedos_plymouth.conf
- drop dead scripts; correct stale comment in shedos_finalize
v2026.05.06
2026-05-06New
-
bumpauto-refresh local source hashes on every bump -
hyprkeybindings menu, auto-reload path unit, browser-default helper -
hypridle4min screensaver, 5min lock, 7min dpms-off -
devMAKEFLAGS=-j$(nproc) + bigger inotify/file-max for IDEs -
powerTLP battery profile + PCIe runtime PM udev rule -
keyringship pam_gnome_keyring so login unlocks the secret store -
hypridle5min screensaver, 10min lock, 12min dpms-off -
autostartlaunch jetbrains-toolbox on login -
hyprlandhorizontal workspace slide instead of vertical -
reflectorweekly mirrorlist refresh on installed system -
lockscreensaver renders above hyprlock; first key dismisses -
bootbridge cage→hyprland gap via deferred plymouth quit
Fixed
-
rc2drop broken DKMS; full BIOS install support; keyring default=login -
packageslist inotify-tools in source list for shedos-hyprland dep -
packagesbroaden WiFi + BT device support (firmware + RTL8821AU DKMS) -
kerneldrop DEBUG_INFO_REDUCED — incompatible with BTF (breaks bpftool vmlinux.h) -
cikernel cache hardening (skip empty saves) -
kernelapply auto-refreshed config.x86_64 hashes -
isodrop cow_spacesize 4G→2G + zstd 22→19 (8GB-RAM installs) -
ciexplicit fetch tags so release notes find prev tag -
applyexit cleanly when not running as root - strip explanatory comments per house style
-
greeterredirect uwsm/hyprland stdio so it stops bleeding to greeter VT -
applymirror limine.conf to ESP locations on cmdline write -
applyallow [theme] top-level key (consumed by theme_renderer) -
skel-healskip self-heal in live ISO chroot (no live-zprofile strip) -
cmdlineadd console=tty1 to keep console out of greeter VT -
greetdvt = "next" so console output stays off greeter VT -
zshrcdrop unset BAT_THEME export -
autostartdrop dup welcome exec-once; jetbrains starts minimized -
skelstrip live-ISO autostart from .zprofile; self-heal existing users -
siteshow same-date RC alongside stable -
builddrop chmod for deleted customize_airootfs.sh -
servicestrack greetd, not sddm (login manager swapped) -
packaginginstall plymouth-bridge script + drop-in -
welcomeinline-validate email instead of re-execing the script -
archisoreplace customize_airootfs.sh with pacman hooks + static airootfs files -
brandingdefer plymouth -R until kernel presets exist
Performance
-
kerneldebug-info REDUCED + zstd-compressed (BTF preserved)
Docs
-
keybindingsdefault web browser + Super+Alt+K menu
v2026.05.04
2026-05-04New
-
hyprlandSuper+E code, Super+N nautilus, Super+A postman -
installoffline unpackfs from prebuilt install.sfs -
installunpackfs bundle + bundled AUR proprietaries -
installaria2c XferCommand + ParallelDownloads=10 + reflector pre-flight -
releasehash-aware bump + --check + CI auto-bump + atomic release -
installdefault-install dev apps via yay; drop netinstall picker -
isoboot live ISO from shedos-kernel only; drop stock linux -
isolive ISO auto-launches into Hyprland with waybar + wifi + Calamares -
buildtrack BUILT_PKGS in build-shedos-packages.sh -
installcode ships by default; remove from optional picker -
idlescreensaver continues through hyprlock via transparent surface -
buildper-package cache + manifest-aware build flow -
buildhash-aware bump-version.sh; only bump changed packages -
buildcompute-pkg-hash.sh helper -
installerCalamares optional-apps screen via packagechooser + custom job -
shedmanrewrite install as a unified CLI wrapper -
installerrequire network at Calamares start -
installertrim shedos_finalize redundancies post-pacstrap -
installerpacstrap-based install replaces unpackfs -
installertrim live ISO package set -
systempacman.conf marker block uses path-segmented URL -
hyprlandexport WAYLAND_DISPLAY to systemd-user + dbus on session start -
hyprlandexit binding prefers uwsm stop for clean session teardown -
greeterstart_session via uwsm + clear-tty wrapper for clean handoff -
hyprlandskip hyprlock at boot — only lock on idle/manual/suspend -
screensaversystemd user service replaces systemd-run + pkill lifecycle -
greetdswitch default_session to cage + shedos-greeter -
shedmantheme subcommand for set/get/list/apply -
themeuser configs source theme outputs (wallpaper + GTK + CSS) -
themetheme reconciler + 4 Catppuccin Mocha palettes -
greeterwrong-password feedback (red border + error text) -
greetergreetd IPC client + auth flow on Enter -
greeterkeyboard input + password input box rendering -
greeterclock + branding text via JetBrainsMono Nerd Font -
greeterwlr-layer-shell fullscreen + wallpaper render -
greeterscaffold shedos-greeter Rust crate skeleton -
installerfinalize uses greetd, drop calamares displaymanager -
live-isoautologin via greetd initial_session -
systemship greetd + regreet + hyprpaper configuration
Fixed
-
packagesobsidian lives in extra; move out of aur.txt -
screensaverdrop wayland buffer leak; cache audio fft scratch -
hyprlockadd missing background configuration settings -
pacmansingle-source [shedos]; drop aria2c xfer -
installseat group + offline welcome + shedman HOME -
releasereorder VERSION write after working-tree check -
releasederive VERSION from TAG instead of failing on mismatch -
metabump pkgrel; conflicts include linux + vbox modules -
metadrop virtualbox-guest-utils + conflicts=(linux,...) -
isosingle-rootfs offline install; airootfs is the install target -
aurremove visual-studio-code-bin, slack-desktop, and obsidian-bin from norepublish list. We already have code in the official pacman repo. -
bundleforward --ignore to pacstrap to avoid provider conflicts -
metadrop installer.txt from shedos-meta closure -
repotrust cached -git AUR pkgs on per-push builds -
cigate auto-bump by actor instead of [skip ci] commit marker -
pacstrapdrop unsatisfiable shedos-* version pins; widen ttf-font conflicts -
ciauto-bump step needs cd, safe.directory, pull --rebase -
buildunbreak shedos-screensaver compile and shedos-repo sig check -
makeannotate release tag with -m so signing-required configs work -
packagingshedos-system depends on ananicy-cpp-git -
reposweep phantom packages so shedos.db drops removed entries -
pacstrapconflicts=() + --ignore= deflect virtual-provider rolls -
buildrebuild shedos.db from scratch; bump shedos-meta pkgrel -
citrack AUR rebuilds in /tmp/built-pkgs.txt so repo-add fires -
isocp shedos.db.tar.gz.sig → shedos.db.sig (was 404'ing pacstrap) -
isonetinstall checkboxes; sudoers SETENV; repo-db cp fallback -
isocache-bust stock calamares so packagechooser patch lands -
isobuild calamares with packagechooser; nerd font; floating nmtui -
isoalign Calamares packagechooser id; remove yad popup; waybar wifi icon -
isovalid Hyprland config + Calamares module loading + drop legacy installer -
isoclose swaybg/nm-connection-editor/ttf-font cache misses -
isoadd shedos-kernel + headers to lean live-ISO roots -
isoadd greetd/cage/bluez/pipewire-pulse to lean live-ISO roots -
isoskip shedos-* sig validation in pacstrap -
isodisable LocalFileSigLevel in build-env pacman.conf -
buildwire closure regen into CI; pin wireplumber in lean roots -
buildteach verify-shedos-deps about .meta-closure.txt -
buildcommit fully-resolved package closures -
isopin pipewire-jack in lean live-ISO list -
buildcache accumulation + lex-order repo-add bug (rc1 ISO build broken) -
sessioncall uwsm finalize from Hyprland (greetd login loop) -
isorender live-ISO pacman.conf channel from tag type -
isouse shedos-branding wallpaper for live session -
hypridleinhibit_sleep = 3 (lock-notify) — wait for lock before suspend -
hyprlockdrop obsolete options + move fail_timeout to [general] -
greetercache scaled wallpaper + surface real greetd error in failure UI -
greetdseatd dep + greeter group memberships + HOME env (production boot fixes) -
greeteruse xdg-shell instead of layer-shell (cage compatibility) + ship dusk-blurred.png -
buildskip --cleanbuild for shedos-greeter (src/ collides with makepkg $srcdir) -
buildadd shedos-greeter to --syncdeps case -
gitignoretrack shedos-greeter Rust sources -
systembump pkgrel so users on broken 2026.05.01-1 can upgrade -
systemresolve greetd file conflicts via post_install scriptlet
Internals
-
installerdrop dead TUI orchestrator; tighten shared lib - remove .flake8 configuration and update plugin dependencies
Docs
-
siterefresh shedman install commands page for the new CLI - refresh for v2026.05.02 (path-segmented channels, lean ISO, build incrementality)
- update sddm references for greetd switch
Chores
- remove obsolete wallpaper images from configuration
- trim verbose comments
v2026.04.30
2026-04-30Fixed
-
wallpapersupdate wallpaper paths and add new wallpapers -
updateone y/N gate, then noninteractive pacman/yay/sync -
waybarmake updates pill match clock styling instead of faded default -
live-isosuppress hyprland start-hyprland watchdog warning -
screensaveruse --hold not --shuffle in hypridle on-timeout