From 5cb85cb296a492366b6b342db9eed6f6aa9b175a Mon Sep 17 00:00:00 2001 From: Daniel Flanagan Date: Mon, 10 Feb 2025 12:13:58 -0600 Subject: [PATCH] Ghostty since wezterm struggles to integrate nicely with GNOME? --- .../fish/interactiveShellInit.fish | 2 +- modules/home-manager/ghostty/config | 155 +++++++++--------- .../themes/catppuccin-mocha-sapphire-custom | 25 +++ modules/home-manager/wezterm/wezterm.lua | 3 +- 4 files changed, 106 insertions(+), 79 deletions(-) create mode 100644 modules/home-manager/ghostty/themes/catppuccin-mocha-sapphire-custom diff --git a/modules/home-manager/fish/interactiveShellInit.fish b/modules/home-manager/fish/interactiveShellInit.fish index 85844c1..6f9f8ba 100644 --- a/modules/home-manager/fish/interactiveShellInit.fish +++ b/modules/home-manager/fish/interactiveShellInit.fish @@ -64,7 +64,7 @@ function _last_cmd_duration set_color -b normal green set -q CMD_DURATION && printf " %dms" $CMD_DURATION if test $CMD_DURATION -gt 5000 && test $this_shell_should_notify = 1 - printf "\e]777;notify;%s;%s\e\\" "WezTerm: Command Finished" (history --max 1) + printf "\e]777;notify;%s;%s\e\\" "Terminal Command Finished" (history --max 1) set this_shell_should_notify 0 end end diff --git a/modules/home-manager/ghostty/config b/modules/home-manager/ghostty/config index 4c23d28..ff1cd83 100644 --- a/modules/home-manager/ghostty/config +++ b/modules/home-manager/ghostty/config @@ -1,5 +1,3 @@ -font-family = "IosevkaLyteTerm" - # The font families to use. # # You can generate the list of valid values using the CLI: @@ -39,8 +37,11 @@ font-family = "IosevkaLyteTerm" # specify the value as `""` (empty string) to reset the list and then set the # new values. For example: # -# font-family = "" -# font-family = "My Favorite Font" +font-family = "IosevkaLyteTerm" +font-family = "Symbols Nerd Font Mono" +font-family = "Noto Color Emoji" +font-family-bold = "IosevkaLyteTerm" +# font-family = "My Favorite Font" # # Setting any of these as CLI arguments will automatically clear the # values set in configuration files so you don't need to specify @@ -51,11 +52,11 @@ font-family = "IosevkaLyteTerm" # # Changing this configuration at runtime will only affect new terminals, i.e. # new windows, tabs, etc. -font-family = +# font-family = -font-family-bold = -font-family-italic = -font-family-bold-italic = +# font-family-bold = +# font-family-italic = +# font-family-bold-italic = # The named font style to use for each of the requested terminal font styles. # This looks up the style based on the font style string advertised by the # font itself. For example, "Iosevka Heavy" has a style of "Heavy". @@ -70,7 +71,7 @@ font-family-bold-italic = # disabling the font style. font-style = default -font-style-bold = default +font-style-bold = Heavy font-style-italic = default font-style-bold-italic = default # Control whether Ghostty should synthesize a style if the requested style is @@ -189,7 +190,7 @@ font-codepoint-map = # Draw fonts with a thicker stroke, if supported. # This is currently only supported on macOS. -font-thicken = false +# font-thicken = false # Strength of thickening when `font-thicken` is enabled. # @@ -199,7 +200,7 @@ font-thicken = false # Has no effect when `font-thicken` is set to `false`. # # This is currently only supported on macOS. -font-thicken-strength = 255 +# font-thicken-strength = 255 # All of the configurations behavior adjust various metrics determined by the # font. The values can be integers (1, -1, etc.) or a percentage (20%, -15%, @@ -377,7 +378,7 @@ freetype-load-flags = hinting,force-autohint,monochrome,autohint # # - macOS: titlebar tabs style is not updated when switching themes. # -theme = "catppuccin-mocha" +theme = "dark:catppuccin-mocha-sapphire-custom,light:catppuccin-latte" # Swap the foreground and background colors of cells for selection. This # option overrides the `selection-foreground` and `selection-background` @@ -826,7 +827,7 @@ background-opacity = 1 # need to set environment-specific settings and/or install third-party plugins # in order to support background blur, as there isn't a unified interface for # doing so. -background-blur-radius = false +# background-blur-radius = false # The opacity level (opposite of transparency) of an unfocused split. # Unfocused splits by default are slightly faded out to make it easier to see @@ -850,7 +851,7 @@ unfocused-split-fill = # The color of the split divider. If this is not set, a default will be chosen. # Specified as either hex (`#RRGGBB` or `RRGGBB`) or a named X11 color. -split-divider-color = +# split-divider-color = # The command to run, usually a shell. If this is not an absolute path, it'll # be looked up in the `PATH`. If this is not set, a default will be looked up @@ -1196,65 +1197,65 @@ working-directory = # Ghostty will attempt to request these permissions. If the permissions are # not granted, the keybind will not work. On macOS, you can find these # permissions in System Preferences -> Privacy & Security -> Accessibility. -keybind = ctrl+comma=open_config -keybind = shift+insert=paste_from_selection -keybind = ctrl+page_down=next_tab -keybind = ctrl+shift+v=paste_from_clipboard -keybind = ctrl+alt+up=goto_split:up -keybind = ctrl+shift+a=select_all -keybind = shift+up=adjust_selection:up -keybind = alt+five=goto_tab:5 -keybind = super+ctrl+right_bracket=goto_split:next -keybind = ctrl+equal=increase_font_size:1 -keybind = ctrl+shift+o=new_split:right -keybind = ctrl+shift+c=copy_to_clipboard -keybind = ctrl+shift+q=quit -keybind = ctrl+shift+n=new_window -keybind = ctrl+shift+page_down=jump_to_prompt:1 -keybind = ctrl+shift+comma=reload_config -keybind = ctrl+minus=decrease_font_size:1 -keybind = shift+left=adjust_selection:left -keybind = super+ctrl+shift+up=resize_split:up,10 -keybind = alt+eight=goto_tab:8 -keybind = shift+page_up=scroll_page_up -keybind = ctrl+alt+shift+j=write_scrollback_file:open -keybind = ctrl+shift+left=previous_tab -keybind = ctrl+shift+w=close_surface -keybind = super+ctrl+shift+equal=equalize_splits -keybind = shift+end=scroll_to_bottom -keybind = ctrl+zero=reset_font_size -keybind = alt+three=goto_tab:3 -keybind = ctrl+shift+j=write_scrollback_file:paste -keybind = ctrl+enter=toggle_fullscreen -keybind = ctrl+page_up=previous_tab -keybind = shift+right=adjust_selection:right -keybind = ctrl+tab=next_tab -keybind = ctrl+alt+left=goto_split:left -keybind = shift+page_down=scroll_page_down -keybind = ctrl+shift+right=next_tab -keybind = ctrl+shift+page_up=jump_to_prompt:-1 -keybind = alt+nine=last_tab -keybind = ctrl+shift+t=new_tab -keybind = shift+down=adjust_selection:down -keybind = super+ctrl+shift+left=resize_split:left,10 -keybind = ctrl+shift+tab=previous_tab -keybind = alt+two=goto_tab:2 -keybind = ctrl+alt+down=goto_split:down -keybind = super+ctrl+shift+down=resize_split:down,10 -keybind = super+ctrl+shift+right=resize_split:right,10 -keybind = ctrl+plus=increase_font_size:1 -keybind = alt+four=goto_tab:4 -keybind = ctrl+insert=copy_to_clipboard -keybind = ctrl+shift+e=new_split:down -keybind = ctrl+alt+right=goto_split:right -keybind = alt+f4=close_window -keybind = alt+one=goto_tab:1 -keybind = ctrl+shift+enter=toggle_split_zoom -keybind = shift+home=scroll_to_top -keybind = super+ctrl+left_bracket=goto_split:previous -keybind = ctrl+shift+i=inspector:toggle -keybind = alt+six=goto_tab:6 -keybind = alt+seven=goto_tab:7 +# keybind = ctrl+comma=open_config +# keybind = shift+insert=paste_from_selection +# keybind = ctrl+page_down=next_tab +# keybind = ctrl+shift+v=paste_from_clipboard +# keybind = ctrl+alt+up=goto_split:up +# keybind = ctrl+shift+a=select_all +# keybind = shift+up=adjust_selection:up +# keybind = alt+five=goto_tab:5 +# keybind = super+ctrl+right_bracket=goto_split:next +# keybind = ctrl+equal=increase_font_size:1 +# keybind = ctrl+shift+o=new_split:right +# keybind = ctrl+shift+c=copy_to_clipboard +# keybind = ctrl+shift+q=quit +# keybind = ctrl+shift+n=new_window +# keybind = ctrl+shift+page_down=jump_to_prompt:1 +# keybind = ctrl+shift+comma=reload_config +# keybind = ctrl+minus=decrease_font_size:1 +# keybind = shift+left=adjust_selection:left +# keybind = super+ctrl+shift+up=resize_split:up,10 +# keybind = alt+eight=goto_tab:8 +# keybind = shift+page_up=scroll_page_up +# keybind = ctrl+alt+shift+j=write_scrollback_file:open +# keybind = ctrl+shift+left=previous_tab +# keybind = ctrl+shift+w=close_surface +# keybind = super+ctrl+shift+equal=equalize_splits +# keybind = shift+end=scroll_to_bottom +# keybind = ctrl+zero=reset_font_size +# keybind = alt+three=goto_tab:3 +# keybind = ctrl+shift+j=write_scrollback_file:paste +# keybind = ctrl+enter=toggle_fullscreen +# keybind = ctrl+page_up=previous_tab +# keybind = shift+right=adjust_selection:right +# keybind = ctrl+tab=next_tab +# keybind = ctrl+alt+left=goto_split:left +# keybind = shift+page_down=scroll_page_down +# keybind = ctrl+shift+right=next_tab +# keybind = ctrl+shift+page_up=jump_to_prompt:-1 +# keybind = alt+nine=last_tab +# keybind = ctrl+shift+t=new_tab +# keybind = shift+down=adjust_selection:down +# keybind = super+ctrl+shift+left=resize_split:left,10 +# keybind = ctrl+shift+tab=previous_tab +# keybind = alt+two=goto_tab:2 +# keybind = ctrl+alt+down=goto_split:down +# keybind = super+ctrl+shift+down=resize_split:down,10 +# keybind = super+ctrl+shift+right=resize_split:right,10 +# keybind = ctrl+plus=increase_font_size:1 +# keybind = alt+four=goto_tab:4 +# keybind = ctrl+insert=copy_to_clipboard +# keybind = ctrl+shift+e=new_split:down +# keybind = ctrl+alt+right=goto_split:right +# keybind = alt+f4=close_window +# keybind = alt+one=goto_tab:1 +# keybind = ctrl+shift+enter=toggle_split_zoom +# keybind = shift+home=scroll_to_top +# keybind = super+ctrl+left_bracket=goto_split:previous +# keybind = ctrl+shift+i=inspector:toggle +# keybind = alt+six=goto_tab:6 +# keybind = alt+seven=goto_tab:7 # Horizontal window padding. This applies padding between the terminal cells # and the left and right window borders. The value is in points, meaning that @@ -1462,9 +1463,9 @@ window-width = 0 # Note: this is only supported on macOS and Linux GLFW builds. The GTK # runtime does not support setting the window position (this is a limitation # of GTK 4.0). -window-position-x = +# window-position-x = -window-position-y = +# window-position-y = # Whether to enable saving and restoring window state. Window state includes # their position, size, tabs, splits, etc. Some window state requires shell # integration, such as preserving working directories. See `shell-integration` @@ -2285,7 +2286,7 @@ adw-toolbar-style = raised # enable all toasts. # # This configuration only applies to GTK with Adwaita enabled. -adw-toast = clipboard-copy +# adw-toast = clipboard-copy # If `true` (default), then the Ghostty GTK tabs will be "wide." Wide tabs # are the new typical Gnome style where tabs fill their available space. @@ -2314,7 +2315,7 @@ gtk-adwaita = true # not exist. If you want to include a file that begins with a literal ? # character, surround the file path in double quotes ("). # The file size limit for a single stylesheet is 5MiB. -gtk-custom-css = +# gtk-custom-css = # If `true` (default), applications running in the terminal can show desktop # notifications using certain escape sequences such as OSC 9 or OSC 777. diff --git a/modules/home-manager/ghostty/themes/catppuccin-mocha-sapphire-custom b/modules/home-manager/ghostty/themes/catppuccin-mocha-sapphire-custom new file mode 100644 index 0000000..9aa790b --- /dev/null +++ b/modules/home-manager/ghostty/themes/catppuccin-mocha-sapphire-custom @@ -0,0 +1,25 @@ +palette = 0=#45475a +palette = 1=#f38ba8 +palette = 2=#a6e3a1 +palette = 3=#fab387 +palette = 4=#74c7ec +palette = 5=#cba6f7 +palette = 6=#f9e2af + +palette = 8=#585b70 +palette = 9=#f38ba8 +palette = 10=#a6e3a1 +palette = 11=#fab387 +palette = 12=#74c7ec +palette = 13=#cba6f7 +palette = 14=#f9e2af +palette = 15=#a6adc8 + +background = #1e1e2e +foreground = #cdd6f4 + +cursor-color = "#cdd6f4" +cursor-text = "#c6d0f5" + +selection-background = #f9e2af +selection-foreground = #1e1e2e diff --git a/modules/home-manager/wezterm/wezterm.lua b/modules/home-manager/wezterm/wezterm.lua index e72a25f..f5f4af3 100644 --- a/modules/home-manager/wezterm/wezterm.lua +++ b/modules/home-manager/wezterm/wezterm.lua @@ -1,8 +1,9 @@ local wezterm = require 'wezterm' local config = wezterm.config_builder() -config.enable_wayland = true +config.enable_wayland = false config.adjust_window_size_when_changing_font_size = false +config.front_end = "OpenGL" config.color_scheme = 'catppuccin-mocha-sapphire'; config.font_size = 12.0