nvim,tmux,kitty: full config overhaul (AstroNvim → native 0.12)

Replaces AstroNvim v5 with from-scratch Neovim 0.12 config using
vim.lsp.config()/vim.lsp.enable() natively, lazy.nvim, blink.cmp,
and smart-splits tmux integration.

tmux: new C-Space prefix, hjkl pane nav, resize key table, tpm plugins.
kitty: add allow_remote_control for smart-splits.
This commit is contained in:
2026-04-09 23:30:34 +02:00
parent d5d890aa43
commit ca2b441bb7
58 changed files with 2616 additions and 880 deletions

View File

@@ -0,0 +1,29 @@
# Apex Neon — managed by refresh-apex-themes, do not edit manually
# Run: refresh-apex-themes to update from ~/Dev/Themes/apex/dist
# Palette variables
set -g @void "#050505"
set -g @panel "#0d0d0d"
set -g @border "#262626"
set -g @stealth "#1a1a1a"
set -g @text "#ededed"
set -g @dim "#404040"
set -g @razor "#ff0044"
set -g @tech "#00eaff"
set -g @toxic "#00ff99"
set -g @amber "#ffb700"
set -g @azure "#0088cc"
set -g @sacred "#9d00ff"
# Status bar styling
set -g status-style "fg=#{@text},bg=#{@void}"
set -g pane-border-style "fg=#{@border}"
set -g pane-active-border-style "fg=#{@razor}"
set -g message-style "fg=#{@void},bg=#{@tech}"
set -g mode-style "fg=#{@void},bg=#{@tech}"
set -g display-panes-active-colour "#{@tech}"
set -g display-panes-colour "#{@dim}"
set -g clock-mode-colour "#{@tech}"
set -g window-status-style "fg=#{@dim},bg=#{@void}"
set -g window-status-current-style "fg=#{@void},bg=#{@tech},bold"

View File

@@ -1,97 +1,136 @@
#### GENERAL SETTINGS ####
set -g default-terminal "xterm-256color"
set -ga terminal-overrides ",xterm-256color:Tc" # truecolor support
set -g history-limit 10000
#### TERMINAL ####
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
#### PREFIX ####
unbind C-b
set -g prefix C-Space
bind C-Space send-prefix
#### GENERAL OPTIONS ####
set -g mouse on
# Renaming
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on
set -sg escape-time 10
set -g repeat-time 600
set -g history-limit 50000
set -g focus-events on
setw -g aggressive-resize on
set -g mode-keys vi
set -g status-keys vi
set -wg automatic-rename on
set -g renumber-window on
set -g allow-rename off
# Border status
setw -g pane-border-status top
#### KEYBINDINGS ####
# Use Alt-a as prefix
unbind C-b
set -g prefix M-a
bind M-a send-prefix
#### PANE NAVIGATION (no prefix — smart-splits passthrough) ####
bind -n C-h select-pane -L
bind -n C-j select-pane -D
bind -n C-k select-pane -U
bind -n C-l select-pane -R
# Better split bindings
unbind '"'
unbind %
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
bind -n M-H split-window -h -b -c "#{pane_current_path}"
bind -n M-L split-window -h -c "#{pane_current_path}"
bind -n M-K split-window -v -b -c "#{pane_current_path}"
bind -n M-J split-window -v -c "#{pane_current_path}"
# Vim-like pane movement
#### PANE NAVIGATION (with prefix) ####
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bind -n M-h select-pane -L
bind -n M-j select-pane -D
bind -n M-k select-pane -U
bind -n M-l select-pane -R
# Alt+Tab to switch between last panes
bind -n M-Tab last-pane
#### PANE MOVEMENT (swap) ####
bind H swap-pane -U
bind J swap-pane -D
bind K swap-pane -U
bind L swap-pane -D
# Resize panes with vimkeys
bind -n C-M-h resize-pane -L 5
bind -n C-M-j resize-pane -D 5
bind -n C-M-k resize-pane -U 5
bind -n C-M-l resize-pane -R 5
#### PANE SPLITS ####
unbind '"'
unbind %
bind s split-window -v -c "#{pane_current_path}"
bind v split-window -h -c "#{pane_current_path}"
bind q kill-pane
bind z resize-pane -Z
# Reload config
bind r source-file ~/.config/tmux/tmux.conf \; display-message "Config reloaded!"
#### RESIZE MODE ####
bind r switch-client -T resize
bind -T resize h resize-pane -L 5
bind -T resize j resize-pane -D 5
bind -T resize k resize-pane -U 5
bind -T resize l resize-pane -R 5
bind -T resize H resize-pane -L 15
bind -T resize J resize-pane -D 15
bind -T resize K resize-pane -U 15
bind -T resize L resize-pane -R 15
bind -T resize Escape switch-client -T root
bind -T resize Enter switch-client -T root
#### COPY/CLIPBOARD SUPPORT ####
setw -g mode-keys vi
bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "kitty +kitten clipboard"
#### WINDOWS ####
bind Return new-window -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
bind Q kill-window
bind Tab next-window
bind BTab previous-window
bind 1 select-window -t :1
bind 2 select-window -t :2
bind 3 select-window -t :3
bind 4 select-window -t :4
bind 5 select-window -t :5
bind 6 select-window -t :6
bind 7 select-window -t :7
bind 8 select-window -t :8
bind 9 select-window -t :9
bind , command-prompt -I "#W" "rename-window '%%'"
#### SESSIONS ####
bind Space choose-tree -Zs
bind '$' command-prompt -I "#S" "rename-session '%%'"
bind d detach-client
bind C-s run-shell "~/.config/tmux/plugins/tpm/plugins/tmux-resurrect/scripts/save.sh"
bind C-r run-shell "~/.config/tmux/plugins/tpm/plugins/tmux-resurrect/scripts/restore.sh"
# Apex Neon theme
set -g status-style "fg=#ededed,bg=#050505"
set -g status-justify "absolute-centre"
set -g pane-border-style "fg=#262626"
set -g pane-active-border-style "fg=#ff0044"
set -g message-style "fg=#050505,bg=#00eaff"
set -g mode-style "fg=#050505,bg=#00eaff"
set -g display-panes-active-colour "#00eaff"
set -g display-panes-colour "#404040"
set -g clock-mode-colour "#00eaff"
#### COPY MODE ####
bind '[' copy-mode
bind ']' paste-buffer
bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi y send -X copy-selection-and-cancel
bind -T copy-mode-vi C-v send -X rectangle-toggle
bind -T copy-mode-vi Escape send -X cancel
bind -T copy-mode-vi q send -X cancel
set -g @tmux-weather-location "Nospelt"
#### MISC ####
bind R source-file ~/.config/tmux/tmux.conf \; display-message "Config reloaded!"
bind ? list-keys
bind t clock-mode
set -g window-status-style "fg=#404040,bg=#050505"
set -g window-status-current-style "fg=#050505,bg=#00eaff,bold"
set -g window-status-format " #I:#W "
set -g window-status-current-format "#[fg=#050505,bg=#00eaff,bold] #I:#W #[fg=#00eaff,bg=#050505]"
#### THEME ####
source-file ~/.config/tmux/apex-neon.conf
#### STATUS BAR ####
set -g status-left-length 100
set -g status-left "#[fg=#050505,bg=#ff0044,bold] #S #[fg=#ff0044,bg=#050505] "
set -g status-right-length 200
set -g status-right-length 100
set -g status-right "#[fg=#9d00ff]#H #[fg=#00eaff]%Y-%m-%d %H:%M "
set -g status-left "#[fg=#{@void},bg=#{@razor},bold] #S #[fg=#{@razor},bg=default] "
set -g status-right " #{cpu_fg_color}CPU:#{cpu_percentage} #[fg=#{@tech}]MEM:#{ram_percentage} #{battery_color_fg}BAT:#{battery_percentage} #[fg=#{@amber}]#{@tmux-weather-location}:#{weather} #[fg=#{@dim}]%Y-%m-%d #[fg=#{@text}]%H:%M "
set -g window-status-format " #I:#W "
set -g window-status-current-format "#[bold] #I:#W "
set -g status-justify "absolute-centre"
#### TMUX PLUGIN MANAGER + PLUGINS ####
#### RESURRECT / CONTINUUM ####
set -g @continuum-restore 'on'
set -g @continuum-save-interval '15'
set -g @resurrect-capture-pane-contents 'on'
#### PLUGINS (TPM) ####
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-yank'
# style
set -g @plugin 'joshmedeski/tmux-nerd-font-window-name'
set -g @plugin 'tmux-plugins/tmux-cpu'
set -g @plugin 'tmux-plugins/tmux-battery'
set -g @plugin 'xamut/tmux-weather'
set -g @tmux-weather-location "Nospelt"
# Initialize TPM (must be last)
run '~/.config/tmux/plugins/tpm/tpm'