v0.2.0: WSL desktop, branding, GRUB theme, CI, installer, fonts, voice architecture
SamiOS CI / lint-and-test (push) Successful in 14s
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:
@@ -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>
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user