{ lib, config, pkgs, flakeRoot, ... }: let # Use the config option defaultUser directly, fallback to "henrov" username = config.defaultUser or "henrov"; assetPath = "${flakeRoot}/assets/traveldroid/conf/waybar"; in { # Install Waybar system-wide environment.systemPackages = [ pkgs.waybar ]; # Home Manager user definition: only define what you need home-manager.users = { ${username} = { home.file = { ".config/waybar/config" = { source = "${assetPath}/config"; force = true; # <-- allow overwrite }; ".config/waybar/style.css" = { source = "${assetPath}/style.css"; force = true; # <-- allow overwrite }; }; }; }; # Systemd user service for Waybar systemd.user.services.waybar = { description = "Waybar for Hyprland"; after = [ "graphical-session.target" ]; serviceConfig = { ExecStart = "${pkgs.waybar}/bin/waybar"; Restart = "always"; Environment = '' WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-0"} XDG_CURRENT_DESKTOP=Hyprland ''; }; wantedBy = [ "default.target" ]; }; }