Discarded.

This commit is contained in:
cyteen 2026-03-11 01:36:44 +00:00
parent 1cdb869a19
commit 3ac25e39bd
1 changed files with 0 additions and 316 deletions

View File

@ -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