diff --git a/ghostty/config b/ghostty/config new file mode 100644 index 0000000..224d031 --- /dev/null +++ b/ghostty/config @@ -0,0 +1,31 @@ +# Ghostty configuration + +# Font +font-family = FiraCode Nerd Font +font-size = 13 + +# Theme - auto light/dark switching +theme = light:Catppuccin Latte,dark:Catppuccin Mocha + +# Window +window-padding-x = 8 +window-padding-y = 8 +scrollback-limit = 10000 + +# Cursor +cursor-style = bar + +# Shell integration +shell-integration = true + +# Keybindings +keybind = cmd+t=new_tab +keybind = cmd+w=close_surface +keybind = cmd+shift+enter=new_split:right +keybind = cmd+shift+minus=new_split:down +keybind = ctrl+shift+up=jump_to_prompt:-1 +keybind = ctrl+shift+down=jump_to_prompt:1 + +# macOS specific (ignored on Linux) +macos-titlebar-style = unified +macos-option-as-alt = true diff --git a/ghostty/install.sh b/ghostty/install.sh new file mode 100755 index 0000000..5437c0b --- /dev/null +++ b/ghostty/install.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# Symlink Ghostty config + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +CONFIG_DIR="$HOME/.config/ghostty" + +mkdir -p "$CONFIG_DIR" +ln -sf "$SCRIPT_DIR/config" "$CONFIG_DIR/config" + +echo "Ghostty config linked" diff --git a/setup.sh b/setup.sh index be9c153..1ef6ab9 100755 --- a/setup.sh +++ b/setup.sh @@ -142,25 +142,31 @@ if [[ "$PROFILE" != "minimal" ]] && command -v tmux &>/dev/null; then fi # Install plugins directly (same plugins as configured in .tmux.conf) + # Using simple array format for bash 3.2 compatibility (macOS default) echo "Installing tmux plugins..." - declare -A PLUGINS=( - ["tmux-sensible"]="https://github.com/tmux-plugins/tmux-sensible" - ["tmux-resurrect"]="https://github.com/tmux-plugins/tmux-resurrect" - ["tmux-continuum"]="https://github.com/tmux-plugins/tmux-continuum" - ["tmux-yank"]="https://github.com/tmux-plugins/tmux-yank" - ["tmux-fzf"]="https://github.com/sainnhe/tmux-fzf" - ["tmux-battery"]="https://github.com/tmux-plugins/tmux-battery" - ["tmux-cpu"]="https://github.com/tmux-plugins/tmux-cpu" - ["tmux-prefix-highlight"]="https://github.com/tmux-plugins/tmux-prefix-highlight" - ["tmux-open"]="https://github.com/tmux-plugins/tmux-open" - ) - - for plugin in "${!PLUGINS[@]}"; do + PLUGINS=" + tmux-sensible|https://github.com/tmux-plugins/tmux-sensible + tmux-resurrect|https://github.com/tmux-plugins/tmux-resurrect + tmux-continuum|https://github.com/tmux-plugins/tmux-continuum + tmux-yank|https://github.com/tmux-plugins/tmux-yank + tmux-fzf|https://github.com/sainnhe/tmux-fzf + tmux-battery|https://github.com/tmux-plugins/tmux-battery + tmux-cpu|https://github.com/tmux-plugins/tmux-cpu + tmux-prefix-highlight|https://github.com/tmux-plugins/tmux-prefix-highlight + tmux-open|https://github.com/tmux-plugins/tmux-open + " + + echo "$PLUGINS" | while read -r line; do + [[ -z "$line" ]] && continue + plugin="${line%%|*}" + url="${line##*|}" + plugin=$(echo "$plugin" | xargs) # trim whitespace + url=$(echo "$url" | xargs) PLUGIN_DIR="$TMUX_PLUGINS_DIR/$plugin" if [ ! -d "$PLUGIN_DIR" ]; then echo " Installing $plugin..." - git clone --quiet "${PLUGINS[$plugin]}" "$PLUGIN_DIR" + git clone --quiet "$url" "$PLUGIN_DIR" else echo " $plugin already installed" fi @@ -222,6 +228,13 @@ if [[ "$PROFILE" == "full" ]]; then fi fi +# Run ghostty setup (full profile only - requires GUI) +if [[ "$PROFILE" == "full" ]]; then + if [[ -f "$SCRIPT_DIR/ghostty/install.sh" ]]; then + bash "$SCRIPT_DIR/ghostty/install.sh" + fi +fi + # Run starship setup (skip for minimal) if [[ "$PROFILE" != "minimal" ]]; then echo ""