Compare commits

...

6 Commits

Author SHA1 Message Date
dependabot[bot]
48ec8cd7a7 chore(deps): bump http-proxy-middleware (#100) 2025-04-19 13:10:01 +03:00
renovate[bot]
3a61bd2b72 fix(github-action): update softprops/action-gh-release (v2.2.1 → v2.2.2)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-19 04:34:26 +00:00
895b0ad353 chore(config): aqua: remove extra tools
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-19 04:12:58 +03:00
3c733ec7eb chore(config): tmux: tweak theme
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-19 04:12:36 +03:00
5321ad7bd7 feat(config): fish formatting, secrets, op
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-19 04:11:14 +03:00
196077bea9 feat(nvim): reworked lsp, theme, cleanup
Signed-off-by: Ismo Vuorinen <ismo@ivuorinen.net>
2025-04-19 04:04:26 +03:00
33 changed files with 547 additions and 574 deletions

View File

@@ -8,11 +8,14 @@ indent_style = space
insert_final_newline = true insert_final_newline = true
trim_trailing_whitespace = true trim_trailing_whitespace = true
[*.fish]
max_line_length = 80
[*.md] [*.md]
max_line_length = 100 max_line_length = 100
[*.lua] [*.lua]
max_line_length = 120 max_line_length = 90
[*.{php,fish}] [*.{php,fish}]
indent_size = 4 indent_size = 4

View File

@@ -40,7 +40,7 @@ jobs:
- name: Create release - name: Create release
if: steps.daily-version.outputs.created if: steps.daily-version.outputs.created
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2.2.1 uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v2.2.2
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
tag_name: ${{ steps.daily-version.outputs.version }} tag_name: ${{ steps.daily-version.outputs.version }}

1
.gitignore vendored
View File

@@ -40,6 +40,7 @@ node_modules
ssh/local.d/* ssh/local.d/*
!ssh/local.d/.gitkeep !ssh/local.d/.gitkeep
config/fish/fish_variables config/fish/fish_variables
**/exports.secret.fish
**/exports-secret.fish **/exports-secret.fish
config/fish/completions/asdf.fish config/fish/completions/asdf.fish
config/vim/.netrwhist config/vim/.netrwhist

View File

@@ -9,13 +9,7 @@
# - all # - all
registries: registries:
- type: standard - type: standard
ref: v4.331.0 # renovate: depName=aquaproj/aqua-registry ref: v4.346.0 # renovate: depName=aquaproj/aqua-registry
packages: packages:
- name: cli/cli - name: cli/cli
version: 'v2.69.0' version: 'v2.69.0'
- name: junegunn/fzf
version: 'v0.60.3'
- name: jqlang/jq
version: 'jq-1.7.1'
- name: 1password/cli
version: '2.30.3'

View File

@@ -8,13 +8,23 @@ test -e "$HOME/.config/fish/alias.fish" &&
test -e "$HOME/.config/fish/exports.fish" && test -e "$HOME/.config/fish/exports.fish" &&
source "$HOME/.config/fish/exports.fish" source "$HOME/.config/fish/exports.fish"
test -e "$HOME/.config/fish/exports.secret.fish" &&
source "$HOME/.config/fish/exports.secret.fish"
test -e "$HOME/.dotfiles/config/fzf/key-bindings.fish" &&
source "$HOME/.dotfiles/config/fzf/key-bindings.fish"
if status is-interactive if status is-interactive
# Commands to run in interactive shell # Commands to run in interactive shell
# 1Password plugins if op command is available
type -q op; and test -e "$HOME/.config/op/plugins.sh" &&
source "$HOME/.config/op/plugins.sh"
# version manager initializers # version manager initializers
type -q rbenv; and source (rbenv init -|psub) type -q rbenv; and source (rbenv init -|psub)
type -q pyenv; and source (pyenv init -|psub) type -q pyenv; and source (pyenv init -|psub)
type -q pyenv; and source (pyenv virtualenv-init -) type -q pyenv; and source (pyenv virtualenv-init -|psub)
type -q goenv; and source (goenv init -|psub) type -q goenv; and source (goenv init -|psub)
# type -q fnm; and fnm env --use-on-cd --shell fish | source # type -q fnm; and fnm env --use-on-cd --shell fish | source
type -q load_nvm; and load_nvm > /dev/stderr type -q load_nvm; and load_nvm > /dev/stderr

View File

@@ -1,7 +1,7 @@
# EditorConfig is awesome: https://editorconfig.org # EditorConfig is awesome: https://editorconfig.org
# top-most EditorConfig file # top-most EditorConfig file
root = true root = false
[*] [*]
end_of_line = lf end_of_line = lf
@@ -18,3 +18,7 @@ trim_trailing_whitespace = false
[*.json] [*.json]
max_line_length = off max_line_length = off
[*.lua]
max_line_length = 90

View File

@@ -1,4 +1,4 @@
column_width = 80 column_width = 90
line_endings = "Unix" line_endings = "Unix"
indent_type = "Spaces" indent_type = "Spaces"
indent_width = 2 indent_width = 2

View File

@@ -0,0 +1,2 @@
autocmd BufRead,BufNewFile *.env set ft=env
autocmd BufRead,BufNewFile *.env.* set ft=env

View File

@@ -28,10 +28,7 @@ end
vim.opt.rtp:prepend(lazypath) vim.opt.rtp:prepend(lazypath)
-- ── Add ~/.local/bin to the PATH ──────────────────────────────────── -- ── Add ~/.local/bin to the PATH ────────────────────────────────────
vim.fn.setenv( vim.fn.setenv('PATH', vim.fn.expand '$HOME/.local/bin' .. ':' .. vim.fn.expand '$PATH')
'PATH',
vim.fn.expand '$HOME/.local/bin' .. ':' .. vim.fn.expand '$PATH'
)
require 'options' require 'options'
require 'autogroups' require 'autogroups'
@@ -68,4 +65,4 @@ require('lazy').setup(
require 'keymaps' require 'keymaps'
-- vim: ts=2 sts=2 sw=2 et -- vim: set ts=2 sts=2 sw=2 wrap et :

View File

@@ -21,9 +21,7 @@ autocmd({ 'BufEnter', 'BufWinEnter', 'TabEnter' }, {
callback = function() callback = function()
local max_line_count = vim.fn.line '$' local max_line_count = vim.fn.line '$'
-- Only adjust if the file is large enough to matter -- Only adjust if the file is large enough to matter
if max_line_count > 99 then if max_line_count > 99 then vim.opt.numberwidth = #tostring(max_line_count) + 1 end
vim.opt.numberwidth = #tostring(max_line_count) + 1
end
end, end,
}) })
@@ -104,5 +102,3 @@ autocmd({ 'BufRead', 'BufNewFile' }, {
}, },
command = 'set filetype=sshconfig', command = 'set filetype=sshconfig',
}) })
-- vim: ts=2 sts=2 sw=2 et

View File

@@ -1,5 +1,3 @@
-- vim: set ft=lua ts=2 sw=2 tw=0 et cc=130 :
require 'utils' require 'utils'
-- ╭─────────────────────────────────────────────────────────╮ -- ╭─────────────────────────────────────────────────────────╮
@@ -20,16 +18,8 @@ K.n('<C-w>+', ':resize +10<CR>', { desc = 'H Resize +' })
K.n('<C-w>=', '<C-w>=', { desc = 'Equal Size Splits' }) K.n('<C-w>=', '<C-w>=', { desc = 'Equal Size Splits' })
-- ── Deal with word wrap ───────────────────────────────────────────── -- ── Deal with word wrap ─────────────────────────────────────────────
K.n( K.n('k', "v:count == 0 ? 'gk' : 'k'", { desc = 'Move up', noremap = true, expr = true })
'k', K.n('j', "v:count == 0 ? 'gj' : 'j'", { desc = 'Move down', noremap = true, expr = true })
"v:count == 0 ? 'gk' : 'k'",
{ desc = 'Move up', noremap = true, expr = true }
)
K.n(
'j',
"v:count == 0 ? 'gj' : 'j'",
{ desc = 'Move down', noremap = true, expr = true }
)
-- ── Text manipulation ─────────────────────────────────────────────── -- ── Text manipulation ───────────────────────────────────────────────
K.d('<', { 'n', 'v' }, '<gv', 'Indent Left') K.d('<', { 'n', 'v' }, '<gv', 'Indent Left')
@@ -111,12 +101,10 @@ K.nl('cbt', '<Cmd>CBllline<CR>', 'CB: Titled Line')
-- unless it's a generic operation like searching or finding buffers -- unless it's a generic operation like searching or finding buffers
local fuzzy_search = function() local fuzzy_search = function()
require('telescope.builtin').find_files( require('telescope.builtin').find_files(require('telescope.themes').get_dropdown {
require('telescope.themes').get_dropdown { winblend = 20,
winblend = 20, previewer = true,
previewer = true, })
}
)
end end
local lazy_plugins = function() local lazy_plugins = function()
@@ -159,9 +147,7 @@ K.nl('tn', ':Noice dismiss<cr>', 'Noice: Dismiss Notification')
-- Convention is 'q' followed by the operation -- Convention is 'q' followed by the operation
K.nl('qf', ':q<CR>', 'Quicker close split') K.nl('qf', ':q<CR>', 'Quicker close split')
K.nl('qq', function() K.nl('qq', function()
if vim.fn.confirm('Force save and quit?', '&Yes\n&No', 2) == 1 then if vim.fn.confirm('Force save and quit?', '&Yes\n&No', 2) == 1 then vim.cmd 'wq!' end
vim.cmd 'wq!'
end
end, 'Quit with force saving') end, 'Quit with force saving')
K.nl('qw', ':wq<CR>', 'Write and quit') K.nl('qw', ':wq<CR>', 'Write and quit')
K.nl('qQ', function() K.nl('qQ', function()

View File

@@ -77,10 +77,8 @@ function M.setup(opts)
-- Set vim.g.node_host_prog and vim.g.copilot_node_command -- Set vim.g.node_host_prog and vim.g.copilot_node_command
local current_nvm_version_path = local current_nvm_version_path =
string.format('%s/versions/node/%s', nvm_path, node_version) string.format('%s/versions/node/%s', nvm_path, node_version)
local current_nvm_node_bin_path = local current_nvm_node_bin_path = string.format('%s/bin', current_nvm_version_path)
string.format('%s/bin', current_nvm_version_path) local current_nvm_node_bin = string.format('%s/node', current_nvm_node_bin_path)
local current_nvm_node_bin =
string.format('%s/node', current_nvm_node_bin_path)
local neovim_node_host_bin_path = local neovim_node_host_bin_path =
string.format('%s/neovim-node-host', current_nvm_node_bin_path) string.format('%s/neovim-node-host', current_nvm_node_bin_path)

View File

@@ -64,4 +64,7 @@ vim.schedule(function()
o.clipboard = c o.clipboard = c
end) end)
-- xiyaowong/transparent.nvim
vim.g.transparent_enabled = true
-- vim: ts=2 sts=2 sw=2 et -- vim: ts=2 sts=2 sw=2 et

View File

@@ -3,7 +3,7 @@ return {
-- https:/github.com/saghen/blink.cmp -- https:/github.com/saghen/blink.cmp
{ {
'saghen/blink.cmp', 'saghen/blink.cmp',
version = '*', version = '1.*',
lazy = false, -- lazy loading handled internally lazy = false, -- lazy loading handled internally
dependencies = { dependencies = {
-- Compatibility layer for using nvim-cmp sources on blink.cmp -- Compatibility layer for using nvim-cmp sources on blink.cmp
@@ -58,10 +58,10 @@ return {
-- 'default' for mappings similar to built-in completion -- 'default' for mappings similar to built-in completion
-- 'super-tab' for mappings similar to vscode (tab to accept, arrow keys to navigate) -- 'super-tab' for mappings similar to vscode (tab to accept, arrow keys to navigate)
-- 'enter' for mappings similar to 'super-tab' but with 'enter' to accept -- 'enter' for mappings similar to 'super-tab' but with 'enter' to accept
-- see the "default configuration" section below for full documentation on how to define -- see the "default configuration" section below for full documentation on how to
-- your own keymap. -- define your own keymap.
keymap = { keymap = {
preset = 'super-tab', preset = 'default',
-- Use Ctrl-x to trigger auto completion -- Use Ctrl-x to trigger auto completion
['<C-x>'] = { 'show', 'show_documentation', 'hide_documentation' }, ['<C-x>'] = { 'show', 'show_documentation', 'hide_documentation' },
}, },
@@ -86,7 +86,8 @@ return {
}, },
}, },
documentation = { documentation = {
auto_show = true, auto_show = false,
auto_show_delay_ms = 500,
}, },
ghost_text = { ghost_text = {
enabled = false, enabled = false,
@@ -97,12 +98,12 @@ return {
-- elsewhere in your config, without redefining it, via `opts_extend` -- elsewhere in your config, without redefining it, via `opts_extend`
sources = { sources = {
default = { default = {
'lazydev',
'lsp', 'lsp',
'snippets',
'copilot', 'copilot',
'path', 'path',
'snippets',
'buffer', 'buffer',
'lazydev',
}, },
providers = { providers = {
copilot = { copilot = {
@@ -118,6 +119,15 @@ return {
}, },
}, },
-- Blink.cmp includes an optional, recommended rust fuzzy matcher,
-- which automatically downloads a prebuilt binary when enabled.
--
-- By default, we use the Lua implementation instead, but you may enable
-- the rust implementation via `'prefer_rust_with_warning'`
--
-- See :h blink-cmp-config-fuzzy for more information
fuzzy = { implementation = 'lua' },
-- experimental signature help support -- experimental signature help support
signature = { enabled = true }, signature = { enabled = true },
}, },

View File

@@ -1,17 +1,9 @@
return { return {
-- A better annotation generator.
-- Supports multiple languages and annotation conventions.
-- https://github.com/danymat/neogen
{
'danymat/neogen',
version = '*',
opts = { enabled = true, snippet_engine = 'luasnip' },
},
-- Terminal manager for (neo)vim -- Terminal manager for (neo)vim
-- https://github.com/voldikss/vim-floaterm -- https://github.com/voldikss/vim-floaterm
{ {
'voldikss/vim-floaterm', 'voldikss/vim-floaterm',
lazy = true,
cmd = { 'FloatermToggle' }, cmd = { 'FloatermToggle' },
init = function() init = function()
vim.g.floaterm_width = 0.8 vim.g.floaterm_width = 0.8
@@ -49,34 +41,6 @@ return {
end, end,
}, },
-- Cloak allows you to overlay *'s over defined patterns in defined files.
-- https://github.com/laytan/cloak.nvim
{
'laytan/cloak.nvim',
version = '*',
opts = {
enabled = true,
cloak_character = '*',
-- The applied highlight group (colors) on the cloaking, see `:h highlight`.
highlight_group = 'Comment',
patterns = {
{
-- Match any file starting with ".env".
-- This can be a table to match multiple file patterns.
file_pattern = {
'.env*',
'wrangler.toml',
'.dev.vars',
},
-- Match an equals sign and any character after it.
-- This can also be a table of patterns to cloak,
-- example: cloak_pattern = { ":.+", "-.+" } for yaml files.
cloak_pattern = '=.+',
},
},
},
},
-- projectionist.vim: Granular project configuration -- projectionist.vim: Granular project configuration
-- https://github.com/tpope/vim-projectionist -- https://github.com/tpope/vim-projectionist
{ {
@@ -150,21 +114,7 @@ return {
{ {
'whatyouhide/vim-textobj-xmlattr', 'whatyouhide/vim-textobj-xmlattr',
dependencies = { 'kana/vim-textobj-user' }, dependencies = { 'kana/vim-textobj-user' },
}, ft = { 'html', 'xml', 'javascriptreact', 'typescriptreact', 'vue' },
-- Describe the regexp under the cursor
-- https://github.com/bennypowers/nvim-regexplainer
{
'bennypowers/nvim-regexplainer',
event = 'BufEnter',
dependencies = {
'nvim-treesitter/nvim-treesitter',
'MunifTanjim/nui.nvim',
},
opts = {
-- automatically show the explainer when the cursor enters a regexp
auto = true,
},
}, },
-- Clarify and beautify your comments using boxes and lines. -- Clarify and beautify your comments using boxes and lines.
@@ -174,38 +124,4 @@ return {
event = 'BufEnter', event = 'BufEnter',
opts = {}, opts = {},
}, },
-- Plugin to improve viewing Markdown files in Neovim
-- https://github.com/MeanderingProgrammer/render-markdown.nvim
{
'MeanderingProgrammer/render-markdown.nvim',
event = 'BufEnter',
dependencies = {
'nvim-treesitter/nvim-treesitter',
'nvim-tree/nvim-web-devicons',
},
ft = 'markdown',
opts = {},
},
{
'ray-x/go.nvim',
dependencies = { -- optional packages
'ray-x/guihua.lua',
'neovim/nvim-lspconfig',
'nvim-treesitter/nvim-treesitter',
},
config = function() require('go').setup() end,
event = { 'CmdlineEnter' },
ft = { 'go', 'gomod' },
build = ':lua require("go.install").update_all_sync()', -- if you need to install/update all binaries
},
-- Mainly a PHP Language Server with more features than you can shake a stick at
-- https://github.com/phpactor/phpactor
{
'phpactor/phpactor',
build = 'composer install --no-dev --optimize-autoloader',
ft = 'php',
},
} }

View File

@@ -0,0 +1,66 @@
return {
{
'stevearc/conform.nvim',
event = 'BufWritePre',
config = function()
local conform = require 'conform'
conform.setup {
formatters_by_ft = {
lua = { 'stylua' },
},
format_on_save = function(bufnr)
-- Disable autoformat for files in a certain paths
local bufname = vim.api.nvim_buf_get_name(bufnr)
if bufname:match '/dist|node_modules|vendor/' then return end
local disable_lsp = {
c = true,
cpp = true,
}
return {
lsp_fallback = not disable_lsp[vim.bo[bufnr].filetype],
timeout_ms = 500,
}
end,
notify_on_error = true,
}
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
-- Autoformat toggle keybinding
local autoformat = true
vim.g.autoformat_enabled = autoformat
vim.api.nvim_create_user_command('ToggleFormat', function()
autoformat = not autoformat
vim.g.autoformat_enabled = autoformat
vim.notify('Autoformat on save: ' .. (autoformat and 'enabled' or 'disabled'))
end, {})
vim.keymap.set(
'n',
'<leader>tf',
':ToggleFormat<CR>',
{ desc = 'Toggle autoformat on save' }
)
vim.api.nvim_create_autocmd('BufWritePre', {
callback = function(args)
if autoformat then
conform.format {
bufnr = args.buf,
async = true,
lsp_format = 'fallback',
}
end
end,
})
-- Global statusline helper function
function _G.autoformat_status()
return vim.g.autoformat_enabled and '[ fmt:on]' or '[ fmt:off]'
end
end,
},
}

View File

@@ -21,7 +21,7 @@ return {
right = { 'fold', 'git' }, -- priority of signs on the right (high to low) right = { 'fold', 'git' }, -- priority of signs on the right (high to low)
folds = { folds = {
open = true, -- show open fold icons open = true, -- show open fold icons
git_hl = false, -- use Git Signs hl for fold icons git_hl = true, -- use Git Signs hl for fold icons
}, },
git = { git = {
-- patterns to match Git signs -- patterns to match Git signs

View File

@@ -4,359 +4,296 @@
require 'utils' require 'utils'
-- LSP Servers are installed and configured by lsp-setup.nvim
-- Mason formatters Conform uses to format files
-- These are automatically configured by zapling/mason-conform.nvim
local lsp_servers = {
bashls = {},
-- csharp_ls = {},
diagnosticls = {},
gopls = {
settings = {
gopls = {
hints = {
rangeVariableTypes = true,
parameterNames = true,
constantValues = true,
assignVariableTypes = true,
compositeLiteralFields = true,
compositeLiteralTypes = true,
functionTypeParameters = true,
},
},
},
},
html = {},
intelephense = {
init_options = {
licenceKey = GetIntelephenseLicense(),
},
},
jsonls = {},
lua_ls = {
settings = {
Lua = {
completion = {
callSnippet = 'Replace',
},
diagnostics = {
globals = {
'vim',
},
disable = {
-- Ignore lua_ls noisy `missing-fields` warnings
'missing-fields',
},
},
hint = {
enable = true,
arrayIndex = 'Auto',
await = true,
paramName = 'All',
paramType = true,
semicolon = 'SameLine',
setType = false,
},
},
},
},
tailwindcss = {},
ts_ls = {
settings = {
typescript = {
inlayHints = {
includeInlayParameterNameHints = 'all',
includeInlayParameterNameHintsWhenArgumentMatchesName = false,
includeInlayFunctionParameterTypeHints = true,
includeInlayVariableTypeHints = true,
includeInlayVariableTypeHintsWhenTypeMatchesName = false,
includeInlayPropertyDeclarationTypeHints = true,
includeInlayFunctionLikeReturnTypeHints = true,
includeInlayEnumMemberValueHints = true,
},
},
},
},
vimls = {},
volar = {
settings = {
typescript = {
inlayHints = {
enumMemberValues = {
enabled = true,
},
functionLikeReturnTypes = {
enabled = true,
},
propertyDeclarationTypes = {
enabled = true,
},
parameterTypes = {
enabled = true,
suppressWhenArgumentMatchesName = true,
},
variableTypes = {
enabled = true,
},
},
},
},
},
}
-- Mason tools to automatically install and configure.
-- These are automatically configured by WhoIsSethDaniel/mason-tool-installer.nvim
local mason_tools = {
'actionlint',
'ast-grep',
'black',
'editorconfig-checker',
'goimports',
'golangci-lint',
'golines',
'gopls',
'gotests',
'isort',
'phpcbf',
'phpmd',
'phpstan',
'pint',
'prettierd',
'revive',
'semgrep',
'shellcheck',
'shfmt',
'sonarlint-language-server',
'staticcheck',
'stylua',
'trivy',
'vint',
'yamlfmt',
}
return { return {
-- `lazydev` configures Lua LSP for your Neovim config, runtime and plugins
-- used for completion, annotations and signatures of Neovim apis
-- https://github.com/folke/lazydev.nvim
{ {
'folke/lazydev.nvim', 'neovim/nvim-lspconfig',
ft = 'lua', dependencies = {
opts = { { 'williamboman/mason.nvim', opts = {} },
library = { 'williamboman/mason-lspconfig.nvim',
-- Load luvit types when the `vim.uv` word is found 'WhoIsSethDaniel/mason-tool-installer.nvim',
{ path = 'luvit-meta/library', words = { 'vim%.uv' } },
-- load assert and describe paths 'folke/lazydev.nvim',
{ path = 'luassert/library', words = { 'assert' } }, 'zapling/mason-conform.nvim',
{ path = 'busted/library', words = { 'describe' } },
}, -- Allows extra capabilities provided by blink.cmp
'saghen/blink.cmp',
}, },
}, config = function()
local lazydev = require 'lazydev'
-- Meta type definitions for the Lua platform Luvit. vim.api.nvim_create_autocmd('LspAttach', {
-- https://github.com/Bilal2453/luvit-meta group = vim.api.nvim_create_augroup('lsp-attach', { clear = true }),
{ 'Bilal2453/luvit-meta', lazy = true }, callback = function(event)
local map = function(keys, func, desc, mode)
-- Quickstart configs for Nvim LSP mode = mode or 'n'
-- https://github.com/neovim/nvim-lspconfig vim.keymap.set(
{ 'neovim/nvim-lspconfig' }, mode,
keys,
-- Portable package manager for Neovim that runs everywhere Neovim runs. func,
-- Easily install and manage LSP servers, DAP servers, linters, and formatters. { buffer = event.buf, desc = 'LSP: ' .. desc }
-- https://github.com/williamboman/mason.nvim )
{
'williamboman/mason.nvim',
version = '*',
cmd = 'Mason',
run = ':MasonUpdate',
opts = {},
},
-- Extensible UI for Neovim notifications and LSP progress messages.
-- https://github.com/j-hui/fidget.nvim
{
'j-hui/fidget.nvim',
version = '*',
opts = {},
},
-- Extension to mason.nvim that makes it easier to use lspconfig with mason.nvim.
-- https://github.com/williamboman/mason-lspconfig.nvim
{ 'williamboman/mason-lspconfig.nvim' },
-- Install and upgrade third party tools automatically
-- https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim
{
'WhoIsSethDaniel/mason-tool-installer.nvim',
version = '*',
opts = {
auto_install = true,
auto_update = true,
ensure_installed = mason_tools,
},
},
-- JSON schemas for Neovim
-- https://github.com/b0o/SchemaStore.nvim
{ 'b0o/schemastore.nvim' },
-- Performant, batteries-included completion plugin for Neovim
-- https://github.com/saghen/blink.cmp
-- See lua/plugins/blink.lua for configs
{ 'saghen/blink.cmp' },
-- A simple wrapper for nvim-lspconfig and mason-lspconfig
-- to easily setup LSP servers.
-- https://github.com/junnplus/lsp-setup.nvim
{
'junnplus/lsp-setup.nvim',
opts = {
default_mappings = false,
servers = lsp_servers,
},
config = function(_, opts)
require('lazydev').setup()
require('lsp-setup').setup(opts)
local cmp = require 'blink.cmp'
local lspconfig = require 'lspconfig'
for server, config in pairs(opts.servers) do
-- passing config.capabilities to blink.cmp merges with the capabilities in your
-- `opts[server].capabilities, if you've defined it
config.capabilities = cmp.get_lsp_capabilities(config.capabilities)
lspconfig[server].setup(config)
end
lspconfig.lua_ls.on_init = function(client)
if client.workspace_folders then
local path = client.workspace_folders[1].name
if
vim.loop.fs_stat(path .. '/.luarc.json')
or vim.loop.fs_stat(path .. '/.luarc.jsonc')
then
return
end end
end
client.config.settings.Lua = local tsb = require 'telescope.builtin'
vim.tbl_deep_extend('force', client.config.settings.Lua, {
runtime = { -- Rename the variable under your cursor.
-- Tell the language server which version of Lua you're using -- Most Language Servers support renaming across files, etc.
-- (most likely LuaJIT in the case of Neovim) map('grn', vim.lsp.buf.rename, '[R]e[n]ame')
version = 'LuaJIT',
}, -- Execute a code action, usually your cursor needs to be on top of an error
-- Make the server aware of Neovim runtime files -- or a suggestion from your LSP for this to activate.
workspace = { map('gra', vim.lsp.buf.code_action, '[G]oto Code [A]ction', { 'n', 'x' })
checkThirdParty = false,
library = { -- Find references for the word under your cursor.
vim.env.VIMRUNTIME, map('grr', tsb.lsp_references, '[G]oto [R]eferences')
-- Jump to the implementation of the word under your cursor.
-- Useful when your language has ways of declaring types without
-- an actual implementation.
map('gri', tsb.lsp_implementations, '[G]oto [I]mplementation')
-- Jump to the definition of the word under your cursor.
-- This is where a variable was first declared, or where a function is
-- defined, etc. To jump back, press <C-t>.
map('grd', tsb.lsp_definitions, '[G]oto [D]efinition')
-- WARN: This is not Goto Definition, this is Goto Declaration.
-- For example, in C this would take you to the header.
map('grD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
-- Fuzzy find all the symbols in your current document.
-- Symbols are things like variables, functions, types, etc.
map('gO', tsb.lsp_document_symbols, 'Open Document Symbols')
-- Fuzzy find all the symbols in your current workspace.
-- Similar to document symbols, except searches over your entire project.
map('gW', tsb.lsp_dynamic_workspace_symbols, 'Open Workspace Symbols')
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
-- the definition of its *type*, not where it was *defined*.
map('grt', tsb.lsp_type_definitions, '[G]oto [T]ype Definition')
-- This function resolves a difference between neovim nightly
-- (version 0.11) and stable (version 0.10)
---@param client vim.lsp.Client
---@param method vim.lsp.protocol.Method
---@param bufnr? integer some lsp support methods only in specific files
---@return boolean
local function client_supports_method(client, method, bufnr)
if vim.fn.has 'nvim-0.11' == 1 then
return client:supports_method(method, bufnr)
else
---@diagnostic disable-next-line: param-type-mismatch
return client.supports_method(method, { bufnr = bufnr })
end
end
-- The following two autocommands are used to highlight references of the
-- word under your cursor when your cursor rests there for a little while.
-- See `:help CursorHold` for information about when this is executed
--
-- When you move your cursor, the highlights will be cleared
-- (the second autocommand).
local client = vim.lsp.get_client_by_id(event.data.client_id)
if
client
and client_supports_method(
client,
vim.lsp.protocol.Methods.textDocument_documentHighlight,
event.buf
)
then
local highlight_augroup =
vim.api.nvim_create_augroup('lsp-highlight', { clear = false })
vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.document_highlight,
})
vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, {
buffer = event.buf,
group = highlight_augroup,
callback = vim.lsp.buf.clear_references,
})
vim.api.nvim_create_autocmd('LspDetach', {
group = vim.api.nvim_create_augroup('lsp-detach', { clear = true }),
callback = function(event2)
vim.lsp.buf.clear_references()
vim.api.nvim_clear_autocmds {
group = 'lsp-highlight',
buffer = event2.buf,
}
end,
})
end
end,
})
-- Diagnostic Config
-- See :help vim.diagnostic.Opts
vim.diagnostic.config {
severity_sort = true,
float = { border = 'rounded', source = 'if_many' },
underline = { severity = vim.diagnostic.severity.ERROR },
signs = vim.g.have_nerd_font and {
text = {
[vim.diagnostic.severity.ERROR] = '󰅚 ',
[vim.diagnostic.severity.WARN] = '󰀪 ',
[vim.diagnostic.severity.INFO] = '󰋽 ',
[vim.diagnostic.severity.HINT] = '󰌶 ',
},
} or {},
virtual_text = {
source = 'if_many',
spacing = 2,
format = function(diagnostic)
local diagnostic_message = {
[vim.diagnostic.severity.ERROR] = diagnostic.message,
[vim.diagnostic.severity.WARN] = diagnostic.message,
[vim.diagnostic.severity.INFO] = diagnostic.message,
[vim.diagnostic.severity.HINT] = diagnostic.message,
}
return diagnostic_message[diagnostic.severity]
end,
},
}
local capabilities = require('blink.cmp').get_lsp_capabilities()
local servers = {
ansiblels = {},
ast_grep = {},
bashls = {},
cssls = {},
dockerls = {},
gopls = {
settings = {
gopls = {
hints = {
assignVariableTypes = true,
compositeLiteralFields = true,
compositeLiteralTypes = true,
constantValues = true,
functionTypeParameters = true,
parameterNames = true,
rangeVariableTypes = true,
}, },
}, },
})
end
lspconfig.jsonls.settings = {
json = {
schemas = require('schemastore').json.schemas(),
validate = { enable = true },
},
yaml = {
schemaStore = {
-- You must disable built-in SchemaStore support if you want to use
-- this plugin and its advanced options like `ignore`.
enable = false,
-- Avoid TypeError: Cannot read properties of undefined (reading 'length')
url = '',
}, },
schemas = require('schemastore').yaml.schemas(), },
validate = { enable = true }, html = {},
intelephense = {
init_options = {
licenceKey = vim.env.INTELEPHENSE_LICENSE or GetIntelephenseLicense() or nil,
},
},
jsonls = {},
lua_ls = {
settings = {
Lua = {
diagnostics = {
globals = { 'vim' },
disable = { 'missing-fields' },
},
completion = { callSnippet = 'Replace' },
workspace = { checkThirdParty = true },
hint = {
enable = true,
arrayIndex = 'Auto',
await = true,
paramName = 'All',
paramType = true,
semicolon = 'SameLine',
setType = false,
},
},
},
on_init = function(client)
client.config.settings.Lua.workspace.library = {
vim.env.VIMRUNTIME,
}
client.config.settings.Lua.runtime = { version = 'LuaJIT' }
client.notify(
'workspace/didChangeConfiguration',
{ settings = client.config.settings }
)
end,
},
omnisharp = {}, -- C# OmniSharp (will respect EditorConfig for formatting)
pyright = {},
tailwindcss = {},
terraformls = {},
ts_ls = {},
volar = {
settings = {
typescript = {
inlayHints = {
enumMemberValues = { enabled = true },
functionLikeReturnTypes = { enabled = true },
propertyDeclarationTypes = { enabled = true },
},
},
},
},
vimls = {},
eslint = {},
yamlls = {
settings = {
yaml = {
keyOrdering = false, -- don't auto-sort YAML keys on format
schemaStore = { enable = true }, -- use JSON Schema Store for validation
},
},
}, },
} }
-- Diagnostic configuration local ensure_installed = vim.tbl_keys(servers or {})
local signs = { vim.list_extend(ensure_installed, {
{ name = 'DiagnosticSignError', text = '' }, -- Error icon 'actionlint', -- GitHub Actions linter
{ name = 'DiagnosticSignWarn', text = '' }, -- Warning icon 'shfmt', -- Shell formatter
{ name = 'DiagnosticSignHint', text = '' }, -- Hint icon 'stylua', -- Lua formatter
{ name = 'DiagnosticSignInfo', text = '' }, -- Information icon 'shellcheck', -- Shell linter
})
require('mason-tool-installer').setup {
auto_install = true,
auto_update = true,
ensure_installed = ensure_installed,
} }
local function ensure_sign_defined(name, sign_opts) require('mason-conform').setup {
if vim.tbl_isempty(vim.fn.sign_getdefined(name)) then ensure_installed = ensure_installed,
vim.fn.sign_define(name, sign_opts) }
end
end
for _, sign in ipairs(signs) do require('mason-lspconfig').setup {
ensure_sign_defined(sign.name, { ensure_installed = {}, -- explicitly set to an empty table
text = sign.text, automatic_installation = false,
texthl = sign.texthl or sign.name, handlers = {
numhl = sign.numhl or sign.name, function(server_name)
}) local server = servers[server_name] or {}
end server.capabilities =
vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {})
---@type vim.diagnostic.Opts require('lspconfig')[server_name].setup(server)
local diagnostics_config = { end,
signs = {
active = signs, -- show signs
}, },
update_in_insert = false,
underline = true,
severity_sort = true,
virtual_text = true,
} }
vim.diagnostic.config(diagnostics_config) lazydev.setup {
---@type boolean|(fun(root:string):boolean?)
-- end of junnplus/lsp-setup config enabled = true,
debug = false,
runtime = vim.env.VIMRUNTIME --[[@as string]],
library = {
{ path = '${3rd}/luv/library', words = { 'vim%.uv' } },
},
integrations = {
lspconfig = true,
cmp = true,
},
}
end, end,
}, },
-- Lightweight yet powerful formatter plugin for Neovim
-- https://github.com/stevearc/conform.nvim
{
'stevearc/conform.nvim',
event = { 'BufWritePre' },
cmd = { 'ConformInfo' },
opts = {
notify_on_error = false,
---@type nil|conform.FormatOpts|fun(bufnr: integer): nil|conform.FormatOpts
format_on_save = function(bufnr)
-- Disable "format_on_save lsp_fallback" for languages that don't
-- have a well standardized coding style. You can add additional
-- languages here or re-enable it for the disabled ones.
local disable_filetypes = { c = true, cpp = true }
local lsp_format_opt
if disable_filetypes[vim.bo[bufnr].filetype] then
lsp_format_opt = 'never'
else
lsp_format_opt = 'fallback'
end
-- Disable autoformat for files in a certain paths
local bufname = vim.api.nvim_buf_get_name(bufnr)
if bufname:match '/dist|node_modules|vendor/' then return end
return {
timeout_ms = 500,
lsp_format = lsp_format_opt,
}
end,
formatters_by_ft = {
lua = { 'stylua' },
sh = { 'shfmt' },
bash = { 'shfmt' },
php = { 'phpcbf' },
python = { 'isort', 'black' },
-- Conform can also run multiple formatters sequentially
-- python = { "isort", "black" },
--
-- You can use 'stop_after_first' to run the first available formatter from the list
-- javascript = { "prettierd", "prettier", stop_after_first = true },
},
},
init = function()
-- If you want the formatexpr, here is the place to set it
vim.o.formatexpr = "v:lua.require'conform'.formatexpr()"
end,
},
-- Automatically install formatters registered with conform.nvim via mason.nvim
-- https://github.com/zapling/mason-conform.nvim
{ 'zapling/mason-conform.nvim', opts = {} },
} }

View File

@@ -54,9 +54,7 @@ return {
event_handlers = { event_handlers = {
{ {
event = 'file_opened', event = 'file_opened',
handler = function(_) handler = function(_) require('neo-tree.command').execute { action = 'close' } end,
require('neo-tree.command').execute { action = 'close' }
end,
}, },
}, },
default_component_configs = { default_component_configs = {

View File

@@ -1,44 +1,13 @@
return { return {
{
'rmagatti/auto-session',
lazy = false,
version = '*',
opts = {
suppressed_dirs = {
'/',
'~/',
'~/Downloads',
'~/Library',
},
bypass_save_filetypes = {
'PlenaryTestPopup',
'alpha',
'checkhealth',
'dashboard',
'dbout',
'gitsigns.blame',
'grug-far',
'help',
'lspinfo',
'man',
'neo-tree',
'neotest-output',
'neotest-output-panel',
'neotest-summary',
'notify',
'qf',
'spectre_panel',
'startuptime',
'trouble',
'tsplayground',
},
-- log_level = 'debug',
},
},
{ {
'nvim-lua/plenary.nvim', 'nvim-lua/plenary.nvim',
version = '*', version = '*',
lazy = false, lazy = false,
}, },
-- Vim plugin for automatic time tracking and metrics
-- generated from your programming activity.
-- https://github.com/wakatime/vim-wakatime
{ 'wakatime/vim-wakatime', lazy = false, enabled = true },
} }

View File

@@ -3,7 +3,8 @@ return {
-- https://github.com/nvim-telescope/telescope.nvim -- https://github.com/nvim-telescope/telescope.nvim
'nvim-telescope/telescope.nvim', 'nvim-telescope/telescope.nvim',
version = '*', version = '*',
lazy = false, lazy = true,
cmd = 'Telescope',
dependencies = { dependencies = {
{ 'nvim-lua/plenary.nvim' }, { 'nvim-lua/plenary.nvim' },
{ 'nvim-telescope/telescope-symbols.nvim' }, { 'nvim-telescope/telescope-symbols.nvim' },
@@ -16,10 +17,6 @@ return {
-- https://github.com/polirritmico/telescope-lazy-plugins.nvim -- https://github.com/polirritmico/telescope-lazy-plugins.nvim
{ 'polirritmico/telescope-lazy-plugins.nvim' }, { 'polirritmico/telescope-lazy-plugins.nvim' },
-- Neovim plugin. Telescope.nvim extension that adds LuaSnip integration.
-- https://github.com/benfowler/telescope-luasnip.nvim
{ 'benfowler/telescope-luasnip.nvim' },
-- Fuzzy Finder Algorithm which requires local dependencies to be built. -- Fuzzy Finder Algorithm which requires local dependencies to be built.
-- Only load if `make` is available -- Only load if `make` is available
{ {
@@ -27,27 +24,45 @@ return {
build = 'make', build = 'make',
cond = vim.fn.executable 'make' == 1, cond = vim.fn.executable 'make' == 1,
}, },
-- Import modules with ease
-- https://github.com/piersolenski/telescope-import.nvim
{ 'piersolenski/telescope-import.nvim' },
}, },
config = function() config = function()
local t = require 'telescope' local t = require 'telescope'
local a = require 'telescope.actions' local a = require 'telescope.actions'
local c = require 'telescope.config'
local open_with_trouble = require('trouble.sources.telescope').open local open_with_trouble = require('trouble.sources.telescope').open
local add_to_trouble = require('trouble.sources.telescope').add local add_to_trouble = require('trouble.sources.telescope').add
-- Clone the default Telescope configuration
local vimgrep_arguments = { unpack(c.values.vimgrep_arguments) }
-- I want to search in hidden/dot files.
table.insert(vimgrep_arguments, '--hidden')
-- I don't want to search in the `.git` directory.
table.insert(vimgrep_arguments, '--glob')
table.insert(vimgrep_arguments, '!**/.git/*')
-- [[ Configure Telescope ]] -- [[ Configure Telescope ]]
-- See `:help telescope` and `:help telescope.setup()` -- See `:help telescope` and `:help telescope.setup()`
t.setup { t.setup {
defaults = { defaults = {
-- `hidden = true` is not supported in text grep commands.
vimgrep_arguments = vimgrep_arguments,
layout_strategy = 'horizontal', layout_strategy = 'horizontal',
pickers = { pickers = {
find_files = { find_files = {
-- `hidden = true` will still show the inside of `.git/` as
-- it's not `.gitignore`d.
find_command = { 'rg', '--files', '--hidden', '--glob', '!**/.git/*' },
theme = 'dropdown', theme = 'dropdown',
}, },
mappings = {
i = {
['<C-s>'] = a.cycle_previewers_next,
['<C-a>'] = a.cycle_previewers_prev,
},
},
}, },
mappings = { mappings = {
i = { i = {
@@ -64,28 +79,28 @@ return {
}, },
}, },
}, },
highlight = {
enable = true,
additional_vim_regex_highlighting = false,
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = '<CR>',
node_incremental = '<CR>',
scope_incremental = '<TAB>',
node_decremental = '<S-TAB>',
},
},
context_commentstring = {
enable = true,
enable_autocmd = false,
},
extensions = { extensions = {
lazy_plugins = { lazy_plugins = {
-- Must be a valid path to the file containing the lazy spec and setup() call. -- Must be a valid path to the file containing the lazy spec and setup() call.
lazy_config = vim.fn.stdpath 'config' .. '/init.lua', lazy_config = vim.fn.stdpath 'config' .. '/init.lua',
}, },
import = {
-- Imports can be added at a specified line whilst keeping the cursor in place
insert_at_top = true,
-- Optionally support additional languages or modify existing languages...
custom_languages = {
{
-- The filetypes that ripgrep supports (find these via `rg --type-list`)
extensions = { 'js', 'ts' },
-- The Vim filetypes
filetypes = { 'vue' },
-- Optionally set a line other than 1
insert_at_line = 2, ---@type function|number
-- The regex pattern for the import statement
regex = [[^(?:import(?:[\"'\s]*([\w*{}\n, ]+)from\s*)?[\"'\s](.*?)[\"'\s].*)]],
},
},
},
}, },
} }

View File

@@ -1,17 +1,8 @@
return { return {
-- https://github.com/rmehri01/onenord.nvim
{ {
'rmehri01/onenord.nvim', 'rmehri01/onenord.nvim',
priority = 1000, -- Make sure to load this before all the other start plugins. opts = {},
opts = {
borders = true,
fade_nc = true,
disable = {
float_background = true,
},
},
}, },
-- Automatic dark mode -- Automatic dark mode
-- https://github.com/f-person/auto-dark-mode.nvim -- https://github.com/f-person/auto-dark-mode.nvim
{ {
@@ -33,6 +24,7 @@ return {
-- https://github.com/catgoose/nvim-colorizer.lua -- https://github.com/catgoose/nvim-colorizer.lua
{ {
'catgoose/nvim-colorizer.lua', 'catgoose/nvim-colorizer.lua',
event = 'BufReadPre',
opts = { opts = {
user_default_options = { user_default_options = {
names = false, names = false,
@@ -40,13 +32,27 @@ return {
}, },
}, },
-- A neovim plugin that shows colorcolumn dynamically
-- https://github.com/Bekaboo/deadcolumn.nvim
{ 'Bekaboo/deadcolumn.nvim' },
-- Remove all background colors to make nvim transparent -- Remove all background colors to make nvim transparent
-- https://github.com/xiyaowong/nvim-transparent -- https://github.com/xiyaowong/nvim-transparent
{ 'xiyaowong/nvim-transparent', opts = {} }, {
'xiyaowong/nvim-transparent',
lazy = false,
config = function()
local t = require 'transparent'
t.setup {
extra_groups = {
'NormalNC',
'NormalFloat',
'FloatBorder',
'TelescopeBorder',
'TelescopePromptBorder',
'TelescopeResultsBorder',
'TelescopePreviewBorder',
},
}
t.clear_prefix 'NeoTree'
end,
},
-- Display a character as the colorcolumn -- Display a character as the colorcolumn
-- https://github.com/lukas-reineke/virt-column.nvim -- https://github.com/lukas-reineke/virt-column.nvim

View File

@@ -1,4 +0,0 @@
-- Vim plugin for automatic time tracking and metrics
-- generated from your programming activity.
-- https://github.com/wakatime/vim-wakatime
return { 'wakatime/vim-wakatime', lazy = false, enabled = true }

View File

@@ -0,0 +1,31 @@
" Vim syntax file
" Language: env files (NOT shell code)
" Maintainer: Gernot Schulz <gernot.schulz@overleaf.com>
" Source: https://github.com/overleaf/vim-env-syntax
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
syn match envComment '^#.*'
syn match envVariableUnassigned "^\<\h\w*$"
syn match envVariable "^\<\h\w*\ze=" nextgroup=envVarAssign
syn match envVarAssign contained "=" nextgroup=envVar,envQuotedVarOpen,envSpace
syn match envVar contained "\h\w*"
syn match envSpace contained "\s\+" nextgroup=envQuotedVarOpen
syn match envQuotedVarOpen contained "[\"']"
syn match envSpace "\s$"
syn match envQuotedVarClose "[\"']$"
let b:current_syntax = "env"
hi def link envComment Comment
hi def link envVariableUnassigned Error
hi def link envVariable Identifier
hi def link envVarAssign Operator
hi def link envSpace Error
hi def link envQuotedVarOpen Error
hi def link envQuotedVarClose Error

2
config/op/plugins.sh Normal file
View File

@@ -0,0 +1,2 @@
export OP_PLUGIN_ALIASES_SOURCED=1
alias gh="op plugin run -- gh"

15
config/op/plugins/gh.json Normal file
View File

@@ -0,0 +1,15 @@
{
"account_id": "S5Z2DMNFKJEZBPCWRHRWC4DCGI",
"entrypoint": [
"gh"
],
"credentials": [
{
"plugin": "github",
"credential_type": "personal_access_token",
"usage_id": "personal_access_token",
"vault_id": "injcin7obv3jdet3r2u3kfihfy",
"item_id": "f6vinbnc6l7ngdzvlw66ayewlq"
}
]
}

View File

@@ -0,0 +1 @@
[{"account_id":"S5Z2DMNFKJEZBPCWRHRWC4DCGI","vault_id":"injcin7obv3jdet3r2u3kfihfy","item_id":"f6vinbnc6l7ngdzvlw66ayewlq"}]

View File

@@ -1,7 +1,7 @@
set-option -g status-style 'fg=#4c4f69,bg=#eff1f5' set-option -g status-style 'fg=#4c4f69,bg=default'
set-window-option -g window-status-style 'fg=#4c4f69,bg=#eff1f5 dim' set-window-option -g window-status-style 'fg=#4c4f69,bg=default dim'
set-window-option -g window-status-current-style 'fg=#8839ef,bg=#eff1f5' set-window-option -g window-status-current-style 'fg=#8839ef,bg=default'
set-window-option -g window-status-activity-style 'fg=#4c4f69,bg=#eff1f5 nodim' set-window-option -g window-status-activity-style 'fg=#4c4f69,bg=default nodim'
set-window-option -g window-status-bell-style 'fg=#4c4f69,bg=#eff1f5' set-window-option -g window-status-bell-style 'fg=#4c4f69,bg=default'
set -g message-style 'fg=#8839ef bg=#e6e9ef bold' # fg magenta, bg black set -g message-style 'fg=#8839ef bg=#e6e9ef bold' # fg magenta, bg black

View File

@@ -15,6 +15,9 @@
# -o : Set the option only if it is not already set. # -o : Set the option only if it is not already set.
# -u : Unset the specified option. # -u : Unset the specified option.
set -ag terminal-overrides ",xterm-256color:RGB"
set -ag terminal-features 'xterm-256color:RGB'
set -g default-terminal "tmux-256color" # Set default terminal to 256 colors set -g default-terminal "tmux-256color" # Set default terminal to 256 colors
set -g detach-on-destroy off # don't detach tmux when killing a session set -g detach-on-destroy off # don't detach tmux when killing a session
set -g display-time 0 # Hide clock set -g display-time 0 # Hide clock
@@ -53,7 +56,7 @@ set -g status-justify "left"
set -g status-left '' set -g status-left ''
set -g status-left-length "0" set -g status-left-length "0"
set -g status-position "bottom" set -g status-position "bottom"
set -g status-right "#S@#{hostname_short} #{tmux_mode_indicator}" set -g status-right "#S@#h #{tmux_mode_indicator}"
set -g status-right-length "30" set -g status-right-length "30"
set -g window-status-current-format ' #I:#W#{?window_zoomed_flag, ◈ ,} ' set -g window-status-current-format ' #I:#W#{?window_zoomed_flag, ◈ ,} '
set -g window-status-format ' #I:#W ' set -g window-status-format ' #I:#W '

View File

@@ -6,7 +6,7 @@ config.set_environment_variables = {
} }
-- Font and font size -- Font and font size
config.font_size = 14.0 config.font_size = 14.5
config.font = wezterm.font_with_fallback { config.font = wezterm.font_with_fallback {
{ {
family = 'Operator Mono', family = 'Operator Mono',
@@ -20,7 +20,7 @@ config.font = wezterm.font_with_fallback {
config.harfbuzz_features = { 'zero', 'ss01', 'cv05' } config.harfbuzz_features = { 'zero', 'ss01', 'cv05' }
-- Make the window a bit transparent -- Make the window a bit transparent
config.window_background_opacity = 0.98 config.window_background_opacity = 0.96
-- Don't show tab bar -- Don't show tab bar
config.enable_tab_bar = false config.enable_tab_bar = false

View File

@@ -35,11 +35,20 @@
glob: true glob: true
path: base/* path: base/*
prefix: '.' prefix: '.'
# Most of the configs
~/.config/: ~/.config/:
glob: true glob: true
relink: true relink: true
path: config/* path: config/*
exclude: [config/nvm, config/fzf] exclude: [config/nvm, config/fzf, config/op]
# 1Password CLI plugins
~/.config/op/plugins.sh:
relink: true
path: config/op/plugins.sh
~/.config/op/plugins/*:
relink: true
path: config/op/plugins/*
# Scripts
~/.local/bin: ~/.local/bin:
glob: true glob: true
path: local/bin/* path: local/bin/*
@@ -47,22 +56,27 @@
~/.local/fzf: ~/.local/fzf:
glob: true glob: true
path: config/fzf/* path: config/fzf/*
# Manuals
~/.local/man: ~/.local/man:
glob: true glob: true
path: local/man/** path: local/man/**
~/.local/share: ~/.local/share:
glob: true glob: true
path: local/share/* path: local/share/*
# SSH Configuration
~/.ssh/: ~/.ssh/:
glob: true glob: true
mode: 0600 mode: 0600
path: ssh/* path: ssh/*
- shell: - shell:
# Add Git submodules and remove old ones
- bash add-submodules.sh || true - bash add-submodules.sh || true
# Update submodules recursively
- git submodule update --init --recursive --force - git submodule update --init --recursive --force
- shell: - shell:
# Use my dotfiles manager to install everything
- bash local/bin/dfm install all - bash local/bin/dfm install all
- pipx: - pipx:

View File

@@ -1,4 +1,4 @@
column_width = 120 column_width = 90
line_endings = "Unix" line_endings = "Unix"
indent_type = "Spaces" indent_type = "Spaces"
indent_width = 2 indent_width = 2

View File

@@ -6947,9 +6947,9 @@ http-proxy-agent@^7.0.0:
debug "^4.3.4" debug "^4.3.4"
http-proxy-middleware@^2.0.3: http-proxy-middleware@^2.0.3:
version "2.0.7" version "2.0.9"
resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz#915f236d92ae98ef48278a95dedf17e991936ec6" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef"
integrity sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA== integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==
dependencies: dependencies:
"@types/http-proxy" "^1.17.8" "@types/http-proxy" "^1.17.8"
http-proxy "^1.18.1" http-proxy "^1.18.1"