Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

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-03-18T03:15:51Z",
"stargazersCount": 44,
"topics": [],
"updatedAt": "2026-03-18T02:54:14Z",
"url": "https://github.com/i-am-logger/vogix"
}

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

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-vm

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

Vogix is evolving from a color theming tool to a full NixOS UX subsystem. See #149 for the complete vision.

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.

Vogix supports 4 color schemes, each with its own philosophy:

SchemeThemesPhilosophy
vogix1619Semantic design - colors convey functional meaning. See design system.
base16~300Minimal palette standard for syntax highlighting
base24~180Extended base16 with extra accents
ansi16~450Traditional ANSI terminal color mappings
  • 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;
scheme = "vogix16";
theme = "aikido";
variant = "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 - 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:

Create custom vogix16 themes by following the vogix16-themes contribution guide.

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