Regenerated
This commit is contained in:
+29
-9
@@ -812,32 +812,52 @@ in
|
||||
** =generated/modules/traveldroid/desktop/waybar.nix=
|
||||
This file installs and configures waybar
|
||||
#+BEGIN_SRC nix :tangle generated/modules/traveldroid/desktop/waybar.nix :noweb tangle :mkdirp yes :eval never-html
|
||||
{ config, pkgs, ... }:
|
||||
{ lib, config, pkgs, flakeRoot, home-manager, ... }:
|
||||
|
||||
let
|
||||
waybarPath = "${pkgs.waybar}/bin/waybar";
|
||||
# Path to Waybar assets
|
||||
assetPath = "${flakeRoot}/assets/system/conf/waybar";
|
||||
|
||||
# Pick the first normal user
|
||||
normalUsers = builtins.filter (u: (config.users.users.${u}.isNormalUser or false) != false) (builtins.attrNames config.users.users);
|
||||
myUser = if normalUsers == [] then builtins.head (builtins.attrNames config.users.users) else builtins.head normalUsers;
|
||||
# Determine the username safely
|
||||
username =
|
||||
builtins.head (builtins.filter (u: config.users.users.${u}.isNormalUser != false)
|
||||
(builtins.attrNames config.users.users));
|
||||
|
||||
# Compute UID safely
|
||||
myUid = config.users.users.${myUser}.uid;
|
||||
# Compute the Home Manager user map safely
|
||||
hmUser = config.home-manager.users.${username} or {};
|
||||
in
|
||||
{
|
||||
##############################
|
||||
# System-wide Waybar package
|
||||
##############################
|
||||
environment.systemPackages = [ pkgs.waybar ];
|
||||
|
||||
##############################
|
||||
# Home Manager Waybar config
|
||||
##############################
|
||||
home-manager.users = lib.recursiveUpdate config.home-manager.users {
|
||||
${username} = lib.recursiveUpdate hmUser {
|
||||
home.file = lib.recursiveUpdate (hmUser.home.file or {}) {
|
||||
".config/waybar/config" = { source = "${assetPath}/config"; };
|
||||
".config/waybar/style.css" = { source = "${assetPath}/style.css"; };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
##############################
|
||||
# Optional: Systemd --user service for Waybar
|
||||
##############################
|
||||
systemd.user.services.waybar = {
|
||||
description = "Waybar for Hyprland";
|
||||
after = [ "graphical-session.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${waybarPath}";
|
||||
ExecStart = "${pkgs.waybar}/bin/waybar";
|
||||
Restart = "always";
|
||||
# Use the runtime dir provided by systemd, avoids null/UID issues
|
||||
Environment = ''
|
||||
WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-0"}
|
||||
XDG_CURRENT_DESKTOP=Hyprland
|
||||
XDG_RUNTIME_DIR=/run/user/${myUid}
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -1,29 +1,49 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ lib, config, pkgs, flakeRoot, home-manager, ... }:
|
||||
|
||||
let
|
||||
waybarPath = "${pkgs.waybar}/bin/waybar";
|
||||
# Path to Waybar assets
|
||||
assetPath = "${flakeRoot}/assets/system/conf/waybar";
|
||||
|
||||
# Pick the first normal user
|
||||
normalUsers = builtins.filter (u: (config.users.users.${u}.isNormalUser or false) != false) (builtins.attrNames config.users.users);
|
||||
myUser = if normalUsers == [] then builtins.head (builtins.attrNames config.users.users) else builtins.head normalUsers;
|
||||
# Determine the username safely
|
||||
username =
|
||||
builtins.head (builtins.filter (u: config.users.users.${u}.isNormalUser != false)
|
||||
(builtins.attrNames config.users.users));
|
||||
|
||||
# Compute UID safely
|
||||
myUid = config.users.users.${myUser}.uid;
|
||||
# Compute the Home Manager user map safely
|
||||
hmUser = config.home-manager.users.${username} or {};
|
||||
in
|
||||
{
|
||||
##############################
|
||||
# System-wide Waybar package
|
||||
##############################
|
||||
environment.systemPackages = [ pkgs.waybar ];
|
||||
|
||||
##############################
|
||||
# Home Manager Waybar config
|
||||
##############################
|
||||
home-manager.users = lib.recursiveUpdate config.home-manager.users {
|
||||
${username} = lib.recursiveUpdate hmUser {
|
||||
home.file = lib.recursiveUpdate (hmUser.home.file or {}) {
|
||||
".config/waybar/config" = { source = "${assetPath}/config"; };
|
||||
".config/waybar/style.css" = { source = "${assetPath}/style.css"; };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
##############################
|
||||
# Optional: Systemd --user service for Waybar
|
||||
##############################
|
||||
systemd.user.services.waybar = {
|
||||
description = "Waybar for Hyprland";
|
||||
after = [ "graphical-session.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${waybarPath}";
|
||||
ExecStart = "${pkgs.waybar}/bin/waybar";
|
||||
Restart = "always";
|
||||
# Use the runtime dir provided by systemd, avoids null/UID issues
|
||||
Environment = ''
|
||||
WAYLAND_DISPLAY=${config.environment.sessionVariables.WAYLAND_DISPLAY or "wayland-0"}
|
||||
XDG_CURRENT_DESKTOP=Hyprland
|
||||
XDG_RUNTIME_DIR=/run/user/${myUid}
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user