2025-01-07 21:50:16 -06:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
2025-01-10 16:00:21 -06:00
|
|
|
pkgs,
|
2025-01-07 21:50:16 -06:00
|
|
|
...
|
|
|
|
}:
|
|
|
|
with lib; let
|
|
|
|
cfg = config.custom.programs.ghostty;
|
|
|
|
in {
|
|
|
|
options.custom.programs.ghostty = {
|
|
|
|
enable = mkOption {default = false;};
|
2025-01-10 16:00:21 -06:00
|
|
|
minimal = mkOption {default = false;};
|
2025-01-07 21:50:16 -06:00
|
|
|
};
|
|
|
|
|
|
|
|
config = mkIf cfg.enable {
|
2025-01-10 16:00:21 -06:00
|
|
|
environment.systemPackages = mkIf cfg.minimal [pkgs.ghostty]; # Terminfo
|
|
|
|
|
|
|
|
home-manager.sharedModules = mkIf (!cfg.minimal) [
|
2025-01-07 21:50:16 -06:00
|
|
|
{
|
|
|
|
# https://ghostty.org/
|
|
|
|
programs.ghostty = {
|
|
|
|
enable = true;
|
|
|
|
|
|
|
|
# https://ghostty.org/docs/config/reference
|
2025-01-09 20:25:38 -06:00
|
|
|
settings = rec {
|
|
|
|
adjust-cell-width = -1;
|
|
|
|
|
|
|
|
# https://ghostty.org/docs/config/reference#adw-toolbar-style
|
|
|
|
adw-toolbar-style = "flat";
|
|
|
|
|
|
|
|
# https://ghostty.org/docs/config/reference#cursor-style-blink
|
|
|
|
cursor-style-blink = false;
|
|
|
|
|
|
|
|
# https://ghostty.org/docs/config/reference#font-family
|
|
|
|
#?? ghostty +list-fonts
|
|
|
|
#?? ghostty +show-face
|
|
|
|
font-family = with config.custom.settings.fonts; [monospace fallback];
|
|
|
|
font-family-bold = font-family;
|
|
|
|
|
|
|
|
# https://ghostty.org/docs/config/reference#font-size
|
|
|
|
font-size = 14;
|
|
|
|
|
|
|
|
# https://ghostty.org/docs/config/reference#gtk-titlebar
|
|
|
|
gtk-titlebar = false;
|
|
|
|
|
|
|
|
# https://ghostty.org/docs/config/reference#mouse-hide-while-typing
|
|
|
|
mouse-hide-while-typing = true;
|
|
|
|
|
|
|
|
# https://ghostty.org/docs/config/reference#shell-integration-features
|
|
|
|
shell-integration-features = "no-cursor";
|
|
|
|
|
|
|
|
# https://ghostty.org/docs/features/theme
|
|
|
|
# https://ghostty.org/docs/config/reference#theme
|
|
|
|
#?? ghostty +list-themes
|
|
|
|
theme = "Builtin Solarized Dark";
|
|
|
|
|
|
|
|
# https://ghostty.org/docs/config/reference#window-decoration
|
|
|
|
window-decoration = false;
|
|
|
|
|
|
|
|
# https://ghostty.org/docs/config/reference#window-new-tab-position
|
|
|
|
window-new-tab-position = "end";
|
|
|
|
|
|
|
|
# https://ghostty.org/docs/config/reference#window-padding-balance
|
|
|
|
# BUG: Not always distributed equally
|
|
|
|
# https://github.com/ghostty-org/ghostty/discussions/3941
|
|
|
|
window-padding-balance = true;
|
|
|
|
|
|
|
|
# https://ghostty.org/docs/config/reference#window-padding-x
|
|
|
|
window-padding-x = 8;
|
|
|
|
window-padding-y = 4;
|
2025-01-07 21:50:16 -06:00
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
];
|
|
|
|
};
|
|
|
|
}
|