I wanted more than just dotfiles.
So I forked archiso, and made it output a disk image containing:
- a BIOS boot partition
- an EFI system partition, which contains the kernel and the initramfs (also used for BIOS booting)
- a Btrfs filesystem
The Btrfs filesystem is where all the fun resides, since it has the following subvolumes:
- airootfs, which contains the system in read-only
- swap
- data, which stores persistent data
- persistfs, which stores manually committed files (through a custom tool named
persistfs
) such as edited configuration files without having to rebuild the image - snapshots, of the airootfs, to revert in case of failed updates
A custom mkinitcpio hook resizes the btrfs filesystem on first boot.
On every boot, this hook mounts /
as an overlayfs
of:
- airootfs/copytoram
- persistfs
- a tmpfs (cowspace)
Which lets me have a read-only system where every file I create is deleted on reboot, except the ones in /data, and the ones I manually make persistent.
Complementary to that, I wrote my own AwesomeWM configuration in Lua. It features:
- A dock
- A panel (with its widgets)
- An overview
- An emoji picker
- A small screen locker
- Custom terminal tabs
Which provides a very comfy experience.
Also written in Lua is my small Neovim configuration. It has basic auto-completion, and a few other plugins that don't get too much in my way.
Another very pimped application in demolinux is Firefox. It comes with addons such as uBlock Origin, Dark Reader, CanvasBlocker, or even VimFx (which uses legacyfox), and a custom user.js.
All this and many other additions which make a very pleasant use of my desktop, after many months of work and hundreds of commits.