Skip to content
vic

i-am-logger/vogix

A NixOS UX subsystem for unified desktop appearance and behavior

i-am-logger/vogix.json
{
"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-01-19T22:42:53Z",
"stargazersCount": 44,
"topics": [],
"updatedAt": "2026-01-19T22:40:43Z",
"url": "https://github.com/i-am-logger/vogix"
}

CI License: CC BY-NC-SA 4.0 NixOS Rust

Runtime theme management for NixOS.

Vogix is a runtime theme management system for NixOS with multi-scheme support. Switch themes without system rebuilds across 4 color schemes on Linux (macOS is untested).

[!WARNING]
right now this runs and working in a vm.

Terminal window
nix run .#vogix-vm

vogix is alpha, it is not battlefield tested though i’m working on integrating it to my system.

Vogix supports multiple color scheme philosophies:

  • vogix16: Semantic design system - colors convey functional meaning (errors, warnings, success) The vogix16 scheme follows a “less is more” approach where functional colors convey information the user needs to know, while monochromatic colors provide structure. See [Vogix16 Design System]!(docs/vogix16-design-system.md) for detailed guidelines.
  • ansi16: Terminal standard - traditional ANSI color slot mappings
  • base16: Minimal palette standard for terminals and UI, widely used for syntax highlighting
  • base24: Expanded base16 palette with extra accents for richer UI and syntax groups
  • 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

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;
defaultScheme = "vogix16";
defaultTheme = "aikido";
defaultVariant = "dark";
};
}
];
};
};
}
Terminal window
# Show current theme state
vogix status
# List all schemes with theme counts
vogix list
# List themes in a specific scheme
vogix list -s base16
# Set scheme, theme, and variant
vogix -s base16 -t catppuccin -v mocha
# Navigate to a darker variant
vogix -v darker
# Navigate to a lighter variant
vogix -v lighter
# Switch to default dark/light variant
vogix -v dark
vogix -v light
# Generate shell completions
vogix completions bash > ~/.local/share/bash-completion/completions/vogix

Vogix includes automated integration tests:

Terminal window
# Run all tests
./test.sh
# Or use nix directly
nix flake check

See [TESTING.md]!(TESTING.md) for detailed testing 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]!(docs/vogix16-design-system.md) - Default scheme philosophy and formats

Vogix ships with the vogix16 scheme as the default, using the aikido theme in dark mode unless configured otherwise.

Vogix supports themes from multiple sources:

  • vogix16: Native themes in themes/vogix16/ (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 format in themes/vogix16/aikido.nix.

  • 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)

Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA) 4.0 International

See [LICENSE]!(LICENSE) for details.

  • [Contributing Guide]!(CONTRIBUTING.md) - How to contribute to Vogix
  • [Development Guide]!(DEVELOPMENT.md) - Setting up development environment
  • [Testing Guide]!(TESTING.md) - Automated testing documentation

Vogix is inspired by projects in the theme ecosystem and incorporates scheme data from upstream sources: