Discarded.
This commit is contained in:
parent
1cdb869a19
commit
3ac25e39bd
|
|
@ -1,316 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
# =============================================================================
|
||||
# Kitty + Neovim scrollback setup script (2026 style with kitty-scrollback.nvim)
|
||||
# =============================================================================
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Install base packages
|
||||
sudo apt update -qq
|
||||
sudo apt install -y kitty kitty-terminfo kitty-shell-integration fonts-firacode
|
||||
|
||||
# =============================================================================
|
||||
# Paths
|
||||
# =============================================================================
|
||||
|
||||
DEST="${1:-/etc/skel}"
|
||||
KITTY_HOME="${DEST}/.config/kitty"
|
||||
ALIASES_D="${DEST}/.zsh_aliases.d"
|
||||
ZSHRC_D="${DEST}/.zshrc.d"
|
||||
SESSIONS_D="${KITTY_HOME}/sessions"
|
||||
|
||||
mkdir -p "${KITTY_HOME}" "${ALIASES_D}" "${ZSHRC_D}" "${SESSIONS_D}"
|
||||
|
||||
ALIAS_FILE="${ALIASES_D}/003_kitty.zsh"
|
||||
|
||||
# =============================================================================
|
||||
# 1. OpenGL detection → decide if we force software rendering
|
||||
# =============================================================================
|
||||
|
||||
should_use_software() {
|
||||
local gl_version=""
|
||||
local es_version=""
|
||||
|
||||
if command -v glxinfo >/dev/null 2>&1; then
|
||||
gl_version=$(glxinfo | grep -i "OpenGL version string" | head -n 1 | awk -F: '{print $2}' | xargs)
|
||||
if [[ "$gl_version" =~ ^([4-9]\.|3\.[3-9]) ]]; then
|
||||
return 1 # hardware ok
|
||||
fi
|
||||
fi
|
||||
|
||||
if command -v eglinfo >/dev/null 2>&1; then
|
||||
es_version=$(eglinfo -B 2>/dev/null | grep -i "OpenGL ES profile version" | head -n 1 | grep -oE '[0-9]+\.[0-9]+' || true)
|
||||
if [[ "$es_version" =~ ^[3-9]\. ]]; then
|
||||
return 1 # GLES 3+ usually good enough
|
||||
fi
|
||||
fi
|
||||
|
||||
return 0 # force software
|
||||
}
|
||||
|
||||
conf_print_kitty_alias_hw() {
|
||||
cat <<'EOF' | tee "${ALIAS_FILE}"
|
||||
# kitty → hardware rendering (OpenGL ≥3.3 detected)
|
||||
alias kitty="kitty"
|
||||
EOF
|
||||
}
|
||||
|
||||
conf_print_kitty_alias_sw() {
|
||||
cat <<'EOF' | tee "${ALIAS_FILE}"
|
||||
# kitty → software rendering (old/weak OpenGL)
|
||||
alias kitty="LIBGL_ALWAYS_SOFTWARE=1 kitty"
|
||||
EOF
|
||||
}
|
||||
|
||||
if should_use_software; then
|
||||
conf_print_kitty_alias_sw
|
||||
echo "# Forced software rendering due to insufficient OpenGL support" | tee -a "${ALIAS_FILE}"
|
||||
else
|
||||
conf_print_kitty_alias_hw
|
||||
echo "# Using hardware rendering" | tee -a "${ALIAS_FILE}"
|
||||
fi
|
||||
|
||||
# =============================================================================
|
||||
# 2. Common kitty aliases (only active inside kitty)
|
||||
# =============================================================================
|
||||
|
||||
cat <<'EOF' | tee -a "${ALIAS_FILE}"
|
||||
|
||||
if [[ "${XTERM}" = "xterm-kitty" || -n "${KITTY_INSTALLATION_DIR}" ]]; then
|
||||
alias ssh="kitty +kitten ssh"
|
||||
alias kt="kitty +kitten transfer"
|
||||
fi
|
||||
EOF
|
||||
|
||||
# =============================================================================
|
||||
# 3. kitty ssh.conf stub
|
||||
# =============================================================================
|
||||
|
||||
confi_print_kitty_ssh() {
|
||||
cat <<'EOF'
|
||||
# kitty +kitten ssh configuration
|
||||
|
||||
copy .zshrc
|
||||
copy .vimrc
|
||||
copy .vim
|
||||
copy .gitconfig
|
||||
|
||||
# env EDITOR=nvim
|
||||
# env LANG=en_US.UTF-8
|
||||
|
||||
# hostname build-*
|
||||
# copy ~/.ssh/config
|
||||
EOF
|
||||
}
|
||||
confi_print_kitty_ssh | tee "${KITTY_HOME}/ssh.conf"
|
||||
|
||||
# =============================================================================
|
||||
# 4. Example session
|
||||
# =============================================================================
|
||||
|
||||
conf_print_sessions() {
|
||||
cat <<'EOF'
|
||||
new_tab dev
|
||||
cd ~/projects
|
||||
title code
|
||||
launch zsh -c 'nvim .'
|
||||
launch zsh
|
||||
layout tall
|
||||
|
||||
new_tab scratch
|
||||
cd ~
|
||||
launch zsh
|
||||
layout tall
|
||||
EOF
|
||||
}
|
||||
conf_print_sessions | tee "${SESSIONS_D}/kitty-session.conf"
|
||||
|
||||
# =============================================================================
|
||||
# 5. Manual shell integration (tmux/containers friendly)
|
||||
# =============================================================================
|
||||
|
||||
conf_print_zsh_int() {
|
||||
cat <<'EOF'
|
||||
# Manual kitty shell integration
|
||||
if [[ -n "${KITTY_INSTALLATION_DIR:-}" ]]; then
|
||||
export KITTY_SHELL_INTEGRATION="enabled"
|
||||
autoload -Uz -- "${KITTY_INSTALLATION_DIR}/shell-integration/zsh/kitty-integration"
|
||||
kitty-integration
|
||||
unfunction kitty-integration
|
||||
fi
|
||||
EOF
|
||||
}
|
||||
conf_print_zsh_int | tee "${ZSHRC_D}/002_kitty.zsh"
|
||||
|
||||
# =============================================================================
|
||||
# 6. Main kitty.conf + kitty-scrollback.nvim integration
|
||||
# =============================================================================
|
||||
# See /var/tmp/020_neovim-lazyvim_plugins.sh
|
||||
|
||||
conf_print_kitty() {
|
||||
cat <<'EOF'
|
||||
# vim:ft=kitty
|
||||
|
||||
# ─── Performance ─────────────────────────────────────────────────────────────
|
||||
input_delay 0
|
||||
repaint_delay 2
|
||||
sync_to_monitor no
|
||||
|
||||
# ─── Font ────────────────────────────────────────────────────────────────────
|
||||
font_family FiraCode Nerd Font
|
||||
bold_font auto
|
||||
italic_font auto
|
||||
bold_italic_font auto
|
||||
font_size 11.5
|
||||
|
||||
font_features FiraCode Nerd Font +cv04 +cv10 +ss04 +ss03 +cv25 +cv32 +cv28 +ss06 +ss07
|
||||
disable_ligatures never
|
||||
|
||||
# ─── Cursor / Mouse ──────────────────────────────────────────────────────────
|
||||
cursor_shape block
|
||||
cursor_blink_interval 0
|
||||
copy_on_select yes
|
||||
strip_trailing_spaces always
|
||||
|
||||
# ─── Window ──────────────────────────────────────────────────────────────────
|
||||
window_border_width 1px
|
||||
hide_window_decorations no
|
||||
background_opacity 0.88
|
||||
|
||||
# ─── Bell ────────────────────────────────────────────────────────────────────
|
||||
enable_audio_bell no
|
||||
window_alert_on_bell yes
|
||||
bell_on_tab no
|
||||
|
||||
# ─── Tabs ────────────────────────────────────────────────────────────────────
|
||||
tab_bar_edge top
|
||||
tab_bar_style powerline
|
||||
|
||||
# ─── Updates & Integration ───────────────────────────────────────────────────
|
||||
update_check_interval 0
|
||||
shell_integration disabled
|
||||
|
||||
# ─── Browser ─────────────────────────────────────────────────────────────────
|
||||
open_url_with default
|
||||
|
||||
# ─── Scrollback (modern 2026 style with kitty-scrollback.nvim) ───────────────
|
||||
scrollback_lines 20000
|
||||
scrollback_pager_history_size 4
|
||||
|
||||
# Required for kitty-scrollback.nvim remote control
|
||||
# allow_remote_control yes
|
||||
allow_remote_control socket-only
|
||||
listen_on unix:/tmp/kitty-remote
|
||||
|
||||
# Recommended mappings
|
||||
map ctrl+shift+question kitty_scrollback_nvim --config search
|
||||
|
||||
## nvim --headless +'KittyScrollbackGenerateKittens'
|
||||
# kitty-scrollback.nvim Kitten alias
|
||||
action_alias kitty_scrollback_nvim kitten /home/default/.local/share/nvim/lazy/kitty-scrollback.nvim/python/kitty_scrollback_nvim.py
|
||||
|
||||
# Browse scrollback buffer in nvim
|
||||
map kitty_mod+h kitty_scrollback_nvim
|
||||
|
||||
# Browse output of the last shell command in nvim
|
||||
map kitty_mod+g kitty_scrollback_nvim --config ksb_builtin_last_cmd_output
|
||||
|
||||
# Show clicked command output in nvim
|
||||
mouse_map ctrl+shift+right press ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output
|
||||
|
||||
## /
|
||||
|
||||
# Mouse: right-click under cursor → last command output
|
||||
# mouse_map ctrl+shift+right press ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config last_cmd
|
||||
|
||||
# ─── Theme stub ──────────────────────────────────────────────────────────────
|
||||
# BEGIN_KITTY_THEME
|
||||
include current-theme.conf
|
||||
# END_KITTY_THEME
|
||||
EOF
|
||||
}
|
||||
conf_print_kitty | tee "${KITTY_HOME}/kitty.conf"
|
||||
|
||||
# =============================================================================
|
||||
# 7. A few example themes
|
||||
# =============================================================================
|
||||
|
||||
conf_print_nord_theme() {
|
||||
cat <<'EOF'
|
||||
foreground #d8dee9
|
||||
background #2e3440
|
||||
selection_foreground #d8dee9
|
||||
selection_background #434c5e
|
||||
cursor #d8dee9
|
||||
cursor_text_color #2e3440
|
||||
url_color #88c0d0
|
||||
active_border_color #88c0d0
|
||||
inactive_border_color #4c566a
|
||||
color0 #3b4252
|
||||
color1 #bf616a
|
||||
color2 #a3be8c
|
||||
color3 #ebcb8b
|
||||
color4 #81a1c1
|
||||
color5 #b48ead
|
||||
color6 #88c0d0
|
||||
color7 #e5e9f0
|
||||
color8 #4c566a
|
||||
color9 #bf616a
|
||||
color10 #a3be8c
|
||||
color11 #ebcb8b
|
||||
color12 #81a1c1
|
||||
color13 #b48ead
|
||||
color14 #8fbcbb
|
||||
color15 #eceff4
|
||||
EOF
|
||||
}
|
||||
conf_print_nord_theme | tee "${KITTY_HOME}/Nord.conf"
|
||||
|
||||
conf_print_macchiato_theme() {
|
||||
cat <<'EOF'
|
||||
foreground #cad3f5
|
||||
background #24273a
|
||||
selection_foreground #24273a
|
||||
selection_background #f4dbd6
|
||||
cursor #f4dbd6
|
||||
url_color #f4dbd6
|
||||
active_border_color #b7bdf8
|
||||
inactive_border_color #6e738d
|
||||
color0 #494d64
|
||||
color1 #ed8796
|
||||
color2 #a6da95
|
||||
color3 #eed49f
|
||||
color4 #8aadf4
|
||||
color5 #f5bde6
|
||||
color6 #8bd5ca
|
||||
color7 #b8c0e0
|
||||
color8 #5b6078
|
||||
color9 #ed8796
|
||||
color10 #a6da95
|
||||
color11 #eed49f
|
||||
color12 #8aadf4
|
||||
color13 #f5bde6
|
||||
color14 #8bd5ca
|
||||
color15 #a5adcb
|
||||
EOF
|
||||
}
|
||||
conf_print_macchiato_theme | tee "${KITTY_HOME}/Catppuccin-Macchiato.conf"
|
||||
|
||||
# =============================================================================
|
||||
# Final message
|
||||
# =============================================================================
|
||||
|
||||
cat <<'EOF'
|
||||
|
||||
Kitty configuration written.
|
||||
|
||||
Next steps:
|
||||
1. Make sure kitty-scrollback.nvim is installed in lazyvim
|
||||
2. Restart kitty or source your shell
|
||||
3. Test scrollback with ctrl+shift+h
|
||||
4. Change theme interactively: kitty +kitten themes
|
||||
5. Optional: run in Neovim :KittyScrollbackCheckHealth
|
||||
|
||||
Enjoy!
|
||||
|
||||
EOF
|
||||
Loading…
Reference in New Issue