{ lib, pkgs, config, ... }: let # Copy the config and style files into the Nix store waybar-config = pkgs.writeText "waybar-config" (builtins.readFile ./assets/system/conf/config); waybar-style = pkgs.writeText "waybar-style" (builtins.readFile ./assets/system/conf/style.css); in { programs.waybar = { enable = true; package = pkgs.waybar; }; systemd.user.services.waybar = { description = "Waybar (status bar for Wayland)"; wantedBy = [ "graphical-session.target" ]; after = [ "graphical-session.target" ]; serviceConfig = { ExecStart = "${config.programs.waybar.package}/bin/waybar -c ${waybar-config} -s ${waybar-style}"; Restart = "on-failure"; RestartSec = "5s"; }; }; # Create symlinks for config and style system.activationScripts.waybarSetup = lib.mkAfter '' mkdir -p /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar ln -sf ${waybar-config} /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar/config ln -sf ${waybar-style} /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar/style.css ''; }