mirror of
https://github.com/nix-community/home-manager
synced 2024-12-24 02:39:48 +01:00
programs.gnome-terminal: terminal options (#2042)
- Add support for showing bold as bright colors - Add support to configure the background transparency - Fix the scrollOnOutput, it was not being dumped to the config - Add tests! - Add myself as maintainer
This commit is contained in:
parent
1e8d0beae4
commit
e92f5bb79e
7 changed files with 132 additions and 4 deletions
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
|
@ -77,7 +77,7 @@
|
|||
|
||||
/modules/programs/git.nix @rycee
|
||||
|
||||
/modules/programs/gnome-terminal.nix @rycee
|
||||
/modules/programs/gnome-terminal.nix @kamadorueda @rycee
|
||||
|
||||
/modules/programs/go.nix @rvolosatovs
|
||||
|
||||
|
|
|
@ -37,6 +37,16 @@
|
|||
github = "kalhauge";
|
||||
githubId = 1182166;
|
||||
};
|
||||
kamadorueda = {
|
||||
name = "Kevin Amado";
|
||||
email = "kamadorueda@gmail.com";
|
||||
github = "kamadorueda";
|
||||
githubId = 47480384;
|
||||
keys = [{
|
||||
longkeyid = "rsa4096/0x04D0CEAF916A9A40";
|
||||
fingerprint = "2BE3 BAFD 793E A349 ED1F F00F 04D0 CEAF 916A 9A40";
|
||||
}];
|
||||
};
|
||||
kubukoz = {
|
||||
name = "Jakub Kozłowski";
|
||||
email = "kubukoz@users.noreply.github.com";
|
||||
|
|
|
@ -187,6 +187,12 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
boldIsBright = mkOption {
|
||||
default = null;
|
||||
type = types.nullOr types.bool;
|
||||
description = "Whether bold text is shown in bright colors.";
|
||||
};
|
||||
|
||||
deleteBinding = mkOption {
|
||||
default = "delete-sequence";
|
||||
type = eraseBinding;
|
||||
|
@ -234,6 +240,12 @@ let
|
|||
type = types.bool;
|
||||
description = "Turn on/off the terminal's bell.";
|
||||
};
|
||||
|
||||
transparencyPercent = mkOption {
|
||||
default = null;
|
||||
type = types.nullOr (types.ints.between 0 100);
|
||||
description = "Background transparency in percent.";
|
||||
};
|
||||
};
|
||||
});
|
||||
|
||||
|
@ -241,6 +253,7 @@ let
|
|||
{
|
||||
audible-bell = pcfg.audibleBell;
|
||||
visible-name = pcfg.visibleName;
|
||||
scroll-on-output = pcfg.scrollOnOutput;
|
||||
scrollbar-policy = if pcfg.showScrollbar then "always" else "never";
|
||||
scrollback-lines = pcfg.scrollbackLines;
|
||||
cursor-shape = pcfg.cursorShape;
|
||||
|
@ -273,7 +286,9 @@ let
|
|||
} else {
|
||||
bold-color-same-as-fg = false;
|
||||
bold-color = pcfg.colors.boldColor;
|
||||
}) // (if (pcfg.colors.cursor != null) then {
|
||||
}) // optionalAttrs (pcfg.boldIsBright != null) {
|
||||
bold-is-bright = pcfg.boldIsBright;
|
||||
} // (if (pcfg.colors.cursor != null) then {
|
||||
cursor-colors-set = true;
|
||||
cursor-foreground-color = pcfg.colors.cursor.foreground;
|
||||
cursor-background-color = pcfg.colors.cursor.background;
|
||||
|
@ -285,10 +300,14 @@ let
|
|||
highlight-background-color = pcfg.colors.highlight.background;
|
||||
} else {
|
||||
highlight-colors-set = false;
|
||||
})));
|
||||
}) // optionalAttrs (pcfg.transparencyPercent != null) {
|
||||
background-transparency-percent = pcfg.transparencyPercent;
|
||||
use-theme-transparency = false;
|
||||
use-transparent-background = true;
|
||||
}));
|
||||
|
||||
in {
|
||||
meta.maintainers = [ maintainers.rycee ];
|
||||
meta.maintainers = with maintainers; [ kamadorueda rycee ];
|
||||
|
||||
options = {
|
||||
programs.gnome-terminal = {
|
||||
|
|
|
@ -100,6 +100,7 @@ import nmt {
|
|||
./modules/programs/firefox
|
||||
./modules/programs/foot
|
||||
./modules/programs/getmail
|
||||
./modules/programs/gnome-terminal
|
||||
./modules/programs/i3status-rust
|
||||
./modules/programs/mangohud
|
||||
./modules/programs/ncmpcpp-linux
|
||||
|
|
1
tests/modules/programs/gnome-terminal/default.nix
Normal file
1
tests/modules/programs/gnome-terminal/default.nix
Normal file
|
@ -0,0 +1 @@
|
|||
{ gnome-terminal-1 = ./gnome-terminal-1.nix; }
|
34
tests/modules/programs/gnome-terminal/gnome-terminal-1.conf
Normal file
34
tests/modules/programs/gnome-terminal/gnome-terminal-1.conf
Normal file
|
@ -0,0 +1,34 @@
|
|||
[org/gnome/terminal/legacy]
|
||||
default-show-menubar=false
|
||||
schema-version=3
|
||||
theme-variant='default'
|
||||
|
||||
[org/gnome/terminal/legacy/profiles:]
|
||||
default='e0b782ed-6aca-44eb-8c75-62b3706b6220'
|
||||
list=@as ['e0b782ed-6aca-44eb-8c75-62b3706b6220']
|
||||
|
||||
[org/gnome/terminal/legacy/profiles:/:e0b782ed-6aca-44eb-8c75-62b3706b6220]
|
||||
allow-bold=true
|
||||
audible-bell=true
|
||||
background-color='#2E3436'
|
||||
background-transparency-percent=5
|
||||
backspace-binding='ascii-delete'
|
||||
bold-color-same-as-fg=true
|
||||
bold-is-bright=true
|
||||
cursor-blink-mode='off'
|
||||
cursor-colors-set=false
|
||||
cursor-shape='underline'
|
||||
delete-binding='delete-sequence'
|
||||
foreground-color='#D3D7C1'
|
||||
highlight-colors-set=false
|
||||
login-shell=false
|
||||
palette=@as ['#000000','#AA0000','#00AA00','#AA5500','#0000AA','#AA00AA','#00AAAA','#AAAAAA','#555555','#FF5555','#55FF55','#FFFF55','#5555FF','#FF55FF','#55FFFF','#FFFFFF']
|
||||
scroll-on-output=false
|
||||
scrollback-lines=1000000
|
||||
scrollbar-policy='never'
|
||||
use-custom-command=false
|
||||
use-system-font=true
|
||||
use-theme-colors=false
|
||||
use-theme-transparency=false
|
||||
use-transparent-background=true
|
||||
visible-name='kamadorueda'
|
63
tests/modules/programs/gnome-terminal/gnome-terminal-1.nix
Normal file
63
tests/modules/programs/gnome-terminal/gnome-terminal-1.nix
Normal file
|
@ -0,0 +1,63 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
config = {
|
||||
nixpkgs.overlays = [
|
||||
(self: super: {
|
||||
gnome.gnome-terminal =
|
||||
pkgs.writeScriptBin "dummy-gnome3-gnome-terminal" "";
|
||||
})
|
||||
];
|
||||
|
||||
programs.gnome-terminal = {
|
||||
enable = true;
|
||||
profile = {
|
||||
"e0b782ed-6aca-44eb-8c75-62b3706b6220" = {
|
||||
allowBold = true;
|
||||
audibleBell = true;
|
||||
backspaceBinding = "ascii-delete";
|
||||
boldIsBright = true;
|
||||
colors = {
|
||||
backgroundColor = "#2E3436";
|
||||
foregroundColor = "#D3D7C1";
|
||||
palette = [
|
||||
"#000000"
|
||||
"#AA0000"
|
||||
"#00AA00"
|
||||
"#AA5500"
|
||||
"#0000AA"
|
||||
"#AA00AA"
|
||||
"#00AAAA"
|
||||
"#AAAAAA"
|
||||
"#555555"
|
||||
"#FF5555"
|
||||
"#55FF55"
|
||||
"#FFFF55"
|
||||
"#5555FF"
|
||||
"#FF55FF"
|
||||
"#55FFFF"
|
||||
"#FFFFFF"
|
||||
];
|
||||
};
|
||||
cursorBlinkMode = "off";
|
||||
cursorShape = "underline";
|
||||
default = true;
|
||||
deleteBinding = "delete-sequence";
|
||||
scrollbackLines = 1000000;
|
||||
scrollOnOutput = false;
|
||||
showScrollbar = false;
|
||||
transparencyPercent = 5;
|
||||
visibleName = "kamadorueda";
|
||||
};
|
||||
};
|
||||
showMenubar = false;
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
dconfIni=$(grep -oPm 1 '/nix/store/[a-z0-9]*?-hm-dconf.ini' $TESTED/activate)
|
||||
TESTED= assertFileContent $dconfIni ${./gnome-terminal-1.conf}
|
||||
'';
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue