36a53d9f26
This process was automated by [my fork of `nix-doc-munge`]. All conversions were automatically checked to produce the same DocBook result when converted back, modulo minor typographical/formatting differences on the acceptable-to-desirable spectrum. To reproduce this commit, run: $ NIX_PATH=nixpkgs=flake:nixpkgs/e7e69199f0372364a6106a1e735f68604f4c5a25 \ nix shell nixpkgs#coreutils \ -c find . -name '*.nix' \ -exec nix run -- github:emilazy/nix-doc-munge/98dadf1f77351c2ba5dcb709a2a171d655f15099 \ {} + $ ./format [my fork of `nix-doc-munge`]: https://github.com/emilazy/nix-doc-munge/tree/home-manager
74 lines
1.8 KiB
Nix
74 lines
1.8 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
|
|
cfg = config.programs.terminator;
|
|
|
|
toValue = val:
|
|
if val == null then
|
|
"None"
|
|
else if val == true then
|
|
"True"
|
|
else if val == false then
|
|
"False"
|
|
else
|
|
''"${toString val}"'';
|
|
|
|
toConfigObject = let
|
|
toKey = depth: key:
|
|
if depth == 0 then key else toKey (depth - 1) "[${key}]";
|
|
toConfigObjectLevel = depth: obj:
|
|
flatten (mapAttrsToList (key: val:
|
|
if isAttrs val then
|
|
[ (toKey depth key) ] ++ toConfigObjectLevel (depth + 1) val
|
|
else
|
|
[ "${key} = ${toValue val}" ]) obj);
|
|
in obj: concatStringsSep "\n" (toConfigObjectLevel 1 obj);
|
|
|
|
in {
|
|
meta.maintainers = [ maintainers.chisui ];
|
|
|
|
options.programs.terminator = {
|
|
enable =
|
|
mkEnableOption (lib.mdDoc "terminator, a tiling terminal emulator");
|
|
|
|
package = mkOption {
|
|
type = types.package;
|
|
default = pkgs.terminator;
|
|
example = literalExpression "pkgs.terminator";
|
|
description = lib.mdDoc "terminator package to install.";
|
|
};
|
|
|
|
config = mkOption {
|
|
default = { };
|
|
description = lib.mdDoc ''
|
|
configuration for terminator.
|
|
|
|
For a list of all possible options refer to the
|
|
{manpage}`terminator_config(5)`
|
|
man page.
|
|
'';
|
|
type = types.attrsOf types.anything;
|
|
example = literalExpression ''
|
|
{
|
|
global_config.borderless = true;
|
|
profiles.default.background_color = "#002b36";
|
|
}
|
|
'';
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
assertions = [
|
|
(hm.assertions.assertPlatform "programs.terminator" pkgs platforms.linux)
|
|
];
|
|
|
|
home.packages = [ cfg.package ];
|
|
|
|
xdg.configFile."terminator/config" =
|
|
mkIf (cfg.config != { }) { text = toConfigObject cfg.config; };
|
|
};
|
|
}
|