Compare commits

...

5 Commits

Author SHA1 Message Date
6aadc39650 feat(tmux): install tmux plugin manager 2023-10-15 20:56:03 +00:00
2a641a0158 chore(tmux): use XDG_CONFIG_HOME to setup plugins
Also update tmux config to reflect this change, and mount a plugin dir.
2023-10-15 20:56:03 +00:00
041ca8f1fa fix(tmux): use proper name for tmuxp configurations 2023-10-15 20:56:03 +00:00
Joao P Dubas
9c6b47f9b3 feat: add tmux and tmuxp
Also add the respective configurations.
2023-10-15 20:56:03 +00:00
fa879a6772 chore(nvim): upgrade kickstart.nvim (#2)
Upgrade kickstart.nvim to the latest commit, and adjust the patch to conform to the current state.

Co-authored-by: Joao P Dubas <joao.dubas@gmail.com>
Reviewed-on: #2
2023-10-15 19:46:17 +00:00
6 changed files with 184 additions and 40 deletions

View File

@ -59,6 +59,8 @@ RUN apt-get update \
python3-openssl \
sudo \
tk-dev \
tmux \
tmuxp \
unixodbc-dev \
unzip \
uuid-dev \
@ -130,14 +132,15 @@ ENV SHELL /usr/bin/bash
# command line utilities
RUN curl https://rtx.pub/install.sh | sh \
&& curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash
&& curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash \
&& git clone https://github.com/tmux-plugins/tpm.git ${XDG_CONFIG_HOME}/tmux/plugins/tpm
# git configuration
COPY ./patch/kickstart.nvim/updates.patch /tmp
COPY ./config/nvim/lua/custom/plugins/init.lua /tmp
RUN git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME}"/nvim \
&& cd ${XDG_CONFIG_HOME}/nvim \
&& git reset --hard 313bd75ca04cb2cef48a79ac3ad697a1b9a2daab \
&& git reset --hard 9b256d93688b3d295dab89f06faeff741af58a68 \
&& git apply /tmp/updates.patch \
&& cp /tmp/init.lua ${XDG_CONFIG_HOME}/nvim/lua/custom/plugins \
&& nvim --headless "+Lazy! sync" +qa

99
config/tmux/tmux.conf Normal file
View File

@ -0,0 +1,99 @@
# Based on:
# https://github.com/henrik/dotfiles/blob/master/tmux.conf
# Remap Prefix to C-a
unbind C-b
set -g prefix C-a
# Improve pane split
bind | split-window -h
bind - split-window -v
# Improve pane move
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Improve window move
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+
# Improve resize pane
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
# Enable vim keys
set-window-option -g mode-keys vi
# Make [shift]-arrows, [ctrl]-arrows, etc work in vim
set -g xterm-keys on
# Attempt to fixes slows [esc] issues
set -s escape-time 0
# Disable mouse
# set -g mode-mouse off
# Status bar styling and content
set -g status-bg black
set -g status-fg white
# set -g status-left "#$"
# Highlight the active window in the status bar
set-window-option -g window-status-current-bg yellow
set-window-option -g window-status-current-fg black
# Don't prompt to kill panes/windows
bind-key x kill-pane
bind-key & kill-window
# Reload tmux conf
unbind r
bind r source-file ~/.tmux.conf\; display "Reloaded conf."
# Full color for vim
set -g default-terminal "screen-256color"
#### COLOUR (Solarized 256)
# default statusbar colors
set-option -g status-bg colour235 #base02
set-option -g status-fg colour136 #yellow
set-option -g status-attr default
# default window title colors
set-window-option -g window-status-fg colour244 #base0
set-window-option -g window-status-bg default
#set-window-option -g window-status-attr dim
# active window title colors
set-window-option -g window-status-current-fg colour166 #orange
set-window-option -g window-status-current-bg default
#set-window-option -g window-status-current-attr bright
# pane border
set-option -g pane-border-fg colour235 #base02
set-option -g pane-active-border-fg colour240 #base01
# message text
set-option -g message-bg colour235 #base02
set-option -g message-fg colour166 #orange
# pane number display
set-option -g display-panes-active-colour colour33 #blue
set-option -g display-panes-colour colour166 #orange
# clock
set-window-option -g clock-mode-colour colour64 #green
# buffer size
set -g history-limit 50000
# list plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'Morantron/tmux-fingers'
set -g @plugin 'tmux-plugins/tmux-yank'
run '~/.config/tmux/plugins/tpm/tpm'

23
config/tmuxp/dev.yml Normal file
View File

@ -0,0 +1,23 @@
---
session_name: dev
start_directory: /opt/work
windows:
- window_name: main
layout: even-vertical
focus: true
panes:
- focus: true
- pane
- window_name: support
layout: even-vertical
start_directory: support
panes:
- shell_command:
- docker compose exec pgcli bash
- pane
- window_name: local
layout: even-vertical
start_directory: local
panes:
- pane
- pane

15
config/tmuxp/work.yml Normal file
View File

@ -0,0 +1,15 @@
session_name: personal
start_directory: /opt/personal
windows:
- window_name: labs
focus: true
layout: even-vertical
start_directory: labs/
panes:
- focus: true
- pane
- window_name: ide
layout: even-vertical
panes:
- focus: true
- pane

View File

@ -9,11 +9,15 @@ services:
entrypoint: sleep
command: infinity
volumes:
- './config/rtx:/home/coder/.config/rtx'
- './config/tmux:/home/coder/.config/tmux'
- './config/tmuxp:/home/coder/.config/tmuxp'
- './config/nvim/lua/custom:/home/coder/.config/nvim/lua/custom'
- 'home_cache:/home/coder/.cache'
- 'home_local_share:/home/coder/.local/share'
- './config/rtx:/home/coder/.config/rtx'
- './config/nvim/lua/custom:/home/coder/.config/nvim/lua/custom'
- 'home_plugins_tmux:/home/coder/.config/tmux/plugins'
volumes:
home_cache: {}
home_local_share: {}
home_plugins_tmux: {}

View File

@ -1,8 +1,8 @@
diff --git a/init.lua b/init.lua
index 5257113..85e97a5 100644
index a7667dd..6bf8654 100644
--- a/init.lua
+++ b/init.lua
@@ -219,7 +219,7 @@ require('lazy').setup({
@@ -227,7 +227,7 @@ require('lazy').setup({
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
--
-- For additional information see: https://github.com/folke/lazy.nvim#-structuring-your-plugins
@ -11,7 +11,7 @@ index 5257113..85e97a5 100644
}, {})
-- [[ Setting options ]]
@@ -229,11 +229,12 @@ require('lazy').setup({
@@ -237,11 +237,12 @@ require('lazy').setup({
-- Set highlight on search
vim.o.hlsearch = false
@ -27,7 +27,7 @@ index 5257113..85e97a5 100644
-- Sync clipboard between OS and Neovim.
-- Remove this option if you want your OS clipboard to remain independent.
@@ -263,6 +264,14 @@ vim.o.completeopt = 'menuone,noselect'
@@ -271,6 +272,14 @@ vim.o.completeopt = 'menuone,noselect'
-- NOTE: You should make sure your terminal supports this
vim.o.termguicolors = true
@ -42,40 +42,40 @@ index 5257113..85e97a5 100644
-- [[ Basic Keymaps ]]
-- Keymaps for better default experience
@@ -323,11 +332,29 @@ vim.keymap.set('n', '<leader>sr', require('telescope.builtin').resume, { desc =
-- See `:help nvim-treesitter`
require('nvim-treesitter.configs').setup {
-- Add languages to be installed here that you want installed for treesitter
- ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'tsx', 'javascript', 'typescript', 'vimdoc', 'vim' },
@@ -333,11 +342,29 @@ vim.keymap.set('n', '<leader>sr', require('telescope.builtin').resume, { desc =
vim.defer_fn(function()
require('nvim-treesitter.configs').setup {
-- Add languages to be installed here that you want installed for treesitter
- ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'tsx', 'javascript', 'typescript', 'vimdoc', 'vim', 'bash' },
-
+ ensure_installed = {
+ 'css',
+ 'dockerfile',
+ 'eex',
+ 'elixir',
+ 'erlang',
+ 'go',
+ 'heex',
+ 'html',
+ 'http',
+ 'javascript',
+ 'json',
+ 'lua',
+ 'markdown',
+ 'python',
+ 'sql',
+ 'tsx',
+ 'typescript',
+ 'vim',
+ 'vimdoc'
+ },
-- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
auto_install = false,
+ ensure_installed = {
+ 'css',
+ 'dockerfile',
+ 'eex',
+ 'elixir',
+ 'erlang',
+ 'go',
+ 'heex',
+ 'html',
+ 'http',
+ 'javascript',
+ 'json',
+ 'lua',
+ 'markdown',
+ 'python',
+ 'sql',
+ 'tsx',
+ 'typescript',
+ 'vim',
+ 'vimdoc'
+ },
-- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
auto_install = false,
-
highlight = { enable = true },
indent = { enable = true },
incremental_selection = {
@@ -456,19 +483,24 @@ require('which-key').register({
highlight = { enable = true },
indent = { enable = true },
incremental_selection = {
@@ -472,19 +499,24 @@ require('mason-lspconfig').setup()
-- If you want to override the default filetypes that your language server will attach to you can
-- define the property 'filetypes' to the map in question.
local servers = {