hm test
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
# Home Manager module for barbar.
|
||||
#
|
||||
# imports = [ inputs.barbar.homeManagerModules.default ];
|
||||
#
|
||||
# Generates barbar.toml from `programs.barbar.settings` and runs the bar as a
|
||||
# systemd user service bound to the graphical session.
|
||||
self:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.programs.barbar;
|
||||
toml = pkgs.formats.toml { };
|
||||
configFile = toml.generate "barbar.toml" cfg.settings;
|
||||
in
|
||||
{
|
||||
options.programs.barbar = {
|
||||
enable = lib.mkEnableOption "barbar, a Wayland layer-shell status bar";
|
||||
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = self.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||
defaultText = lib.literalExpression "barbar.packages.\${system}.default";
|
||||
description = "The barbar package to run.";
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = toml.type;
|
||||
default.order = {
|
||||
left = [ ];
|
||||
middle = [ ];
|
||||
right = [ ];
|
||||
};
|
||||
defaultText = lib.literalExpression ''{ order = { left = [ ]; middle = [ ]; right = [ ]; }; }'';
|
||||
description = ''
|
||||
Contents of barbar.toml, written verbatim. Only `order` is required by
|
||||
barbar; `[display]`, `[modules.*]` and `[services.*]` are optional.
|
||||
See test.toml in the barbar repo for the full schema.
|
||||
'';
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
display = {
|
||||
monitor = "DP-2";
|
||||
height = 24;
|
||||
};
|
||||
order = {
|
||||
left = [ "workspaces" "weather" ];
|
||||
middle = [ ];
|
||||
right = [ "clock" ];
|
||||
};
|
||||
modules.clock.show_seconds = false;
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Run barbar as a systemd user service.";
|
||||
};
|
||||
|
||||
systemd.target = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "graphical-session.target";
|
||||
description = "Systemd target the bar is bound to.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.user.services.barbar = lib.mkIf cfg.systemd.enable {
|
||||
Unit = {
|
||||
Description = "barbar status bar";
|
||||
After = [ cfg.systemd.target ];
|
||||
PartOf = [ cfg.systemd.target ];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${lib.getExe' cfg.package "core"} --config ${configFile}";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
Install.WantedBy = [ cfg.systemd.target ];
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user