No description
| lib | ||
| modules | ||
| parts | ||
| CLAUDE.md | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
arroz.nix (WIP)
Desktop environment extension for mix.nix
Overview
arroz.nix extends mix.nix's host spec with desktop and greeter options. Modules are conditionally loaded based on your host configuration; enable what you need.
Supported Desktops:
- GNOME
- Hyprland (w/ hyprscrolling, DankMaterialShell)
- Niri (w/ DankMaterialShell)
Supported Greeters:
- GDM
- DMS (DankMaterialShell greeter)
- tuigreet (TUI greeter via greetd)
Installation
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
mix-nix.url = "github:tophc7/mix.nix";
arroz-nix.url = "github:tophc7/arroz.nix";
};
outputs = inputs@{ flake-parts, mix-nix, arroz-nix, ... }:
flake-parts.lib.mkFlake {
inherit inputs;
specialArgs = { lib = mix-nix.lib; };
} {
imports = [ arroz-nix.flakeModules.default ];
systems = [ "x86_64-linux" "aarch64-linux" ];
mix = {
# ... your mix.nix config (users, hostsDir, etc.)
hosts.desktop = {
user = "myuser";
desktop.niri.enable = true;
greeter.type = "dms";
};
};
};
}
Note:
arroz-nix.flakeModules.defaultincludesmix-nix.flakeModules.hosts, so you don't need to import both.
Host Options
Options added to mix.hosts.<name>:
mix.hosts.myhost = {
# Desktop environments (can enable multiple, mark one as default)
desktop.gnome.enable = true;
desktop.gnome.default = true; # Primary session
desktop.hyprland.enable = true;
desktop.hyprland.default = false;
desktop.niri.enable = true;
desktop.niri.default = false;
# Greeter
greeter.type = "dms"; # "gdm" | "dms" | "tuigreet" | null
greeter.autoLogin = false; # Auto-login for primary user
};
License
MIT