mirror of
https://github.com/nix-community/home-manager
synced 2024-11-10 07:04:17 +00:00
parent
3aa479d551
commit
d04e52b0c0
7 changed files with 103 additions and 0 deletions
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
|
@ -178,6 +178,8 @@
|
|||
|
||||
/modules/programs/starship.nix @marsam
|
||||
|
||||
/modules/programs/terminator.nix @chisui
|
||||
|
||||
/modules/programs/texlive.nix @rycee
|
||||
|
||||
/modules/programs/topgrade.nix @msfjarvis
|
||||
|
|
|
@ -25,6 +25,12 @@
|
|||
github = "cwyc";
|
||||
githubId = 16950437;
|
||||
};
|
||||
chisui = {
|
||||
name = "Philipp Dargel";
|
||||
email = "chisui@users.noreply.github.com";
|
||||
github = "chisui";
|
||||
githubId = 4526429;
|
||||
};
|
||||
olmokramer = {
|
||||
name = "Olmo Kramer";
|
||||
email = "olmokramer@users.noreply.github.com";
|
||||
|
|
|
@ -137,6 +137,7 @@ let
|
|||
(loadModule ./programs/termite.nix { })
|
||||
(loadModule ./programs/texlive.nix { })
|
||||
(loadModule ./programs/tmux.nix { })
|
||||
(loadModule ./programs/terminator.nix { condition = hostPlatform.isLinux; })
|
||||
(loadModule ./programs/topgrade.nix { })
|
||||
(loadModule ./programs/urxvt.nix { })
|
||||
(loadModule ./programs/vim.nix { })
|
||||
|
|
70
modules/programs/terminator.nix
Normal file
70
modules/programs/terminator.nix
Normal file
|
@ -0,0 +1,70 @@
|
|||
{ 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 = literalExample "pkgs.terminator";
|
||||
description = "terminator package to install.";
|
||||
};
|
||||
|
||||
config = mkOption {
|
||||
default = { };
|
||||
description = ''
|
||||
configuration for terminator.
|
||||
</para><para>
|
||||
For a list of all possible options refer to the
|
||||
<citerefentry>
|
||||
<refentrytitle>terminator_config</refentrytitle>
|
||||
<manvolnum>5</manvolnum>
|
||||
</citerefentry>
|
||||
man page.
|
||||
'';
|
||||
type = types.attrsOf types.anything;
|
||||
example = literalExample ''
|
||||
{
|
||||
global_config.borderless = true;
|
||||
profiles.default.background_color = "#002b36";
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = [ cfg.package ];
|
||||
xdg.configFile."terminator/config" =
|
||||
mkIf (cfg.config != { }) { text = toConfigObject cfg.config; };
|
||||
};
|
||||
}
|
|
@ -108,6 +108,7 @@ import nmt {
|
|||
./modules/programs/rbw
|
||||
./modules/programs/rofi
|
||||
./modules/programs/rofi-pass
|
||||
./modules/programs/terminator
|
||||
./modules/programs/waybar
|
||||
./modules/services/barrier
|
||||
./modules/services/dropbox
|
||||
|
|
22
tests/modules/programs/terminator/config-file.nix
Normal file
22
tests/modules/programs/terminator/config-file.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
{ config, lib, pkgs, ... }: {
|
||||
config = {
|
||||
programs.terminator = {
|
||||
enable = true;
|
||||
config = {
|
||||
global_config.borderless = true;
|
||||
profiles.default.background_color = "#002b36";
|
||||
};
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
assertFileContent home-files/.config/terminator/config ${
|
||||
pkgs.writeText "expected" ''
|
||||
[global_config]
|
||||
borderless = True
|
||||
[profiles]
|
||||
[[default]]
|
||||
background_color = "#002b36"''
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
1
tests/modules/programs/terminator/default.nix
Normal file
1
tests/modules/programs/terminator/default.nix
Normal file
|
@ -0,0 +1 @@
|
|||
{ terminator-config-file = ./config-file.nix; }
|
Loading…
Reference in a new issue