83 lines
2.5 KiB
Nix
83 lines
2.5 KiB
Nix
{
|
|
lib,
|
|
hozen,
|
|
osConfig,
|
|
config,
|
|
...
|
|
}: let
|
|
inherit (lib) mkIf mkMerge;
|
|
inherit (hozen) color;
|
|
inherit (osConfig.ooknet.host) admin;
|
|
inherit (osConfig.ooknet.appearance.fonts) monospace;
|
|
inherit (osConfig.ooknet.workstation) default;
|
|
|
|
cfg = osConfig.ooknet.workstation.programs.ghostty;
|
|
in {
|
|
config = mkMerge [
|
|
(mkIf (cfg.enable || default.terminal == "ghostty") {
|
|
programs.ghostty = {
|
|
enable = true;
|
|
enableFishIntegration = admin.shell == "fish";
|
|
settings = {
|
|
# defined below
|
|
theme = "hozen";
|
|
|
|
# font config
|
|
font-size = monospace.size;
|
|
font-family = monospace.family;
|
|
font-family-bold = "${monospace.family} Bold";
|
|
font-family-italic = "${monospace.family} Italic";
|
|
font-family-bold-italic = "${monospace.family} Bold Italic";
|
|
|
|
# padding
|
|
window-padding-x = 9;
|
|
window-padding-y = 9;
|
|
|
|
# box drawing glyph thickness
|
|
adjust-box-thickness = -10; # why where they so thick?
|
|
|
|
# disable the window decorations
|
|
gtk-titlebar = false;
|
|
window-decoration = false;
|
|
|
|
# disable close terminal prompt
|
|
confirm-close-surface = false;
|
|
};
|
|
themes.hozen = {
|
|
background = "${color.base00}";
|
|
foreground = "${color.base05}";
|
|
palette = [
|
|
"0=#${color.base00}" # black
|
|
"1=#${color.base08}" # red
|
|
"2=#${color.base0B}" # green
|
|
"3=#${color.base0A}" # yellow
|
|
"4=#${color.base0D}" # blue
|
|
"5=#${color.base0E}" # magenta
|
|
"6=#${color.base0C}" # cyan
|
|
"7=#${color.base05}" # white
|
|
"8=#${color.base03}" # bright black
|
|
"9=#${color.base08}" # bright red
|
|
"10=#${color.base0B}" # bright green
|
|
"11=#${color.base0A}" # bright yellow
|
|
"12=#${color.base0D}" # bright blue
|
|
"13=#${color.base0E}" # bright magenta
|
|
"14=#${color.base0C}" # bright cyan
|
|
"15=#${color.base07}" # bright white
|
|
];
|
|
};
|
|
};
|
|
})
|
|
(mkIf (default.terminal == "ghostty") {
|
|
home.sessionVariables = {
|
|
TERMINAL = "ghostty";
|
|
TERM = "ghostty";
|
|
};
|
|
ooknet.binds = {
|
|
terminal = "ghostty";
|
|
terminalLaunch = "ghostty -e";
|
|
terminalDropdown = "ghostty --title=dropdown";
|
|
btop = mkIf config.programs.btop.enable "ghostty --title=BTOP -e btop";
|
|
};
|
|
})
|
|
];
|
|
}
|