mirror of
https://github.com/nix-community/home-manager
synced 2024-12-25 03:09:47 +01:00
9f9e277b60
These (and the `*MD` functions apart from `literalMD`) are now no-ops in nixpkgs and serve no purpose other than to add additional noise and potentially mislead people into thinking unmarked DocBook documentation will still be accepted. Note that if backporting changes including documentation to 23.05, the `mdDoc` calls will need to be re-added. 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 \ --strip {} + $ ./format
72 lines
1.7 KiB
Nix
72 lines
1.7 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 "terminator, a tiling terminal emulator";
|
|
|
|
package = mkOption {
|
|
type = types.package;
|
|
default = pkgs.terminator;
|
|
example = literalExpression "pkgs.terminator";
|
|
description = "terminator package to install.";
|
|
};
|
|
|
|
config = mkOption {
|
|
default = { };
|
|
description = ''
|
|
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; };
|
|
};
|
|
}
|