9.6 KiB
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:
you'll see the options in the search results, something like this:
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.hmoptions 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
};
};
}
