## Das OS ### _A light, friendly Void Linux–based desktop with Xfce and a Ukrainian touch_ [![Void Linux](https://img.shields.io/badge/Void_Linux-x86__64_glibc-green)](https://voidlinux.org) [![Xfce](https://img.shields.io/badge/Xfce-4.20-orange)](https://xfce.org) [![runit](https://img.shields.io/badge/init-runit-blue)](https://docs.voidlinux.org/config/services/) [![Go](https://img.shields.io/badge/Go-1.22+-blue)](https://go.dev) [![Version](https://img.shields.io/badge/version-0.1.0-lightgrey)](#) 🇺🇦 [Українська версія](README_ua.md) ### 💡 Purpose Void Linux is fast, simple and independent: runit instead of systemd, and its own xbps package manager. Out of the box, though, it is a bare system, and getting it ready for daily use takes hours of setup. Das OS builds a live ISO that boots straight into a configured Xfce desktop. It has its own look, a Ukrainian interface and keyboard layout, and the usual desktop apps. Everything Das OS adds comes from its own xbps packages, so the setup can be reproduced and updated like any other package. ### 📃 Features - [Live ISO](#LiveISO) that boots on UEFI and BIOS straight into the desktop - [Das OS look](#Look): light and dark themes, generated window frames, wallpapers and logo - [Desktop defaults](#Defaults) for Xfce that don't overwrite stock files - [Own package repository](#Repository) built by xbps-src from in-tree templates - [Containerised build](#Build) that runs on any Linux host with Docker, and QEMU scripts for testing ### ⭐ Advantages - **Void underneath** – a fast runit boot, the xbps package manager and fresh software, with none of the manual setup. - **Light** – no systemd, plus Xfce, LightDM and PipeWire, so it runs well on older laptops too. - **Nothing hidden** – all customisations ship as ordinary xbps packages, so `xbps-query -f das-settings` shows exactly what changed. - **Users keep control** – defaults live in `/etc/xdg/das`, so a user's own settings always take precedence and upgrades never reset them. - **Builds anywhere** – the build runs in a Void container, so the host can be Mint, Ubuntu or Fedora. ### 📱 Screenshots
Live desktop Terminal and window frames Boot menu (UEFI)
Live desktop Terminal and window frames Boot menu (UEFI)
Light wallpaper Dark wallpaper Window frames
Light wallpaper Dark wallpaper Window frames: light and dark, active and inactive
### 📌 Using #### Live ISO **_The live system logs in to the desktop on its own, with no installation needed._** - Boots on UEFI (GRUB) and on legacy BIOS (isolinux), both with a Das OS splash screen. - The *graphics disabled* entry boots with `nomodeset` for machines whose screen stays black, and the *RAM* entry copies the whole system to memory. - User `live`, password `live`, with `sudo` that needs no password. The user is created at boot and exists only in the live session. - Ukrainian interface (`uk_UA.UTF-8`) and the Kyiv time zone by default. Keyboard layouts are `us,ua`, switched with Alt+Shift. - Includes NetworkManager, Bluetooth, PipeWire sound and Firefox with the Ukrainian language pack. Services run under runit: `dbus`, `elogind`, `polkitd`, `NetworkManager`, `bluetoothd`, `lightdm`. - Includes guest tools for QEMU/SPICE and VirtualBox. #### Das OS look **_A modern minimal style with a blue and yellow eight-petal star from Ukrainian embroidery._** - The GTK themes `DasOS` and `DasOS-Dark` build on adw-gtk3 and add the Das OS accent colours. They also style the Xfce panel, which adw-gtk3 leaves black. - The xfwm4 window frames (rounded corners, round buttons, a red close button on hover) are generated as PNG files by `xfwm4gen` (Go) from a single palette. - Light and dark wallpapers show the star over a rushnyk-style embroidered ribbon. The same star is the Das OS logo and the menu button. - Fonts are Inter for the interface and JetBrains Mono in the terminal. Icons are Papirus and the cursor theme is Adwaita. #### Desktop defaults **_The das-settings package configures Xfce without touching files owned by other packages._** - `/etc/profile.d/das-xdg.sh` puts `/etc/xdg/das` before `/etc/xdg`, and xfconf reads the Das OS defaults from there. - One bottom panel holds the Whisker menu, window buttons, tray, keyboard layout, volume, notifications, clock and a show-desktop button. - At the first login, `das-session-init` sets the wallpaper on every connected monitor, because Xfce stores wallpapers per monitor name. - LightDM uses the GTK greeter with the Das OS theme and wallpaper. #### Own package repository **_Every Das OS file is installed and updated by xbps._** - `srcpkgs/das-theme` contains the themes, xfwm4 frames, wallpapers and logo. - `srcpkgs/das-settings` contains the Xfce, LightDM and session defaults. - `srcpkgs/adw-gtk3` and `srcpkgs/font-jetbrains-mono` package upstream releases that Void does not have. - `make packages` lays the templates over a shallow clone of void-packages and builds them with `xbps-src` into `out/hostdir/binpkgs`. The ISO build installs them from there. #### Containerised build **_The whole build runs in a Docker container, so only Docker and QEMU are needed on the host._** 1. `make packages` builds the local xbps repository. 2. `make iso` builds the packages and then the ISO with `void-mklive`, using the profile in `live/` (package list, services, root file system overlay). 3. `make qemu` boots the newest ISO with UEFI. `make qemu-bios` uses legacy BIOS, and `make qemu-disk` also attaches a 20 GB virtual disk. ### 🚀 Building the application Requirements: Linux with Docker (the user must be in the `docker` group), QEMU and OVMF for testing, and Go 1.22+ for `make test`. About 10 GB of free disk space. ```shell make iso # build packages and the live ISO (the first run downloads ~2 GB) make qemu # boot it in QEMU with UEFI make test # run Go tests make clean # remove build output, keep the download cache ``` The ISO appears in `out/iso/dasos--x86_64.iso`. Write it to a USB stick with `dd` or Ventoy. **Note:** Das OS is an early version (0.1.0) and the live ISO cannot install itself yet. The Calamares installer, Btrfs snapshots with rollback, the Go utilities `das-welcome` and `das-update`, the developer profile and signed repository hosting are planned for upcoming stages. Das OS is based on Void Linux but is not affiliated with it. ###### _Made by -=:dAs:=-_