Files
hydenix/docs/options.md
2025-11-01 10:30:13 +09:00

9.6 KiB

NixOS

hydenix options

module documentation

going to let you in on a secret: the nix options system is the documentation.
let's walk through an example. say you want to find info about hydenix.hm.theme.
the easiest way is to search the github repo for the options:

search for hydenix.hm.theme

you'll see the options in the search results, something like this:

options search example

click on the file to see the actual options definition, which looks something like this:

  options.hydenix.hm.theme = {
    enable = lib.mkOption {
      type = lib.types.bool;
      default = config.hydenix.hm.enable;
      description = "Enable theme module";
    };

    active = lib.mkOption {
      type = lib.types.str;
      default = "Catppuccin Mocha";
      description = "Active theme name";
    };

    themes = lib.mkOption {
      type = lib.types.listOf lib.types.str;
      default = [
        "Catppuccin Mocha"
        "Catppuccin Latte"
      ];
      description = "Available theme names";
    };
  };

notice that active has type str, which means it accepts a string. so you'd configure it like this:

hydenix.hm.theme.active = "Catppuccin Mocha";

you can find the full list of option types in the nixos manual.

required options

these are the required options for hydenix. you must set these options or else hydenix will not load.

{
  hydenix = {
    enable = true; # enable hydenix - required, default false
    hostname = "hydenix"; # hostname
    timezone = "America/Vancouver"; # timezone
    locale = "en_CA.UTF-8"; # locale
    hm.enable = true;
  };
}

default options

below are the default options for hydenix. they are in object format and any options you may follow the steps above to see any of the options implementation and documentation.

Important

hydenix.hm options must be used within a home-manager module, eg ./modules/hm/default.nix.

{
  hydenix = {

    # important options
    enable = true; # enable hydenix - required, default false
    hostname = "hydenix"; # hostname
    timezone = "America/Vancouver"; # timezone
    locale = "en_CA.UTF-8"; # locale

    # nixos hydenix options
    audio.enable = true; # enable audio module
    boot = {
      enable = true; # enable boot module
      useSystemdBoot = true; # disable for GRUB
      grubTheme = "Retroboot"; # or "Pochita"
      grubExtraConfig = ""; # additional GRUB configuration
      kernelPackages = pkgs.linuxPackages_zen; # default zen kernel
    };
    gaming.enable = true; # enable gaming module
    hardware.enable = true; # enable hardware module
    network.enable = true; # enable network module
    nix.enable = true; # enable nix module
    sddm.enable = true; # enable sddm module

    system.enable = true; # enable system module

    # home-manager hydenix options
    hm = {
      enable = true; # enable home-manager module
      comma.enable = true; # useful nix tool to run software without installing it first
      dolphin.enable = true; # file manager
      editors = {
        enable = true; # enable editors module
        neovim = true; # enable neovim module
        vscode = {
          enable = true; # enable vscode module
          wallbash = true; # enable wallbash extension for vscode
        };
        vim.enable = true; # enable vim module
        default = "code"; # default text editor
      };
      fastfetch.enable = true; # fastfetch configuration
      firefox.enable = true; # enable firefox module
      gaming.enable = true; # enable gaming module
      git = {
        enable = true; # enable git module
        name = null; # git user name eg "John Doe"
        email = null; # git user email eg "john.doe@example.com"
      };
      hyde.enable = true; # enable hyde module
      hyprland = {
        enable = true; # enable hyprland module
        extraConfig = ""; # extra config appended to userprefs.conf
        overrideMain = null; # complete override of hyprland.conf
        suppressWarnings = false; # suppress warnings
        # Animation configurations
        animations = {
          enable = true; # enable animation configurations
          preset = "standard"; # string from override or default: "standard" # or "LimeFrenzy", "classic", "diablo-1", "diablo-2", "disable", "dynamic", "end4", "fast", "high", "ja", "me-1", "me-2", "minimal-1", "minimal-2", "moving", "optimized", "standard", "vertical"
          extraConfig = ""; # additional animation configuration
          overrides = { }; # override specific animation files by name
        };
        # Shader configurations
        shaders = {
          enable = true; # enable shader configurations
          active = "disable"; # string from override or default: "disable" # or "blue-light-filter", "color-vision", "custom", "grayscale", "invert-colors", "oled", "oled-saver", "paper", "vibrance", "wallbash"
          overrides = { }; # override or add custom shaders
        };
        # Workflow configurations
        workflows = {
          enable = true; # enable workflow configurations
          active = "default"; # string from override or default: "default" # or "editing", "gaming", "powersaver", "snappy"
          overrides = { }; # override or add custom workflows
        };
        # Hypridle configurations
        hypridle = {
          enable = true; # enable hypridle configurations
          extraConfig = ""; # additional hypridle configuration
          overrideConfig = null; # complete hypridle configuration override (null or lib.types.lines)
        };
        # Keybindings configurations
        keybindings = {
          enable = true; # enable keybindings configurations
          extraConfig = ""; # additional keybindings configuration
          overrideConfig = null; # complete keybindings configuration override (null or lib.types.lines)
        };
        # Window rules configurations
        windowrules = {
          enable = true; # enable window rules configurations
          extraConfig = ""; # additional window rules configuration
          overrideConfig = null; # complete window rules configuration override (null or lib.types.lines)
        };
        # NVIDIA configurations
        nvidia = {
          enable = false; # enable NVIDIA configurations (defaults to config.hardware.nvidia.enabled)
          extraConfig = ""; # additional NVIDIA configuration
          overrideConfig = null; # complete NVIDIA configuration override (null or lib.types.lines)
        };
        # Pyprland configurations
        pyprland = {
          enable = true; # enable pyprland configurations
          extraConfig = ""; # additional pyprland configuration
          overrideConfig = null; # complete pyprland configuration override (null or lib.types.lines)
        };

        # Monitor configurations
        monitors = {
          enable = true; # enable monitor configurations
          overrideConfig = null; # complete monitor configuration override (null or lib.types.lines)
        };
      };
      lockscreen = {
        enable = true; # enable lockscreen module
        hyprlock = true; # enable hyprlock lockscreen
        swaylock = false; # enable swaylock lockscreen
      };
      notifications.enable = true; # enable notifications module
      qt.enable = true; # enable qt module
      rofi.enable = true; # enable rofi module
      screenshots = {
        enable = true; # enable screenshots module
        grim.enable = true; # enable grim screenshot tool
        slurp.enable = true; # enable slurp region selection tool
        satty.enable = false; # enable satty screenshot annotation tool
        swappy.enable = true; # enable swappy screenshot editor
      };
      wallpapers.enable = true; # enable wallpapers module
      shell = {
        enable = true; # enable shell module
        zsh = {
          enable = true; # enable zsh shell
          plugins = [ "sudo" ]; # zsh plugins
          configText = ""; # zsh config text
        };
        bash.enable = false; # enable bash shell
        fish.enable = false; # enable fish shell
        pokego.enable = false; # enable Pokemon ASCII art scripts
        p10k.enable = false; # enable p10k prompt
        starship.enable = true; # enable starship prompt
      };
      social = {
        enable = true; # enable social module
        discord.enable = true; # enable discord module
        webcord.enable = true; # enable webcord module
        vesktop.enable = true; # enable vesktop module
      };
      spotify.enable = true; # enable spotify module
      swww.enable = true; # enable swww wallpaper daemon
      terminals = {
        enable = true; # enable terminals module
        kitty = {
          enable = true; # enable kitty terminal
          configText = ""; # kitty config text
        };
      };
      theme = {
        enable = true; # enable theme module
        active = "Catppuccin Mocha"; # active theme name
        themes = [ "Catppuccin Mocha" "Catppuccin Latte" ]; # default enabled themes, full list in https://github.com/richen604/hydenix/tree/main/hydenix/sources/themes
      };
      waybar = {
        enable = true; # enable waybar module
        userStyle = ""; # custom waybar user-style.css
      };
      wlogout.enable = true; # enable wlogout module
      xdg.enable = true; # enable xdg module
    };
  };
}