Veila
Installation

NixOS

Install through the NixOS module or add the flake package directly

There is both a package and a small NixOS module.

NixOS Module

Add it as a flake input:

{
  inputs.veila.url = "github:naurissteins/Veila";
}

Then import the module and enable it in your NixOS configuration:

{
  imports = [
    inputs.veila.nixosModules.default
  ];

  programs.veila.enable = true;
}

This installs veila, veilad and veila-curtain. It also configures the required PAM service. The package includes example user units under share/veila/systemd/.

Package Only

Install the package directly:

{
  environment.systemPackages = [
    inputs.veila.packages.${pkgs.system}.default
  ];

  security.pam.services.veila = {};
}

The PAM service is required so password authentication works correctly. Without it, the lockscreen can start successfully but reject the correct password with Authentication failed.

Build Manually

Build from a local checkout:

git clone https://github.com/naurissteins/Veila.git
cd Veila
nix build .#veila
./result/bin/veilad --help
./result/bin/veila --help
./result/bin/veila-curtain --help

Or build straight from the flake:

nix build github:naurissteins/Veila#veila

First Launch

Start the daemon

veilad

Or start veilad from your compositor config:

exec-once = veilad

Lock directly from the CLI:

veila lock

Example keybind for Hyprland:

bind = SUPER, Escape, exec, veila lock

That is enough to get started. It works out of the box, and no extra configuration is required for a basic setup.

You do not need to go through the full configuration reference just to make small changes. For simple tweaks like changing the wallpaper, avatar, clock or date format, or a few widget options, start with the default theme or pick another theme you like and follow the instructions on that theme page.

On this page