mirror of
https://github.com/nix-community/home-manager.git
synced 2026-06-05 21:02:51 +00:00
`literalExpression` is intended just to signify code that needs to stay a string that gets represented exactly as-is for docs. It has been misused heavily and people get confused repeatedly on when or not to use it because of the rampant misuse.
64 lines
1.7 KiB
Nix
64 lines
1.7 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
|
|
let
|
|
|
|
cfg = config.programs.lazydocker;
|
|
|
|
yamlFormat = pkgs.formats.yaml { };
|
|
|
|
configDir =
|
|
if pkgs.stdenv.hostPlatform.isDarwin && !config.xdg.enable then
|
|
"Library/Application Support/jesseduffield"
|
|
else
|
|
config.xdg.configHome;
|
|
|
|
in
|
|
{
|
|
meta.maintainers = [ lib.maintainers.hausken ];
|
|
|
|
options.programs.lazydocker = {
|
|
enable = lib.mkEnableOption "lazydocker, a simple terminal UI for both docker and docker compose";
|
|
|
|
package = lib.mkPackageOption pkgs "lazydocker" { nullable = true; };
|
|
|
|
settings = lib.mkOption {
|
|
inherit (yamlFormat) type;
|
|
default = {
|
|
commandTemplates.dockerCompose = "docker compose"; # Lazydocker uses docker-compose by default which will not work
|
|
};
|
|
example = {
|
|
gui.theme = {
|
|
activeBorderColor = [
|
|
"red"
|
|
"bold"
|
|
];
|
|
inactiveBorderColor = [ "blue" ];
|
|
};
|
|
commandTemplates.dockerCompose = "docker compose compose -f docker-compose.yml";
|
|
};
|
|
description = ''
|
|
Configuration written to
|
|
{file}`$XDG_CONFIG_HOME/lazydocker/config.yml`
|
|
on Linux or on Darwin if [](#opt-xdg.enable) is set, otherwise
|
|
{file}`~/Library/Application Support/jesseduffield/lazydocker/config.yml`.
|
|
See
|
|
<https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md>
|
|
for supported values.
|
|
'';
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
home.packages = lib.mkIf (cfg.package != null) [ cfg.package ];
|
|
|
|
home.file."${configDir}/lazydocker/config.yml" = lib.mkIf (cfg.settings != { }) {
|
|
source = yamlFormat.generate "lazydocker-config" cfg.settings;
|
|
};
|
|
};
|
|
}
|