Instruction file imported from visnudeva/SweetPotatOs (
.cursor/rules/project-notes.mdc). Copyright stays with the author.
SweetPotatOs context
Before non-trivial changes, read NOTES.md at the repo root. After a host reinstall / new machine, also read AGENT_MEMORY_BACKUP.md (full ISO workflow + restore checklist).
Hard rules from prior work
- Theme source of truth is the sibling SweetPotato repo. Sync into this ISO with
./sync-theme.sh(not by hand-copying one tree only). On a GNOME/Bluefin host,sync-theme.shmust not copy Papirus/glycin into$HOME(that blanks half the GNOME icons). It skips live home automatically; never pass--liveon this host. - Desktop compositor is Swirl. The swirl package ships swirlbar, swirlmsg, swirlnag, and swirlmenu, with
swaybar/swaymsg/swaynagsymlinks. Do not install the Archswaypackage (it conflicts). User config is~/.config/swirl/only — do not also ship~/.config/sway/(Swirl checks sway first). Keepinclude /etc/sway/config.d/*.swayidle,swaybg,swaylock-effects, andswayimgstay separate. - Fastfetch primary logo is colored
SPLogo.pngvialogo.type: chafa(potato-colored ASCII). Do not switch primary to sixel/autoor monochromeSPLogo.asc. - Lid close suspends via logind
lid-sleep.conf. Never reintroducedo-not-suspend.confthat setsHandleLidSwitch=ignore. Caffeine must not block lid suspend. - Ly always lists root first; never ship
/etc/ly/save.txtas0. Post-installsweetpotatos-fix-ly(Calamaresshellprocess@fix-ly) must set the saved user to${USER}and removeliveuser. - Installed user sudo:
sweetpotatos-fix-sudo(viafix-ly+cleanup-live) must add${USER}towheel, write/etc/sudoers.d/10-installed-user(explicit user rule) and/etc/sudoers.d/10-wheel. Never rely only on Calamares10-installeror a commented%wheelline in/etc/sudoers. - After install,
shellprocess@cleanup-livemust remove Install SweetPotatOs / calamares.desktopleftovers from the app launcher. - Default terminal is foot (opaque); do not switch
Mod+Returnto kitty without updating skel + SweetPotato + sync. Do not ship~/.config/kitty/. - Ly
default_input = password. Enablebluetooth.serviceon live/install. - Wallpaper:
ensure-wallpaper.shmust not overwrite a savedwallpaper.confwith the SPONeonKanjiDefault fallback. Default wallpaper isSPONeonKanjiDefault.png; do not ship UsefulBinds/BindsBG.sweetpotatos-sproutrefreshes shipped wallpapers into~/Pictures/Wallpapersbut does not switch the active waypaper selection or delete wallpapers already on a PC. - Live Calamares keyboard needs
sweetpotatos-sway-xkb-watch(locale1 → Swirl via busctl poll). Do not assume Calamares Wayland apply changes the compositor by itself, and do not listen with a system-bus monitor as liveuser. - Do not put
nvidia-open/nvidia-utilsinpackages.x86_64. Calamares Notes page +shellprocess@install-nvidia(sweetpotatos-install-nvidia) install them online-only for Turing+ GPUs; offline keeps Mesa/nouveau. - Power menu is
power-menu.sh(Mod+Escape only): swirlnag icons for lock/sleep/logout/reboot/poweroff. No X button; Escape or click-outside dismisses (swaynag-power-menu.patch). - Push SweetPotatOs to both
origin(GitHub) andsourceforgewhen the user asks to publish git. ISO upload is separate (sourceforge/upload.sh). Point-release ISOs only — do not reintroduce an in-placespo-upgrade/ overlay pacman channel. - Installed-system packages: publish builds to the testing release only (
./scripts/publish-repo.sh testing, prereleasepacman-repo-testing) until the user explicitly says to push to stable (./scripts/publish-repo.sh, live tagpacman-repo). A plain “publish” is testing. On a SweetPotatOs install,sudo sweetpotatos-update --testingtracks testing until--stable. Do not point the Ryoku host at either tag. - Ryoku host hygiene: never install SPO packages or wire
[sweetpotatos]into this machine’s pacman. After any SweetPotatOsbuild.sh/ package / publish work, clean Ryoku before ending (removesweetpotatos-local.confInclude + files, clear/var/lib/pacman/sync/sweetpotatos.*, verify pacman works). SeeNOTES.md“Build-host rule”.
