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:
29
dot_config/tmux/apex-neon.conf
Normal file
29
dot_config/tmux/apex-neon.conf
Normal 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"
|
||||
@@ -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'
|
||||
|
||||
Reference in New Issue
Block a user