Personalized Debian-based OS project focused on a clean XFCE desktop and useful defaults.
Read more:
- https://blog.jonashubeny.dev/posts/jonasos-beginning/
- https://blog.jonashubeny.dev/posts/improving-defaults/
- Debian live ISO build based on
live-build - XFCE desktop session with LightDM
- Basic desktop apps (for example Firefox ESR, Mousepad, Thunar, Xfce utilities)
- Networking and audio defaults (NetworkManager + PulseAudio packages)
- Shell defaults for new users via
/etc/skel(.bashrc,.profile)
JonasOS/
README.md
build/
live-build/
auto/
config
config/
includes.chroot/etc/skel/
.bashrc
.profile
package-lists/
system.list.chroot
xorg.list.chroot
xfce-core.list.chroot
xfce-apps.list.chroot
display-manager.list.chroot
fonts.list.chroot
themes.list.chroot
extras.list.chroot
scripts/
build_iso.sh
run_vm.sh
packages/ # legacy placeholders
overlay/ # optional custom files
out/ # generated ISOs
.github/
workflows/
ci.yml
scripts/build_iso.sh runs Debian live-build inside a Podman container and copies the resulting ISO to out/.
chmod +x scripts/build_iso.sh
./scripts/build_iso.shHost requirements:
podmansudoaccess- internet access (container installs required build tools with
apt)
Result:
out/*.isoscripts/run_vm.sh starts QEMU with the newest ISO from out/ (or falls back to build/live-build/live-image-amd64.hybrid.iso).
chmod +x scripts/run_vm.sh
./scripts/run_vm.shHost requirements:
qemu-system-x86_64- KVM support (
/dev/kvm)
If GNOME Boxes shows a permission error when opening an ISO from out/, copy the ISO into libvirt storage and set the correct ownership/permissions:
sudo install -o qemu -g qemu -m 644 \
/home/jonas/_JONASOS/JonasOS/out/live-image-amd64.hybrid.iso \
/var/lib/libvirt/images/live-image-amd64.hybrid.isoAllow Boxes to browse the libvirt images directory:
sudo chmod 755 /var/lib/libvirt/imagesOptional (if SELinux still blocks access):
sudo restorecon -v /var/lib/libvirt/images/live-image-amd64.hybrid.isoThen restart GNOME Boxes and select:
/var/lib/libvirt/images/live-image-amd64.hybrid.iso
Tip: In the file picker, press Ctrl+L and paste the full path directly.