working on waybar

This commit is contained in:
2026-03-11 19:53:29 +01:00
parent 5830793d0c
commit 47895c3562
3 changed files with 426 additions and 390 deletions
+358 -346
View File
File diff suppressed because it is too large Load Diff
+16 -4
View File
@@ -888,29 +888,41 @@ This file installs and configures waybar
{ lib, pkgs, config, ... }: { lib, pkgs, config, ... }:
let let
cfg = config.programs.waybar;
waybar-config = builtins.readFile ./assets/system/conf/config; waybar-config = builtins.readFile ./assets/system/conf/config;
waybar-style = builtins.readFile ./assets/system/conf/style.css; waybar-style = builtins.readFile ./assets/system/conf/style.css;
in in
{ {
waybar.enable = true; options.programs.waybar = {
enable = lib.mkEnableOption "Waybar";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.waybar;
description = "Waybar package to use.";
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
systemd.user.services.waybar = { systemd.user.services.waybar = {
description = "Waybar (status bar for Wayland)"; description = "Waybar (status bar for Wayland)";
wantedBy = [ "graphical-session.target" ]; wantedBy = [ "graphical-session.target" ];
after = [ "graphical-session.target" ]; after = [ "graphical-session.target" ];
serviceConfig = { serviceConfig = {
ExecStart = with pkgs; "${waybar}/bin/waybar -c ${./assets/system/conf/config} -s ${./assets/system/conf/style.css}"; ExecStart = "${cfg.package}/bin/waybar -c ${./assets/system/conf/config} -s ${./assets/system/conf/style.css}";
Restart = "on-failure"; Restart = "on-failure";
RestartSec = "5s"; RestartSec = "5s";
}; };
}; };
# Create the required directories and files # Create symlinks for config and style
system.activationScripts.waybarSetup = '' system.activationScripts.waybarSetup = lib.mkAfter ''
mkdir -p /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar mkdir -p /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar
ln -sf ${./assets/system/conf/config} /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar/config ln -sf ${./assets/system/conf/config} /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar/config
ln -sf ${./assets/system/conf/style.css} /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar/style.css ln -sf ${./assets/system/conf/style.css} /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar/style.css
''; '';
};
} }
#+END_SRC #+END_SRC
+16 -4
View File
@@ -1,27 +1,39 @@
{ lib, pkgs, config, ... }: { lib, pkgs, config, ... }:
let let
cfg = config.programs.waybar;
waybar-config = builtins.readFile ./assets/system/conf/config; waybar-config = builtins.readFile ./assets/system/conf/config;
waybar-style = builtins.readFile ./assets/system/conf/style.css; waybar-style = builtins.readFile ./assets/system/conf/style.css;
in in
{ {
waybar.enable = true; options.programs.waybar = {
enable = lib.mkEnableOption "Waybar";
package = lib.mkOption {
type = lib.types.package;
default = pkgs.waybar;
description = "Waybar package to use.";
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
systemd.user.services.waybar = { systemd.user.services.waybar = {
description = "Waybar (status bar for Wayland)"; description = "Waybar (status bar for Wayland)";
wantedBy = [ "graphical-session.target" ]; wantedBy = [ "graphical-session.target" ];
after = [ "graphical-session.target" ]; after = [ "graphical-session.target" ];
serviceConfig = { serviceConfig = {
ExecStart = with pkgs; "${waybar}/bin/waybar -c ${./assets/system/conf/config} -s ${./assets/system/conf/style.css}"; ExecStart = "${cfg.package}/bin/waybar -c ${./assets/system/conf/config} -s ${./assets/system/conf/style.css}";
Restart = "on-failure"; Restart = "on-failure";
RestartSec = "5s"; RestartSec = "5s";
}; };
}; };
# Create the required directories and files # Create symlinks for config and style
system.activationScripts.waybarSetup = '' system.activationScripts.waybarSetup = lib.mkAfter ''
mkdir -p /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar mkdir -p /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar
ln -sf ${./assets/system/conf/config} /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar/config ln -sf ${./assets/system/conf/config} /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar/config
ln -sf ${./assets/system/conf/style.css} /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar/style.css ln -sf ${./assets/system/conf/style.css} /home/${config.users.users.${config.nixpkgs.config.permittedUsers[0]}.name}/.config/waybar/style.css
''; '';
};
} }