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!