A custom openSUSE Leap 15.6 distribution built with KIWI NG
Professional workstation image with KDE Plasma, NVIDIA GPU support, and declarative configuration
Features • Quick Start • Documentation • Architecture • Contributing
Geckoforge is a four-layer reproducible workstation image targeting developers, data scientists, and power users who need:
"Configure once, avoid BS forever" workstation for:
- AI/ML development: GPU containers for PyTorch, TensorFlow, CUDA
- Software engineering: Reproducible dev environments via Nix
- Content creation: OBS with NVENC, Kdenlive, GIMP
- Daily driver: Replacing Windows 10 with rock-solid Linux
Hardware: Powerful workstations/laptops with NVIDIA GPUs
Built on openSUSE Leap 15.6 (enterprise-grade stability) with KDE Plasma desktop and Btrfs + Snapper for system snapshots.
- Mystical Blue (Jux) Theme - Professional dark blue aesthetic
- JuxPlasma desktop theme with modern panels
- JuxDeco window decorations with rounded corners
- NoMansSkyJux Kvantum Qt theme for unified app styling
- System-wide color coordination
- One-command activation -
./scripts/setup-jux-theme.sh - Declarative theming - Optional Home-Manager configuration
- Night Color enabled by default - 6500K day, 4500K night, 45-minute transitions
- Location-aware scheduling - Automatic sunrise/sunset via KDE services with manual override support
- User-friendly wizard -
./scripts/configure-night-color.shcustomizes temperatures, schedules, and coordinates - Health check utility -
./scripts/test-night-color.shvalidates configuration and runtime state
- Docker Engine with NVIDIA Container Toolkit
- Automatic GPU detection and configuration
- Verified installation - Tests GPU access in containers
- Production-ready - No manual driver management
- CDI support - Container Device Interface for resource allocation
- Synergy 3 support - Share keyboard/mouse across computers
- Input Leap alternative - FOSS option with better Wayland support
- Automated setup - Firewall, systemd service, configuration
- Client & server modes - Flexible workspace layouts
- Interactive wizard -
./scripts/setup-synergy.sh
- Nix Home-Manager - Reproducible user configuration
- Version-pinned packages - No dependency conflicts
- Shell configuration - Zsh + Oh My Zsh + Powerlevel10k
- Development toolchains - Multi-language support with asdf-vm
- Git-tracked configs - Portable across machines
- rclone integration - Supports Google Drive, S3, OneDrive, Backblaze B2
- Zero-knowledge encryption - Cloud provider cannot read backups
- Automated schedules - Daily critical files, weekly projects
- systemd timers - User-level automation
- Interactive setup -
./scripts/setup-rclone.sh
- Mozilla Thunderbird with anti-phishing configuration
- Clickable links disabled by default (copy/paste URLs manually)
- Remote content blocked - No tracking pixels or external images
- OAuth2 support for Gmail/Outlook, ProtonMail Bridge compatible
- Plain text preference - HTML rendering minimized for security
Languages:
- Python 3.12 (with ruff, black, pytest)
- Node.js (via asdf-vm)
- Go, Nim, Elixir, R, .NET 9
- LaTeX (TeX Live scheme-medium - 2GB stable distribution)
Tools:
- Docker + docker-compose with GPU support
- Git with sensible defaults and delta pager
- VS Code, Cursor, WebStorm (via script setup)
- MongoDB Compass, DBeaver, Postman (Flatpak)
- Kanata-powered remapping - Swap Command/Control semantics system-wide
- KDE alignment - Cmd+Q, Cmd+M, Cmd+Tab, and Cmd+L mirror macOS behavior
- Editor integrations - VS Code, Firefox, and Kate receive Command shortcuts
- Declarative option - Reapply configuration via
geckoforge.macosKeyboard - Verification tooling -
scripts/test-macos-keyboard.shvalidates setup
- Btrfs filesystem - Copy-on-write, compression, snapshots
- Snapper integration - Automatic pre/post-update snapshots
- GRUB snapshot boot - Rollback from boot menu
- Home-Manager generations - Rollback user environment
- LUKS2 encryption - Full-disk encryption with secure defaults
- Lefthook pre-commit - Fast syntax checks (<30s)
- Shell script validation (shellcheck + bash -n)
- Nix expression evaluation
- Anti-pattern detection (Podman usage, wrong TeX scheme)
- Lefthook pre-push - Thorough validation
- Layer boundary enforcement
- Package policy compliance
- Documentation synchronization
- openSUSE Leap 15.6 (or compatible) for building
- KIWI NG installed (
zypper install kiwi-ng) - NVIDIA GPU (optional - detects and configures automatically)
- 8+ GB RAM and 50+ GB disk for ISO build
# Clone repository
git clone https://github.com/jaelliot/geckoforge.git
cd geckoforge
# Build ISO
./tools/kiwi-build.sh profiles/leap-15.6/kde-nvidia
# ISO created in: out/geckoforge-leap156-kde.x86_64-*.isoBuild time: ~10-15 minutes (depending on network/CPU)
-
Create bootable USB:
sudo dd if=out/geckoforge-*.iso of=/dev/sdX bs=4M status=progress sync -
Boot from USB (disable Secure Boot temporarily)
-
Install - Follow installer prompts
- Enable disk encryption (recommended)
- Set strong user password
-
First boot - System automatically:
- Installs NVIDIA drivers (if GPU detected)
- Installs Nix package manager with flakes
- Prompts for reboot
-
User setup - Run wizard:
cd ~/git git clone https://github.com/jaelliot/geckoforge.git cd geckoforge ./scripts/firstrun-user.sh
-
Optional macOS-style shortcuts - Align modifiers with macOS:
./scripts/setup-macos-keyboard.sh- Security hardening (recommended) - Apply layered defenses:
./scripts/setup-secure-firewall.sh
./scripts/setup-secure-dns.sh
./scripts/setup-auto-updates.shTotal time: ~45 minutes (build + install + setup)
Next steps: See Getting Started Guide
- Getting Started - Installation and initial setup
- Docker + NVIDIA - GPU container workflows
- Themes - Theme activation and customization
- Night Color - Blue light filtering defaults, customization, and verification
- Keyboard Configuration - macOS-style shortcut setup
- Security Configuration - Layered hardening tasks
- Synergy Setup - Multi-machine KVM configuration
- Backup & Recovery - Cloud backups and system restore
- Testing Plan - Validation procedures
- Architecture Overview - Four-layer design
- Directory Structure - Repository layout
- Btrfs Layout - Filesystem and snapshots
- Daily Summaries - Development log
- Contributing - How to contribute
- Cursor Rules - AI assistant guidelines
Geckoforge uses a four-layer architecture for reproducibility and maintainability:
┌─────────────────────────────────────┐
│ Layer 4: Home-Manager (Nix) │ ~/.config, user packages
│ User environment, dev toolchains │ Declarative, version-pinned
└─────────────────────────────────────┘
↑
┌─────────────────────────────────────┐
│ Layer 3: User Setup (scripts/) │ Docker, NVIDIA Toolkit, Flatpaks
│ Post-install automation │ Interactive, opt-in features
└─────────────────────────────────────┘
↑
┌─────────────────────────────────────┐
│ Layer 2: First-Boot (systemd) │ NVIDIA driver, Nix installer
│ One-shot system configuration │ Automated, root-level
└─────────────────────────────────────┘
↑
┌─────────────────────────────────────┐
│ Layer 1: ISO (KIWI profile) │ Base OS, repositories, themes
│ Immutable system image │ Reproducible builds
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ Layer 3: Flatpak (Sandboxed GUI) │
│ OBS, Signal, DBeaver, Postman, etc. │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Layer 2: Nix (Reproducible Apps) │
│ Dev tools, CLI utils, pinned with │
│ flake.lock │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Layer 1: zypper (Base OS) │
│ Kernel, NVIDIA driver, systemd, │
│ KDE Plasma │
└─────────────────────────────────────┘
Key Principles:
- Layer boundaries - No cross-layer violations
- Reproducibility - Deterministic builds, version-pinned
- Idempotency - Scripts can run multiple times safely
- Documentation parity - Code and docs stay in sync
Why this works:
- Leap 15.6: Enterprise stability (18-month releases)
- Nix: Reproducible environments, atomic upgrades
- Flatpak: Sandboxed apps, auto-updates
- Btrfs + Snapper: Instant OS rollbacks
- Secure Boot + LUKS2: Security by default
See: Architecture Documentation
# Install hooks
lefthook install
# Run pre-commit checks (fast)
lefthook run pre-commit
# Run pre-push checks (thorough)
lefthook run pre-push# Build and validate ISO
./tools/kiwi-build.sh profiles/leap-15.6/kde-nvidia
# Test in VM
./tools/test-iso.sh out/geckoforge-*.iso| Phase | Status |
|---|---|
| ISO builds | ✅ |
| First-boot scripts | ✅ |
| NVIDIA driver | ✅ |
| Nix + Home-Manager | ✅ |
| GPU containers | ✅ |
| Mystical Blue theme | ✅ |
| Synergy KVM setup | ✅ |
| Quality gates | ✅ |
| Cloud backups | ✅ |
| Documentation | ✅ |
| VM testing | 🔄 In progress |
| Laptop deployment | ⏸️ Pending |
See: Testing Plan for comprehensive validation procedures
# Build ISO
./tools/kiwi-build.sh profiles/leap-15.6/kde-nvidia
# Test in VM
./tools/test-iso.sh
# Clean build artifacts
rm -rf out/ work/
# Run quality gates
lefthook run pre-commitgeckoforge/
├── profiles/leap-15.6/kde-nvidia/ # KIWI profile (Layer 1)
├── home/ # Home-Manager config (Layer 4)
├── scripts/ # User setup scripts (Layer 3)
├── docs/ # Documentation
├── themes/ # Visual themes
└── tools/ # Build and test tools
Contributions welcome! Please follow these guidelines:
- Read documentation - Especially Architecture
- Check
.cursor/rules/- Repository conventions and policies - Review existing issues - Avoid duplicate work
- Fork repository
- Create feature branch -
git checkout -b feat/amazing-feature - Make changes - Follow style canon in
.cursor/rules/00-style-canon.mdc - Test locally - Run quality gates:
lefthook run pre-commit - Update documentation - Keep docs in sync with code
- Commit - Use conventional commits:
feat(scope): description - Submit PR - Clear description, link related issues
- Theme variants - Additional color schemes
- Language support - More development toolchains
- Documentation - Improve guides, add examples
- Testing - Expand test coverage
- Bug fixes - See Issues
Current Focus (v0.2.0):
- Mystical Blue theme integration
- Synergy KVM support
- Quality gates (Lefthook)
- Encrypted cloud backups
- Docker + NVIDIA automation
- ISO build automation (CI/CD)
- Additional theme options
- Windows migration tooling
Future Enhancements:
- Multiple KDE profile variants (minimal, developer, data science)
- Alternative desktop environments (GNOME, XFCE)
- Cloud-init support for automated deployments
- Integration testing framework
- Pre-built ISO releases
See: Daily Summaries for development progress
- Creator: Jay Elliot (jaelliot)
- Philosophy: "Configure once, avoid BS forever"
- Author: Juxtopposed (GitHub)
- Source: Mystical-Blue-Theme
- Components:
- JuxDeco window decorations
- JuxPlasma desktop theme
- NoMansSkyJux Kvantum theme (based on No Man's Sky theme by Patrik Wyde)
- openSUSE Leap 15.6 - Base distribution
- KIWI NG - Image builder
- KDE Plasma - Desktop environment
- Nix / Home-Manager - Package management
- Docker - Container runtime
- Btrfs - Filesystem
- Snapper - Snapshot management
- Lefthook - Quality gates
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Third-party components:
- Mystical Blue theme: See theme-specific license files
- Other dependencies: Respective licenses apply
- Repository: https://github.com/jaelliot/geckoforge
- Documentation: docs/
- Issues: https://github.com/jaelliot/geckoforge/issues
- Discussions: https://github.com/jaelliot/geckoforge/discussions
Built with ❤️ for the openSUSE community
Gecko: Adaptable, resilient, evolved
Ready to replace Windows? → Get Started