yambar: add module
This commit is contained in:
parent
f2c5ba5e72
commit
5514ed3210
|
@ -1642,6 +1642,20 @@ in {
|
||||||
https://github.com/hyprwm/hyprpaper for more.
|
https://github.com/hyprwm/hyprpaper for more.
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
time = "2024-05-10T21:28:38+00:00";
|
||||||
|
condition = hostPlatform.isLinux;
|
||||||
|
message = ''
|
||||||
|
A new module is available: 'programs.yambar'.
|
||||||
|
|
||||||
|
Yambar is a lightweight and configurable status panel for X11 and
|
||||||
|
Wayland, that goes to great lengths to be both CPU and battery
|
||||||
|
efficient - polling is only done when absolutely necessary.
|
||||||
|
|
||||||
|
See https://codeberg.org/dnkl/yambar for more.
|
||||||
|
'';
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -254,6 +254,7 @@ let
|
||||||
./programs/wpaperd.nix
|
./programs/wpaperd.nix
|
||||||
./programs/xmobar.nix
|
./programs/xmobar.nix
|
||||||
./programs/xplr.nix
|
./programs/xplr.nix
|
||||||
|
./programs/yambar.nix
|
||||||
./programs/yazi.nix
|
./programs/yazi.nix
|
||||||
./programs/yt-dlp.nix
|
./programs/yt-dlp.nix
|
||||||
./programs/z-lua.nix
|
./programs/z-lua.nix
|
||||||
|
|
55
modules/programs/yambar.nix
Normal file
55
modules/programs/yambar.nix
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
cfg = config.programs.yambar;
|
||||||
|
yamlFormat = pkgs.formats.yaml { };
|
||||||
|
|
||||||
|
in {
|
||||||
|
meta.maintainers = [ lib.maintainers.carpinchomug ];
|
||||||
|
|
||||||
|
options.programs.yambar = {
|
||||||
|
enable = lib.mkEnableOption "Yambar";
|
||||||
|
|
||||||
|
package = lib.mkPackageOption pkgs "yambar" { };
|
||||||
|
|
||||||
|
settings = lib.mkOption {
|
||||||
|
type = yamlFormat.type;
|
||||||
|
default = { };
|
||||||
|
example = lib.literalExpression ''
|
||||||
|
bar = {
|
||||||
|
location = "top";
|
||||||
|
height = 26;
|
||||||
|
background = "00000066";
|
||||||
|
|
||||||
|
right = [
|
||||||
|
{
|
||||||
|
clock.content = [
|
||||||
|
{
|
||||||
|
string.text = "{time}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Configuration written to {file}`$XDG_CONFIG_HOME/yambar/config.yml`.
|
||||||
|
See {manpage}`yambar(5)` for options.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
assertions = [
|
||||||
|
(lib.hm.assertions.assertPlatform "programs.yambar" pkgs
|
||||||
|
lib.platforms.linux)
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = [ cfg.package ];
|
||||||
|
|
||||||
|
xdg.configFile."yambar/config.yml" = lib.mkIf (cfg.settings != { }) {
|
||||||
|
source = yamlFormat.generate "config.yml" cfg.settings;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -219,6 +219,7 @@ in import nmtSrc {
|
||||||
./modules/programs/wofi
|
./modules/programs/wofi
|
||||||
./modules/programs/wpaperd
|
./modules/programs/wpaperd
|
||||||
./modules/programs/xmobar
|
./modules/programs/xmobar
|
||||||
|
./modules/programs/yambar
|
||||||
./modules/programs/yt-dlp
|
./modules/programs/yt-dlp
|
||||||
./modules/services/activitywatch
|
./modules/services/activitywatch
|
||||||
./modules/services/avizo
|
./modules/services/avizo
|
||||||
|
|
4
tests/modules/programs/yambar/default.nix
Normal file
4
tests/modules/programs/yambar/default.nix
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
yambar-empty-settings = ./empty-settings.nix;
|
||||||
|
yambar-example-settings = ./example-settings.nix;
|
||||||
|
}
|
11
tests/modules/programs/yambar/empty-settings.nix
Normal file
11
tests/modules/programs/yambar/empty-settings.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.yambar.enable = true;
|
||||||
|
|
||||||
|
test.stubs.yambar = { };
|
||||||
|
|
||||||
|
nmt.script = ''
|
||||||
|
assertPathNotExists home-files/.config/yambar
|
||||||
|
'';
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
bar:
|
||||||
|
background: '00000066'
|
||||||
|
height: 26
|
||||||
|
location: top
|
||||||
|
right:
|
||||||
|
- clock:
|
||||||
|
content:
|
||||||
|
- string:
|
||||||
|
text: '{time}'
|
35
tests/modules/programs/yambar/example-settings.nix
Normal file
35
tests/modules/programs/yambar/example-settings.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{ config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.yambar = {
|
||||||
|
enable = true;
|
||||||
|
package = config.lib.test.mkStubPackage { };
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
bar = {
|
||||||
|
location = "top";
|
||||||
|
height = 26;
|
||||||
|
background = "00000066";
|
||||||
|
right = [{ clock.content = [{ string.text = "{time}"; }]; }];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nmt.script = ''
|
||||||
|
assertFileContent \
|
||||||
|
home-files/.config/yambar/config.yml \
|
||||||
|
${
|
||||||
|
builtins.toFile "yambar-expected.yml" ''
|
||||||
|
bar:
|
||||||
|
background: '00000066'
|
||||||
|
height: 26
|
||||||
|
location: top
|
||||||
|
right:
|
||||||
|
- clock:
|
||||||
|
content:
|
||||||
|
- string:
|
||||||
|
text: '{time}'
|
||||||
|
''
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
Loading…
Reference in a new issue