summaryrefslogtreecommitdiff
path: root/modules/terminal
diff options
context:
space:
mode:
Diffstat (limited to 'modules/terminal')
-rw-r--r--modules/terminal/default.nix15
-rw-r--r--modules/terminal/kitty.nix84
2 files changed, 99 insertions, 0 deletions
diff --git a/modules/terminal/default.nix b/modules/terminal/default.nix
new file mode 100644
index 0000000..8e9d5f8
--- /dev/null
+++ b/modules/terminal/default.nix
@@ -0,0 +1,15 @@
+{
+ lib,
+ config,
+ ...
+}: let
+ inherit (lib) mkEnableOption;
+in {
+ imports = [
+ ./kitty.nix
+ ];
+
+ options.terminal = {
+ kitty = mkEnableOption "Enable the kitty terminal.";
+ };
+}
diff --git a/modules/terminal/kitty.nix b/modules/terminal/kitty.nix
new file mode 100644
index 0000000..88aa151
--- /dev/null
+++ b/modules/terminal/kitty.nix
@@ -0,0 +1,84 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ inherit (lib) mkIf;
+ cfg = config.terminal;
+in {
+ config = mkIf cfg.kitty {
+ default.terminal = lib.mkDefault "kitty";
+
+ home-manager.users.${config.user} = {
+ programs.kitty = {
+ enable = true;
+ environment = {};
+ extraConfig = "";
+
+ settings = {
+ # Font
+ font_family = config.theme.font.monospace;
+ font_size = 11;
+ bold_font = "auto";
+ italic_font = "auto";
+ bold_italic_font = "auto";
+
+ # Scrollback
+ scrollback_lines = 10000;
+ scrollback_pager_history_size = 300; # MB
+
+ # Urls
+ detect_urls = true;
+ show_hyperlink_targets = false;
+
+ # Window
+ window_padding_width = config.theme.outerGap;
+ window_border_width = 0;
+ draw_minimal_borders = true;
+ background_opacity = config.theme.opacity;
+
+ # Disable audio
+ enable_audio_bell = false;
+
+ # Disable close prompt
+ confirm_os_window_close = 0;
+
+ # colors
+ background = "#${config.theme.colors.bg}";
+ foreground = "#${config.theme.colors.fg}";
+ selection_background = "#${config.theme.colors.surface.bg}";
+ selection_foreground = "#${config.theme.colors.surface.fg}";
+ url_color = "#${config.theme.colors.bright.yellow}";
+ cursor = "#${config.theme.colors.fg}";
+ active_border_color = "#${config.theme.colors.primary}";
+ inactive_border_color = "#${config.theme.colors.bg}";
+ active_tab_background = "#${config.theme.colors.bg}";
+ active_tab_foreground = "#${config.theme.colors.fg}";
+ inactive_tab_background = "#${config.theme.colors.bg}";
+ inactive_tab_foreground = "#${config.theme.colors.fg}";
+ tab_bar_background = "#${config.theme.colors.bg}";
+
+ # normal
+ color0 = "#${config.theme.colors.normal.black}";
+ color1 = "#${config.theme.colors.normal.red}";
+ color2 = "#${config.theme.colors.normal.green}";
+ color3 = "#${config.theme.colors.normal.yellow}";
+ color4 = "#${config.theme.colors.normal.blue}";
+ color5 = "#${config.theme.colors.normal.magenta}";
+ color6 = "#${config.theme.colors.normal.cyan}";
+ color7 = "#${config.theme.colors.normal.white}";
+
+ # bright
+ color8 = "#${config.theme.colors.bright.black}";
+ color9 = "#${config.theme.colors.bright.red}";
+ color10 = "#${config.theme.colors.bright.green}";
+ color11 = "#${config.theme.colors.bright.yellow}";
+ color12 = "#${config.theme.colors.bright.blue}";
+ color13 = "#${config.theme.colors.bright.magenta}";
+ color14 = "#${config.theme.colors.bright.cyan}";
+ color15 = "#${config.theme.colors.bright.white}";
+ };
+ };
+ };
+ };
+}