Hyprland configuration framework.
0

Configure Feed

Select the types of activity you want to include in your feed.

Nix 93.0%
Lua 7.0%
Shell 0.1%
16 1 0

Clone this repository

https://tangled.org/adam0.dev/hylix https://tangled.org/did:plc:r3tmbeocrgryca5nbgxns4yu
git@knot.zezura.xyz:adam0.dev/hylix git@knot.zezura.xyz:did:plc:r3tmbeocrgryca5nbgxns4yu

For self-hosted knots, clone URLs may differ based on your setup.



README.md
Nix logo

hylix#

Hyprland configuration framework.

Repo Size
Nix Hyprland

Overview - Usage - Modules

Overview#

Define your Hyprland configuration in Nix. Each domain — settings, keybinds, monitors, animations, rules, environment — gets its own Nix option, and the framework serialises everything into the Lua format consumed by Hyprland's hyprland.lua.

This is a refactored fork of karol-broda/nixhypr

Usage#

Add the flake as an input:

{
  inputs.hylix.url = "github:adam01110/hylix";
}

Then import the Home Manager module and set the pieces you care about:

{
  hylix,
  ...
}: {
  imports = [hylix.homeManagerModules.default];

  programs.hylix = {
    enable = true;

    settings.general = {
      gaps_in = 2;
      gaps_out = 6;
    };

    binds = [
      {
        keys = ["SUPER" "Return"];
        exec = "foot";
      }
    ];
  };
}

If wayland.windowManager.hyprland.enable is already enabled in Home Manager, hylix puts the generated Lua in wayland.windowManager.hyprland.extraConfig. Otherwise it writes ~/.config/hypr/hyprland.lua through xdg.configFile.

For lower-level use, the generic module is exported as hylix.modules.generic.hylix and the generated text is exposed at config.programs.hylix._generatedConfig.

Modules#

All options live under programs.hylix.*.

Option Lua output What it configures
settings hl.config(...) Freeform Hyprland settings
env hl.env(...) Environment variables
monitors hl.monitor(...) Outputs, modes, positions, and scale
devices hl.device(...) Input device tables
animations.curves hl.curve(...) Named bezier and spring curves
animations.animations hl.animation(...) Animation rules
rules.window hl.window_rule(...) Window matching rules
rules.workspace hl.workspace_rule(...) Workspace rules
rules.layer hl.layer_rule(...) Layer surface rules
permissions hl.permission(...) Permission prompts and allow/deny rules
gestures hl.gesture(...) Touch gesture bindings
binds / bindGroups hl.bind(...) Keybinds, with optional categories
autostart hl.exec_cmd(...) Startup commands
notifications hl.notification.create(...) Startup notifications
events hl.on(...) Hyprland event hooks
extraLua / extraLuaSnippets raw append Anything the module options do not cover