Files
samios/docs/developer-guide.md
Sami Ahmed 08758617b5
SamiOS CI / lint-and-test (push) Successful in 6s
Add dictation mode design (LibreOffice + any-app voice typing), developer guide
- Dictation mode: separate from command mode, types directly into focused app
- Punctuation/formatting voice commands (new paragraph, comma, scratch that)
- Floating correction bar with low-confidence highlighting
- Technical implementation sketch (xdotool/ydotool integration)
- Developer guide with project structure, build commands, font policy
2026-08-11 03:44:15 -07:00

114 lines
3.2 KiB
Markdown

# SamiOS Developer Guide
## Getting Started
### Prerequisites
- Arch Linux (or WSL Arch) with `base-devel`, `git`, `archiso`
- Gitea account on `git.sami`
### Clone
```bash
git clone https://git.sami/sami7777/samios.git
cd samios
```
### Project Structure
```
samios/
├── branding/ # Visual identity assets
│ ├── icons/ # Square + launcher icons (PNG + SVG)
│ ├── logos/ # Full lockups (face + pyramid)
│ ├── wallpapers/ # Desktop wallpapers
│ ├── themes/ # SDDM theme
│ ├── grub-theme/ # GRUB boot theme
│ └── README.md # Brand guidelines
├── docs/ # Documentation
│ ├── installation.md # User install guide
│ ├── roadmap.md # Development roadmap
│ ├── voice-integration-architecture.md
│ └── voice-hermes-pipeline.md
├── packaging/
│ ├── archiso/ # ISO build profile
│ │ ├── airootfs/ # Root filesystem overlay
│ │ ├── packages.x86_64 # Package list
│ │ ├── profiledef.sh # ISO profile
│ │ └── build.sh # Build script
│ ├── packages/ # Custom PKGBUILDs
│ │ └── samios-branding/
│ └── scripts/ # Setup and installer scripts
│ ├── samios-installer.sh
│ ├── samios-desktop-setup.sh
│ └── kdeglobals-samios
├── tests/ # Test suite
│ ├── run_tests.sh
│ ├── test_profiledef.sh
│ ├── test_packages.sh
│ └── ...
├── Makefile # Build/test/lint targets
└── .gitea/workflows/ # CI pipeline
```
## Development Commands
```bash
make test # Run test suite
make lint # Shellcheck on all scripts
make check # Full CI (lint + test)
make build # Build ISO (requires archiso)
make clean # Clean build artifacts
```
## Building the ISO
```bash
# Install archiso
sudo pacman -S archiso
# Build
cd packaging/archiso
sudo ./build.sh
# Output
ls out/samios-*.iso
```
## Font Policy
- **Default UI font:** Sami Grotesk (Helvetica-like sans-serif)
- **Secondary font:** Sami Sans
- **Excluded:** Any fonts with "7777" in the filename (personal branding)
- Font config: `packaging/archiso/airootfs/etc/fonts/conf.d/10-samios-fonts.conf`
## Adding Packages
Edit `packaging/archiso/packages.x86_64` and add the package name. Test with:
```bash
make check
```
## Modifying Branding
1. Place new assets in `branding/` (follow existing structure)
2. Update `branding/README.md` with new entries
3. If changing icons, generate all sizes from the SVG source
4. Test the ISO build
## Voice Integration
See `docs/voice-hermes-pipeline.md` for the SamiType voice command architecture.
## CI/CD
Gitea Actions workflow at `.gitea/workflows/ci.yml` runs on every push:
- Shellcheck on all `.sh` files
- Profile structure validation
- Test suite execution
## Release Process
1. Update version in `profiledef.sh`, `samios` CLI, and `README.md`
2. Update `docs/roadmap.md` with completed items
3. Commit: `git commit -m "vX.Y.Z: Description"`
4. Tag: `git tag vX.Y.Z`
5. Push: `git push origin master --tags`