Compare commits
5 Commits
8dce85cb37
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
1273a6cd74
|
|||
|
b4e15131d1
|
|||
|
35ecb0be35
|
|||
|
dae2881394
|
|||
|
1309266d65
|
@@ -3,4 +3,3 @@ require("config.keymaps")
|
|||||||
require("config.autocmds")
|
require("config.autocmds")
|
||||||
require("config.diagnostics")
|
require("config.diagnostics")
|
||||||
require("config.lazy")
|
require("config.lazy")
|
||||||
|
|
||||||
|
|||||||
@@ -9,4 +9,3 @@ vim.api.nvim_create_autocmd("TextYankPost", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- optional: auto format on save (handled by conform too, but this is a safe place for extra logic later)
|
-- optional: auto format on save (handled by conform too, but this is a safe place for extra logic later)
|
||||||
|
|
||||||
|
|||||||
@@ -18,4 +18,3 @@ vim.diagnostic.config({
|
|||||||
severity_sort = true,
|
severity_sort = true,
|
||||||
float = { border = "rounded", source = "if_many" },
|
float = { border = "rounded", source = "if_many" },
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -20,3 +20,13 @@ map("n", "<leader>fg", "<cmd>Telescope live_grep<cr>", { desc = "Live grep" })
|
|||||||
map("n", "<leader>fb", "<cmd>Telescope buffers<cr>", { desc = "Buffers" })
|
map("n", "<leader>fb", "<cmd>Telescope buffers<cr>", { desc = "Buffers" })
|
||||||
map("n", "<leader>fh", "<cmd>Telescope help_tags<cr>", { desc = "Help" })
|
map("n", "<leader>fh", "<cmd>Telescope help_tags<cr>", { desc = "Help" })
|
||||||
|
|
||||||
|
-- file tree
|
||||||
|
map("n", "<leader>tt", "<cmd>Neotree toggle<cr>", { desc = "Toggle file tree" })
|
||||||
|
map("n", "<leader>tf", "<cmd>Neotree reveal<cr>", { desc = "Reveal file in tree" })
|
||||||
|
|
||||||
|
-- Git
|
||||||
|
map("n", "<leader>gs", "<cmd>Git<cr>", { desc = "Git status" })
|
||||||
|
map("n", "<leader>gg", "<cmd>LazyGit<cr>", { desc = "LazyGit" })
|
||||||
|
map("n", "<leader>gd", "<cmd>DiffviewOpen<cr>", { desc = "Diffview open" })
|
||||||
|
map("n", "<leader>gD", "<cmd>DiffviewClose<cr>", { desc = "Diffview close" })
|
||||||
|
map("n", "<leader>gh", "<cmd>DiffviewFileHistory<cr>", { desc = "Diffview file history" })
|
||||||
|
|||||||
@@ -19,4 +19,3 @@ require("lazy").setup({
|
|||||||
checker = { enabled = true },
|
checker = { enabled = true },
|
||||||
ui = { border = "rounded" },
|
ui = { border = "rounded" },
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,12 @@
|
|||||||
vim.g.mapleader = " "
|
vim.g.mapleader = " "
|
||||||
vim.g.maplocalleader = " "
|
vim.g.maplocalleader = " "
|
||||||
|
|
||||||
|
local mason_bin = vim.fn.stdpath("data") .. "/mason/bin"
|
||||||
|
local path = vim.env.PATH or ""
|
||||||
|
if not string.find(path, mason_bin, 1, true) then
|
||||||
|
vim.env.PATH = mason_bin .. ":" .. path
|
||||||
|
end
|
||||||
|
|
||||||
local opt = vim.opt
|
local opt = vim.opt
|
||||||
opt.number = true
|
opt.number = true
|
||||||
opt.relativenumber = true
|
opt.relativenumber = true
|
||||||
@@ -28,4 +34,3 @@ opt.timeoutlen = 400
|
|||||||
|
|
||||||
opt.clipboard = "unnamedplus"
|
opt.clipboard = "unnamedplus"
|
||||||
opt.undofile = true
|
opt.undofile = true
|
||||||
|
|
||||||
|
|||||||
@@ -65,4 +65,3 @@ return {
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,13 @@
|
|||||||
return {
|
return {
|
||||||
{ "nvim-lua/plenary.nvim", lazy = true },
|
{ "nvim-lua/plenary.nvim", lazy = true },
|
||||||
|
|
||||||
{ "folke/which-key.nvim", event = "VeryLazy", opts = {} },
|
{ "folke/which-key.nvim", event = "VeryLazy", opts = {} },
|
||||||
|
|
||||||
{ "numToStr/Comment.nvim", event = "VeryLazy", opts = {} },
|
{ "numToStr/Comment.nvim", event = "VeryLazy", opts = {} },
|
||||||
|
|
||||||
{ "kylechui/nvim-surround", event = "VeryLazy", opts = {} },
|
{ "kylechui/nvim-surround", event = "VeryLazy", opts = {} },
|
||||||
|
|
||||||
{ "windwp/nvim-autopairs", event = "InsertEnter", opts = {} },
|
{ "windwp/nvim-autopairs", event = "InsertEnter", opts = {} },
|
||||||
|
|
||||||
{ "lewis6991/gitsigns.nvim", event = "VeryLazy", opts = {} },
|
{ "wakatime/vim-wakatime", lazy = false },
|
||||||
|
|
||||||
{ 'wakatime/vim-wakatime', lazy = false },
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"towolf/vim-helm",
|
||||||
|
lazy = false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hashivim/vim-terraform",
|
||||||
|
ft = { "terraform", "hcl" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ekalinin/Dockerfile.vim",
|
||||||
|
ft = { "dockerfile" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pearofducks/ansible-vim",
|
||||||
|
lazy = false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"b0o/schemastore.nvim",
|
||||||
|
lazy = true,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"nvim-neo-tree/neo-tree.nvim",
|
||||||
|
branch = "v3.x",
|
||||||
|
cmd = "Neotree",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"nvim-tree/nvim-web-devicons",
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
sources = { "filesystem", "buffers", "git_status" },
|
||||||
|
close_if_last_window = true,
|
||||||
|
filesystem = {
|
||||||
|
follow_current_file = { enabled = true },
|
||||||
|
hijack_netrw_behavior = "open_default",
|
||||||
|
use_libuv_file_watcher = true,
|
||||||
|
},
|
||||||
|
window = { width = 32 },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"lewis6991/gitsigns.nvim",
|
||||||
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
|
opts = {
|
||||||
|
on_attach = function(bufnr)
|
||||||
|
local gs = package.loaded.gitsigns
|
||||||
|
local map = function(mode, lhs, rhs, desc)
|
||||||
|
vim.keymap.set(mode, lhs, rhs, { buffer = bufnr, desc = desc })
|
||||||
|
end
|
||||||
|
|
||||||
|
map("n", "]h", gs.next_hunk, "Next hunk")
|
||||||
|
map("n", "[h", gs.prev_hunk, "Prev hunk")
|
||||||
|
map("n", "<leader>hs", gs.stage_hunk, "Stage hunk")
|
||||||
|
map("n", "<leader>hS", gs.stage_buffer, "Stage buffer")
|
||||||
|
map("n", "<leader>hr", gs.reset_hunk, "Reset hunk")
|
||||||
|
map("n", "<leader>hR", gs.reset_buffer, "Reset buffer")
|
||||||
|
map("n", "<leader>hp", gs.preview_hunk, "Preview hunk")
|
||||||
|
map("n", "<leader>hb", gs.blame_line, "Blame line")
|
||||||
|
map("n", "<leader>hd", gs.diffthis, "Diff this")
|
||||||
|
map("n", "<leader>hD", function() gs.diffthis("~") end, "Diff this ~")
|
||||||
|
map("n", "<leader>ht", gs.toggle_current_line_blame, "Toggle line blame")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"tpope/vim-fugitive",
|
||||||
|
cmd = { "Git", "G", "Gdiffsplit", "Gvdiffsplit", "Gedit" },
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"sindrets/diffview.nvim",
|
||||||
|
cmd = { "DiffviewOpen", "DiffviewClose", "DiffviewFileHistory" },
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"kdheepak/lazygit.nvim",
|
||||||
|
cmd = {
|
||||||
|
"LazyGit",
|
||||||
|
"LazyGitConfig",
|
||||||
|
"LazyGitCurrentFile",
|
||||||
|
"LazyGitFilter",
|
||||||
|
"LazyGitFilterCurrentFile",
|
||||||
|
},
|
||||||
|
dependencies = { "nvim-lua/plenary.nvim" },
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -1,79 +1,172 @@
|
|||||||
local function lsp_keymaps(ev)
|
local function lsp_keymaps(ev)
|
||||||
local buf = ev.buf
|
local buf = ev.buf
|
||||||
local map = function(mode, lhs, rhs, desc)
|
local map = function(mode, lhs, rhs, desc)
|
||||||
vim.keymap.set(mode, lhs, rhs, { buffer = buf, desc = desc })
|
vim.keymap.set(mode, lhs, rhs, { buffer = buf, desc = desc })
|
||||||
end
|
end
|
||||||
|
|
||||||
map("n", "K", vim.lsp.buf.hover, "Hover")
|
map("n", "K", vim.lsp.buf.hover, "Hover")
|
||||||
map("n", "gd", vim.lsp.buf.definition, "Go to definition")
|
map("n", "gd", vim.lsp.buf.definition, "Go to definition")
|
||||||
map("n", "gD", vim.lsp.buf.declaration, "Go to declaration")
|
map("n", "gD", vim.lsp.buf.declaration, "Go to declaration")
|
||||||
map("n", "gr", vim.lsp.buf.references, "References")
|
map("n", "gr", vim.lsp.buf.references, "References")
|
||||||
map("n", "gi", vim.lsp.buf.implementation, "Implementation")
|
map("n", "gi", vim.lsp.buf.implementation, "Implementation")
|
||||||
map("n", "<leader>rn", vim.lsp.buf.rename, "Rename")
|
map("n", "<leader>rn", vim.lsp.buf.rename, "Rename")
|
||||||
map("n", "<leader>ca", vim.lsp.buf.code_action, "Code action")
|
map("n", "<leader>ca", vim.lsp.buf.code_action, "Code action")
|
||||||
|
|
||||||
if vim.lsp.inlay_hint then
|
if vim.lsp.inlay_hint then
|
||||||
pcall(vim.lsp.inlay_hint.enable, true, { bufnr = buf })
|
pcall(vim.lsp.inlay_hint.enable, true, { bufnr = buf })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
{ "williamboman/mason.nvim", cmd = "Mason", opts = {} },
|
{ "williamboman/mason.nvim", cmd = "Mason", opts = {} },
|
||||||
|
|
||||||
{
|
{
|
||||||
"williamboman/mason-lspconfig.nvim",
|
"williamboman/mason-lspconfig.nvim",
|
||||||
event = "VeryLazy",
|
event = "VeryLazy",
|
||||||
dependencies = { "mason.nvim" },
|
dependencies = { "mason.nvim" },
|
||||||
opts = {
|
opts = {
|
||||||
ensure_installed = { "clangd", "gopls", "pyright", "lua_ls" },
|
ensure_installed = {
|
||||||
automatic_installation = true,
|
"clangd",
|
||||||
|
"gopls",
|
||||||
|
"pyright",
|
||||||
|
"lua_ls",
|
||||||
|
"rust_analyzer",
|
||||||
|
"asm_lsp",
|
||||||
|
"terraformls",
|
||||||
|
"ansiblels",
|
||||||
|
"dockerls",
|
||||||
|
"yamlls",
|
||||||
|
"jsonls",
|
||||||
|
"helm_ls",
|
||||||
|
},
|
||||||
|
automatic_installation = true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
|
||||||
|
|
||||||
-- Keep nvim-lspconfig installed (it provides server definitions),
|
-- Keep nvim-lspconfig installed (it provides server definitions),
|
||||||
-- but DO NOT call require("lspconfig") anymore.
|
-- but DO NOT call require("lspconfig") anymore.
|
||||||
{
|
{
|
||||||
"neovim/nvim-lspconfig",
|
"neovim/nvim-lspconfig",
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
dependencies = { "hrsh7th/cmp-nvim-lsp" },
|
dependencies = { "hrsh7th/cmp-nvim-lsp", "b0o/schemastore.nvim" },
|
||||||
config = function()
|
config = function()
|
||||||
vim.api.nvim_create_autocmd("LspAttach", { callback = lsp_keymaps })
|
vim.api.nvim_create_autocmd("LspAttach", { callback = lsp_keymaps })
|
||||||
|
|
||||||
local caps = vim.lsp.protocol.make_client_capabilities()
|
local caps = vim.lsp.protocol.make_client_capabilities()
|
||||||
local ok, cmp_lsp = pcall(require, "cmp_nvim_lsp")
|
local ok, cmp_lsp = pcall(require, "cmp_nvim_lsp")
|
||||||
if ok then
|
if ok then
|
||||||
caps = cmp_lsp.default_capabilities(caps)
|
caps = cmp_lsp.default_capabilities(caps)
|
||||||
end
|
end
|
||||||
|
|
||||||
vim.lsp.config("clangd", {
|
vim.lsp.config("clangd", {
|
||||||
capabilities = caps,
|
capabilities = caps,
|
||||||
cmd = { "clangd", "--background-index", "--clang-tidy", "--header-insertion=iwyu" },
|
cmd = { "clangd", "--background-index", "--clang-tidy", "--header-insertion=iwyu" },
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.lsp.config("gopls", {
|
vim.lsp.config("gopls", {
|
||||||
capabilities = caps,
|
capabilities = caps,
|
||||||
settings = {
|
settings = {
|
||||||
gopls = {
|
gopls = {
|
||||||
staticcheck = true,
|
staticcheck = true,
|
||||||
analyses = { unusedparams = true, nilness = true, shadow = true },
|
analyses = { unusedparams = true, nilness = true, shadow = true },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.lsp.config("pyright", { capabilities = caps })
|
vim.lsp.config("pyright", { capabilities = caps })
|
||||||
|
|
||||||
vim.lsp.config("lua_ls", {
|
vim.lsp.config("lua_ls", {
|
||||||
capabilities = caps,
|
capabilities = caps,
|
||||||
settings = {
|
settings = {
|
||||||
Lua = {
|
Lua = {
|
||||||
diagnostics = { globals = { "vim" } },
|
diagnostics = { globals = { "vim" } },
|
||||||
workspace = { checkThirdParty = false },
|
workspace = { checkThirdParty = false },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.lsp.enable({ "clangd", "gopls", "pyright", "lua_ls" })
|
vim.lsp.config("rust_analyzer", {
|
||||||
end,
|
capabilities = caps,
|
||||||
},
|
settings = {
|
||||||
|
["rust-analyzer"] = {
|
||||||
|
cargo = { allFeatures = true },
|
||||||
|
checkOnSave = { command = "clippy" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.lsp.config("asm_lsp", {
|
||||||
|
capabilities = caps,
|
||||||
|
filetypes = { "asm", "nasm" },
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.lsp.config("terraformls", { capabilities = caps })
|
||||||
|
vim.lsp.config("ansiblels", { capabilities = caps })
|
||||||
|
vim.lsp.config("dockerls", { capabilities = caps })
|
||||||
|
|
||||||
|
local k8s_schema = "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.27.0-standalone-strict/all.json"
|
||||||
|
local schemastore_ok, schemastore = pcall(require, "schemastore")
|
||||||
|
local yaml_schemas = {}
|
||||||
|
local json_schemas = {}
|
||||||
|
|
||||||
|
if schemastore_ok then
|
||||||
|
yaml_schemas = schemastore.yaml.schemas()
|
||||||
|
json_schemas = schemastore.json.schemas()
|
||||||
|
end
|
||||||
|
|
||||||
|
yaml_schemas[k8s_schema] = {
|
||||||
|
"k8s/**/*.yaml",
|
||||||
|
"k8s/**/*.yml",
|
||||||
|
"kubernetes/**/*.yaml",
|
||||||
|
"kubernetes/**/*.yml",
|
||||||
|
"*.k8s.yaml",
|
||||||
|
"*.k8s.yml",
|
||||||
|
}
|
||||||
|
|
||||||
|
yaml_schemas["https://json.schemastore.org/kustomization.json"] = {
|
||||||
|
"kustomization.yaml",
|
||||||
|
"kustomization.yml",
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.lsp.config("yamlls", {
|
||||||
|
capabilities = caps,
|
||||||
|
settings = {
|
||||||
|
yaml = {
|
||||||
|
validate = true,
|
||||||
|
format = { enable = true },
|
||||||
|
schemaStore = { enable = false, url = "" },
|
||||||
|
schemas = yaml_schemas,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.lsp.config("jsonls", {
|
||||||
|
capabilities = caps,
|
||||||
|
settings = {
|
||||||
|
json = {
|
||||||
|
validate = { enable = true },
|
||||||
|
schemaStore = { enable = false, url = "" },
|
||||||
|
schemas = json_schemas,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.lsp.config("helm_ls", { capabilities = caps })
|
||||||
|
|
||||||
|
vim.lsp.enable({
|
||||||
|
"clangd",
|
||||||
|
"gopls",
|
||||||
|
"pyright",
|
||||||
|
"lua_ls",
|
||||||
|
"rust_analyzer",
|
||||||
|
"asm_lsp",
|
||||||
|
"terraformls",
|
||||||
|
"ansiblels",
|
||||||
|
"dockerls",
|
||||||
|
"yamlls",
|
||||||
|
"jsonls",
|
||||||
|
"helm_ls",
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,46 +1,47 @@
|
|||||||
return {
|
return {
|
||||||
-- formatting
|
-- formatting
|
||||||
{
|
{
|
||||||
"stevearc/conform.nvim",
|
"stevearc/conform.nvim",
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
event = { "BufReadPre", "BufNewFile" },
|
||||||
opts = {
|
opts = {
|
||||||
format_on_save = { timeout_ms = 1500, lsp_fallback = true },
|
format_on_save = { timeout_ms = 1500, lsp_fallback = true },
|
||||||
formatters_by_ft = {
|
formatters_by_ft = {
|
||||||
c = { "clang_format" },
|
c = { "clang_format" },
|
||||||
cpp = { "clang_format" },
|
cpp = { "clang_format" },
|
||||||
go = { "gofmt", "goimports" },
|
go = { "gofmt", "goimports" },
|
||||||
python = { "isort", "black" },
|
terraform = { "terraform_fmt" },
|
||||||
lua = { "stylua" },
|
rust = { "rustfmt" },
|
||||||
json = { "prettier" },
|
python = { "isort", "black" },
|
||||||
yaml = { "prettier" },
|
lua = { "stylua" },
|
||||||
markdown = { "prettier" },
|
json = { "prettier" },
|
||||||
},
|
yaml = { "prettier" },
|
||||||
},
|
markdown = { "prettier" },
|
||||||
config = function(_, opts)
|
},
|
||||||
require("conform").setup(opts)
|
},
|
||||||
vim.keymap.set("n", "<leader>f", function()
|
config = function(_, opts)
|
||||||
require("conform").format({ lsp_fallback = true })
|
require("conform").setup(opts)
|
||||||
end, { desc = "Format buffer" })
|
vim.keymap.set("n", "<leader>f", function()
|
||||||
end,
|
require("conform").format({ lsp_fallback = true })
|
||||||
},
|
end, { desc = "Format buffer" })
|
||||||
|
|
||||||
-- linting (optional but nice)
|
|
||||||
{
|
|
||||||
"mfussenegger/nvim-lint",
|
|
||||||
event = { "BufReadPost", "BufNewFile" },
|
|
||||||
config = function()
|
|
||||||
local lint = require("lint")
|
|
||||||
lint.linters_by_ft = {
|
|
||||||
python = { "flake8" },
|
|
||||||
go = { "golangcilint" },
|
|
||||||
}
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd({ "BufWritePost", "InsertLeave" }, {
|
|
||||||
callback = function()
|
|
||||||
lint.try_lint()
|
|
||||||
end,
|
end,
|
||||||
})
|
},
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
-- linting (optional but nice)
|
||||||
|
{
|
||||||
|
"mfussenegger/nvim-lint",
|
||||||
|
event = { "BufReadPost", "BufNewFile" },
|
||||||
|
config = function()
|
||||||
|
local lint = require("lint")
|
||||||
|
lint.linters_by_ft = {
|
||||||
|
python = { "flake8" },
|
||||||
|
go = { "golangcilint" },
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "BufWritePost", "InsertLeave" }, {
|
||||||
|
callback = function()
|
||||||
|
lint.try_lint()
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
return {
|
return {
|
||||||
{
|
{
|
||||||
"nvim-treesitter/nvim-treesitter",
|
"nvim-treesitter/nvim-treesitter",
|
||||||
build = ":TSUpdate",
|
build = ":TSUpdate",
|
||||||
event = { "BufReadPost", "BufNewFile" },
|
event = { "BufReadPost", "BufNewFile" },
|
||||||
opts = {
|
opts = {
|
||||||
ensure_installed = {
|
ensure_installed = {
|
||||||
"c", "cpp", "go", "python", "lua",
|
"c", "cpp", "go", "rust", "python", "lua", "asm", "nasm",
|
||||||
"bash", "json", "yaml", "toml",
|
"terraform", "hcl", "dockerfile",
|
||||||
"markdown", "markdown_inline",
|
"bash", "json", "yaml", "toml",
|
||||||
"regex", "vim", "vimdoc",
|
"markdown", "markdown_inline",
|
||||||
},
|
"regex", "vim", "vimdoc",
|
||||||
auto_install = true,
|
},
|
||||||
sync_install = false,
|
auto_install = true,
|
||||||
highlight = { enable = true },
|
sync_install = false,
|
||||||
indent = { enable = true },
|
highlight = { enable = true },
|
||||||
|
indent = { enable = true },
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
require("nvim-treesitter").setup(opts)
|
||||||
|
end,
|
||||||
},
|
},
|
||||||
config = function(_, opts)
|
|
||||||
require("nvim-treesitter").setup(opts)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,4 +38,3 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
/Users/itq/dotfiles/.config/nvim
|
|
||||||
@@ -1,145 +1,50 @@
|
|||||||
# ################################################################ #
|
|
||||||
# THE FOLLOWING IS AN EXPLANATION OF THE GRAMMAR THAT SKHD PARSES. #
|
|
||||||
# FOR SIMPLE EXAMPLE MAPPINGS LOOK FURTHER DOWN THIS FILE.. #
|
|
||||||
# ################################################################ #
|
|
||||||
|
|
||||||
# A list of all built-in modifier and literal keywords can
|
|
||||||
# be found at https://github.com/koekeishiya/skhd/issues/1
|
|
||||||
#
|
|
||||||
# A hotkey is written according to the following rules:
|
|
||||||
#
|
|
||||||
# hotkey = <mode> '<' <action> | <action>
|
|
||||||
#
|
|
||||||
# mode = 'name of mode' | <mode> ',' <mode>
|
|
||||||
#
|
|
||||||
# action = <keysym> '[' <proc_map_lst> ']' | <keysym> '->' '[' <proc_map_lst> ']'
|
|
||||||
# <keysym> ':' <command> | <keysym> '->' ':' <command>
|
|
||||||
# <keysym> ';' <mode> | <keysym> '->' ';' <mode>
|
|
||||||
#
|
|
||||||
# keysym = <mod> '-' <key> | <key>
|
|
||||||
#
|
|
||||||
# mod = 'modifier keyword' | <mod> '+' <mod>
|
|
||||||
#
|
|
||||||
# key = <literal> | <keycode>
|
|
||||||
#
|
|
||||||
# literal = 'single letter or built-in keyword'
|
|
||||||
#
|
|
||||||
# keycode = 'apple keyboard kVK_<Key> values (0x3C)'
|
|
||||||
#
|
|
||||||
# proc_map_lst = * <proc_map>
|
|
||||||
#
|
|
||||||
# proc_map = <string> ':' <command> | <string> '~' |
|
|
||||||
# '*' ':' <command> | '*' '~'
|
|
||||||
#
|
|
||||||
# string = '"' 'sequence of characters' '"'
|
|
||||||
#
|
|
||||||
# command = command is executed through '$SHELL -c' and
|
|
||||||
# follows valid shell syntax. if the $SHELL environment
|
|
||||||
# variable is not set, it will default to '/bin/bash'.
|
|
||||||
# when bash is used, the ';' delimeter can be specified
|
|
||||||
# to chain commands.
|
|
||||||
#
|
|
||||||
# to allow a command to extend into multiple lines,
|
|
||||||
# prepend '\' at the end of the previous line.
|
|
||||||
#
|
|
||||||
# an EOL character signifies the end of the bind.
|
|
||||||
#
|
|
||||||
# -> = keypress is not consumed by skhd
|
|
||||||
#
|
|
||||||
# * = matches every application not specified in <proc_map_lst>
|
|
||||||
#
|
|
||||||
# ~ = application is unbound and keypress is forwarded per usual, when specified in a <proc_map>
|
|
||||||
#
|
|
||||||
# A mode is declared according to the following rules:
|
|
||||||
#
|
|
||||||
# mode_decl = '::' <name> '@' ':' <command> | '::' <name> ':' <command> |
|
|
||||||
# '::' <name> '@' | '::' <name>
|
|
||||||
#
|
|
||||||
# name = desired name for this mode,
|
|
||||||
#
|
|
||||||
# @ = capture keypresses regardless of being bound to an action
|
|
||||||
#
|
|
||||||
# command = command is executed through '$SHELL -c' and
|
|
||||||
# follows valid shell syntax. if the $SHELL environment
|
|
||||||
# variable is not set, it will default to '/bin/bash'.
|
|
||||||
# when bash is used, the ';' delimeter can be specified
|
|
||||||
# to chain commands.
|
|
||||||
#
|
|
||||||
# to allow a command to extend into multiple lines,
|
|
||||||
# prepend '\' at the end of the previous line.
|
|
||||||
#
|
|
||||||
# an EOL character signifies the end of the bind.
|
|
||||||
|
|
||||||
# ############################################################### #
|
|
||||||
# THE FOLLOWING SECTION CONTAIN SIMPLE MAPPINGS DEMONSTRATING HOW #
|
|
||||||
# TO INTERACT WITH THE YABAI WM. THESE ARE SUPPOSED TO BE USED AS #
|
|
||||||
# A REFERENCE ONLY, WHEN MAKING YOUR OWN CONFIGURATION.. #
|
|
||||||
# ############################################################### #
|
|
||||||
|
|
||||||
# focus window
|
# focus window
|
||||||
# alt - h : yabai -m window --focus west
|
alt - h : yabai -m window --focus west
|
||||||
|
alt - j : yabai -m window --focus south
|
||||||
|
alt - k : yabai -m window --focus north
|
||||||
|
alt - l : yabai -m window --focus east
|
||||||
|
|
||||||
# swap managed window
|
# swap managed window
|
||||||
# shift + alt - h : yabai -m window --swap north
|
shift + alt - h : yabai -m window --swap west
|
||||||
|
shift + alt - j : yabai -m window --swap south
|
||||||
|
shift + alt - k : yabai -m window --swap north
|
||||||
|
shift + alt - l : yabai -m window --swap east
|
||||||
|
|
||||||
# move managed window
|
# move managed window
|
||||||
# shift + cmd - h : yabai -m window --warp east
|
shift + cmd - h : yabai -m window --warp west
|
||||||
|
shift + cmd - j : yabai -m window --warp south
|
||||||
|
shift + cmd - k : yabai -m window --warp north
|
||||||
|
shift + cmd - l : yabai -m window --warp east
|
||||||
|
|
||||||
# balance size of windows
|
# balance size of windows
|
||||||
# shift + alt - 0 : yabai -m space --balance
|
shift + alt - 0 : yabai -m space --balance
|
||||||
|
|
||||||
# make floating window fill screen
|
|
||||||
# shift + alt - up : yabai -m window --grid 1:1:0:0:1:1
|
|
||||||
|
|
||||||
# make floating window fill left-half of screen
|
|
||||||
# shift + alt - left : yabai -m window --grid 1:2:0:0:1:1
|
|
||||||
|
|
||||||
# create desktop, move window and follow focus - uses jq for parsing json (brew install jq)
|
|
||||||
# shift + cmd - n : yabai -m space --create && \
|
|
||||||
# index="$(yabai -m query --spaces --display | jq 'map(select(."is-native-fullscreen" == false))[-1].index')" && \
|
|
||||||
# yabai -m window --space "${index}" && \
|
|
||||||
# yabai -m space --focus "${index}"
|
|
||||||
|
|
||||||
# fast focus desktop
|
|
||||||
# cmd + alt - x : yabai -m space --focus recent
|
|
||||||
# cmd + alt - 1 : yabai -m space --focus 1
|
|
||||||
|
|
||||||
# send window to desktop and follow focus
|
|
||||||
# shift + cmd - z : yabai -m window --space next; yabai -m space --focus next
|
|
||||||
# shift + cmd - 2 : yabai -m window --space 2; yabai -m space --focus 2
|
|
||||||
|
|
||||||
# focus monitor
|
# focus monitor
|
||||||
# ctrl + alt - z : yabai -m display --focus prev
|
ctrl + alt - z : yabai -m display --focus next
|
||||||
# ctrl + alt - 3 : yabai -m display --focus 3
|
ctrl + alt - x : yabai -m display --focus prev
|
||||||
|
ctrl + alt - 1 : yabai -m display --focus 1
|
||||||
# send window to monitor and follow focus
|
ctrl + alt - 2 : yabai -m display --focus 2
|
||||||
# ctrl + cmd - c : yabai -m window --display next; yabai -m display --focus next
|
ctrl + alt - 3 : yabai -m display --focus 3
|
||||||
# ctrl + cmd - 1 : yabai -m window --display 1; yabai -m display --focus 1
|
ctrl + alt - 4 : yabai -m display --focus 4
|
||||||
|
|
||||||
# move floating window
|
|
||||||
# shift + ctrl - a : yabai -m window --move rel:-20:0
|
|
||||||
# shift + ctrl - s : yabai -m window --move rel:0:20
|
|
||||||
|
|
||||||
# increase window size
|
# increase window size
|
||||||
# shift + alt - a : yabai -m window --resize left:-20:0
|
shift + alt - h : yabai -m window --resize lbeft:-20:0
|
||||||
# shift + alt - w : yabai -m window --resize top:0:-20
|
shift + alt - l : yabai -m window --resize right:20:0
|
||||||
|
shift + alt - k : yabai -m window --resize top:0:-20
|
||||||
|
shift + alt - j : yabai -m window --resize bottom:0:20
|
||||||
|
|
||||||
# decrease window size
|
# decrease window size
|
||||||
# shift + cmd - s : yabai -m window --resize bottom:0:-20
|
shift + cmd - h : yabai -m window --resize left:20:0
|
||||||
# shift + cmd - w : yabai -m window --resize top:0:20
|
shift + cmd - l : yabai -m window --resize right:-20:0
|
||||||
|
shift + cmd - k : yabai -m window --resize top:0:20
|
||||||
# set insertion point in focused container
|
shift + cmd - j : yabai -m window --resize bottom:0:-20
|
||||||
# ctrl + alt - h : yabai -m window --insert west
|
|
||||||
|
|
||||||
# toggle window zoom
|
|
||||||
# alt - d : yabai -m window --toggle zoom-parent
|
|
||||||
# alt - f : yabai -m window --toggle zoom-fullscreen
|
|
||||||
|
|
||||||
# toggle window split type
|
# toggle window split type
|
||||||
# alt - e : yabai -m window --toggle split
|
alt - e : yabai -m window --toggle split
|
||||||
|
|
||||||
# float / unfloat window and center on screen
|
# float / unfloat window and center on screen
|
||||||
# alt - t : yabai -m window --toggle float --grid 4:4:1:1:2:2
|
alt - t : yabai -m window --toggle float --grid 4:4:1:1:2:2
|
||||||
|
|
||||||
|
# applications shortcuts
|
||||||
|
cmd + shift - t : wezterm start
|
||||||
|
|
||||||
# toggle sticky(+float), picture-in-picture
|
|
||||||
# alt - p : yabai -m window --toggle sticky --toggle pip
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ yabai -m config top_padding 1
|
|||||||
yabai -m config bottom_padding 1
|
yabai -m config bottom_padding 1
|
||||||
yabai -m config right_padding 1
|
yabai -m config right_padding 1
|
||||||
yabai -m config left_padding 1
|
yabai -m config left_padding 1
|
||||||
yabai -m config window_gap 10
|
yabai -m config window_gap 3
|
||||||
# mouse settings
|
# mouse settings
|
||||||
# yabai -m config mouse_follows_focus on
|
# yabai -m config mouse_follows_focus on
|
||||||
yabai -m config mouse_modifier alt
|
yabai -m config mouse_modifier alt
|
||||||
@@ -74,45 +74,5 @@ yabai -m rule --add app="^V2BOX$" manage=off
|
|||||||
yabai -m rule --add app="^Raycast$" manage=off
|
yabai -m rule --add app="^Raycast$" manage=off
|
||||||
yabai -m rule --add app="^Archive Utility$" manage=off
|
yabai -m rule --add app="^Archive Utility$" manage=off
|
||||||
|
|
||||||
# focus window
|
|
||||||
alt - j : yabai -m window --focus west
|
|
||||||
alt - k : yabai -m window --focus south
|
|
||||||
alt - i : yabai -m window --focus north
|
|
||||||
alt - l : yabai -m window --focus east
|
|
||||||
|
|
||||||
# swap managed window
|
|
||||||
shift + alt - i : yabai -m window --swap north
|
|
||||||
shift + alt - k : yabai -m window --swap south
|
|
||||||
shift + alt - j : yabai -m window --swap west
|
|
||||||
shift + alt - l : yabai -m window --swap east
|
|
||||||
# move managed window
|
|
||||||
shift + cmd - j : yabai -m window --warp west
|
|
||||||
shift + cmd - i : yabai -m window --warp north
|
|
||||||
shift + cmd - k : yabai -m window --warp south
|
|
||||||
shift + cmd - l : yabai -m window --warp east
|
|
||||||
# balance size of windows
|
|
||||||
shift + alt - 0 : yabai -m space --balance
|
|
||||||
# focus monitor
|
|
||||||
ctrl + alt - z : yabai -m display --focus next
|
|
||||||
ctrl + alt - x : yabai -m display --focus prev
|
|
||||||
ctrl + alt - 1 : yabai -m display --focus 1
|
|
||||||
ctrl + alt - 2 : yabai -m display --focus 2
|
|
||||||
ctrl + alt - 3 : yabai -m display --focus 3
|
|
||||||
ctrl + alt - 4 : yabai -m display --focus 4
|
|
||||||
# increase window size
|
|
||||||
shift + alt - a : yabai -m window --resize left:-20:0
|
|
||||||
shift + alt - d : yabai -m window --resize right:-20:0
|
|
||||||
shift + alt - w : yabai -m window --resize top:0:-20
|
|
||||||
shift + alt - s : yabai -m window --resize bottom:0:20
|
|
||||||
# decrease window size
|
|
||||||
shift + cmd - s : yabai -m window --resize bottom:0:-20
|
|
||||||
shift + cmd - w : yabai -m window --resize top:0:20
|
|
||||||
shift + cmd - a : yabai -m window --resize left:20:0
|
|
||||||
shift + cmd - d : yabai -m window --resize right:20:0
|
|
||||||
# toggle window split type
|
|
||||||
alt - e : yabai -m window --toggle split
|
|
||||||
# float / unfloat window and center on screen
|
|
||||||
alt - t : yabai -m window --toggle float --grid 4:4:1:1:2:2
|
|
||||||
|
|
||||||
echo "yabai configuration loaded.."
|
echo "yabai configuration loaded.."
|
||||||
|
|
||||||
|
|||||||
@@ -103,7 +103,8 @@ export SYSTEMD_PAGER=
|
|||||||
export TALOSCONFIG=/Users/itq/.talos/config
|
export TALOSCONFIG=/Users/itq/.talos/config
|
||||||
|
|
||||||
# Aliases
|
# Aliases
|
||||||
alias tf=terraform
|
alias please='sudo'
|
||||||
|
alias tf='terraform'
|
||||||
alias calc='_(){ awk "BEGIN{print $*}";};_'
|
alias calc='_(){ awk "BEGIN{print $*}";};_'
|
||||||
alias dive='docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock docker.io/wagoodman/dive'
|
alias dive='docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock docker.io/wagoodman/dive'
|
||||||
alias cdt='cd $(mktemp -d)'
|
alias cdt='cd $(mktemp -d)'
|
||||||
@@ -114,6 +115,9 @@ alias bat='bat --style=plain'
|
|||||||
alias netshoot='docker run -it --rm --net host docker.io/nicolaka/netshoot:latest'
|
alias netshoot='docker run -it --rm --net host docker.io/nicolaka/netshoot:latest'
|
||||||
alias vim='nvim'
|
alias vim='nvim'
|
||||||
alias yz=''
|
alias yz=''
|
||||||
|
alias jpy='jupyter lab --port 8888 --IdentityProvider.token "" --ip 0.0.0.0'
|
||||||
|
alias mtr='orb run -m debian-amd64 mtr'
|
||||||
|
alias o2g='oci2git'
|
||||||
# K8S
|
# K8S
|
||||||
alias ktx=kubectx
|
alias ktx=kubectx
|
||||||
alias kns=kubens
|
alias kns=kubens
|
||||||
@@ -131,6 +135,10 @@ alias stegoveritas='docker run -it --rm -v /:/mnt bannsec/stegoveritas'
|
|||||||
alias jadx='java -jar /Users/itq/Infosec/tools/jadx-1.5.5-all.jar'
|
alias jadx='java -jar /Users/itq/Infosec/tools/jadx-1.5.5-all.jar'
|
||||||
alias jd-gui='java -jar /Users/itq/Infosec/tools/jd-gui-1.6.6-min.jar'
|
alias jd-gui='java -jar /Users/itq/Infosec/tools/jd-gui-1.6.6-min.jar'
|
||||||
alias пороль='head -c64 /dev/random | base64 | tr -d "/" | head -c32'
|
alias пороль='head -c64 /dev/random | base64 | tr -d "/" | head -c32'
|
||||||
|
# Exercises
|
||||||
|
alias awkexercises='/Users/itq/Infosec/tools/exercises/.venv/bin/awkexercises'
|
||||||
|
alias grepexercises='/Users/itq/Infosec/tools/exercises/.venv/bin/grepexercises'
|
||||||
|
alias sedexercises='/Users/itq/Infosec/tools/exercises/.venv/bin/sedexercises'
|
||||||
|
|
||||||
# Brew
|
# Brew
|
||||||
HOMEBREW_NO_AUTO_UPDATE=1
|
HOMEBREW_NO_AUTO_UPDATE=1
|
||||||
|
|||||||
Reference in New Issue
Block a user