You've already forked dotfiles
Merge branch 'main' into development
This commit is contained in:
11
README.md
11
README.md
@@ -7,9 +7,9 @@ Included are configs for:
|
|||||||
- tmux
|
- tmux
|
||||||
- wezterm
|
- wezterm
|
||||||
- zsh
|
- zsh
|
||||||
|
- gitconfig
|
||||||
|
|
||||||
Planned configs are:
|
Planned configs are:
|
||||||
- gitconfig
|
|
||||||
- newsboat
|
- newsboat
|
||||||
|
|
||||||
## Deployment
|
## Deployment
|
||||||
@@ -97,3 +97,12 @@ The config adds the following settings outside of oh-my-zsh:
|
|||||||
- `zsh_exports`: Exported variables for the system
|
- `zsh_exports`: Exported variables for the system
|
||||||
- `zsh_functions`: Custom functions beyond simple aliasing can fulfill but not requiring a script
|
- `zsh_functions`: Custom functions beyond simple aliasing can fulfill but not requiring a script
|
||||||
- `zsh_local`: Local ZSH settings for a specific system such as any environment specific bash required to set up a system's shell or direct ZSH settings
|
- `zsh_local`: Local ZSH settings for a specific system such as any environment specific bash required to set up a system's shell or direct ZSH settings
|
||||||
|
|
||||||
|
### Gitconfig
|
||||||
|
|
||||||
|
The gitconfig, centered on nvim integration, gives contains a selection of useful aliases and sets some basic defaults.
|
||||||
|
|
||||||
|
It also includes a local override config hosted at `~/.config/git/local` for adding username and email as well as any other options needed for a local machine.
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> For signing support put the `gpgsign` option in the local gitconfig
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ declare -A configs=(
|
|||||||
["nvim/snippets"]="$HOME/.config/nvim/"
|
["nvim/snippets"]="$HOME/.config/nvim/"
|
||||||
["tmux.conf"]="$HOME/.tmux.conf"
|
["tmux.conf"]="$HOME/.tmux.conf"
|
||||||
["wezterm/wezterm.lua"]="$HOME/.config/wezterm/wezterm.lua"
|
["wezterm/wezterm.lua"]="$HOME/.config/wezterm/wezterm.lua"
|
||||||
|
["gitconfig"]="$HOME/.gitconfig"
|
||||||
)
|
)
|
||||||
|
|
||||||
declare -a config_directories=(
|
declare -a config_directories=(
|
||||||
|
|||||||
43
gitconfig
Normal file
43
gitconfig
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
[push]
|
||||||
|
default = simple
|
||||||
|
|
||||||
|
[core]
|
||||||
|
autocrlf = input
|
||||||
|
|
||||||
|
[filter "lfs"]
|
||||||
|
clean = git-lfs clean -- %f
|
||||||
|
process = git-lfs filter-process
|
||||||
|
required = true
|
||||||
|
smudge = git-lfs smudge -- %f
|
||||||
|
|
||||||
|
[pull]
|
||||||
|
rebase = false
|
||||||
|
|
||||||
|
[init]
|
||||||
|
defaultBranch = main
|
||||||
|
|
||||||
|
[alias]
|
||||||
|
c = commit
|
||||||
|
d = diff
|
||||||
|
dl = diff HEAD^ HEAD
|
||||||
|
ds = diff --staged
|
||||||
|
l = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
|
||||||
|
s = status
|
||||||
|
branches = branch -avv
|
||||||
|
staash = stash --all
|
||||||
|
supdate = submodule update --remote
|
||||||
|
srupdate = submodule update --recursive
|
||||||
|
|
||||||
|
[merge]
|
||||||
|
tool = nvimdiff
|
||||||
|
|
||||||
|
[core]
|
||||||
|
editor = nvim
|
||||||
|
|
||||||
|
[rerere]
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
[include]
|
||||||
|
path = ~/.config/git/local
|
||||||
|
|
||||||
|
# vim: ft=gitconfig
|
||||||
1
nvim/after/ftplugin/r.lua
Normal file
1
nvim/after/ftplugin/r.lua
Normal file
@@ -0,0 +1 @@
|
|||||||
|
vim.bo.shiftwidth=2
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
return {
|
|
||||||
cmd = {
|
|
||||||
"arduino-language-server",
|
|
||||||
"-clangd", "/usr/lib/llvm/21/bin/clangd",
|
|
||||||
"-cli", "/usr/bin/arduino-cli",
|
|
||||||
"-cli-config", "~/.arduino15/arduino-cli.yaml",
|
|
||||||
"-fqbn", "esp32:esp32:adafruit_qtpy_esp32s3_nopsram"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,3 +1,10 @@
|
|||||||
return {
|
return {
|
||||||
filetypes = { 'zsh', 'bash', 'sh' }
|
cmd = { 'bash-language-server', 'start' },
|
||||||
|
settings = {
|
||||||
|
bashIde = {
|
||||||
|
globPattern = vim.env.GLOB_PATTERN or '*@(.sh|.inc|.bash|.command)',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
filetypes = { 'zsh', 'bash', 'sh' },
|
||||||
|
root_markers = { '.git' },
|
||||||
}
|
}
|
||||||
|
|||||||
91
nvim/after/lsp/clangd.lua
Normal file
91
nvim/after/lsp/clangd.lua
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
-- https://clangd.llvm.org/extensions.html#switch-between-sourceheader
|
||||||
|
local function switch_source_header(bufnr, client)
|
||||||
|
local method_name = 'textDocument/switchSourceHeader'
|
||||||
|
---@diagnostic disable-next-line:param-type-mismatch
|
||||||
|
if not client or not client:supports_method(method_name) then
|
||||||
|
return vim.notify(('method %s is not supported by any servers active on the current buffer'):format(method_name))
|
||||||
|
end
|
||||||
|
local params = vim.lsp.util.make_text_document_params(bufnr)
|
||||||
|
---@diagnostic disable-next-line:param-type-mismatch
|
||||||
|
client:request(method_name, params, function(err, result)
|
||||||
|
if err then
|
||||||
|
error(tostring(err))
|
||||||
|
end
|
||||||
|
if not result then
|
||||||
|
vim.notify('corresponding file cannot be determined')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
vim.cmd.edit(vim.uri_to_fname(result))
|
||||||
|
end, bufnr)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function symbol_info(bufnr, client)
|
||||||
|
local method_name = 'textDocument/symbolInfo'
|
||||||
|
---@diagnostic disable-next-line:param-type-mismatch
|
||||||
|
if not client or not client:supports_method(method_name) then
|
||||||
|
return vim.notify('Clangd client not found', vim.log.levels.ERROR)
|
||||||
|
end
|
||||||
|
local win = vim.api.nvim_get_current_win()
|
||||||
|
local params = vim.lsp.util.make_position_params(win, client.offset_encoding)
|
||||||
|
---@diagnostic disable-next-line:param-type-mismatch
|
||||||
|
client:request(method_name, params, function(err, res)
|
||||||
|
if err or #res == 0 then
|
||||||
|
-- Clangd always returns an error, there is no reason to parse it
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local container = string.format('container: %s', res[1].containerName) ---@type string
|
||||||
|
local name = string.format('name: %s', res[1].name) ---@type string
|
||||||
|
vim.lsp.util.open_floating_preview({ name, container }, '', {
|
||||||
|
height = 2,
|
||||||
|
width = math.max(string.len(name), string.len(container)),
|
||||||
|
focusable = false,
|
||||||
|
focus = false,
|
||||||
|
title = 'Symbol Info',
|
||||||
|
})
|
||||||
|
end, bufnr)
|
||||||
|
end
|
||||||
|
|
||||||
|
---@class ClangdInitializeResult: lsp.InitializeResult
|
||||||
|
---@field offsetEncoding? string
|
||||||
|
|
||||||
|
---@type vim.lsp.Config
|
||||||
|
return {
|
||||||
|
cmd = { 'clangd' },
|
||||||
|
filetypes = { 'c', 'c.doxygen', 'cpp', 'cpp.doxygen', 'objc', 'objcpp', 'cuda' },
|
||||||
|
root_markers = {
|
||||||
|
'.clangd',
|
||||||
|
'.clang-tidy',
|
||||||
|
'.clang-format',
|
||||||
|
'compile_commands.json',
|
||||||
|
'compile_flags.txt',
|
||||||
|
'configure.ac', -- AutoTools
|
||||||
|
'.git',
|
||||||
|
},
|
||||||
|
get_language_id = function(_, ftype)
|
||||||
|
local t = { objc = 'objective-c', objcpp = 'objective-cpp', cuda = 'cuda-cpp' }
|
||||||
|
return t[ftype] or ftype
|
||||||
|
end,
|
||||||
|
capabilities = {
|
||||||
|
textDocument = {
|
||||||
|
completion = {
|
||||||
|
editsNearCursor = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
offsetEncoding = { 'utf-8', 'utf-16' },
|
||||||
|
},
|
||||||
|
---@param init_result ClangdInitializeResult
|
||||||
|
on_init = function(client, init_result)
|
||||||
|
if init_result.offsetEncoding then
|
||||||
|
client.offset_encoding = init_result.offsetEncoding
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
on_attach = function(client, bufnr)
|
||||||
|
vim.api.nvim_buf_create_user_command(bufnr, 'LspClangdSwitchSourceHeader', function()
|
||||||
|
switch_source_header(bufnr, client)
|
||||||
|
end, { desc = 'Switch between source/header' })
|
||||||
|
|
||||||
|
vim.api.nvim_buf_create_user_command(bufnr, 'LspClangdShowSymbolInfo', function()
|
||||||
|
symbol_info(bufnr, client)
|
||||||
|
end, { desc = 'Show symbol info' })
|
||||||
|
end,
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
return {
|
return {
|
||||||
|
cmd = vim.lsp.rpc.connect('127.0.0.1', 6005),
|
||||||
filetypes = {
|
filetypes = {
|
||||||
'gd', 'gdscript', 'gdscript3'
|
'gd', 'gdscript', 'gdscript3'
|
||||||
},
|
},
|
||||||
root_markers = { 'project.godot', '.git' },
|
root_markers = { 'project.godot', '.git' },
|
||||||
cmd = vim.lsp.rpc.connect('127.0.0.1', 6005)
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
return {
|
|
||||||
template_extension = { 'html', 'jinja', 'j2', 'tera' }
|
|
||||||
}
|
|
||||||
15
nvim/after/lsp/jinja_lsp.lua
Normal file
15
nvim/after/lsp/jinja_lsp.lua
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
vim.filetype.add {
|
||||||
|
extension = {
|
||||||
|
-- tera = 'jinja',
|
||||||
|
jinja = 'jinja',
|
||||||
|
jinja2 = 'jinja',
|
||||||
|
j2 = 'jinja',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
name = 'jinja_lsp',
|
||||||
|
cmd = { 'jinja-lsp' },
|
||||||
|
filetypes = { 'jinja', 'tera', 'html' },
|
||||||
|
-- template_extension = { 'html', 'jinja', 'j2', 'tera' },
|
||||||
|
}
|
||||||
@@ -1,19 +1,28 @@
|
|||||||
return {
|
return {
|
||||||
|
cmd = { 'pylsp' },
|
||||||
|
filetypes = { 'python' },
|
||||||
|
root_markers = {
|
||||||
|
'pyproject.toml',
|
||||||
|
'setup.py',
|
||||||
|
'setup.cfg',
|
||||||
|
'requirements.txt',
|
||||||
|
'Pipfile',
|
||||||
|
'.git',
|
||||||
|
},
|
||||||
settings = {
|
settings = {
|
||||||
pylsp = {
|
pylsp = {
|
||||||
plugins = {
|
plugins = {
|
||||||
pycodestyle = {
|
pycodestyle = {
|
||||||
enabled = false,
|
enabled = true,
|
||||||
ignore = {
|
ignore = {
|
||||||
'E501'
|
'E501' -- line-too-long
|
||||||
},
|
},
|
||||||
maxLineLength = 120,
|
maxLineLength = 120,
|
||||||
},
|
},
|
||||||
pylint = {
|
pylint = {
|
||||||
enabled = true,
|
enabled = true,
|
||||||
args = {
|
args = {
|
||||||
'--disable=line-too-long',
|
'--disable=line-too-long,import-error',
|
||||||
'--disable=missing-function-docstring'
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,22 +1,43 @@
|
|||||||
|
-- Autocommands for handling large files and switching between large file buffers and others
|
||||||
|
local largefile_group = vim.api.nvim_create_augroup('largefile', { clear = true })
|
||||||
|
local max_filesize = 4 * (1024 * 1024) -- 4 MB
|
||||||
|
|
||||||
|
local old_eventignore = false
|
||||||
|
|
||||||
-- Disables syntax, treesitter and folding on larger files
|
-- Disables syntax, treesitter and folding on larger files
|
||||||
vim.api.nvim_create_autocmd({ 'BufReadPre' }, {
|
vim.api.nvim_create_autocmd({ 'BufReadPre' }, {
|
||||||
pattern = '*',
|
group = largefile_group,
|
||||||
group = vim.api.nvim_create_augroup('largefile', { clear = true }),
|
callback = function(ev)
|
||||||
callback = function(args)
|
if ev.file then
|
||||||
local max_filesize_MiB = 1
|
local status, size = pcall(function() return vim.loop.fs_stat(ev.file).size end)
|
||||||
|
if status and size > max_filesize then
|
||||||
|
old_eventignore = vim.o.eventignore
|
||||||
|
vim.o.eventignore = 'FileType' -- Reduce the calls for filetype specific plugins or syntax highlighting
|
||||||
|
|
||||||
local _, stats = pcall(function()
|
vim.b[ev.buf].is_large_file = true
|
||||||
return vim.loop.fs_stat(vim.api.nvim_buf_get_name(args.buf))
|
vim.bo['bufhidden'] = 'unload'
|
||||||
end)
|
vim.bo['buftype'] = 'nowrite'
|
||||||
|
vim.bo['swapfile'] = false
|
||||||
local file_size = math.floor(0.5 + (stats.size / (1024 * 1024)))
|
vim.bo['undofile'] = false
|
||||||
|
vim.bo['undolevels'] = -1
|
||||||
if file_size > max_filesize_MiB then
|
end
|
||||||
print(string.format('File detected above %sMiB. Disabling syntax, treesitter, and folding.', max_filesize_MiB))
|
|
||||||
vim.api.nvim_command('set foldmethod=manual')
|
|
||||||
vim.api.nvim_command('set noswapfile')
|
|
||||||
vim.api.nvim_command('set noundofile')
|
|
||||||
vim.api.nvim_command('set noloadplugins')
|
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ 'BufWinEnter' }, {
|
||||||
|
group = largefile_group,
|
||||||
|
callback = function(ev)
|
||||||
|
if old_eventignore ~= false then
|
||||||
|
vim.o.eventignore = old_eventignore -- Restore the old setting
|
||||||
|
old_eventignore = false
|
||||||
|
end
|
||||||
|
if vim.b[ev.buf].is_large_file then
|
||||||
|
vim.wo.wrap = false
|
||||||
|
else
|
||||||
|
vim.wo.wrap = vim.o.wrap -- Restore to default setting
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
-- End large file handling
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ end, { nargs = '*' })
|
|||||||
vim.api.nvim_create_user_command('TreeSitterInstall', function(opts)
|
vim.api.nvim_create_user_command('TreeSitterInstall', function(opts)
|
||||||
for index, value in ipairs(opts.fargs) do
|
for index, value in ipairs(opts.fargs) do
|
||||||
if index > 0 then
|
if index > 0 then
|
||||||
local result = vim.system({ 'luarocks', 'install', 'tree-sitter-' .. value }, { text = true }):wait()
|
local result = vim.system({ 'luarocks', '--local', '--lua-version', '5.1', 'install', 'tree-sitter-' .. value }, { text = true }):wait()
|
||||||
|
|
||||||
if result.code == 0 then
|
if result.code == 0 then
|
||||||
print('Completed install of tree-sitter-' .. value)
|
print('Completed install of tree-sitter-' .. value)
|
||||||
|
|||||||
@@ -66,3 +66,10 @@ vim.keymap.set('n', '<leader>eo', ':Lexplore<CR>', options)
|
|||||||
|
|
||||||
-- Allow for leaving Terminal mode using the escape key instead of the odd default
|
-- Allow for leaving Terminal mode using the escape key instead of the odd default
|
||||||
vim.keymap.set('t', '<Esc>', '<C-\\><C-n>')
|
vim.keymap.set('t', '<Esc>', '<C-\\><C-n>')
|
||||||
|
|
||||||
|
local sc = require('statuscolumn')
|
||||||
|
vim.keymap.set('n', '<leader>q', function ()
|
||||||
|
print('woot')
|
||||||
|
sc.show_both_nums = not sc.show_both_nums
|
||||||
|
vim.opt.statuscolumn = "%!v:lua.require('statuscolumn').statusColumn()"
|
||||||
|
end)
|
||||||
|
|||||||
@@ -14,11 +14,10 @@ vim.schedule(function()
|
|||||||
require('plugins.telescope') -- Floating window fuzzy searching different sources
|
require('plugins.telescope') -- Floating window fuzzy searching different sources
|
||||||
require('plugins.telekasten') -- Note taking plugin
|
require('plugins.telekasten') -- Note taking plugin
|
||||||
require('plugins.mason') -- LSP and DAP manager
|
require('plugins.mason') -- LSP and DAP manager
|
||||||
-- require('plugins.twilight') -- Focus mode, dim lines around the cursor's location
|
|
||||||
require('plugins.render-markdown') -- Render markdown directly in neovim
|
require('plugins.render-markdown') -- Render markdown directly in neovim
|
||||||
|
|
||||||
vim.pack.add({
|
vim.pack.add({
|
||||||
'https://github.com/windwp/nvim-autopairs', -- Autocomplete symbol pairs when typing
|
'https://github.com/windwp/nvim-autopairs', -- Autocomplete symbol pairs when typing TODO: disabled for now, using snippets instead. remove if that feels better
|
||||||
'https://github.com/tpope/vim-surround', -- Change surrounding characters (doesn't need setup called)
|
'https://github.com/tpope/vim-surround', -- Change surrounding characters (doesn't need setup called)
|
||||||
'https://github.com/tpope/vim-fugitive', -- _The_ Git integration plugin people have been using forever
|
'https://github.com/tpope/vim-fugitive', -- _The_ Git integration plugin people have been using forever
|
||||||
'https://github.com/habamax/vim-godot' -- Godot specific bindings and debug
|
'https://github.com/habamax/vim-godot' -- Godot specific bindings and debug
|
||||||
@@ -30,5 +29,4 @@ vim.schedule(function()
|
|||||||
|
|
||||||
-- Experimental
|
-- Experimental
|
||||||
-- require('plugins.note_taking') -- In house note taking plugin (TODO: rename once the plugin name is solidified)
|
-- require('plugins.note_taking') -- In house note taking plugin (TODO: rename once the plugin name is solidified)
|
||||||
-- require('plugins.nvim-lint') -- Linter loader
|
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- Treesitter
|
-- Treesitter
|
||||||
local rocks_path = os.getenv('HOME') .. "/.luarocks/lib/luarocks/rocks-5.1"
|
local rocks_path = os.getenv('HOME') .. "/.luarocks/lib/luarocks/rocks-5.1"
|
||||||
|
|
||||||
-- Pick up the installed
|
-- Pick up the installed parsers in the install dir
|
||||||
for _, parser_dir in ipairs(vim.fn.glob(rocks_path .. '/tree-sitter-*/*/', true, true)) do
|
for _, parser_dir in ipairs(vim.fn.glob(rocks_path .. '/tree-sitter-*/*/', true, true)) do
|
||||||
vim.opt.runtimepath:prepend(parser_dir)
|
vim.opt.runtimepath:prepend(parser_dir)
|
||||||
end
|
end
|
||||||
@@ -9,7 +9,6 @@ end
|
|||||||
-- Start treesitter parsing on the current buffer
|
-- Start treesitter parsing on the current buffer
|
||||||
vim.api.nvim_create_autocmd("FileType", {
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
callback = function(ev)
|
callback = function(ev)
|
||||||
-- Use pcall to prevent blocking errors
|
|
||||||
pcall(vim.treesitter.start, ev.buf)
|
pcall(vim.treesitter.start, ev.buf)
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
@@ -53,12 +52,11 @@ vim.api.nvim_create_autocmd('LspAttach', {
|
|||||||
-- end,
|
-- end,
|
||||||
-- })
|
-- })
|
||||||
|
|
||||||
-- Keyboard Mappings
|
|
||||||
local bufnr = args.buf
|
local bufnr = args.buf
|
||||||
|
|
||||||
local bufopts = { noremap = true, silent = true, buffer = bufnr }
|
local bufopts = { noremap = true, silent = true, buffer = bufnr }
|
||||||
vim.keymap.set('n', '<C-[>', vim.diagnostic.goto_prev, bufopts)
|
|
||||||
vim.keymap.set('n', '<C-]>', vim.diagnostic.goto_next, bufopts)
|
vim.keymap.set('n', '<C-[>', function() vim.diagnostic.jump({ count = -1, float = true }) end, bufopts)
|
||||||
|
vim.keymap.set('n', '<C-]>', function() vim.diagnostic.jump({ count = 1, float = true }) end, bufopts)
|
||||||
vim.keymap.set('n', 'ga', vim.lsp.buf.code_action, bufopts)
|
vim.keymap.set('n', 'ga', vim.lsp.buf.code_action, bufopts)
|
||||||
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
|
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
|
||||||
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
|
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
|
||||||
@@ -74,5 +72,14 @@ vim.api.nvim_create_autocmd('LspAttach', {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Enable LSP engines
|
-- Enable LSP engines
|
||||||
-- vim.lsp.enable('clangd')
|
local enabled_lsps = {
|
||||||
vim.lsp.enable('gdscript')
|
'clangd',
|
||||||
|
'gdscript',
|
||||||
|
'jinja_lsp',
|
||||||
|
'pylsp',
|
||||||
|
'r_language_server',
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, lsp in pairs(enabled_lsps) do
|
||||||
|
vim.lsp.enable(lsp)
|
||||||
|
end
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ local function get_schema()
|
|||||||
end
|
end
|
||||||
|
|
||||||
vim.pack.add({
|
vim.pack.add({
|
||||||
-- 'https://github.com/nvim-tree/nvim-web-devicons',
|
|
||||||
'https://github.com/nvim-lualine/lualine.nvim'
|
'https://github.com/nvim-lualine/lualine.nvim'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
vim.pack.add({
|
vim.pack.add({
|
||||||
-- 'https://github.com/saadparwaiz1/cmp_luasnip',
|
'https://github.com/saadparwaiz1/cmp_luasnip',
|
||||||
'https://github.com/rafamadriz/friendly-snippets',
|
'https://github.com/rafamadriz/friendly-snippets',
|
||||||
'https://github.com/L3MON4D3/LuaSnip'
|
'https://github.com/L3MON4D3/LuaSnip'
|
||||||
})
|
})
|
||||||
@@ -18,7 +18,8 @@ local function luasnip_dependency_update()
|
|||||||
if out.code == 0 then
|
if out.code == 0 then
|
||||||
vim.notify('LuaSnip jsregexp built successfully!', vim.log.levels.INFO)
|
vim.notify('LuaSnip jsregexp built successfully!', vim.log.levels.INFO)
|
||||||
else
|
else
|
||||||
vim.notify('Failed to build LuaSnip jsregexp:\n' .. (out.stderr or out.stdout or ''), vim.log.levels.ERROR)
|
vim.notify('Failed to build LuaSnip jsregexp:\n' .. (out.stderr or out.stdout or ''),
|
||||||
|
vim.log.levels.ERROR)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
@@ -42,6 +43,6 @@ require('luasnip.loaders.from_vscode').lazy_load()
|
|||||||
require('luasnip.loaders.from_lua').lazy_load({ paths = "./snippets" })
|
require('luasnip.loaders.from_lua').lazy_load({ paths = "./snippets" })
|
||||||
|
|
||||||
-- TODO: Figure out keymappings that make sense
|
-- TODO: Figure out keymappings that make sense
|
||||||
vim.keymap.set({ 'i' }, '<C-k>', function() require('luasnip').expand() end, { silent = true })
|
vim.keymap.set({ 'i' }, '<C-K>', function() require('luasnip').expand() end, { silent = true })
|
||||||
vim.keymap.set({ 'i', 's' }, '<C-l>', function() require('luasnip').jump(1) end, { silent = true })
|
vim.keymap.set({ 'i', 's' }, '<C-L>', function() require('luasnip').jump(1) end, { silent = true })
|
||||||
vim.keymap.set({ 'i', 's' }, '<C-j>', function() require('luasnip').jump(-1) end, { silent = true })
|
vim.keymap.set({ 'i', 's' }, '<C-H>', function() require('luasnip').jump(-1) end, { silent = true })
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ require('mason-lspconfig').setup {
|
|||||||
'marksman', -- markdown
|
'marksman', -- markdown
|
||||||
'pylsp', -- Python
|
'pylsp', -- Python
|
||||||
'rust_analyzer', -- Rust
|
'rust_analyzer', -- Rust
|
||||||
'ts_ls', -- Typscript
|
|
||||||
'yamlls', -- YAML
|
'yamlls', -- YAML
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
vim.pack.add({
|
vim.pack.add({
|
||||||
'https://github.com/kevinhwang91/nvim-bqf',
|
-- 'https://github.com/kevinhwang91/nvim-bqf',
|
||||||
'https://github.com/nvim-telescope/telescope-file-browser.nvim',
|
|
||||||
'https://github.com/nvim-lua/plenary.nvim',
|
'https://github.com/nvim-lua/plenary.nvim',
|
||||||
'https://github.com/nvim-telescope/telescope.nvim',
|
'https://github.com/nvim-telescope/telescope.nvim',
|
||||||
})
|
})
|
||||||
@@ -23,9 +22,7 @@ require('telescope').setup {
|
|||||||
layout_config = { prompt_position = 'bottom' },
|
layout_config = { prompt_position = 'bottom' },
|
||||||
-- layout_strategy = 'vertical',
|
-- layout_strategy = 'vertical',
|
||||||
mappings = {
|
mappings = {
|
||||||
i = {
|
i = { ['<ESC>'] = require('telescope.actions').close, },
|
||||||
['<ESC>'] = require('telescope.actions').close,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
prompt_prefix = ' ',
|
prompt_prefix = ' ',
|
||||||
results_title = false,
|
results_title = false,
|
||||||
@@ -35,7 +32,6 @@ require('telescope').setup {
|
|||||||
},
|
},
|
||||||
pickers = {
|
pickers = {
|
||||||
diagnostics = {
|
diagnostics = {
|
||||||
-- theme = 'ivy',
|
|
||||||
initial_mode = 'normal',
|
initial_mode = 'normal',
|
||||||
layout_config = {
|
layout_config = {
|
||||||
preview_cutoff = 9999,
|
preview_cutoff = 9999,
|
||||||
@@ -46,18 +42,12 @@ require('telescope').setup {
|
|||||||
|
|
||||||
local builtin = require('telescope.builtin')
|
local builtin = require('telescope.builtin')
|
||||||
|
|
||||||
vim.keymap.set('n', ';f', function()
|
|
||||||
builtin.find_files({
|
|
||||||
no_ignore = false,
|
|
||||||
hidden = true,
|
|
||||||
})
|
|
||||||
end)
|
|
||||||
|
|
||||||
vim.keymap.set('n', ';r', function() builtin.live_grep() end)
|
|
||||||
vim.keymap.set('n', ';b', function() builtin.buffers() end)
|
|
||||||
vim.keymap.set('n', ';h', function() builtin.help_tags() end)
|
|
||||||
vim.keymap.set('n', ';;', function() builtin.resume() end)
|
vim.keymap.set('n', ';;', function() builtin.resume() end)
|
||||||
|
vim.keymap.set('n', ';b', function() builtin.buffers() end)
|
||||||
vim.keymap.set('n', ';d', function() builtin.diagnostics() end)
|
vim.keymap.set('n', ';d', function() builtin.diagnostics() end)
|
||||||
vim.keymap.set('n', ';t', function() builtin.treesitter() end)
|
vim.keymap.set('n', ';f', function() builtin.find_files({ no_ignore = false, hidden = true }) end)
|
||||||
|
vim.keymap.set('n', ';h', function() builtin.help_tags() end)
|
||||||
|
vim.keymap.set('n', ';r', function() builtin.live_grep() end)
|
||||||
vim.keymap.set('n', ';s', function() builtin.lsp_document_symbols() end)
|
vim.keymap.set('n', ';s', function() builtin.lsp_document_symbols() end)
|
||||||
|
vim.keymap.set('n', ';t', function() builtin.treesitter() end)
|
||||||
vim.keymap.set('n', ';w', function() builtin.lsp_dynamic_workspace_symbols() end)
|
vim.keymap.set('n', ';w', function() builtin.lsp_dynamic_workspace_symbols() end)
|
||||||
|
|||||||
@@ -1,47 +1,46 @@
|
|||||||
-- Experimental
|
-- Experimental
|
||||||
-- vim.o.autocomplete = true
|
-- vim.o.autocomplete = true
|
||||||
|
|
||||||
vim.opt.background = 'dark' -- Force a dark background for the colorscheme
|
vim.opt.background = 'dark' -- Force a dark background for the colorscheme
|
||||||
vim.opt.clipboard = 'unnamed,unnamedplus' -- Use both the "*" and "+" registers for yanks and deletes (puts things in the system clipboard)
|
vim.opt.clipboard = 'unnamed,unnamedplus' -- Use both the "*" and "+" registers for yanks and deletes (puts things in the system clipboard)
|
||||||
vim.opt.completeopt = 'fuzzy,menuone,noinsert,popup' -- Change how the completion menu is interacted with and displays
|
vim.opt.completeopt = 'fuzzy,menuone,noinsert,popup' -- Change how the completion menu is interacted with and displays
|
||||||
vim.opt.cursorcolumn = true -- Highlight the column the cursor is on
|
vim.opt.cursorcolumn = true -- Highlight the column the cursor is on
|
||||||
vim.opt.cursorline = true -- Highlight the line the cursor is on.
|
vim.opt.cursorline = true -- Highlight the line the cursor is on.
|
||||||
vim.opt.expandtab = true -- Expand tabs into spaces
|
vim.opt.expandtab = true -- Expand tabs into spaces
|
||||||
vim.opt.fileformat = 'unix' -- Explicitly state that files should use the unix style EOL characters.
|
vim.opt.fileformat = 'unix' -- Explicitly state that files should use the unix style EOL characters.
|
||||||
-- vim.opt.fillchars = 'fold: ' -- Sets the character that fills in a fold line (removes the dots)
|
vim.opt.fillchars = 'fold: ' -- Sets the character that fills in a fold line (removes the dots)
|
||||||
vim.opt.foldcolumn = '0' -- Disables the foldcolumn
|
vim.opt.foldcolumn = '0' -- Disables the foldcolumn
|
||||||
vim.opt.foldexpr = 'v:lua.vim.treesitter.foldexpr()' -- Uses Treesitter to determine where code folding should occur
|
vim.opt.foldexpr = 'v:lua.vim.treesitter.foldexpr()' -- Uses Treesitter to determine where code folding should occur
|
||||||
vim.opt.foldlevel = 10 -- Sets the initial level at which folds will be closed
|
vim.opt.foldlevelstart = 4 -- Sets the initial fold level
|
||||||
vim.opt.foldlevelstart = 4 -- Sets the initial fold level
|
vim.opt.foldmethod = 'expr' -- Attempt to use the syntax of a file to set folds.
|
||||||
vim.opt.foldmethod = 'expr' -- Attempt to use the syntax of a file to set folds.
|
vim.opt.foldnestmax = 4 -- Maximum level of fold nesting
|
||||||
vim.opt.foldnestmax = 4 -- Maximum level of fold nesting
|
vim.opt.formatoptions = 'cqrto' -- Allow auto insertion of comment lines when using o or O on a comment.
|
||||||
vim.opt.formatoptions = 'cqrto' -- Allow auto insertion of comment lines when using o or O on a comment.
|
vim.opt.ignorecase = true -- Case-insensitive searching
|
||||||
vim.opt.ignorecase = true -- Case-insensitive searching
|
vim.opt.list = true -- Show the listchars
|
||||||
vim.opt.list = true -- Show the listchars
|
vim.opt.listchars = 'tab:|·,trail:¬,extends:»,precedes:«,nbsp:+' -- Characters to display when showing whitespace
|
||||||
vim.opt.listchars = 'tab:|·,trail:¬,extends:»,precedes:«,nbsp:+' -- Characters to display when showing whitespace
|
vim.opt.mouse = 'a' -- Enable mouse mode
|
||||||
vim.opt.mouse = 'a' -- Enable mouse mode
|
vim.opt.number = true -- Show the line number in the gutter.
|
||||||
vim.opt.number = true -- Show the line number in the gutter.
|
vim.opt.pumheight = 15 -- Maximum height of the auto complete floating window
|
||||||
vim.opt.pumheight = 15 -- Maximum height of the auto complete floating window
|
vim.opt.relativenumber = true -- Show the relative line numbers
|
||||||
vim.opt.relativenumber = true -- Relative line number
|
vim.opt.sidescrolloff = 8 -- Side scrolling leadoff to keep the cursor a few characters from the screen edge instead of going all the way to it
|
||||||
vim.opt.sidescrolloff = 8 -- Side scrolling leadoff to keep the cursor a few characters from the screen edge instead of going all the way to it
|
vim.opt.shiftround = true -- Round indentation to shiftwidth
|
||||||
vim.opt.shiftround = true -- Round indentation to shiftwidth
|
vim.opt.shiftwidth = 4 -- Number of spaces a tab counts for when converting tabs to spaces
|
||||||
vim.opt.shiftwidth = 4 -- Number of spaces a tab counts for when converting tabs to spaces
|
vim.opt.shortmess = 'at' -- Abbreviations and truncation of cmd messages
|
||||||
vim.opt.shortmess = 'at' -- Abbreviations and truncation of cmd messages
|
vim.opt.showmatch = true -- Show matching bracket
|
||||||
vim.opt.showmatch = true -- Show matching bracket
|
vim.opt.signcolumn = 'yes' -- Always show the gutter
|
||||||
vim.opt.signcolumn = 'yes' -- Always show the gutter
|
vim.opt.smartcase = true -- Keeps searches Case-insensitive until the search has an upper case character
|
||||||
vim.opt.smartcase = true -- Keeps searches Case-insensitive until the search has an upper case character
|
vim.opt.smartindent = true -- Attempt to insert indentation to fit traditional languages.
|
||||||
vim.opt.smartindent = true -- Attempt to insert indentation to fit traditional languages.
|
vim.opt.softtabstop = 4 -- Number of spaces a tab counts for when converting tabs to spaces
|
||||||
vim.opt.softtabstop = 4 -- Number of spaces a tab counts for when converting tabs to spaces
|
vim.opt.splitbelow = true -- Split windows below when horizontal splitting
|
||||||
vim.opt.splitbelow = true -- Split windows below when horizontal splitting
|
vim.opt.splitright = true -- Split windows right when vertical splitting
|
||||||
vim.opt.splitright = true -- Split windows right when vertical splitting
|
vim.opt.swapfile = false -- Disable the creation of swap files for open files
|
||||||
vim.opt.swapfile = false -- Disable the creation of swap files for open files
|
vim.opt.tabstop = 4 -- Setting the value of spaces per tab
|
||||||
vim.opt.tabstop = 4 -- Setting the value of spaces per tab
|
vim.opt.termguicolors = true -- Enable the truecolor GUI colors in a terminal
|
||||||
vim.opt.termguicolors = true -- Enable the truecolor GUI colors in a terminal
|
vim.opt.undodir = os.getenv('HOME') .. '/.config/nvim/undodir' -- Set a specific undo file directory
|
||||||
vim.opt.undodir = os.getenv('HOME') .. '/.config/nvim/undodir' -- Set a specific undo file directory
|
vim.opt.undofile = true -- Enable undo files
|
||||||
vim.opt.undofile = true -- Enable undo files
|
vim.opt.updatetime = 300 -- Swapfile update time in milliseconds
|
||||||
vim.opt.updatetime = 300 -- Swapfile update time in milliseconds
|
vim.opt.wrap = false -- Do _not_ wrap lines
|
||||||
vim.opt.wrap = false -- Do _not_ wrap lines
|
|
||||||
|
|
||||||
vim.g.netrw_banner = 0
|
vim.g.netrw_banner = 0 -- Remove the banner
|
||||||
vim.g.netrw_liststyle = 3 -- Use the tree style display for netrw directory listings
|
vim.g.netrw_liststyle = 3 -- Use the tree style display for netrw directory listings
|
||||||
vim.g.netrw_winsize = 25 -- Percentage based pane size for directory exploring
|
vim.g.netrw_winsize = 25 -- Percentage based pane size for directory exploring
|
||||||
|
|||||||
81
nvim/lua/statuscolumn.lua
Normal file
81
nvim/lua/statuscolumn.lua
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
local statuscolumn = {}
|
||||||
|
|
||||||
|
local show_both_nums = false
|
||||||
|
|
||||||
|
statuscolumn.setHL = function ()
|
||||||
|
local colors = {
|
||||||
|
'#888cd8',
|
||||||
|
'#8081cd',
|
||||||
|
'#7877c2',
|
||||||
|
'#706cb7',
|
||||||
|
'#6862ad',
|
||||||
|
'#6057a2',
|
||||||
|
'#584d97',
|
||||||
|
'#50438d',
|
||||||
|
'#493a82',
|
||||||
|
'#413078',
|
||||||
|
}
|
||||||
|
for i, color in ipairs(colors) do
|
||||||
|
vim.api.nvim_set_hl(0, 'Gradient_' .. i, { fg = color })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
statuscolumn.border = function()
|
||||||
|
-- if vim.v.relnum < 9 then
|
||||||
|
-- return '%#Gradient_' .. (vim.v.relnum + 1) .. '#│'
|
||||||
|
-- else
|
||||||
|
-- return '%#Gradient_10#│'
|
||||||
|
-- end
|
||||||
|
return '│'
|
||||||
|
end
|
||||||
|
|
||||||
|
statuscolumn.folds = function()
|
||||||
|
local foldlevel = vim.fn.foldlevel(vim.v.lnum)
|
||||||
|
local foldlevel_before = vim.fn.foldlevel((vim.v.lnum - 1) >= 1 and vim.v.lnum - 1 or 1)
|
||||||
|
local foldlevel_after = vim.fn.foldlevel((vim.v.lnum + 1) <= vim.fn.line('$') and (vim.v.lnum + 1) or vim.fn.line('$'))
|
||||||
|
|
||||||
|
local foldclosed = vim.fn.foldclosed(vim.v.lnum)
|
||||||
|
|
||||||
|
if foldlevel == 0 then
|
||||||
|
return ' '
|
||||||
|
end
|
||||||
|
|
||||||
|
if foldclosed ~= -1 and foldclosed == vim.v.lnum then
|
||||||
|
return '▶'
|
||||||
|
end
|
||||||
|
|
||||||
|
if foldlevel > foldlevel_before then
|
||||||
|
return '▽'
|
||||||
|
end
|
||||||
|
|
||||||
|
if foldlevel > foldlevel_after then
|
||||||
|
return '╰'
|
||||||
|
end
|
||||||
|
|
||||||
|
return '╎'
|
||||||
|
end
|
||||||
|
|
||||||
|
statuscolumn.numbers = function()
|
||||||
|
if show_both_nums then
|
||||||
|
return string.format('%-3s %2s ', vim.v.lnum, vim.v.relnum)
|
||||||
|
else
|
||||||
|
return string.format('%2s', vim.v.relnum)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
statuscolumn.statusColumn = function()
|
||||||
|
local column_text = ''
|
||||||
|
|
||||||
|
-- statuscolumn.setHL()
|
||||||
|
|
||||||
|
column_text = table.concat({
|
||||||
|
'%s',
|
||||||
|
statuscolumn.numbers(),
|
||||||
|
-- statuscolumn.border(),
|
||||||
|
-- statuscolumn.folds(), ' ',
|
||||||
|
})
|
||||||
|
|
||||||
|
return column_text
|
||||||
|
end
|
||||||
|
|
||||||
|
return statuscolumn
|
||||||
37
nvim/snippets/all.lua
Normal file
37
nvim/snippets/all.lua
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
-- require('luasnip.session.snippet_collection').clear_snippets('all')
|
||||||
|
|
||||||
|
-- local ls = require('luasnip')
|
||||||
|
-- local s = ls.snippet
|
||||||
|
-- local sn = ls.snippet_node
|
||||||
|
-- local i = ls.insert_node
|
||||||
|
-- local t = ls.text_node
|
||||||
|
-- local c = ls.choice_node
|
||||||
|
-- local r = ls.restore_node
|
||||||
|
--
|
||||||
|
-- -- Replacement of autopairs
|
||||||
|
-- local function pair(pair_begin, pair_end)
|
||||||
|
-- -- Auto-pair using snippets
|
||||||
|
-- return s({ trig = pair_begin, wordTrig = false }, {
|
||||||
|
-- t({ pair_begin }),
|
||||||
|
-- c(1, {
|
||||||
|
-- r(1, "content", i(1)),
|
||||||
|
-- sn(nil, { t({"", "\t"}), r(1, "content", i(1)), t({ "", "" }) }),
|
||||||
|
-- }),
|
||||||
|
-- t({ pair_end }),
|
||||||
|
-- })
|
||||||
|
-- end
|
||||||
|
--
|
||||||
|
-- ls.add_snippets('all', {
|
||||||
|
-- pair('(', ')'),
|
||||||
|
-- pair('{', '}'),
|
||||||
|
-- pair('[', ']'),
|
||||||
|
-- pair('<', '>'),
|
||||||
|
-- pair("'", "'"),
|
||||||
|
-- pair('"', '"'),
|
||||||
|
-- pair('`', '`'),
|
||||||
|
-- }, {
|
||||||
|
-- -- type = 'autosnippets',
|
||||||
|
-- -- key = 'all_auto',
|
||||||
|
-- })
|
||||||
|
|
||||||
|
-- end autopairs
|
||||||
@@ -1,44 +1,36 @@
|
|||||||
local ls = require('luasnip')
|
local ls = require('luasnip')
|
||||||
local s = ls.snippet
|
local s = ls.snippet
|
||||||
|
-- local sn = ls.snippet_node
|
||||||
local i = ls.insert_node
|
local i = ls.insert_node
|
||||||
local t = ls.text_node
|
local t = ls.text_node
|
||||||
local l = require('luasnip.extras').lambda
|
-- local l = require('luasnip.extras').lambda
|
||||||
local fmt = require('luasnip.extras.fmt').fmt
|
local fmt = require('luasnip.extras.fmt').fmt
|
||||||
local ts_post = require('luasnip.extras.treesitter_postfix').treesitter_postfix
|
-- local ts_post = require('luasnip.extras.treesitter_postfix').treesitter_postfix
|
||||||
|
|
||||||
return {
|
ls.add_snippets('python', {
|
||||||
ts_post({
|
s('docstring single', {
|
||||||
matchTSNode = {
|
t("''' "), i(0, 'text'), t(" '''")
|
||||||
query = [[
|
}),
|
||||||
(function_definition
|
s('def', fmt([[
|
||||||
parameters: (parameters) @params
|
def {func}({args}) -> {ret}:
|
||||||
return_type: (type) @return
|
''' {doc} '''
|
||||||
) @prefix
|
{body}
|
||||||
]],
|
|
||||||
query_lang = "python",
|
|
||||||
},
|
|
||||||
trig = "docstring",
|
|
||||||
}, fmt([[
|
|
||||||
''' {}
|
|
||||||
|
|
||||||
Keyword arguments:
|
|
||||||
{} () -
|
|
||||||
|
|
||||||
Return:
|
|
||||||
{} - {}
|
|
||||||
'''
|
|
||||||
]], {
|
]], {
|
||||||
i(1, 'Description'),
|
func = i(1, 'fname'),
|
||||||
l(l.LS_TSCAPTURE_PARAMS),
|
args = i(2),
|
||||||
l(l.LS_TSCAPTURE_RETURN),
|
ret = i(3, 'None'),
|
||||||
l(l.LS_TSDATA),
|
doc = i(4, 'docstring'),
|
||||||
|
body = i(5, 'pass'),
|
||||||
|
}, {
|
||||||
})),
|
})),
|
||||||
-- s(
|
s('ternary', {
|
||||||
-- { trig = "thingy" },
|
i(1, 'then'), t(' if '), i(2, 'condition'), t(' else '), i(3, 'else')
|
||||||
-- { t('Woot!') }
|
}),
|
||||||
-- ),
|
s('tuple ternary', fmt([[
|
||||||
-- s(
|
({if_true}, {if_false})[{condition}]
|
||||||
-- { trig = 'thingy2' },
|
]], {
|
||||||
-- { t('Woot2!') }
|
if_true = i(1, 'if_true'),
|
||||||
-- )
|
if_false = i(2, 'if_false'),
|
||||||
}
|
condition = i(3, 'condition'),
|
||||||
|
})),
|
||||||
|
})
|
||||||
|
|||||||
26
tmux.conf
26
tmux.conf
@@ -1,12 +1,33 @@
|
|||||||
# True color support
|
# True color support
|
||||||
set-option -g default-terminal 'tmux-256color'
|
set-option -ga terminal-overrides ',xterm-*:Tc'
|
||||||
set-option -ga terminal-overrides ',xterm-256color:Tc'
|
|
||||||
|
|
||||||
# Set encoding to Unicode8
|
# Set encoding to Unicode8
|
||||||
setw -gq utf8 on
|
setw -gq utf8 on
|
||||||
|
|
||||||
|
set -g status-interval 5
|
||||||
|
set -g display-time 4000
|
||||||
|
|
||||||
|
# Numbering changes
|
||||||
|
set -g base-index 1
|
||||||
|
set -g pane-base-index 1
|
||||||
|
set -g renumber-windows on
|
||||||
|
|
||||||
|
# History lengthening from the default 2k
|
||||||
|
set -g history-limit 50000
|
||||||
|
|
||||||
|
setw -g mode-keys vi
|
||||||
|
|
||||||
|
set -g focus-events on
|
||||||
|
|
||||||
|
# Window resizing on host shell size changes TODO: needs testing with pair coding
|
||||||
|
set -g window-size latest
|
||||||
|
setw -g aggressive-resize on
|
||||||
|
|
||||||
|
# set -g default-command 'reattach-to-user-namespace -l $SHELL' # TODO: Is this necessary for Mac still?
|
||||||
|
|
||||||
# Allow for external system clipboard
|
# Allow for external system clipboard
|
||||||
set-option -g set-clipboard external
|
set-option -g set-clipboard external
|
||||||
|
# set-option -g allow-passthrough on
|
||||||
|
|
||||||
# Allow mouse interactions
|
# Allow mouse interactions
|
||||||
set -g mouse on
|
set -g mouse on
|
||||||
@@ -37,7 +58,6 @@ bind -n M-l next-window
|
|||||||
|
|
||||||
# Plugins
|
# Plugins
|
||||||
set -g @plugin 'tmux-plugins/tpm'
|
set -g @plugin 'tmux-plugins/tpm'
|
||||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
|
||||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||||
set -g @plugin 'egel/tmux-gruvbox'
|
set -g @plugin 'egel/tmux-gruvbox'
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
local wezterm = require 'wezterm'
|
local wezterm = require 'wezterm'
|
||||||
|
local act = wezterm.action
|
||||||
|
|
||||||
local config = wezterm.config_builder()
|
local config = wezterm.config_builder()
|
||||||
|
|
||||||
-- Visual options
|
-- Visual options
|
||||||
config.color_scheme = 's3r0 modified (terminal.sexy)'
|
config.color_scheme = 's3r0 modified (terminal.sexy)'
|
||||||
-- config.color_scheme = 'Mashup Colors (terminal.sexy)'
|
|
||||||
|
|
||||||
config.font = wezterm.font 'Inconsolata Nerd Font Mono'
|
config.font = wezterm.font 'Inconsolata Nerd Font Mono'
|
||||||
config.font_size = 12
|
config.font_size = 12
|
||||||
@@ -24,35 +24,7 @@ config.automatically_reload_config = true
|
|||||||
|
|
||||||
-- Linux specific fixes
|
-- Linux specific fixes
|
||||||
if wezterm.target_triple == 'x86_64-unknown-linux-gnu' then
|
if wezterm.target_triple == 'x86_64-unknown-linux-gnu' then
|
||||||
-- Fixing the cursor theme
|
config.disable_default_key_bindings = true
|
||||||
local xcursor_size = nil
|
|
||||||
local xcursor_theme = nil
|
|
||||||
|
|
||||||
local theme_success, stdout, _ = wezterm.run_child_process({
|
|
||||||
"gsettings",
|
|
||||||
"get",
|
|
||||||
"org.gnome.desktop.interface",
|
|
||||||
"cursor-theme"
|
|
||||||
})
|
|
||||||
|
|
||||||
if theme_success then
|
|
||||||
xcursor_theme = stdout:gsub("'(.+)'\n", "%1")
|
|
||||||
end
|
|
||||||
|
|
||||||
local cursor_success, _, _ = wezterm.run_child_process({
|
|
||||||
"gsettings",
|
|
||||||
"get",
|
|
||||||
"org.gnome.desktop.interface",
|
|
||||||
"cursor-size"
|
|
||||||
})
|
|
||||||
|
|
||||||
if cursor_success then
|
|
||||||
xcursor_size = tonumber(stdout)
|
|
||||||
end
|
|
||||||
|
|
||||||
config.xcursor_theme = xcursor_theme
|
|
||||||
config.xcursor_size = xcursor_size
|
|
||||||
-- end cursor theme
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local local_config_filename = os.getenv('HOME') .. '/.config/wezterm/local.lua'
|
local local_config_filename = os.getenv('HOME') .. '/.config/wezterm/local.lua'
|
||||||
@@ -62,4 +34,9 @@ if local_config ~= nil then
|
|||||||
config = local_setup.setup(config)
|
config = local_setup.setup(config)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
config.keys = {
|
||||||
|
{key = 'V', mods = 'CTRL', action = act.PasteFrom 'Clipboard'},
|
||||||
|
{key = 'V', mods = 'CTRL', action = act.PasteFrom 'PrimarySelection'},
|
||||||
|
}
|
||||||
|
|
||||||
return config
|
return config
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
export EDITOR=nvim
|
export EDITOR=nvim
|
||||||
export MANPAGER="less -R --use-color -Dd+r -Du+b" # Colored MAN pages
|
export MANPAGER="less -R --use-color -Dd+r -Du+b" # Colored MAN pages
|
||||||
export DOCKER_DEFAULT_PLATFORM=linux/amd64
|
export DOCKER_DEFAULT_PLATFORM=linux/amd64
|
||||||
|
export GPG_TTY=$(tty)
|
||||||
|
|||||||
Reference in New Issue
Block a user