34 lines
997 B
Nix
34 lines
997 B
Nix
{ config, pkgs, ... }:
|
|
|
|
let
|
|
waybarPath = "${pkgs.waybar}/bin/waybar";
|
|
|
|
# Pick the first normal (non-system) user automatically
|
|
normalUsers = builtins.filter (u: config.users.users.${u}.isNormalUser != false) (builtins.attrNames config.users.users);
|
|
myUser = if normalUsers == [] then builtins.head (builtins.attrNames config.users.users) else builtins.head normalUsers;
|
|
in
|
|
{
|
|
# Install Waybar in the system
|
|
environment.systemPackages = [
|
|
pkgs.waybar
|
|
];
|
|
|
|
# User systemd service for Waybar
|
|
systemd.user.services.waybar = {
|
|
description = "Waybar for Hyprland";
|
|
after = [ "graphical-session.target" ];
|
|
|
|
serviceConfig = {
|
|
ExecStart = "${waybarPath}";
|
|
Restart = "always";
|
|
Environment = ''
|
|
WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-0"}
|
|
XDG_CURRENT_DESKTOP=Hyprland
|
|
XDG_RUNTIME_DIR=/run/user/${config.users.users.${myUser}.uid}
|
|
'';
|
|
};
|
|
|
|
wantedBy = [ "default.target" ];
|
|
};
|
|
}
|