v0.2.0: WSL desktop, branding, GRUB theme, CI, installer, fonts, voice architecture
SamiOS CI / lint-and-test (push) Successful in 14s

Major update adding full desktop environment support, complete branding suite,
and project infrastructure:

Desktop (WSL):
- KDE Plasma + SDDM + Dolphin/Konsole/Kate/Firefox setup script
- Windows 11 dark/light color schemes
- PipeWire audio stack
- WSLg-compatible launch script
- SamiOS CLI tool (v0.2.0) with desktop command

Branding:
- Logos: face-on-pyramid with and without text (500px)
- Icons: square + launcher (256/512/1024px) + SVG vector
- Wallpapers: 1920x1080, 4K, clean variant (PIL-generated)
- GRUB theme: full cobalt blue (#1424CE) theme with pyramid background
- SDDM theme: SamiOS login screen configuration
- Branding README with palette, typography, usage guidelines

Fonts:
- Sami Grotesk (Helvetica-like) as default system/UI font
- Sami Sans as secondary
- Full Sami font family support (excluding 7777 personal branding)
- fontconfig rules mapping Helvetica/Arial → Sami Grotesk
- Font policy enforcement in samios CLI

Infrastructure:
- Automated installer (samios-installer.sh): partition, format, pacstrap, bootloader
- PKGBUILD for samios-branding package
- Test suite: shell tests for profiledef, packages, pacman.conf, CLI, font policy
- Makefile: test, lint, check, build, clean targets
- Gitea Actions CI workflow
- Voice integration architecture document (SamiType × SamiOS)
- Updated roadmap reflecting completed phases
This commit is contained in:
Sami Ahmed
2026-08-11 03:39:47 -07:00
parent 970177482b
commit 658a8541e9
79 changed files with 2752 additions and 35 deletions
@@ -0,0 +1,62 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!--
SamiOS System Font Configuration
Sets Sami Grotesk as the default sans-serif (Helvetica-like) system font.
Sami Sans as secondary sans-serif.
All other Sami font families available but not default.
Fonts with "7777" in the name are explicitly excluded (personal branding).
-->
<fontconfig>
<!-- === Exclude 7777 fonts (personal branding policy) === -->
<selectfont>
<rejectfont>
<pattern>
<patelt name="family"><string>samiahmed7777</string></patelt>
</pattern>
</rejectfont>
</selectfont>
<!-- === Default sans-serif → Sami Grotesk === -->
<match target="font">
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Sami Grotesk</string>
</edit>
</match>
<!-- === Default serif → Sami Serif === -->
<match target="font">
<test name="family"><string>serif</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Sami Serif</string>
</edit>
</match>
<!-- === Default monospace → keep system default === -->
<!-- === Helvetica/Arial alias → Sami Grotesk === -->
<match target="font">
<test name="family"><string>Helvetica</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Sami Grotesk</string>
</edit>
</match>
<match target="font">
<test name="family"><string>Arial</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Sami Grotesk</string>
</edit>
</match>
<!-- === Sami Grotesk as primary system font === -->
<match target="pattern">
<test name="family"><string>system-ui</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Sami Grotesk</string>
</edit>
</match>
</fontconfig>
+25
View File
@@ -0,0 +1,25 @@
# SamiOS locale.gen
# Uncomment the locales you need, then run `locale-gen`.
# SamiOS defaults to en_US.UTF-8 (see /etc/locale.conf).
en_US.UTF-8 UTF-8
#en_US ISO-8859-1
# Additional locales — uncomment as needed:
#en_GB.UTF-8 UTF-8
#de_DE.UTF-8 UTF-8
#fr_FR.UTF-8 UTF-8
#es_ES.UTF-8 UTF-8
#it_IT.UTF-8 UTF-8
#pt_BR.UTF-8 UTF-8
#ru_RU.UTF-8 UTF-8
#ja_JP.UTF-8 UTF-8
#ko_KR.UTF-8 UTF-8
#zh_CN.UTF-8 UTF-8
#zh_TW.UTF-8 UTF-8
#ar_SA.UTF-8 UTF-8
#hi_IN.UTF-8 UTF-8
#tr_TR.UTF-8 UTF-8
#pl_PL.UTF-8 UTF-8
#nl_NL.UTF-8 UTF-8
#sv_SE.UTF-8 UTF-8
+53
View File
@@ -0,0 +1,53 @@
#!/bin/bash
# ~/.bashrc — SamiOS root shell configuration
# Loaded by Bash for interactive shells
# ============================================================
# History
# ============================================================
HISTSIZE=1000
HISTFILESIZE=2000
shopt -s histappend
# ============================================================
# Shell options
# ============================================================
shopt -s checkwinsize
shopt -s cdable_vars
# ============================================================
# Aliases
# ============================================================
alias ls='ls --color=auto'
alias ll='ls -lah'
alias la='ls -A'
alias l='ls -CF'
alias grep='grep --color=auto'
alias ..='cd ..'
alias ...='cd ../..'
alias df='df -h'
alias free='free -h'
# SamiOS-specific aliases
alias samios-status='samios status'
alias samios-help='samios help'
# ============================================================
# Prompt — SamiOS branded
# ============================================================
# Blue pyramid color matches brand primary (#1424CE)
PS1='\[\e[1;34m\]▲ SamiOS\[\e[0m\] \[\e[32m\]\u@\h\[\e[0m\] \w \$ '
# ============================================================
# Welcome message — printed once per interactive login shell
# ============================================================
if shopt -q login_shell; then
SAMIOS_VER=$(cat /usr/share/samios/version 2>/dev/null | tail -1 || echo "0.1.0")
echo ""
echo -e " \033[1;34m ▲\033[0m \033[1;34mSamiOS\033[0m \033[0;37m${SAMIOS_VER}\033[0m"
echo -e " \033[0;37m |\\\\ Arch-based Linux by Sami Ahmed\033[0m"
echo -e " \033[0;37m | \\\\ https://sami-ahmed.net\033[0m"
echo ""
echo -e " \033[0;37mCommands:\033[0m \033[1;msamios help\033[0m · \033[1;msamios status\033[0m · \033[1;msamios fonts\033[0m"
echo ""
fi
+67
View File
@@ -0,0 +1,67 @@
#!/bin/zsh
# ~/.zshrc — SamiOS root shell configuration
# Loaded by Zsh for interactive shells (SamiOS default shell)
# ============================================================
# History
# ============================================================
HISTFILE=~/.zsh_history
HISTSIZE=1000
SAVEHIST=1000
setopt appendhistory
setopt sharehistory
setopt incappendhistory
# ============================================================
# Shell options
# ============================================================
setopt auto_cd # cd by typing directory name
setopt interactive_comments
# ============================================================
# Key bindings (vi-style for line editing)
# ============================================================
bindkey -e # emacs-style bindings (more familiar default)
# ============================================================
# Aliases
# ============================================================
alias ls='ls --color=auto'
alias ll='ls -lah'
alias la='ls -A'
alias l='ls -CF'
alias grep='grep --color=auto'
alias ..='cd ..'
alias ...='cd ../..'
alias df='df -h'
alias free='free -h'
# SamiOS-specific aliases
alias samios-status='samios status'
alias samios-help='samios help'
# ============================================================
# Prompt — SamiOS branded
# ============================================================
# Blue pyramid color matches brand primary (#1424CE)
autoload -Uz colors && colors
PROMPT='%{$fg_bold[blue]%}▲ SamiOS%{$reset_color%} %{$fg[green]%}%n@%m%{$reset_color%} %~ %# '
# ============================================================
# Completion
# ============================================================
autoload -Uz compinit && compinit
zstyle ':completion:*' menu select
# ============================================================
# Welcome message — printed once per interactive login shell
# ============================================================
if [[ -o login ]]; then
echo ""
echo " \033[1;34m ▲\033[0m \033[1;34mSamiOS\033[0m \033[0;37m$(cat /usr/share/samios/version 2>/dev/null | tail -1 || echo '0.1.0')\033[0m"
echo " \033[0;37m |\\\ Arch-based Linux by Sami Ahmed\033[0m"
echo " \033[0;37m | \\ https://sami-ahmed.net\033[0m"
echo ""
echo " \033[0;37mCommands:\033[0m \033[1;msamios help\033[0m · \033[1;msamios status\033[0m · \033[1;msamios fonts\033[0m"
echo ""
fi
+13
View File
@@ -3,6 +3,19 @@
set default=0
set timeout=5
# ── Load SamiOS theme ──
insmod all_video
insmod gfxterm
insmod png
insmod ext2
set gfxmode=1024x768
set gfxpayload=keep
terminal_output gfxterm
# Theme path (relative to GRUB root at boot; also set during ISO build)
set theme=/boot/grub/themes/samios/theme.txt
export theme
menuentry "SamiOS Live" {
linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux.img
+22 -2
View File
@@ -16,6 +16,20 @@ filesystem
util-linux
shadow
sudo
nano
vi
less
diffutils
tar
man-db
man-pages
# Fonts (base sans-serif coverage)
ttf-dejavu
ttf-liberation
# User directories
xdg-user-dirs
# Networking
networkmanager
@@ -35,8 +49,14 @@ systemd-sysvcompat
arch-install-scripts
pacman-contrib
# SamiOS branding
samios-branding
# Mirror management
reflector
# SamiOS branding is NOT installed via pacman — it is baked into the
# ISO through the airootfs overlay (see airootfs/usr/share/samios/
# and airootfs/etc/samios/). The standalone PKGBUILD at
# packaging/packages/samios-branding/ can also be built for
# post-install use on a running system.
# Excluded: fonts with 7777 in name (personal branding)
# Excluded: desktop environment (CLI-only for now)
+2
View File
@@ -22,6 +22,8 @@ file_permissions=(
["/etc/gshadow"]="0:0:400"
["/root"]="0:0:750"
["/root/.automated_script.sh"]="0:0:755"
["/root/.zshrc"]="0:0:644"
["/root/.bashrc"]="0:0:644"
["/root/.gnupg"]="0:0:700"
["/usr/local/bin/choose-mirror"]="0:0:755"
["/usr/local/bin/samios"]="0:0:755"