Add TPM for tmux plugin management + plugins
This commit is contained in:
parent
6eacf0124c
commit
3be9aa5a10
9
.gitignore
vendored
9
.gitignore
vendored
|
@ -2,9 +2,6 @@
|
||||||
*.swp
|
*.swp
|
||||||
.python-version
|
.python-version
|
||||||
.DS_Store
|
.DS_Store
|
||||||
# For Packer plugins
|
config/nvim/plugin
|
||||||
plugin
|
config/lazygit/state.yml
|
||||||
# For lazygit state file
|
config/tmux/plugins
|
||||||
state.yml
|
|
||||||
# For pynvim environment
|
|
||||||
venv
|
|
||||||
|
|
21
Makefile
21
Makefile
|
@ -1,10 +1,10 @@
|
||||||
LOCAL_BIN := $(HOME)/.local/bin
|
|
||||||
CONFIG_DIR := $(if $(XDG_CONFIG_HOME), $(XDG_CONFIG_HOME), $(HOME)/.config)
|
CONFIG_DIR := $(if $(XDG_CONFIG_HOME), $(XDG_CONFIG_HOME), $(HOME)/.config)
|
||||||
FONT_DIR := $(HOME)/.local/share/fonts
|
FONT_DIR := $(HOME)/.local/share/fonts
|
||||||
ZSH_DIR := $(if $(ZSH), $(ZSH), $(HOME)/.oh-my-zsh)
|
ZSH_DIR := $(if $(ZSH), $(ZSH), $(HOME)/.oh-my-zsh)
|
||||||
ZSH_CUSTOM_DIR := $(if $(ZSH_CUSTOM), $(ZSH_CUSTOM), $(ZSH_DIR)/custom)
|
|
||||||
SSH_DIR := $(HOME)/.ssh
|
SSH_DIR := $(HOME)/.ssh
|
||||||
|
|
||||||
|
ZSH_CUSTOM_DIR := $(if $(ZSH_CUSTOM), $(ZSH_CUSTOM), $(ZSH_DIR)/custom)
|
||||||
|
|
||||||
HOME_ITEMS := $(wildcard home/*)
|
HOME_ITEMS := $(wildcard home/*)
|
||||||
HOME_TARGETS := $(HOME_ITEMS:home/%=$(HOME)/.%)
|
HOME_TARGETS := $(HOME_ITEMS:home/%=$(HOME)/.%)
|
||||||
CONFIG_ITEMS := $(wildcard config/*)
|
CONFIG_ITEMS := $(wildcard config/*)
|
||||||
|
@ -18,8 +18,10 @@ PACKER_REPO := https://github.com/wbthomason/packer.nvim
|
||||||
PACKER_DIR := $(HOME)/.local/share/nvim/site/pack/packer/start/packer.nvim
|
PACKER_DIR := $(HOME)/.local/share/nvim/site/pack/packer/start/packer.nvim
|
||||||
POWERLEVEL_REPO := https://github.com/romkatv/powerlevel10k.git
|
POWERLEVEL_REPO := https://github.com/romkatv/powerlevel10k.git
|
||||||
POWERLEVEL_DIR := $(ZSH_CUSTOM_DIR)/themes/powerlevel10k
|
POWERLEVEL_DIR := $(ZSH_CUSTOM_DIR)/themes/powerlevel10k
|
||||||
|
TPM_REPO := https://github.com/tmux-plugins/tpm
|
||||||
|
TPM_DIR := $(HOME)/.tmux/plugins/tpm
|
||||||
|
|
||||||
.PHONY := install clean home packages config zsh ssh nvim
|
.PHONY: install clean home packages config zsh ssh nvim
|
||||||
|
|
||||||
install: home packages config zsh ssh nvim
|
install: home packages config zsh ssh nvim
|
||||||
|
|
||||||
|
@ -35,7 +37,7 @@ home: $(HOME_TARGETS)
|
||||||
packages:
|
packages:
|
||||||
pacman -T - < pkglist.txt || sudo pacman --needed -S - < pkglist.txt
|
pacman -T - < pkglist.txt || sudo pacman --needed -S - < pkglist.txt
|
||||||
|
|
||||||
config: $(CONFIG_TARGETS)
|
config: $(CONFIG_TARGETS) $(TPM_DIR)
|
||||||
|
|
||||||
zsh: $(ZSH_DIR) $(POWERLEVEL_DIR) $(ZSH_TARGETS)
|
zsh: $(ZSH_DIR) $(POWERLEVEL_DIR) $(ZSH_TARGETS)
|
||||||
|
|
||||||
|
@ -53,11 +55,14 @@ $(HOME_TARGETS) $(CONFIG_TARGETS) $(ZSH_TARGETS) $(SSH_TARGETS):
|
||||||
$(PACKER_DIR):
|
$(PACKER_DIR):
|
||||||
git clone --depth 1 $(PACKER_REPO) $@
|
git clone --depth 1 $(PACKER_REPO) $@
|
||||||
|
|
||||||
$(ZSH_DIR):
|
|
||||||
sh -c "$$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
|
||||||
|
|
||||||
$(POWERLEVEL_DIR): $(ZSH_DIR)
|
$(POWERLEVEL_DIR): $(ZSH_DIR)
|
||||||
git clone --depth 1 $(POWERLEVEL_REPO) $@
|
git clone --depth 1 $(POWERLEVEL_REPO) $@
|
||||||
|
|
||||||
$(LOCAL_BIN) $(CONFIG_DIR) $(FONT_DIR) $(SSH_DIR) $(HOME)/.ssh/sockets:
|
$(TPM_DIR):
|
||||||
|
git clone --depth 1 $(TPM_REPO) $@
|
||||||
|
|
||||||
|
$(ZSH_DIR):
|
||||||
|
sh -c "$$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
||||||
|
|
||||||
|
$(CONFIG_DIR) $(FONT_DIR) $(SSH_DIR) $(HOME)/.ssh/sockets:
|
||||||
mkdir -p $@
|
mkdir -p $@
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
require('toggleterm').setup {
|
require('toggleterm').setup {
|
||||||
direction = 'float',
|
direction = 'horizontal',
|
||||||
open_mapping = [[\t]],
|
open_mapping = [[\t]],
|
||||||
size = function (term)
|
size = function (term)
|
||||||
if term.direction == "horizontal" then
|
if term.direction == "horizontal" then
|
||||||
|
@ -10,14 +10,13 @@ require('toggleterm').setup {
|
||||||
end,
|
end,
|
||||||
hide_numbers = true, -- hide the number column in toggleterm buffers
|
hide_numbers = true, -- hide the number column in toggleterm buffers
|
||||||
persist_size = false,
|
persist_size = false,
|
||||||
}
|
float_opts = {
|
||||||
|
border = 'curved',
|
||||||
function _G.set_terminal_keymaps()
|
},
|
||||||
local opts = { buffer = 0 }
|
winbar = {
|
||||||
vim.keymap.set('t', '<C-h>', [[<Cmd>wincmd h<CR>]], opts)
|
enabled = false,
|
||||||
vim.keymap.set('t', '<C-j>', [[<Cmd>wincmd j<CR>]], opts)
|
name_formatter = function(term) -- term: Terminal
|
||||||
vim.keymap.set('t', '<C-k>', [[<Cmd>wincmd k<CR>]], opts)
|
return term.name
|
||||||
vim.keymap.set('t', '<C-l>', [[<Cmd>wincmd l<CR>]], opts)
|
|
||||||
end
|
end
|
||||||
|
},
|
||||||
vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()')
|
}
|
||||||
|
|
|
@ -1,39 +1,32 @@
|
||||||
local function map(mode, shortcut, command)
|
|
||||||
vim.api.nvim_set_keymap(mode, shortcut, command, { noremap = true, silent = true })
|
|
||||||
end
|
|
||||||
|
|
||||||
local function nmap(shortcut, command)
|
|
||||||
map('n', shortcut, command)
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.g.mapleader = ' '
|
vim.g.mapleader = ' '
|
||||||
|
vim.keymap.set('i', 'jk', '<esc>')
|
||||||
|
|
||||||
|
-- Toggleterm
|
||||||
|
vim.keymap.set('n', '<leader>th', '<cmd>ToggleTerm direction=horizontal<cr>')
|
||||||
|
vim.keymap.set('n', '<leader>tv', '<cmd>ToggleTerm direction=vertical<cr>')
|
||||||
|
vim.keymap.set('n', '<leader>tf', '<cmd>ToggleTerm direction=float<cr>')
|
||||||
|
vim.keymap.set('n', '<leader>tt', '<cmd>ToggleTerm direction=tab<cr>')
|
||||||
|
|
||||||
-- Aerial
|
-- Aerial
|
||||||
nmap('<leader>aa', '<cmd>AerialToggle<cr>')
|
vim.keymap.set('n', '<leader>aa', '<cmd>AerialToggle<cr>')
|
||||||
|
|
||||||
-- Telescope
|
-- Telescope
|
||||||
nmap('<leader>;', '<cmd>Telescope builtin<cr>')
|
vim.keymap.set('n', '<leader>;', '<cmd>Telescope builtin<cr>')
|
||||||
nmap('<leader>ff', '<cmd>Telescope find_files<cr>')
|
vim.keymap.set('n', '<leader>ff', '<cmd>Telescope find_files<cr>')
|
||||||
nmap('<leader>fg', '<cmd>Telescope live_grep<cr>')
|
vim.keymap.set('n', '<leader>fg', '<cmd>Telescope live_grep<cr>')
|
||||||
nmap('<leader>fp', '<cmd>Telescope projects<cr>')
|
vim.keymap.set('n', '<leader>fp', '<cmd>Telescope projects<cr>')
|
||||||
nmap('<leader>fa', '<cmd>Telescope aerial<cr>')
|
vim.keymap.set('n', '<leader>fa', '<cmd>Telescope aerial<cr>')
|
||||||
nmap('<leader>fl', '<cmd>Telescope lsp_document_symbols<cr>')
|
vim.keymap.set('n', '<leader>fl', '<cmd>Telescope lsp_document_symbols<cr>')
|
||||||
nmap('<leader>fe', '<cmd>Telescope diagnostics<cr>')
|
vim.keymap.set('n', '<leader>fe', '<cmd>Telescope diagnostics<cr>')
|
||||||
nmap('<leader>fs', '<cmd>Telescope treesitter<cr>')
|
vim.keymap.set('n', '<leader>fs', '<cmd>Telescope treesitter<cr>')
|
||||||
nmap('<leader>fz', '<cmd>Telescope current_buffer_fuzzy_find<cr>')
|
vim.keymap.set('n', '<leader>fz', '<cmd>Telescope current_buffer_fuzzy_find<cr>')
|
||||||
|
|
||||||
-- Nvim-tree
|
-- Nvim-tree
|
||||||
nmap('<leader>n', '<cmd>NvimTreeToggle<cr>')
|
vim.keymap.set('n', '<leader>n', '<cmd>NvimTreeToggle<cr>')
|
||||||
|
|
||||||
-- Trouble
|
-- Trouble
|
||||||
nmap('<leader>xx', '<cmd>TroubleToggle<cr>')
|
vim.keymap.set('n', '<leader>xx', '<cmd>TroubleToggle<cr>')
|
||||||
nmap('<leader>xw', '<cmd>TroubleToggle workspace_diagnostics<cr>')
|
vim.keymap.set('n', '<leader>xw', '<cmd>TroubleToggle workspace_diagnostics<cr>')
|
||||||
nmap('<leader>xd', '<cmd>TroubleToggle document_diagnostics<cr>')
|
vim.keymap.set('n', '<leader>xd', '<cmd>TroubleToggle document_diagnostics<cr>')
|
||||||
nmap('<leader>xq', '<cmd>TroubleToggle quickfix<cr>')
|
vim.keymap.set('n', '<leader>xq', '<cmd>TroubleToggle quickfix<cr>')
|
||||||
nmap('<leader>xl', '<cmd>TroubleToggle loclist<cr>')
|
vim.keymap.set('n', '<leader>xl', '<cmd>TroubleToggle loclist<cr>')
|
||||||
|
|
||||||
-- Navigator
|
|
||||||
vim.keymap.set({'n', 't'}, '<A-h>', '<CMD>NavigatorLeft<CR>')
|
|
||||||
vim.keymap.set({'n', 't'}, '<A-l>', '<CMD>NavigatorRight<CR>')
|
|
||||||
vim.keymap.set({'n', 't'}, '<A-k>', '<CMD>NavigatorUp<CR>')
|
|
||||||
vim.keymap.set({'n', 't'}, '<A-j>', '<CMD>NavigatorDown<CR>')
|
|
||||||
vim.keymap.set({'n', 't'}, '<A-p>', '<CMD>NavigatorPrevious<CR>')
|
|
||||||
|
|
|
@ -155,12 +155,7 @@ require('packer').startup {
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
use {
|
use 'sunaku/tmux-navigate'
|
||||||
'numToStr/Navigator.nvim',
|
|
||||||
config = function()
|
|
||||||
require('Navigator').setup()
|
|
||||||
end
|
|
||||||
}
|
|
||||||
end,
|
end,
|
||||||
config = {
|
config = {
|
||||||
display = {
|
display = {
|
||||||
|
|
|
@ -1,8 +1,18 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Set color enabled
|
set -g base-index 1
|
||||||
set -g default-terminal "screen-256color"
|
|
||||||
set -ga terminal-overrides ",*256col*,*kitty,alacritty:Tc"
|
# List of plugins
|
||||||
|
set -g @plugin 'tmux-plugins/tpm'
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||||
|
set -g @plugin 'ofirgall/tmux-window-name'
|
||||||
|
set -g @plugin 'noscript/tmux-mighty-scroll'
|
||||||
|
set -g @plugin 'jabirali/tmux-tilish'
|
||||||
|
set -g @plugin 'sunaku/tmux-navigate'
|
||||||
|
|
||||||
|
# Plugin options.
|
||||||
|
set -g @tilish-navigate 'on'
|
||||||
|
set -g @tilish-dmenu 'on'
|
||||||
|
|
||||||
# Nightfox colors for Tmux
|
# Nightfox colors for Tmux
|
||||||
# Style: nightfox
|
# Style: nightfox
|
||||||
|
@ -26,3 +36,6 @@ setw -g window-status-separator ""
|
||||||
setw -g window-status-style "NONE,fg=#71839b,bg=#131a24"
|
setw -g window-status-style "NONE,fg=#71839b,bg=#131a24"
|
||||||
setw -g window-status-format "#[fg=#131a24,bg=#131a24,nobold,nounderscore,noitalics]#[default] #I #W #F #[fg=#131a24,bg=#131a24,nobold,nounderscore,noitalics]"
|
setw -g window-status-format "#[fg=#131a24,bg=#131a24,nobold,nounderscore,noitalics]#[default] #I #W #F #[fg=#131a24,bg=#131a24,nobold,nounderscore,noitalics]"
|
||||||
setw -g window-status-current-format "#[fg=#131a24,bg=#aeafb0,nobold,nounderscore,noitalics]#[fg=#131a24,bg=#aeafb0,bold] #I #W #F #[fg=#aeafb0,bg=#131a24,nobold,nounderscore,noitalics]"
|
setw -g window-status-current-format "#[fg=#131a24,bg=#aeafb0,nobold,nounderscore,noitalics]#[fg=#131a24,bg=#aeafb0,bold] #I #W #F #[fg=#aeafb0,bg=#131a24,nobold,nounderscore,noitalics]"
|
||||||
|
|
||||||
|
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||||
|
run '~/.tmux/plugins/tpm/tpm'
|
||||||
|
|
|
@ -1,47 +1,6 @@
|
||||||
local wezterm = require('wezterm')
|
|
||||||
local act = wezterm.action
|
|
||||||
|
|
||||||
local function isViProcess(pane)
|
|
||||||
-- get_foreground_process_name On Linux, macOS and Windows,
|
|
||||||
-- the process can be queried to determine this path. Other operating systems
|
|
||||||
-- (notably, FreeBSD and other unix systems) are not currently supported
|
|
||||||
return pane:get_foreground_process_name():find('n?vim') ~= nil
|
|
||||||
-- return pane:get_title():find("n?vim") ~= nil
|
|
||||||
end
|
|
||||||
|
|
||||||
local function conditionalActivatePane(window, pane, pane_direction, vim_direction)
|
|
||||||
if isViProcess(pane) then
|
|
||||||
window:perform_action(
|
|
||||||
-- This should match the keybinds you set in Neovim.
|
|
||||||
act.SendKey({ key = vim_direction, mods = 'ALT' }),
|
|
||||||
pane
|
|
||||||
)
|
|
||||||
else
|
|
||||||
window:perform_action(act.ActivatePaneDirection(pane_direction), pane)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
wezterm.on('ActivatePaneDirection-right', function(window, pane)
|
|
||||||
conditionalActivatePane(window, pane, 'Right', 'l')
|
|
||||||
end)
|
|
||||||
wezterm.on('ActivatePaneDirection-left', function(window, pane)
|
|
||||||
conditionalActivatePane(window, pane, 'Left', 'h')
|
|
||||||
end)
|
|
||||||
wezterm.on('ActivatePaneDirection-up', function(window, pane)
|
|
||||||
conditionalActivatePane(window, pane, 'Up', 'k')
|
|
||||||
end)
|
|
||||||
wezterm.on('ActivatePaneDirection-down', function(window, pane)
|
|
||||||
conditionalActivatePane(window, pane, 'Down', 'j')
|
|
||||||
end)
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
disable_default_key_bindings = true,
|
||||||
window_background_opacity = 0.95,
|
window_background_opacity = 0.95,
|
||||||
color_scheme = "nightfox",
|
color_scheme = "nightfox",
|
||||||
hide_tab_bar_if_only_one_tab = true,
|
hide_tab_bar_if_only_one_tab = true,
|
||||||
keys = {
|
|
||||||
{ key = 'h', mods = 'ALT', action = act.EmitEvent('ActivatePaneDirection-left') },
|
|
||||||
{ key = 'j', mods = 'ALT', action = act.EmitEvent('ActivatePaneDirection-down') },
|
|
||||||
{ key = 'k', mods = 'ALT', action = act.EmitEvent('ActivatePaneDirection-up') },
|
|
||||||
{ key = 'l', mods = 'ALT', action = act.EmitEvent('ActivatePaneDirection-right') },
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
649
home/p10k.zsh
649
home/p10k.zsh
File diff suppressed because it is too large
Load diff
5
ohmyzsh/hooks.zsh
Normal file
5
ohmyzsh/hooks.zsh
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
tmux-window-name() {
|
||||||
|
($TMUX_PLUGIN_MANAGER_PATH/tmux-window-name/scripts/rename_session_windows.py &)
|
||||||
|
}
|
||||||
|
|
||||||
|
add-zsh-hook chpwd tmux-window-name
|
20
pkglist.txt
20
pkglist.txt
|
@ -1,17 +1,19 @@
|
||||||
zsh
|
|
||||||
wezterm
|
|
||||||
fzf
|
fzf
|
||||||
neovim
|
|
||||||
lazygit
|
lazygit
|
||||||
ripgrep
|
|
||||||
lua-language-server
|
lua-language-server
|
||||||
tree-sitter
|
neovim
|
||||||
|
pyenv
|
||||||
python
|
python
|
||||||
python-pip
|
|
||||||
python-virtualenv
|
|
||||||
python-black
|
python-black
|
||||||
python-isort
|
python-isort
|
||||||
python-poetry
|
python-libtmux
|
||||||
|
python-pip
|
||||||
python-pipx
|
python-pipx
|
||||||
|
python-poetry
|
||||||
|
python-pre-commit
|
||||||
python-pynvim
|
python-pynvim
|
||||||
pyenv
|
python-virtualenv
|
||||||
|
ripgrep
|
||||||
|
tree-sitter
|
||||||
|
wezterm
|
||||||
|
zsh
|
||||||
|
|
Loading…
Reference in a new issue