i-am-logger/vogix
{ "createdAt": "2025-03-18T23:58:01Z", "defaultBranch": "master", "description": "A NixOS UX subsystem for unified desktop appearance and behavior", "fullName": "i-am-logger/vogix", "homepage": "", "language": "Nix", "name": "vogix", "pushedAt": "2026-03-18T03:15:51Z", "stargazersCount": 44, "topics": [], "updatedAt": "2026-03-18T02:54:14Z", "url": "https://github.com/i-am-logger/vogix"}A NixOS UX subsystem for unified desktop appearance and behavior.
Vogix is a declarative UX layer for NixOS that unifies desktop configuration - define your appearance (colors, fonts, transparency, animations) and behavior (keybindings, window rules, gestures) once, and vogix generates configs for all your applications.
Currently implemented: Runtime color theme switching across 4 schemes without system rebuilds.
Vision: Full desktop UX management - see [roadmap]!(#roadmap).
[!WARNING]
right now this runs and working in a vm.Terminal window nix run .#vogix-vmvogix is alpha, it is not battlefield tested though i’m working on integrating it to my system.
Roadmap
Section titled “Roadmap”Vogix is evolving from a color theming tool to a full NixOS UX subsystem. See #149 for the complete vision.
Appearance (how things look)
Section titled “Appearance (how things look)”- Colors - runtime theme switching
- Typography - fonts, sizes, weights
- Transparency - opacity, blur
- Backgrounds - wallpapers
- Window chrome - borders, gaps, radius
- Animations - duration, easing
- Cursors - theme, size
- Icons - icon themes
- Notifications - mako, dunst styling
- GTK/Qt - toolkit theming
- HiDPI - scaling
- Shaders - CRT, bloom effects
Behavior (how things act)
Section titled “Behavior (how things act)”- Keybindings - unified across apps
- Window rules - floating, positioning
- Focus - follow mouse, click-to-focus
- Gestures - touchpad, touchscreen
Philosophy
Section titled “Philosophy”Declarative. Define your desktop experience once in a single config. Vogix generates the app-specific configs.
Reproducible. Built on Nix. Same inputs = same outputs. Templates are immutable in the Nix store, rendering is deterministic.
Compositor-agnostic. Works with Hyprland, Sway, i3, and others. Define your UX, vogix handles the translation.
Color Schemes
Section titled “Color Schemes”Vogix supports 4 color schemes, each with its own philosophy:
| Scheme | Themes | Philosophy |
|---|---|---|
| vogix16 | 19 | Semantic design - colors convey functional meaning. See design system. |
| base16 | ~300 | Minimal palette standard for syntax highlighting |
| base24 | ~180 | Extended base16 with extra accents |
| ansi16 | ~450 | Traditional ANSI terminal color mappings |
Features
Section titled “Features”- Multi-Scheme Support: 4 color schemes (vogix16, ansi16, base16, base24)
- vogix16 (default) - Semantic design system focused on functional colors (19 native themes)
- ansi16 - Terminal ANSI standard (~450 themes)
- base16 - Minimal palette standard, widely used for UI and syntax highlighting (~300 themes)
- base24 - Expanded base16 palette with extra accents (~180 themes)
- Runtime Theme Switching: Change themes without NixOS rebuilds
- Multi-Variant Themes: Themes can have multiple variants (e.g., catppuccin: latte, frappe, macchiato, mocha)
- Polarity Navigation: Switch between lighter/darker variants with
vogix -v lighter/vogix -v darker - Application-Specific Configs: Direct integration for supported applications
- Multiple Reload Methods: DBus, Unix signals, Sway IPC, filesystem watching
- Nix-Based Theme Generation: All theme configurations pre-generated at build time
- NixOS Integration: Home Manager module with systemd service
- Shell Completions: Support for Bash, Zsh, Fish, and Elvish
Quick Start
Section titled “Quick Start”Installation (NixOS with Flakes)
Section titled “Installation (NixOS with Flakes)”Add to your flake.nix:
{ inputs.vogix.url = "github:i-am-logger/vogix";
outputs = { nixpkgs, home-manager, vogix, ... }: { homeConfigurations.youruser = home-manager.lib.homeManagerConfiguration { modules = [ vogix.homeManagerModules.default { # Enable applications you want to theme programs.alacritty.enable = true; programs.btop.enable = true;
# Configure vogix programs.vogix = { enable = true; scheme = "vogix16"; theme = "aikido"; variant = "dark"; }; } ]; }; };}# Show current theme statevogix status
# List all schemes with theme countsvogix list
# List themes in a specific schemevogix list -s base16
# Set scheme, theme, and variantvogix -s base16 -t catppuccin -v mocha
# Navigate to a darker variantvogix -v darker
# Navigate to a lighter variantvogix -v lighter
# Switch to default dark/light variantvogix -v darkvogix -v light
# Generate shell completionsvogix completions bash > ~/.local/share/bash-completion/completions/vogixTesting
Section titled “Testing”Vogix includes automated integration tests:
# Run all tests./test.sh
# Or use nix directlynix flake checkSee [TESTING.md]!(TESTING.md) for detailed testing documentation.
Documentation
Section titled “Documentation”- [Architecture]!(docs/architecture.md) - System architecture and integration
- [CLI Reference]!(docs/cli.md) - Command-line interface guide
- [Theming Guide]!(docs/theming.md) - Creating and customizing themes
- [Reload Mechanisms]!(docs/reload.md) - Application reload methods
- Vogix16 Design System - Default scheme philosophy and formats
Defaults
Section titled “Defaults”Vogix ships with the vogix16 scheme as the default, using the aikido theme in dark mode unless configured otherwise.
Example Themes
Section titled “Example Themes”Vogix supports themes from multiple sources:
- vogix16: Native themes from vogix16-themes (aikido, forest, etc.)
- ansi16: Imported from iTerm2-Color-Schemes
- base16/base24: Imported from tinted-schemes (catppuccin, dracula, gruvbox, nord, etc.)
Create custom vogix16 themes by following the vogix16-themes contribution guide.
Requirements
Section titled “Requirements”- NixOS (for full integration) or any Linux distribution (for standalone binary)
- Rust Edition 2024
- DBus (for DBus reload functionality)
- Optional: Sway (for Sway IPC reload)
License
Section titled “License”Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA) 4.0 International
See [LICENSE]!(LICENSE) for details.
Contributing
Section titled “Contributing”- [Contributing Guide]!(CONTRIBUTING.md) - How to contribute to Vogix
- [Development Guide]!(DEVELOPMENT.md) - Setting up development environment
- [Testing Guide]!(TESTING.md) - Automated testing documentation
Acknowledgments
Section titled “Acknowledgments”Vogix is inspired by projects in the theme ecosystem and incorporates scheme data from upstream sources:
- tinted-theming/schemes - Source for base16/base24 schemes (via fork)
- iTerm2-Color-Schemes - Source for ansi16 schemes (via fork)
- Base16 - Palette standard that informed scheme conventions
- Stylix - NixOS theming inspiration
- Omarchy - Runtime theme switching inspiration