diff --git a/term/.config/nvim/init.lua b/term/.config/nvim/init.lua index 1f0d9ec..53ad4da 100644 --- a/term/.config/nvim/init.lua +++ b/term/.config/nvim/init.lua @@ -70,12 +70,6 @@ vim.keymap.set("n", "q", ":q", { desc = "Quit" }) vim.keymap.set("n", "", ":Neotree filesystem reveal left", { desc = "Toggle explorer" }) vim.keymap.set("n", "", ":Telescope find_files", { desc = "Find files" }) --- Better window navigation -vim.keymap.set("n", "", "h", { desc = "Navigate left" }) -vim.keymap.set("n", "", "j", { desc = "Navigate down" }) -vim.keymap.set("n", "", "k", { desc = "Navigate up" }) -vim.keymap.set("n", "", "l", { desc = "Navigate right" }) - -- Split windows vim.keymap.set("n", "sh", ":split", { desc = "Split window horizontally" }) vim.keymap.set("n", "sv", ":vsplit", { desc = "Split window vertically" }) diff --git a/term/.config/nvim/lua/plugins/vim-tmux-navigator.lua b/term/.config/nvim/lua/plugins/vim-tmux-navigator.lua new file mode 100644 index 0000000..51d3d97 --- /dev/null +++ b/term/.config/nvim/lua/plugins/vim-tmux-navigator.lua @@ -0,0 +1,15 @@ +return { + "christoomey/vim-tmux-navigator", + cmd = { + "TmuxNavigateLeft", + "TmuxNavigateDown", + "TmuxNavigateUp", + "TmuxNavigateRight", + }, + keys = { + { "", "TmuxNavigateLeft", desc = "Navigate left (tmux/nvim)" }, + { "", "TmuxNavigateDown", desc = "Navigate down (tmux/nvim)" }, + { "", "TmuxNavigateUp", desc = "Navigate up (tmux/nvim)" }, + { "", "TmuxNavigateRight", desc = "Navigate right (tmux/nvim)" }, + }, +} diff --git a/term/.config/tmux/plugins/tmux b/term/.config/tmux/plugins/tmux new file mode 160000 index 0000000..92b9ef4 --- /dev/null +++ b/term/.config/tmux/plugins/tmux @@ -0,0 +1 @@ +Subproject commit 92b9ef41b9481420eee56967fac715b56005e248 diff --git a/term/.config/tmux/plugins/tmux-sensible b/term/.config/tmux/plugins/tmux-sensible new file mode 160000 index 0000000..25cb91f --- /dev/null +++ b/term/.config/tmux/plugins/tmux-sensible @@ -0,0 +1 @@ +Subproject commit 25cb91f42d020f675bb0a2ce3fbd3a5d96119efa diff --git a/term/.config/tmux/plugins/tpm b/term/.config/tmux/plugins/tpm new file mode 160000 index 0000000..99469c4 --- /dev/null +++ b/term/.config/tmux/plugins/tpm @@ -0,0 +1 @@ +Subproject commit 99469c4a9b1ccf77fade25842dc7bafbc8ce9946 diff --git a/term/.config/tmux/plugins/vim-tmux-navigator b/term/.config/tmux/plugins/vim-tmux-navigator new file mode 160000 index 0000000..e41c431 --- /dev/null +++ b/term/.config/tmux/plugins/vim-tmux-navigator @@ -0,0 +1 @@ +Subproject commit e41c431a0c7b7388ae7ba341f01a0d217eb3a432 diff --git a/term/.config/tmux/tmux.conf b/term/.config/tmux/tmux.conf new file mode 100644 index 0000000..8fdfc4b --- /dev/null +++ b/term/.config/tmux/tmux.conf @@ -0,0 +1,51 @@ +# ── General ─────────────────────────────────────────────────────────────────── + +set -g default-terminal "tmux-256color" +set -ag terminal-overrides ",xterm-256color:RGB" + +set -g mouse on # click to focus panes, drag borders to resize +set -g base-index 1 # start window numbering at 1 +set -g pane-base-index 1 # start pane numbering at 1 +set -g renumber-windows on # re-number windows when one is closed +set -g escape-time 0 # no delay for escape key (important for Neovim) +set -g history-limit 10000 +set -g focus-events on # pass focus events through (needed by Neovim) + + +# ── Keybinds ────────────────────────────────────────────────────────────────── + +unbind r +bind r source-file ~/.config/tmux/tmux.conf \; display "Config reloaded" + + +# ── Plugins ─────────────────────────────────────────────────────────────────── + +# Auto-bootstrap TPM if not installed +if "test ! -d ~/.tmux/plugins/tpm" \ + "run 'git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && ~/.tmux/plugins/tpm/bin/install_plugins'" + +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' + +# Seamless navigation between tmux panes and Neovim splits +set -g @plugin 'christoomey/vim-tmux-navigator' + +# Catppuccin theme +set -g @plugin 'catppuccin/tmux' +set -g @catppuccin_flavor "mocha" +set -g @catppuccin_window_status_style "rounded" + + +# ── Initialize TPM (must be last line before status bar) ────────────────────── + +run '~/.tmux/plugins/tpm/tpm' + + +# ── Status bar ──────────────────────────────────────────────────────────────── +# (must come after TPM run so catppuccin variables are available) + +set -g status-position top +set -g status-left-length 100 +set -g status-right-length 100 +set -g status-left "#{E:@catppuccin_status_session}" +set -g status-right "#{E:@catppuccin_status_date_time}"