Major config changes

Add alacritty config, as it is my main terminal now
Change **a lot** of nvim configs
Add tmux configuration
Update zsh configs
Add .gitconfig with custom pager
Include tmux-plugin-manager as a submodule
This commit is contained in:
Arthur Khachaturov 2023-12-06 04:42:30 +03:00
parent bb8a0eaec7
commit 90ca95ad38
No known key found for this signature in database
GPG key ID: 542ADA2564CCFDDB
23 changed files with 529 additions and 51 deletions

View file

@ -0,0 +1,77 @@
window:
dimensions:
columns: 140
lines: 45
padding:
x: 2
y: 2
dynamic_padding: true
font:
normal:
family: "Mononoki Nerd Font"
size: 12.5
offset:
x: 1
y: 2
glyph_offset:
x: 0
y: 0
colors:
primary:
background: '0x1e2127'
foreground: '0xabb2bf'
bright_foreground: '0xe6efff'
normal:
black: '0x1e2127'
red: '0xe06c75'
green: '0x98c379'
yellow: '0xd19a66'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0x828791'
bright:
black: '0x5c6370'
red: '0xe06c75'
green: '0x98c379'
yellow: '0xd19a66'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0xe6efff'
dim:
black: '0x1e2127'
red: '0xe06c75'
green: '0x98c379'
yellow: '0xd19a66'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0x828791'
cursor:
style:
shape: Block
blinking: Off
live_config_reload: true
shell:
program: wsl
args:
- sh
- -c
# - '"cd ${HOME}; exec ${SHELL}"'
- '"cd ${HOME}; exec ${SHELL}"'
key_bindings:
- { key: 'Slash', mods: 'Control', chars: "\x1f"}
- { key: 'Space', mods: 'Control', chars: "\x00"}

View file

@ -0,0 +1,34 @@
{
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
"LuaSnip": { "branch": "master", "commit": "f03089854a8e15594a01562fa7192d0009a6fbe7" },
"Navigator.nvim": { "branch": "master", "commit": "91d86506ac2a039504d5205d32a1d4bc7aa57072" },
"bufferline.nvim": { "branch": "main", "commit": "1a3397556d194bb1f2cc530b07124ccc512c5501" },
"cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"fidget.nvim": { "branch": "main", "commit": "785efc604f6ffe3c3fdd2ea86262804d48863ee1" },
"friendly-snippets": { "branch": "main", "commit": "53d3df271d031c405255e99410628c26a8f0d2b0" },
"indent-blankline.nvim": { "branch": "master", "commit": "dbd90bb689ff10d21fee6792eb8928f0584b5860" },
"lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" },
"lualine.nvim": { "branch": "master", "commit": "2248ef254d0a1488a72041cfb45ca9caada6d994" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "4eb8e15e3c0757303d4c6dea64d2981fc679e990" },
"mason.nvim": { "branch": "main", "commit": "41e75af1f578e55ba050c863587cffde3556ffa6" },
"neodev.nvim": { "branch": "main", "commit": "1676d2c24186fc30005317e0306d20c639b2351b" },
"nvim-autopairs": { "branch": "master", "commit": "0f04d78619cce9a5af4f355968040f7d675854a1" },
"nvim-cmp": { "branch": "main", "commit": "0b751f6beef40fd47375eaf53d3057e0bfa317e4" },
"nvim-lastplace": { "branch": "main", "commit": "0bb6103c506315044872e0f84b1f736c4172bb20" },
"nvim-lspconfig": { "branch": "master", "commit": "694aaec65733e2d54d393abf80e526f86726c988" },
"nvim-tree.lua": { "branch": "master", "commit": "05f55c1fd6470b31627655c528245794e3cd4b2c" },
"nvim-treesitter": { "branch": "master", "commit": "0791b5ebb590a2d44e20640c52679df1fc42e8ab" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ec1c5bdb3d87ac971749fa6c7dbc2b14884f1f6a" },
"nvim-web-devicons": { "branch": "master", "commit": "5efb8bd06841f91f97c90e16de85e96d57e9c862" },
"onedark.nvim": { "branch": "master", "commit": "e7c656ac6b6460aaab817cbd0c9d5c043eda4b43" },
"plenary.nvim": { "branch": "master", "commit": "55d9fe89e33efd26f532ef20223e5f9430c8b0c0" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" },
"telescope.nvim": { "branch": "0.1.x", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
"vim-fugitive": { "branch": "master", "commit": "46eaf8918b347906789df296143117774e827616" },
"vim-rhubarb": { "branch": "master", "commit": "ee69335de176d9325267b0fd2597a22901d927b1" },
"vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" },
"vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" },
"vim-tmux": { "branch": "master", "commit": "cfe76281efc29890548cf9eedd42ad51c7a1faf0" },
"vim-wakatime": { "branch": "master", "commit": "87c6861ea81700ec4a6a27c81413cf07cb2c883c" }
}

View file

@ -15,9 +15,9 @@ end
vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree })
-- Resotre cursor on exit
vim.api.nvim_create_autocmd("VimLeave", {
pattern = "*",
callback = function()
vim.o.guicursor = "n:ver20-blinkwait700-blinkoff400-blinkon250"
end,
})
-- vim.api.nvim_create_autocmd("VimLeave", {
-- pattern = "*",
-- callback = function()
-- vim.o.guicursor = "n:ver20-blinkwait700-blinkoff400-blinkon250"
-- end,
-- })

View file

@ -1,39 +1,25 @@
local map = vim.keymap.set
-- Unbind used keys
-- Unbind keys
map('n', '<C-q>', '<NOP>')
-- Movements between splits
map('n', '<C-h>', '<C-w>h')
map('n', '<C-j>', '<C-w>j')
map('n', '<C-k>', '<C-w>k')
map('n', '<C-l>', '<C-w>l')
map('v', 'K', '<NOP>')
-- Movement between buffers
map({'n', 'v', 'i'}, '<A-h>', ':bp<CR>')
map({'n', 'v', 'i'}, '<A-l>', ':bn<CR>')
map({'n', 'v', 'i'}, '<A-u>', ':bp<CR>')
map({'n', 'v', 'i'}, '<A-i>', ':bn<CR>')
-- Remap for dealing with word wrap
map('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
map('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
map('n', 'k', 'v:count == 0 ? "gk" : "k"', { expr = true, silent = true })
map('n', 'j', 'v:count == 0 ? "gj" : "j"', { expr = true, silent = true })
-- Exit buffers/nvim with <leader>
map("n", "<leader>q", function() require('utils.close_buffer').close_buffer() end)
map("n", "<leader><C-q>", function() require('utils.close_buffer').close_buffer(true) end)
map("n", "<leader>Q", ":%bd | quit<CR>")
map("n", "<leader>w", ":write<CR>")
map('n', '<leader>q', function() require('utils.close_buffer').close_buffer() end)
map('n', '<leader><C-q>', function() require('utils.close_buffer').close_buffer(true) end)
map('n', '<leader>Q', ':%bd | quit<CR>')
map('n', '<leader>w', ':write<CR>')
-- Copy and paste from clipboard
map("n", "<leader>y", '"+yy')
map("v", "<leader>y", '"+y')
map({ "n", "v" }, "<leader>p", '"+p')
map({ "n", "v" }, "<leader>P", '"+P')
-- Remap comments
map("n", "<C-_>", require("Comment.api").toggle.linewise.current)
map("i", "<C-_>", require("Comment.api").toggle.linewise.current)
map("x", "<C-_>", function()
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes('<ESC>', true, false, true), 'nx', false)
require("Comment.api").toggle.linewise(vim.fn.visualmode())
end
)
map('n', '<leader>y', '"+yy<ESC>')
map('v', '<leader>y', '"+y<ESC>')
map({ 'n', 'v' }, '<leader>p', '"+p<ESC>')
map({ 'n', 'v' }, '<leader>P', '"+P<ESC>')

View file

@ -27,5 +27,8 @@ vim.o.timeoutlen = 300
-- Set completeopt to have a better completion experience
vim.o.completeopt = 'menuone,noselect'
-- NOTE: You should make sure your terminal supports this
-- Enable TrueColor
vim.o.termguicolors = true
vim.o.splitbelow = true
vim.o.splitright = true

View file

@ -0,0 +1,67 @@
require("cmake-tools").setup {
cmake_command = "cmake", -- this is used to specify cmake command path
cmake_regenerate_on_save = true, -- auto generate when save CMakeLists.txt
cmake_generate_options = { "-DCMAKE_EXPORT_COMPILE_COMMANDS=1" }, -- this will be passed when invoke `CMakeGenerate`
cmake_build_options = {}, -- this will be passed when invoke `CMakeBuild`
-- support macro expansion:
-- ${kit}
-- ${kitGenerator}
-- ${variant:xx}
cmake_build_directory = "cmake-build-${variant:buildType}", -- this is used to specify generate directory for cmake, allows macro expansion
cmake_soft_link_compile_commands = false, -- this will automatically make a soft link from compile commands file to project root dir
cmake_compile_commands_from_lsp = false, -- this will automatically set compile commands file location using lsp, to use it, please set `cmake_soft_link_compile_commands` to false
cmake_kits_path = nil, -- this is used to specify global cmake kits path, see CMakeKits for detailed usage
cmake_variants_message = {
short = { show = true }, -- whether to show short message
long = { show = true, max_length = 40 }, -- whether to show long message
},
cmake_dap_configuration = { -- debug settings for cmake
name = "cpp",
type = "codelldb",
request = "launch",
stopOnEntry = false,
runInTerminal = true,
console = "integratedTerminal",
},
cmake_executor = { -- executor to use
name = "quickfix", -- name of the executor
opts = {}, -- the options the executor will get, possible values depend on the executor type. See `default_opts` for possible values.
default_opts = { -- a list of default and possible values for executors
quickfix = {
show = "always", -- "always", "only_on_error"
position = "belowright", -- "bottom", "top"
size = 10,
},
overseer = {
new_task_opts = {}, -- options to pass into the `overseer.new_task` command
on_new_task = function(task) end, -- a function that gets overseer.Task when it is created, before calling `task:start`
},
terminal = {}, -- terminal executor uses the values in cmake_terminal
},
},
cmake_terminal = {
name = "terminal",
opts = {
name = "Main Terminal",
prefix_name = "[CMakeTools]: ", -- This must be included and must be unique, otherwise the terminals will not work. Do not use a simple spacebar " ", or any generic name
split_direction = "horizontal", -- "horizontal", "vertical"
split_size = 11,
-- Window handling
single_terminal_per_instance = true, -- Single viewport, multiple windows
single_terminal_per_tab = true, -- Single viewport per tab
keep_terminal_static_location = true, -- Static location of the viewport if avialable
-- Running Tasks
start_insert_in_launch_task = false, -- If you want to enter terminal with :startinsert upon using :CMakeRun
start_insert_in_other_tasks = false, -- If you want to enter terminal with :startinsert upon launching all other cmake tasks in the terminal. Generally set as false
focus_on_main_terminal = false, -- Focus on cmake terminal when cmake task is launched. Only used if executor is terminal.
focus_on_launch_terminal = false, -- Focus on cmake launch terminal when executable target in launched.
},
},
cmake_notifications = {
enabled = true, -- show cmake execution progress in nvim-notify
spinner = { "", "", "", "", "", "", "", "", "", "" }, -- icons used for progress display
refresh_rate_ms = 100, -- how often to iterate icons
},
}

View file

@ -0,0 +1,9 @@
local map = vim.keymap.set
map('n', '<C-_>', require('Comment.api').toggle.linewise.current)
map('i', '<C-_>', require('Comment.api').toggle.linewise.current)
map('x', '<C-_>', function()
vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes('<ESC>', true, false, true), 'nx', false)
require('Comment.api').toggle.linewise(vim.fn.visualmode())
end
)

View file

@ -1,6 +1,9 @@
require("config.plugins.lualine")
require("config.plugins.nvim-autopairs")
require("config.plugins.nvim-cmp")
require("config.plugins.nvim-tree")
require("config.plugins.telescope")
require("config.plugins.treesitter")
require('config.plugins.cmake-tools')
require('config.plugins.comment')
require('config.plugins.lualine')
require('config.plugins.nvim-autopairs')
require('config.plugins.nvim-cmp')
require('config.plugins.nvim-tree')
require('config.plugins.telescope')
require('config.plugins.treesitter')
require('config.plugins.navigator')

View file

@ -0,0 +1,8 @@
require('Navigator').setup()
local map = vim.keymap.set
map('n', '<A-h>', function () require("Navigator").left() end)
map('n', '<A-j>', function () require("Navigator").down() end)
map('n', '<A-k>', function () require("Navigator").up() end)
map('n', '<A-l>', function () require("Navigator").right() end)

View file

@ -1,3 +1,6 @@
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
require("nvim-tree").setup()
vim.keymap.set('n', '<C-b>', ':NvimTreeToggle<CR>')

View file

@ -1,14 +1,16 @@
return {
'numToStr/Navigator.nvim',
'tpope/vim-fugitive',
'tpope/vim-rhubarb',
'tpope/vim-sleuth',
'nvim-tree/nvim-web-devicons',
"nvim-tree/nvim-tree.lua",
'nvim-lualine/lualine.nvim',
'tpope/vim-surround',
'tmux-plugins/vim-tmux',
'nvim-lualine/lualine.nvim',
'nvim-tree/nvim-tree.lua',
'nvim-tree/nvim-web-devicons',
'Civitasv/cmake-tools.nvim',
{ 'numToStr/Comment.nvim', opts = {} },
{ 'akinsho/bufferline.nvim', config = {} },
{ 'ethanholz/nvim-lastplace', config = {} },
{ "akinsho/bufferline.nvim", config = {} },
{ 'wakatime/vim-wakatime', event = 'VeryLazy' },
}

View file

@ -0,0 +1,7 @@
-- return {
-- 'aserowy/tmux.nvim',
-- event = "VeryLazy",
-- }
return {
"numToStr/Navigator.nvim",
}

View file

@ -0,0 +1,21 @@
# Change prefix key to C-a, found in in GNU Screen
unbind-key C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# Sane splits
bind u previous-window
bind i next-window
bind n new-window -c "#{pane_current_path}"
bind k split-window -v
bind l split-window -h
# Rebind command key to ;
bind \; command-prompt
bind-key -n M-C-l send-keys C-l
# vim: ft=tmux

23
.config/tmux/plugins.conf Normal file
View file

@ -0,0 +1,23 @@
set -g @plugin 'odedlaz/tmux-onedark-theme'
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-battery'
# Battery icons
set -g @batt_icon_charge_tier8 ' '
set -g @batt_icon_charge_tier7 ' '
set -g @batt_icon_charge_tier6 ' '
set -g @batt_icon_charge_tier5 ' '
set -g @batt_icon_charge_tier4 ' '
set -g @batt_icon_charge_tier3 ' '
set -g @batt_icon_charge_tier2 ' '
set -g @batt_icon_charge_tier1 '! !'
# Change date and time format
set -g @onedark_time_format "%I:%M %p"
set -g @onedark_date_format "%D"
set -g @onedark_widgets "#{battery_icon_charge} #{battery_percentage}%"
run '~/.local/share/tmux-plugins/tpm/tpm'
# vim: ft=tmux

41
.config/tmux/tmux.conf Normal file
View file

@ -0,0 +1,41 @@
# Enable mouse
setw -g mouse on
# Enable 256 color mode and TrueColor
set -s default-terminal "tmux-256color"
set -as terminal-overrides ",xterm*:Tc"
# Get rid of nvim escape delay
set -s escape-time 0
setw -g mode-keys vi
# enable activity alerts
setw -g monitor-activity on
set -g visual-activity on
# Center the window list ? idk what this does
# set -g status-justify centre
# Start with window 1 (instead of 0)
set -g base-index 1
# Start with pane 1
setw -g pane-base-index 1
# Reload config on C-r
bind C-r source-file ~/.config/tmux/tmux.conf
setw -g aggressive-resize on
set -g history-limit 4096
set -g status-justify left
set -g status-bg default
set -g status-interval 2
# Source extra configs
source-file ~/.config/tmux/keybinds.conf
source-file ~/.config/tmux/plugins.conf
# source-file ~/.config/tmux/vim.conf

13
.config/tmux/vim.conf Normal file
View file

@ -0,0 +1,13 @@
is_vim="ps -o state= -o comm= -t '#{pane_tty}'| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
bind-key -n M-h if-shell "$is_vim" "send-keys C-h" "select-pane -L"
bind-key -n M-j if-shell "$is_vim" "send-keys C-j" "select-pane -D"
bind-key -n M-k if-shell "$is_vim" "send-keys C-k" "select-pane -U"
bind-key -n M-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
bind-key -T copy-mode-vi M-h select-pane -L
bind-key -T copy-mode-vi M-j select-pane -D
bind-key -T copy-mode-vi M-k select-pane -U
bind-key -T copy-mode-vi M-l select-pane -R
# vim: ft=tmux

View file

@ -1,5 +1,8 @@
# unused for now
# export PATH="${$(find ~/.local/bin -type d -printf %p:)%%:}:$PATH"
export PATH="${$(find ~/.local/bin -type d -printf %p:)%%:}:$PATH"
# default apps
export EDITOR="/usr/bin/nvim"
export GPG_TTY=$(tty)
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
export MANROFFOPT="-c"

View file

@ -37,9 +37,9 @@ bindkey "^[f" forward-char
# completions
autoload -Uz compinit
if [[ -n ${ZDOTDIR}/.zcompdump(#qN.mh+24) ]]; then
compinit;
compinit;
else
compinit -C;
compinit -C;
fi;
zstyle ':completion:*' menu select
@ -50,16 +50,25 @@ zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}:ma=48;5;8;38;5;15"
autoload -U colors && colors
PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b "
# ls aliases
# command options
alias ls="lsd --color=auto"
alias l="ls -lh"
alias la="ls -lah"
alias ll="ls -lh"
alias tree="ls --tree"
alias tar="tar --exclude-vcs-ignores --exclude-vcs"
# set bat as help pager
alias -g -- -h='-h 2>&1 | bat --language=help --style=plain'
alias -g -- --help='--help 2>&1 | bat --language=help --style=plain'
# useful cd aliases
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../../"
# aliases
alias dt="git --git-dir=$HOME/.dotfiles/git --work-tree=$HOME"
alias rz="exec zsh"
alias ..="cd .."
alias ...="cd ..."
alias reload_completion="autoload -Uz compinit && compinit"
alias gitignore="cp ${HOME}/.local/gitignore-template ./.gitignore"

18
.gitconfig Normal file
View file

@ -0,0 +1,18 @@
[user]
email = me@wzray.ru
name = Arthur Khachaturov
[commit]
gpgsign = true
[init]
defaultBranch = main
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true
light = false
[merge]
conflictstyle = diff3
[diff]
colorMoved = default

8
.local/bin/scripts/gd Executable file
View file

@ -0,0 +1,8 @@
#!/bin/bash
read -p "Date: " date
export GIT_AUTHOR_DATE="${date}"
export GIT_COMMITTER_DATE="${date}"
git $@

View file

@ -0,0 +1,139 @@
### Languages
# C++
*.d
*.slo
*.lo
*.o
*.obj
*.gch
*.pch
*.so
*.dylib
*.dll
*.mod
*.smod
*.lai
*.la
*.a
*.lib
*.exe
*.out
*.app
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
*.manifest
*.spec
pip-log.txt
pip-delete-this-directory.txt
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
*.mo
*.pot
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
instance/
.webassets-cache
.scrapy
docs/_build/
.pybuilder/
target/
.ipynb_checkpoints
profile_default/
ipython_config.py
.pdm.toml
__pypackages__/
celerybeat-schedule
celerybeat.pid
*.sage.py
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
.spyderproject
.spyproject
.ropeproject
/site
.mypy_cache/
.dmypy.json
dmypy.json
.pyre/
.pytype/
cython_debug/
poetry.toml
.ruff_cache/
pyrightconfig.json
### IDE
# JetBrains
.idea
*.iws
.idea_modules/
atlassian-ide-plugin.xml
.idea/replstate.xml
.idea/sonarlint/
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
.idea/httpRequests
.idea/caches/build_file_checksums.ser
# VSCode
.vscode/*
.history/
*.vsix
.ionide
# CMake
cmake-build-*/
.cache/
CMakeLists.txt.user
CMakeCache.txt
CMakeFiles
CMakeScripts
Testing
Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps
*-prefix/

@ -0,0 +1 @@
Subproject commit 99469c4a9b1ccf77fade25842dc7bafbc8ce9946

3
.zshenv Normal file
View file

@ -0,0 +1,3 @@
export ZDOTDIR="${HOME}/.config/zsh"
source "${ZDOTDIR}/.zshenv"