An interactive, real-time theme builder for the Omarchy Linux desktop environment. Create beautiful desktop themes with instant visual feedback and full keyboard accessibility.
Theme Builder Interface - Real-time color editing with keyboard navigation
Authentic Omarchy Desktop Simulation - Live preview with btop system monitor
- Omarchy/Hyprland desktop preview in your browser
- Realistic system monitoring with btop using braille progress bars
- Interactive panels: file manager (ranger-style), terminal, and system monitor
- Live system stats with animated CPU cores, memory usage, and process lists
- Complete keyboard accessibility - navigate entirely without a mouse
- Smart focus management with visible indicators and focus trapping
- Keyboard shortcuts for all major functions (press
?
for help) - Screen reader support with proper ARIA labels and announcements
- Skip links and semantic markup for assistive technologies
- Test suite available at
/keyboard-test
to verify navigation
- Instant Visual Feedback: Changes appear immediately across all components
- Color Palette Editor: Customize background, foreground, accent, and semantic colors
- Quick Theme Access: Number keys (1-7) for instant preset switching
- Keyboard Color Picking: Navigate and edit colors entirely with keyboard
- Preset Themes: Rose Pine, Tokyo Night, Catppuccin, Nord, Everforest, Gruvbox, and more
Generate a ready-to-use theme package containing:
hyprland.conf
- Window manager configurationwaybar.css
- Status bar stylingalacritty.toml
- Terminal colorsmako.ini
- Notification daemonneovim.lua
- Editor themebtop.theme
- System monitor colors- Plus configurations for Walker launcher, SwayOSD, and more!
- SvelteKit - Fast, reactive framework
- Tailwind CSS - Utility-first styling
- JSZip - Theme export functionality
- Custom Focus Manager - Advanced keyboard navigation system
- Responsive Design - Works on desktop, tablet, and mobile
- Node.js 18+
- npm or yarn
# Clone the repository
git clone https://github.com/gitcoder89431/omarchy-theme-builder.git
cd omarchy-theme-builder
# Install dependencies
npm install
# Start development server
npm run dev
Visit http://localhost:5173
to start building themes!
npm run build
npm run preview
This theme builder is fully keyboard accessible! Here's how to get started:
Key | Action |
---|---|
Tab |
Enable keyboard mode & navigate |
T |
Toggle theme controls |
? or H |
Show keyboard shortcuts help |
E |
Export current theme |
1-7 |
Quick theme presets |
Enter /Space |
Activate focused element |
Escape |
Close modals/panels |
- Press
Tab
to enable keyboard navigation mode - Use
Tab
andShift+Tab
to move between elements - Press
T
to open theme controls - Navigate colors with
Tab
, pressEnter
to edit - Use number keys for quick theme switching
- Press
E
to export your theme
Full documentation: See KEYBOARD_NAVIGATION.md for complete shortcuts and accessibility features.
- Open the Theme Builder - Load the app in your browser
- Enable Keyboard Mode - Press
Tab
to start navigating - Customize Colors - Press
T
or click theme controls in the bottom-right - See Live Changes - Watch your authentic desktop simulation update in real-time
- Try Presets - Use number keys 1-7 for instant theme switching
- Export Theme - Press
E
or click export for a complete theme package - Apply to Omarchy - Extract and apply the theme to your real desktop
The simulation features an authentic three-panel layout matching real Omarchy setups:
βββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β β β
β File Manager β β
β (ranger) β System Monitor β
β β (btop) β
βββββββββββββββββββ€ β
β β β
β Terminal β β
β (neofetch) β β
β β β
βββββββββββββββββββ΄ββββββββββββββββββββββββββββββββββ
The exported theme follows Omarchy's standard structure:
omarchy-my-theme-theme/
βββ hyprland.conf # Window manager config
βββ waybar.css # Status bar styles
βββ alacritty.toml # Terminal colors
βββ mako.ini # Notifications
βββ neovim.lua # Editor theme
βββ btop.theme # System monitor
βββ walker.css # App launcher
βββ swayosd.css # Volume/brightness OSD
βββ hyprlock.conf # Screen locker
βββ icons.theme # Icon theme name
βββ light.mode # Light mode indicator (if applicable)
βββ README.md # Theme documentation
βββ theme.conf # Main theme configuration
src/
βββ lib/
β βββ components/ # Svelte components
β β βββ Desktop.svelte # Main desktop simulator
β β βββ TopPanel.svelte # System panel with keyboard nav
β β βββ ThemeControls.svelte # Fully keyboard accessible controls
β β βββ KeyboardHelpModal.svelte # Shortcuts help
β β βββ NotificationToast.svelte
β βββ stores/
β β βββ theme.js # Theme state management
β β βββ keyboard.js # Keyboard navigation system
β βββ utils/
β βββ themeExport.js # Theme export logic
βββ routes/
β βββ keyboard-test/ # Accessibility test suite
β βββ +page.svelte # Main app
βββ app.css # Global styles with keyboard focus
- Accessibility First: WCAG 2.1 AA compliant with comprehensive keyboard navigation
- Real-time Updates: All theme changes applied instantly using Svelte stores
- Authentic Simulation: Pixel-perfect recreation of real Omarchy desktop elements
- CSS Variables: Dynamic theming through CSS custom properties
- Component Isolation: Each desktop component is self-contained and reactive
- Progressive Enhancement: Works with mouse, keyboard, and screen readers
Visit /keyboard-test
to run our comprehensive accessibility test suite:
- β Tab navigation flow
- β Focus trapping in modals
- β Keyboard shortcuts functionality
- β Screen reader announcements
- β Skip links navigation
- All interactive elements focusable with Tab
- Keyboard shortcuts work as documented
- Screen reader announces changes
- High contrast mode supported
- Theme export functions correctly
We welcome contributions! This project is perfect for:
- Add new theme presets
- Improve color palette selections
- Create theme variations
- Enhance screen reader support
- Test with assistive technologies
- Improve keyboard navigation flow
- Add new desktop components
- Improve animations and transitions
- Optimize performance
- Add support for other desktop environments
- Expand export format options
- Test on various distributions
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Test keyboard navigation: Visit
/keyboard-test
- Commit changes: Use conventional commits
- Push to branch:
git push origin feature/amazing-feature
- Open a Pull Request
- Maintain keyboard accessibility in all new features
- Test with screen readers (NVDA, JAWS, VoiceOver)
- Follow existing code patterns and naming conventions
- Add proper ARIA labels and descriptions
- Update keyboard navigation docs for new shortcuts
This project draws inspiration from:
- Omarchy Desktop - The beautiful target Linux environment
- btop++ - For authentic system monitoring aesthetics
- Accessibility community - For inclusive design principles
Keyboard navigation not working?
- Press
Tab
to enable keyboard mode - Check that focus indicators are visible
- Try refreshing the page if focus gets stuck
Theme export not working?
- Ensure your browser supports the File API
- Check that all color values are valid hex codes
- Try refreshing the page and re-applying your changes
Desktop simulation looks wrong?
- Clear browser cache and reload
- Ensure CSS custom properties are supported (modern browsers)
- Check browser console for any JavaScript errors
Screen reader issues?
- Ensure ARIA live regions are working
- Check that announcements are being made on theme changes
- Try different screen reader software
This project is licensed under the MIT License - see the LICENSE file for details.
- Omarchy Project - For creating an amazing Linux desktop environment
- SvelteKit Team - For the excellent reactive framework
- Accessibility community - For guidance on inclusive design principles
- btop++ developers - For the incredible system monitor that inspired our simulation
- All Contributors - For making this project better every day
Made with β€οΈ and βΏ for the Omarchy community
Ready to build your perfect theme? Get started now!