Initial Das OS 0.1.0: Void Linux live ISO with Xfce

- xbps-src templates: das-theme (adw-gtk3-based GTK themes, generated
  xfwm4 frames, wallpapers, logo), das-settings (Xfce, panel, LightDM
  defaults in /etc/xdg/das), adw-gtk3 and font-jetbrains-mono
- void-mklive profile in live/: packages, runit services, rootfs overlay,
  Ukrainian locale, live user with autologin
- Void builder container, build scripts, QEMU runner and Makefile
- Bilingual README with screenshots

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
das
2026-10-18 21:23:16 +03:00
co-authored by Claude Opus 5.5
commit b7399031c7
48 changed files with 1548 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
../../../LICENSE
@@ -0,0 +1,7 @@
[Desktop Entry]
Type=Application
Name=Das OS session setup
Comment=Applies Das OS defaults that depend on the user's monitors
Exec=/usr/libexec/das/das-session-init
OnlyShowIn=XFCE;
NoDisplay=true
+35
View File
@@ -0,0 +1,35 @@
#!/bin/bash
# Applies Das OS per-user defaults that cannot be shipped as static xfconf files.
# xfdesktop keys wallpapers by monitor connector name (eDP-1, HDMI-1, Virtual-1...),
# which is only known inside the session. Runs once per user.
set -u
marker="${XDG_CONFIG_HOME:-$HOME/.config}/das/session-init.done"
[[ -e $marker ]] && exit 0
wallpaper=/usr/share/backgrounds/das/das-light.svg
if [[ $(xfconf-query -c xsettings -p /Net/ThemeName 2>/dev/null) == *-Dark ]]; then
wallpaper=/usr/share/backgrounds/das/das-dark.svg
fi
# Sets an xfconf property, creating it when it does not exist yet.
set_prop() {
local prop=$1 type=$2 value=$3
xfconf-query -c xfce4-desktop -p "$prop" -s "$value" 2>/dev/null ||
xfconf-query -c xfce4-desktop -p "$prop" -n -t "$type" -s "$value"
}
# "xrandr --listactivemonitors" prints a header, then one line per monitor ending in its connector name.
monitors=$(xrandr --listactivemonitors 2>/dev/null | awk 'NR > 1 { print $NF }')
if [[ -z $monitors ]]; then
echo "das-session-init: no active monitors found, will retry at next login" >&2
exit 1
fi
for monitor in $monitors; do
base="/backdrop/screen0/monitor${monitor}/workspace0"
set_prop "$base/last-image" string "$wallpaper"
set_prop "$base/image-style" int 5 # zoomed: fill the screen, keep proportions
done
mkdir -p "${marker%/*}" && touch "$marker"
@@ -0,0 +1,13 @@
# Das OS look for the login screen.
[greeter]
background=/usr/share/backgrounds/das/das-light.svg
theme-name=DasOS
icon-theme-name=Papirus
font-name=Inter 11
cursor-theme-name=Adwaita
cursor-theme-size=24
xft-antialias=true
xft-hintstyle=hintslight
xft-rgba=rgb
indicators=~host;~spacer;~clock;~spacer;~layout;~language;~session;~a11y;~power
clock-format=%H:%M %d.%m.%Y
@@ -0,0 +1,4 @@
# Das OS: LightDM with the GTK greeter starting an Xfce session.
[Seat:*]
greeter-session=lightdm-gtk-greeter
user-session=xfce
@@ -0,0 +1,6 @@
# Das OS desktop defaults (/etc/xdg/das) take precedence over the stock Xfce ones in /etc/xdg.
# LightDM sources /etc/profile before the session starts, and startxfce4 keeps this order.
case ":${XDG_CONFIG_DIRS:-}:" in
*:/etc/xdg/das:*) ;;
*) export XDG_CONFIG_DIRS="/etc/xdg/das:${XDG_CONFIG_DIRS:-/etc/xdg}" ;;
esac
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Wallpapers are keyed by monitor connector name, so das-session-init sets them at first login. -->
<channel name="xfce4-desktop" version="1.0">
<property name="backdrop" type="empty">
<property name="single-workspace-mode" type="bool" value="true"/>
<property name="single-workspace-number" type="int" value="0"/>
</property>
<property name="desktop-icons" type="empty">
<property name="icon-size" type="uint" value="48"/>
<property name="file-icons" type="empty">
<property name="show-filesystem" type="bool" value="false"/>
<property name="show-home" type="bool" value="true"/>
<property name="show-removable" type="bool" value="true"/>
<property name="show-trash" type="bool" value="true"/>
</property>
</property>
</channel>
@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- One full-width bottom panel: menu, windows, tray, layout, sound, notifications, clock. -->
<channel name="xfce4-panel" version="1.0">
<property name="configver" type="int" value="2"/>
<property name="panels" type="array">
<value type="int" value="1"/>
<property name="dark-mode" type="bool" value="false"/>
<property name="panel-1" type="empty">
<property name="position" type="string" value="p=10;x=0;y=0"/>
<property name="length" type="uint" value="100"/>
<property name="position-locked" type="bool" value="true"/>
<property name="size" type="uint" value="40"/>
<property name="icon-size" type="uint" value="0"/>
<property name="plugin-ids" type="array">
<value type="int" value="1"/>
<value type="int" value="2"/>
<value type="int" value="3"/>
<value type="int" value="4"/>
<value type="int" value="5"/>
<value type="int" value="6"/>
<value type="int" value="7"/>
<value type="int" value="8"/>
<value type="int" value="9"/>
<value type="int" value="10"/>
<value type="int" value="11"/>
</property>
</property>
</property>
<property name="plugins" type="empty">
<property name="plugin-1" type="string" value="whiskermenu">
<property name="button-icon" type="string" value="das-logo"/>
<property name="show-button-title" type="bool" value="false"/>
</property>
<property name="plugin-2" type="string" value="separator">
<property name="style" type="uint" value="0"/>
</property>
<property name="plugin-3" type="string" value="tasklist">
<property name="grouping" type="uint" value="1"/>
<property name="flat-buttons" type="bool" value="true"/>
<property name="show-handle" type="bool" value="false"/>
</property>
<property name="plugin-4" type="string" value="separator">
<property name="expand" type="bool" value="true"/>
<property name="style" type="uint" value="0"/>
</property>
<property name="plugin-5" type="string" value="systray">
<property name="square-icons" type="bool" value="true"/>
</property>
<property name="plugin-6" type="string" value="xkb">
<property name="display-type" type="uint" value="1"/>
<property name="display-scale" type="uint" value="50"/>
</property>
<property name="plugin-7" type="string" value="pulseaudio">
<property name="enable-keyboard-shortcuts" type="bool" value="true"/>
</property>
<property name="plugin-8" type="string" value="notification-plugin"/>
<property name="plugin-9" type="string" value="separator">
<property name="style" type="uint" value="0"/>
</property>
<property name="plugin-10" type="string" value="clock">
<property name="mode" type="uint" value="2"/>
<property name="digital-layout" type="uint" value="1"/>
<property name="digital-time-format" type="string" value="%H:%M"/>
<property name="digital-date-format" type="string" value="%d.%m.%Y"/>
</property>
<property name="plugin-11" type="string" value="showdesktop"/>
</property>
</channel>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-terminal" version="1.0">
<property name="font-use-system" type="bool" value="false"/>
<property name="font-name" type="string" value="JetBrains Mono 11"/>
<property name="misc-default-geometry" type="string" value="110x32"/>
<property name="misc-menubar-default" type="bool" value="false"/>
<property name="scrolling-unlimited" type="bool" value="true"/>
<property name="color-use-theme" type="bool" value="false"/>
<property name="color-foreground" type="string" value="#e3e6ec"/>
<property name="color-background" type="string" value="#1e222a"/>
<property name="color-cursor" type="string" value="#ffd23f"/>
<property name="color-cursor-use-default" type="bool" value="false"/>
<property name="color-palette" type="string" value="#2b2f38;#e0464c;#7ec16e;#f2c230;#4f86ec;#b07ee8;#4fb8c9;#c8ccd4;#4a505d;#ff6b70;#98d68a;#ffd23f;#7aa7f5;#c9a0f2;#72cfdc;#ffffff"/>
</channel>
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfwm4" version="1.0">
<property name="general" type="empty">
<property name="theme" type="string" value="DasOS"/>
<property name="title_font" type="string" value="Inter Semi-Bold 10"/>
<property name="title_alignment" type="string" value="center"/>
<property name="button_layout" type="string" value="O|HMC"/>
<property name="use_compositing" type="bool" value="true"/>
<property name="show_dock_shadow" type="bool" value="true"/>
<property name="workspace_count" type="int" value="2"/>
</property>
</channel>
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xsettings" version="1.0">
<property name="Net" type="empty">
<property name="ThemeName" type="string" value="DasOS"/>
<property name="IconThemeName" type="string" value="Papirus"/>
</property>
<property name="Xft" type="empty">
<property name="Antialias" type="int" value="1"/>
<property name="Hinting" type="int" value="1"/>
<property name="HintStyle" type="string" value="hintslight"/>
<property name="RGBA" type="string" value="rgb"/>
</property>
<property name="Gtk" type="empty">
<property name="FontName" type="string" value="Inter 10"/>
<property name="MonospaceFontName" type="string" value="JetBrains Mono 10"/>
<property name="CursorThemeName" type="string" value="Adwaita"/>
<property name="CursorThemeSize" type="int" value="24"/>
<property name="DecorationLayout" type="string" value="menu:minimize,maximize,close"/>
</property>
</channel>