Merge branch 'main' of git.snaile.de:luca/dotfiles
This commit is contained in:
commit
3799050795
16 changed files with 1446 additions and 7 deletions
|
@ -1 +0,0 @@
|
||||||
Subproject commit aaf8fd6be6829b81f5456c741cf987bd2ab10a2c
|
|
15
.config/nvim/.neoconf.json
Normal file
15
.config/nvim/.neoconf.json
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"neodev": {
|
||||||
|
"library": {
|
||||||
|
"enabled": true,
|
||||||
|
"plugins": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"neoconf": {
|
||||||
|
"plugins": {
|
||||||
|
"lua_ls": {
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
87
.config/nvim/init.lua
Normal file
87
.config/nvim/init.lua
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
_G.Config = require("config")
|
||||||
|
_G.Lib = require("lib")
|
||||||
|
|
||||||
|
-- NOTE: lazy.nvim setup
|
||||||
|
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
|
||||||
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
|
vim.fn.system({
|
||||||
|
"git",
|
||||||
|
"clone",
|
||||||
|
"--filter=blob:none",
|
||||||
|
"https://github.com/folke/lazy.nvim.git",
|
||||||
|
"--branch=stable",
|
||||||
|
lazypath,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
|
||||||
|
|
||||||
|
require("lazy").setup({
|
||||||
|
spec = {
|
||||||
|
{
|
||||||
|
"LazyVim/LazyVim",
|
||||||
|
import = "lazyvim.plugins",
|
||||||
|
},
|
||||||
|
{ import = "lazyvim.plugins.extras.coding.copilot" },
|
||||||
|
{ import = "lazyvim.plugins.extras.coding.mini-surround" },
|
||||||
|
{ import = "lazyvim.plugins.extras.dap.core" },
|
||||||
|
{ import = "lazyvim.plugins.extras.editor.aerial" },
|
||||||
|
{ import = "lazyvim.plugins.extras.editor.leap" },
|
||||||
|
{ import = "lazyvim.plugins.extras.test.core" },
|
||||||
|
-- { import = "lazyvim.plugins.extras.ui.edgy" },
|
||||||
|
{ import = "lazyvim.plugins.extras.ui.mini-indentscope" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.ansible" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.docker" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.helm" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.markdown" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.python" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.rust" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.terraform" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.toml" },
|
||||||
|
{ import = "plugins" },
|
||||||
|
},
|
||||||
|
defaults = {
|
||||||
|
lazy = true,
|
||||||
|
version = false,
|
||||||
|
},
|
||||||
|
install = { colorscheme = { "tokyonight" } },
|
||||||
|
checker = { enabled = true },
|
||||||
|
performance = {
|
||||||
|
rtp = {
|
||||||
|
disabled_plugins = {
|
||||||
|
"gzip",
|
||||||
|
-- "matchit",
|
||||||
|
"matchparen",
|
||||||
|
"netrwPlugin",
|
||||||
|
"tarPlugin",
|
||||||
|
"tohtml",
|
||||||
|
"tutor",
|
||||||
|
"zipPlugin",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- NOTE: Autocmds
|
||||||
|
|
||||||
|
for _, autocmd in ipairs({
|
||||||
|
{ -- Automatically change line numeration
|
||||||
|
{ "BufEnter", "FocusGained", "InsertLeave", "WinEnter" },
|
||||||
|
{ command = 'if &nu && mode() != "i" | set rnu | endif' },
|
||||||
|
},
|
||||||
|
{ -- Automatically change line numeration
|
||||||
|
{ "BufLeave", "FocusLost", "InsertEnter", "WinLeave" },
|
||||||
|
{ command = "if &nu | set nornu | endif" },
|
||||||
|
},
|
||||||
|
{ -- Trigger shortcuts script
|
||||||
|
"BufWritePost",
|
||||||
|
{ pattern = { "directories", "files" }, command = "silent!!shortcuts" },
|
||||||
|
},
|
||||||
|
{ -- Trigger xrdb
|
||||||
|
"BufWritePost",
|
||||||
|
{ pattern = { "xresources" }, command = "silent!!xrdb %" },
|
||||||
|
},
|
||||||
|
}) do
|
||||||
|
vim.api.nvim_create_autocmd(autocmd[1], autocmd[2])
|
||||||
|
end
|
17
.config/nvim/lua/config/init.lua
Normal file
17
.config/nvim/lua/config/init.lua
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
---@class config
|
||||||
|
---@field ui config.ui
|
||||||
|
---@field language config.language
|
||||||
|
---@field shortcuts config.shortcuts
|
||||||
|
---@field secrets? config.secrets
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
setmetatable(M, {
|
||||||
|
__index = function(_, k)
|
||||||
|
local ok, mod = pcall(require, "config." .. k)
|
||||||
|
if ok then
|
||||||
|
return mod
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
return M
|
8
.config/nvim/lua/config/keymaps.lua
Normal file
8
.config/nvim/lua/config/keymaps.lua
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
-- Keymaps are automatically loaded on the VeryLazy event
|
||||||
|
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||||
|
-- Add any additional keymaps here
|
||||||
|
|
||||||
|
local unmap = vim.api.nvim_del_keymap
|
||||||
|
|
||||||
|
unmap("n", "<Leader>uL")
|
||||||
|
unmap("n", "<Leader>ul")
|
16
.config/nvim/lua/config/options.lua
Normal file
16
.config/nvim/lua/config/options.lua
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
-- Options are automatically loaded before lazy.nvim startup
|
||||||
|
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||||
|
-- Add any additional options here
|
||||||
|
|
||||||
|
local o = vim.opt
|
||||||
|
local g = vim.g
|
||||||
|
|
||||||
|
o.shiftwidth = 4
|
||||||
|
o.tabstop = 4
|
||||||
|
o.scrolloff = 8
|
||||||
|
o.conceallevel = 0
|
||||||
|
|
||||||
|
g.loaded_node_provider = 0
|
||||||
|
g.loaded_perl_provider = 0
|
||||||
|
g.loaded_python3_provider = 0
|
||||||
|
g.loaded_ruby_provider = 0
|
22
.config/nvim/lua/config/shortcuts.lua
Normal file
22
.config/nvim/lua/config/shortcuts.lua
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
-- NOTE: Managed by shortcuts script
|
||||||
|
---@class config.shortcuts
|
||||||
|
return {
|
||||||
|
gh = "/home/luca",
|
||||||
|
gch = "/home/luca/.cache",
|
||||||
|
gcf = "/home/luca/.config",
|
||||||
|
gdt = "/home/luca/.local/share",
|
||||||
|
gst = "/home/luca/.local/state",
|
||||||
|
gsc = "/home/luca/.local/bin",
|
||||||
|
gle = "/home/luca/.local/libexec",
|
||||||
|
gmn = "/mnt",
|
||||||
|
gco = "/home/luca/Documents/dev",
|
||||||
|
gdl = "/home/luca/Downloads",
|
||||||
|
gdm = "/home/luca/Documents",
|
||||||
|
gdk = "/home/luca/Desktop",
|
||||||
|
gms = "/home/luca/Music",
|
||||||
|
gpc = "/home/luca/Pictures",
|
||||||
|
gvd = "/home/luca/Videos",
|
||||||
|
gds = "/home/luca/.local/share/stow/dots",
|
||||||
|
glg = "/home/luca/.local/log",
|
||||||
|
gsv = "/home/luca/.local/sv",
|
||||||
|
}
|
118
.config/nvim/lua/config/ui.lua
Normal file
118
.config/nvim/lua/config/ui.lua
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
M.banners = {
|
||||||
|
[[
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣶⣿⣿⣿⣷⣶⣤⡀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀
|
||||||
|
⠀⣀⣴⣶⣶⣶⣶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀
|
||||||
|
⣰⣿⣿⠿⠛⠿⢿⣿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀
|
||||||
|
⣿⣿⡇⠀⠀⠀⠀⠈⠛⢿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀
|
||||||
|
⠹⣿⣧⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⡿⠛⠉⠀⢀⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀
|
||||||
|
⠀⠙⢿⣧⡀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣷⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⣤⣶⣿⣿⣿⣿⣿⡿⠟⠁⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠉⠻⠷⡄⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠉⠀⢀⣠⣤⣤⣄⡀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠋⠁⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣷⡀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⡀⠀⠀⠀⠀⣿⠟⠉⠉⠙⢿⣿⣿⣷
|
||||||
|
⠀⠀⠀⣀⣠⣤⣤⣤⣶⣶⣶⣤⣤⠀⣴⣿⣿⣿⡿⠟⠛⠛⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠉⠀⠀⠀⢀⣼⣿⣿⡿
|
||||||
|
⠀⠀⠀⠈⠉⠉⠉⠉⠉⠉⠛⠻⠏⣼⣿⣿⡿⣋⣀⣤⣤⣴⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣄⣀⣠⣴⣾⣿⣿⡿⠁
|
||||||
|
⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⡿⠋⠘⠿⠟⠛⠛⢻⣿⣿⣿⠋⠁⠈⠉⢿⣿⣿⣧⠀⠙⠻⢿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠉⠀⠀
|
||||||
|
⠙⣷⣤⣀⠀⠀⠀⢀⣀⣤⣶⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡟⠀⠀⠀⢠⣿⣿⣿⡟⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠈⠛⠿⢿⣿⣿⣿⠿⠿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⡀⠀⢠⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣷⣶⣶⣶⣶⣦⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣙⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⢶⣦⣤⣶⣾⣿⣿⡶⠈⠉⠛⠿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⣶⡿⠿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
]],
|
||||||
|
[[
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡠⠤⠤⠤⠤⠤⠤⠤⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠤⠒⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠓⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⢀⡴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⡴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⢀⡞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢦⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⢀⡞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢇⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⡾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡆⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⢸⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⡀⠀⠀⠀⠀⠀
|
||||||
|
⠀⣾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⡇⠀⠀⠀⠀⠀
|
||||||
|
⢠⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⠀⠀⠀⠀⠀
|
||||||
|
⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠿⠿⠟⠁⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⠀⠀⠀⠀⠀
|
||||||
|
⣸⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⣀⡀⠀⠀⢉⣿⣿⠀⠀⠀⠀⠀
|
||||||
|
⣿⣿⣿⣿⣶⣦⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠻⠿⠿⠿⠟⠀⠀⣼⣿⡏⠀⠀⠀⠀⠀
|
||||||
|
⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣤⣤⣀⡀⠀⠀⢀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⢀⣴⣿⣿⡇⠀⠀⠀⠀⠀
|
||||||
|
⠀⠘⣿⣿⣿⣯⡉⠙⠛⠻⠿⢿⣿⣿⣿⣿⣿⣶⣿⣿⣿⣿⣶⣦⣄⣀⡀⠀⠀⠀⣀⣀⣠⣤⣾⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠸⣿⣿⣿⣷⣤⠀⠀⠀⠀⠀⠉⠙⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠙⣿⣿⣿⣿⣿⣶⣀⠀⠀⠀⠀⠀⠈⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠘⢿⣿⣿⣿⣿⣿⣿⣶⣶⣤⣄⠀⢀⠀⠉⢿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠀⠈⠙⠛⠻⠿⠿⠿⠀⢀⣠⣴⣶⣦⡀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣾⣿⣿⣿⣿⣿⣿⣿⣷⡀⢀⠀⠀⠀⠀⠀⠀⡀⢠⣿⠟⠉⠀⠀⠁⣀⡀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣷⣤⣦⣀⣤⣿⣿⣿⡀⠀⢀⣠⣾⣿⣿
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠃
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠻⠿⠿⠿⣿⡿⠿⠿⠿⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠀⠀⠀
|
||||||
|
]],
|
||||||
|
[[
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢒⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⡈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢣⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡌⡦⢠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡐⣸⠂⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠸⡢⡀⠀⠀⠀⠀⠀⠔⣰⠏⡌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⢖⡠⣨⠊⠒⠠⣀⢀⠊⣠⠃⡰⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠠⠀⠀⠠⠠⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⢰⠑⠚⠀⠀⠀⡉⠀⢇⡰⠀⠀⠀⠀⠀⢀⠠⠐⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠐⠤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠈⡄⠀⠀⠀⠀⠘⠠⠐⡇⠀⠀⠀⠠⠐⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⢃⠀⠀⠀⠀⠀⠀⢀⠁⠀⢀⠌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠀⠀⠼⢄⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⢸⠀⠀⠀⠀⠀⠀⢸⠀⢠⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠎⠀⠀⠀⠀⠀⠈⠢⠄⠀⠀⠀⠀
|
||||||
|
⠀⠀⢸⠀⠀⠀⠀⠀⠀⠸⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠎⠀⠀⠀⠀⠀⠀⡠⠀⠈⢆⠀⠀⠀
|
||||||
|
⠀⠀⠨⠀⠀⠀⠀⠀⠀⠀⢆⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠀⠀⠀⠀⠀⠀⡌⠀⠀⢎⠨⡄⠀⠀
|
||||||
|
⠀⠀⠀⡂⠀⠀⠀⠀⠀⠀⠈⢎⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠸⠀⠀⢸⠸⢀⠇⠀⠀
|
||||||
|
⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠡⢕⠠⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⠀⠀⠀⠀⠀⢐⠀⠀⠈⠢⠥⠀⠀⠀
|
||||||
|
⠀⠀⠀⢱⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⡉⠒⠠⣀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠰⡀⠀⠀⡰⠁⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⠠⢄⠈⠑⠒⠤⡀⠀⢐⠅⠀⠀⠀⠀⠀⠀⠀⡁⡂⠉⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠈⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠂⠤⢀⠓⠈⠢⢀⢀⠠⠤⠐⠀⡉⠌⠀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠰⠐⠪⠤⢀⢀⠀⠀⠀⠀⠀⠀
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠈⠁⠢⠄⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠂⠒⡠⠄
|
||||||
|
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠀⠂⠐⠐⠐⠂⠂⠠⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠄⠐⠂⠂⠀⠉⠀⠀⠀
|
||||||
|
]],
|
||||||
|
}
|
||||||
|
|
||||||
|
M.buttons = {
|
||||||
|
-- {
|
||||||
|
-- action = LazyVim.telescope("files"),
|
||||||
|
-- desc = " Find File" .. string.rep(" ", 33),
|
||||||
|
-- icon = " ",
|
||||||
|
-- key = "f",
|
||||||
|
-- },
|
||||||
|
{
|
||||||
|
action = "enew",
|
||||||
|
desc = " New File" .. string.rep(" ", 34),
|
||||||
|
icon = " ",
|
||||||
|
key = "n",
|
||||||
|
},
|
||||||
|
-- {
|
||||||
|
-- action = "Telescope live_grep",
|
||||||
|
-- desc = " Find Text" .. string.rep(" ", 33),
|
||||||
|
-- icon = " ",
|
||||||
|
-- key = "g",
|
||||||
|
-- },
|
||||||
|
-- {
|
||||||
|
-- action = "TodoTelescope",
|
||||||
|
-- desc = " Find Todo" .. string.rep(" ", 33),
|
||||||
|
-- icon = " ",
|
||||||
|
-- key = "t",
|
||||||
|
-- },
|
||||||
|
{
|
||||||
|
action = 'lua require("persistence").load()',
|
||||||
|
desc = " Restore Session" .. string.rep(" ", 27),
|
||||||
|
icon = " ",
|
||||||
|
key = "s",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
action = "qa",
|
||||||
|
desc = " Quit" .. string.rep(" ", 38),
|
||||||
|
icon = " ",
|
||||||
|
key = "q",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return M
|
25
.config/nvim/lua/lib.lua
Normal file
25
.config/nvim/lua/lib.lua
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
---@return table<string, function>
|
||||||
|
function M.generate_shortcut_maps()
|
||||||
|
local shortcuts = Config.shortcuts
|
||||||
|
local fs = require("neo-tree.sources.filesystem")
|
||||||
|
local maps = {}
|
||||||
|
for map, path in pairs(shortcuts) do
|
||||||
|
maps[map] = function(state)
|
||||||
|
fs._navigate_internal(state, path, nil, nil, false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return maps
|
||||||
|
end
|
||||||
|
|
||||||
|
---@param key string
|
||||||
|
---@return string?
|
||||||
|
function M.get_secret(key)
|
||||||
|
local ok, keys = pcall(require, "config.secrets")
|
||||||
|
if ok then
|
||||||
|
return keys[key]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
329
.config/nvim/lua/plugins/editor.lua
Normal file
329
.config/nvim/lua/plugins/editor.lua
Normal file
|
@ -0,0 +1,329 @@
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"echasnovski/mini.surround",
|
||||||
|
opts = {
|
||||||
|
custom_surroundings = {
|
||||||
|
B = {
|
||||||
|
input = { "{{ ().*() }}" },
|
||||||
|
output = { left = "{{ ", right = " }}" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"echasnovski/mini.ai",
|
||||||
|
opts = {
|
||||||
|
custom_textobjects = {
|
||||||
|
B = {
|
||||||
|
require("mini.ai").gen_spec.pair("{{ ", " }}"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ggandor/flit.nvim",
|
||||||
|
enabled = false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"NvChad/nvim-colorizer.lua",
|
||||||
|
cmd = { "ColorizerToggle", "ColorizerAttachToBuffer", "ColorizerDetachFromBuffer", "ColorizerReloadAllBuffers" },
|
||||||
|
opts = { user_default_options = { names = false } },
|
||||||
|
keys = { { "<leader>uH", "<cmd>ColorizerToggle<cr>", desc = "Toggle Colorizer" } },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"CopilotC-Nvim/CopilotChat.nvim",
|
||||||
|
dependencies = {
|
||||||
|
{ "zbirenbaum/copilot.lua" },
|
||||||
|
{ "nvim-lua/plenary.nvim" },
|
||||||
|
{
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
optional = true,
|
||||||
|
opts = { defaults = { ["<leader>a"] = { name = "+ai" }, ["<leader>ac"] = { name = "+copilot" } } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{ "<leader>acc", "<cmd>CopilotChatToggle<cr>", desc = "Toggle Chat", mode = { "n", "v" } },
|
||||||
|
{ "<leader>acx", "<cmd>CopilotChatReset<cr>", desc = "Reset Chat", mode = { "n", "v" } },
|
||||||
|
{ "<leader>acf", "<cmd>CopilotChatFix<cr>", desc = "Fix Selection", mode = { "v" } },
|
||||||
|
{ "<leader>ace", "<cmd>CopilotChatExplain<cr>", desc = "Explain Selection", mode = { "v" } },
|
||||||
|
{ "<leader>acr", "<cmd>CopilotChatExplain<cr>", desc = "Review Selection", mode = { "v" } },
|
||||||
|
{ "<leader>aco", "<cmd>CopilotChatOptimize<cr>", desc = "Optimize Selection", mode = { "v" } },
|
||||||
|
{ "<leader>acd", "<cmd>CopilotChatDocs<cr>", desc = "Document Selection", mode = { "v" } },
|
||||||
|
{ "<leader>act", "<cmd>CopilotChatTests<cr>", desc = "Unittest Selection", mode = { "v" } },
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
window = {
|
||||||
|
layout = "float",
|
||||||
|
width = 0.9,
|
||||||
|
height = 0.8,
|
||||||
|
},
|
||||||
|
mappings = {
|
||||||
|
complete = {
|
||||||
|
detail = "Use @<Tab> or /<Tab> for options.",
|
||||||
|
insert = "<Tab>",
|
||||||
|
},
|
||||||
|
close = {
|
||||||
|
normal = "q",
|
||||||
|
insert = "<C-c>",
|
||||||
|
},
|
||||||
|
reset = {
|
||||||
|
normal = "<C-l>",
|
||||||
|
insert = "<C-l>",
|
||||||
|
},
|
||||||
|
submit_prompt = {
|
||||||
|
normal = "<CR>",
|
||||||
|
insert = "<C-CR>",
|
||||||
|
},
|
||||||
|
accept_diff = {
|
||||||
|
normal = "<C-y>",
|
||||||
|
insert = "<C-y>",
|
||||||
|
},
|
||||||
|
yank_diff = {
|
||||||
|
normal = "gy",
|
||||||
|
},
|
||||||
|
show_diff = {
|
||||||
|
normal = "gd",
|
||||||
|
},
|
||||||
|
show_system_prompt = {
|
||||||
|
normal = "gp",
|
||||||
|
},
|
||||||
|
show_user_selection = {
|
||||||
|
normal = "gs",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"jackMort/ChatGPT.nvim",
|
||||||
|
cmd = { "ChatGPT", "ChatGPTActAs", "ChatGPTEditWithInstructions", "ChatGPTRun" },
|
||||||
|
dependencies = {
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"folke/trouble.nvim",
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
{
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
optional = true,
|
||||||
|
opts = {
|
||||||
|
defaults = {
|
||||||
|
["<leader>a"] = { name = "+ai" },
|
||||||
|
["<leader>ag"] = { name = "+chatgpt" },
|
||||||
|
["<leader>agt"] = { name = "+translate" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
local key = Lib.get_secret("openai")
|
||||||
|
if key then
|
||||||
|
require("chatgpt.api").OPENAI_API_KEY = key
|
||||||
|
require("chatgpt.api").AUTHORIZATION_HEADER = "Authorization: Bearer " .. key
|
||||||
|
require("chatgpt").setup(opts)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
--stylua: ignore
|
||||||
|
keys = {
|
||||||
|
{ "<leader>agc", function() require("chatgpt").openChat() end, desc = "Toggle Chat" },
|
||||||
|
{ "<leader>age", function() require("chatgpt").edit_with_instructions() end, desc = "Edit with instruction", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agg", function() require("chatgpt").run_action("grammar_correction") end, desc = "Grammar Correction", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agtg", function() require("chatgpt").run_action({ fargs = { "translate", "german" } }) end, desc = "German", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agte", function() require("chatgpt").run_action({ fargs = { "translate", "english" } }) end, desc = "English", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agtf", function() require("chatgpt").run_action({ fargs = { "translate", "french" } }) end, desc = "French", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agtr", function() require("chatgpt").run_action({ fargs = { "translate", "russian" } }) end, desc = "Russian", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agk", function() require("chatgpt").run_action({ fargs = { "keywords" } }) end, desc = "Keywords", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agd", function() require("chatgpt").run_action({ fargs = { "docstring" } }) end, desc = "Docstring", mode = { "n", "v" } },
|
||||||
|
{ "<leader>aga", function() require("chatgpt").run_action({ fargs = { "add_tests" } }) end, desc = "Add Tests", mode = { "n", "v" } },
|
||||||
|
{ "<leader>ago", function() require("chatgpt").run_action({ fargs = { "optimize_code" } }) end, desc = "Optimize Code", mode = { "n", "v" } },
|
||||||
|
{ "<leader>ags", function() require("chatgpt").run_action({ fargs = { "summarize" } }) end, desc = "Summarize", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agf", function() require("chatgpt").run_action({ fargs = { "fix_bugs" } }) end, desc = "Fix Bugs", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agx", function() require("chatgpt").run_action({ fargs = { "explain_code" } }) end, desc = "Explain Code", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agr", function() require("chatgpt").run_action({ fargs = { "roxygen_edit" } }) end, desc = "Roxygen Edit", mode = { "n", "v" } },
|
||||||
|
{ "<leader>agl", function() require("chatgpt").run_action({ fargs = { "code_readability_analysis" } }) end, desc = "Code Readability Analysis", mode = { "n", "v" } },
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
edit_with_instructions = {
|
||||||
|
keymaps = {
|
||||||
|
close = "<C-c>",
|
||||||
|
accept = "<C-y>",
|
||||||
|
toggle_diff = "<C-d>",
|
||||||
|
toggle_settings = "<C-o>",
|
||||||
|
toggle_help = "<C-.>",
|
||||||
|
cycle_windows = "<Tab>",
|
||||||
|
use_output_as_input = "<C-,>",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
chat = {
|
||||||
|
question_sign = "",
|
||||||
|
answer_sign = "",
|
||||||
|
sessions_window = {
|
||||||
|
active_sign = " ",
|
||||||
|
inactive_sign = " ",
|
||||||
|
current_line_sign = "",
|
||||||
|
border = {
|
||||||
|
style = "single",
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
keymaps = {
|
||||||
|
close = "<C-c>",
|
||||||
|
yank_last = "<C-y>",
|
||||||
|
yank_last_code = "<C-p>",
|
||||||
|
scroll_up = "<C-u>",
|
||||||
|
scroll_down = "<C-d>",
|
||||||
|
new_session = "<C-g>",
|
||||||
|
cycle_windows = "<Tab>",
|
||||||
|
cycle_modes = "<C-f>",
|
||||||
|
next_message = "<C-n>",
|
||||||
|
prev_message = "<C-p>",
|
||||||
|
select_session = "<Space>",
|
||||||
|
rename_session = "r",
|
||||||
|
delete_session = "d",
|
||||||
|
draft_message = "<C-r>",
|
||||||
|
edit_message = "e",
|
||||||
|
delete_message = "d",
|
||||||
|
toggle_settings = "<C-o>",
|
||||||
|
toggle_sessions = "<C-s>",
|
||||||
|
toggle_help = "<C-.>",
|
||||||
|
toggle_message_role = "<C-,>",
|
||||||
|
toggle_system_role_open = "<C-'>",
|
||||||
|
stop_generating = "<C-x>",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
popup_layout = {
|
||||||
|
default = "center",
|
||||||
|
center = {
|
||||||
|
width = "90%",
|
||||||
|
height = "80%",
|
||||||
|
},
|
||||||
|
right = {
|
||||||
|
width = "30%",
|
||||||
|
width_settings_open = "50%",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
popup_window = {
|
||||||
|
border = {
|
||||||
|
style = "single",
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
system_window = {
|
||||||
|
border = {
|
||||||
|
style = "single",
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
popup_input = {
|
||||||
|
border = {
|
||||||
|
style = "single",
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
|
||||||
|
},
|
||||||
|
submit = "<C-Enter>",
|
||||||
|
submit_n = "<Enter>",
|
||||||
|
},
|
||||||
|
settings_window = {
|
||||||
|
border = {
|
||||||
|
style = "single",
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
help_window = {
|
||||||
|
border = {
|
||||||
|
style = "single",
|
||||||
|
},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
openai_params = {
|
||||||
|
-- model = "gpt-3.5-turbo",
|
||||||
|
model = "gpt-4-turbo",
|
||||||
|
},
|
||||||
|
openai_edit_params = {
|
||||||
|
-- model = "gpt-3.5-turbo",
|
||||||
|
model = "gpt-4-turbo",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nvim-neo-tree/neo-tree.nvim",
|
||||||
|
opts = {
|
||||||
|
filesystem = {
|
||||||
|
window = {
|
||||||
|
mappings = Lib.generate_shortcut_maps(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"folke/todo-comments.nvim",
|
||||||
|
opts = {
|
||||||
|
highlight = {
|
||||||
|
multiline = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"zk-org/zk-nvim",
|
||||||
|
ft = { "markdown" },
|
||||||
|
main = "zk",
|
||||||
|
dependencies = {
|
||||||
|
{
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
optional = true,
|
||||||
|
opts = { defaults = { ["<leader>z"] = { name = "+zk" } } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
picker = "telescope",
|
||||||
|
lsp = {
|
||||||
|
cmd = { "zk", "lsp" },
|
||||||
|
name = "zk",
|
||||||
|
config = {
|
||||||
|
on_attach = function(client)
|
||||||
|
if client.name == "zk" then
|
||||||
|
require("zk").cd()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
auto_attach = {
|
||||||
|
enabled = true,
|
||||||
|
filetypes = { "markdown" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
--stylua: ignore
|
||||||
|
keys = {
|
||||||
|
{ "<leader>zn", function() require("zk.commands").get("ZkNew")({ title = vim.fn.input('Title: ') }) end, desc = "New Note", mode = { "n", "v" } },
|
||||||
|
{ "<leader>znt", function() require("zk.commands").get("ZkNewFromTitleSelection")() end, desc = "Title from selection", mode = { "v" } },
|
||||||
|
{
|
||||||
|
"<leader>znc",
|
||||||
|
function()
|
||||||
|
require("zk.commands").get("ZkNewFromContentSelection")({
|
||||||
|
title = vim.fn.input(
|
||||||
|
'Title: ')
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
desc = "Content from selection",
|
||||||
|
mode = { "v" }
|
||||||
|
},
|
||||||
|
{ "<leader>zb", function() require("zk.commands").get("ZkBacklinks")() end, desc = "Links" },
|
||||||
|
{ "<leader>zl", function() require("zk.commands").get("ZkLinks")() end, desc = "Backlinks" },
|
||||||
|
{ "<leader>zx", function() require("zk.commands").get("ZkIndex")() end, desc = "Index" },
|
||||||
|
{ "<leader>zf", function() require("zk.commands").get("ZkNotes")({ sort = { 'modified' } }) end, desc = "Find Notes" },
|
||||||
|
{ "<leader>zt", function() require("zk.commands").get("ZkTags")() end, desc = "Find Note Tags" },
|
||||||
|
{ "<leader>zf", function() require("zk.commands").get("ZkMatch")() end, desc = "Find Notes (Match Selection)", mode = { "v" } },
|
||||||
|
{ "<leader>zi", function() require("zk.commands").get("ZkInsertLinkAtSelection")() end, desc = "Insert Link", mode = { "n", "v" } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
24
.config/nvim/lua/plugins/language.lua
Normal file
24
.config/nvim/lua/plugins/language.lua
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"stevearc/conform.nvim",
|
||||||
|
opts = {
|
||||||
|
formatters = {
|
||||||
|
shfmt = { prepend_args = { "-i", "4", "-ci" } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
opts = {
|
||||||
|
servers = {
|
||||||
|
intelephense = {
|
||||||
|
init_options = {
|
||||||
|
storagePath = os.getenv("XDG_CACHE_HOME") .. "/intelephense",
|
||||||
|
globalStoragePath = os.getenv("XDG_CONFIG_HOME") .. "/intelephense",
|
||||||
|
licenceKey = require("lib").get_secret("intelephense"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
84
.config/nvim/lua/plugins/ui.lua
Normal file
84
.config/nvim/lua/plugins/ui.lua
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
---@type LazySpec
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"folke/tokyonight.nvim",
|
||||||
|
lazy = true,
|
||||||
|
opts = {
|
||||||
|
style = "night",
|
||||||
|
on_colors = function(c)
|
||||||
|
c.border = c.bg_highlight
|
||||||
|
c.border_highlight = c.blue
|
||||||
|
end,
|
||||||
|
on_highlights = function(hl, _)
|
||||||
|
hl.CurSearch = nil
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"folke/noice.nvim",
|
||||||
|
opts = {
|
||||||
|
cmdline = {
|
||||||
|
view = "cmdline",
|
||||||
|
presets = {
|
||||||
|
command_palette = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nvimdev/dashboard-nvim",
|
||||||
|
opts = function(_, opts)
|
||||||
|
local center = Config.ui.buttons
|
||||||
|
local banners = Config.ui.banners
|
||||||
|
for _, button in ipairs(center) do
|
||||||
|
button.desc = button.desc .. string.rep(" ", 43 - #button.desc)
|
||||||
|
button.key_format = " %s"
|
||||||
|
end
|
||||||
|
math.randomseed(os.time())
|
||||||
|
local banner = "\n" .. banners[math.random(#banners)] .. "\n"
|
||||||
|
opts.config.header = vim.split(banner, "\n")
|
||||||
|
opts.config.center = center
|
||||||
|
opts.config.footer = function()
|
||||||
|
local stats = require("lazy").stats()
|
||||||
|
local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)
|
||||||
|
return { "Behold: a Snail's Vim | " .. stats.count .. " " .. ms .. "ms" }
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"echasnovski/mini.indentscope",
|
||||||
|
opts = {
|
||||||
|
draw = {
|
||||||
|
animation = require("mini.indentscope").gen_animation.none(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
opts = {
|
||||||
|
sections = {
|
||||||
|
lualine_y = {
|
||||||
|
{
|
||||||
|
function()
|
||||||
|
--stylua: ignore
|
||||||
|
local chars = { "", "", "", "", "", "", "", "", "", "", "", "", "" }
|
||||||
|
return chars[math.ceil(vim.fn.line(".") / vim.fn.line("$") * #chars)]
|
||||||
|
end,
|
||||||
|
separator = " ",
|
||||||
|
padding = { left = 1, right = 0 },
|
||||||
|
},
|
||||||
|
{ "location", padding = { left = 0, right = 1 } },
|
||||||
|
},
|
||||||
|
lualine_z = {
|
||||||
|
{
|
||||||
|
"o:encoding",
|
||||||
|
fmt = string.upper,
|
||||||
|
separator = " ",
|
||||||
|
padding = { left = 1, right = 0 },
|
||||||
|
},
|
||||||
|
{ "fileformat", padding = { left = 0, right = 1 } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
10
.config/nvim/spell/en.utf-8.add
Normal file
10
.config/nvim/spell/en.utf-8.add
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
ansible
|
||||||
|
submodules
|
||||||
|
roundcube
|
||||||
|
postgres
|
||||||
|
binpkgs
|
||||||
|
hostdir
|
||||||
|
config
|
||||||
|
wireguard
|
||||||
|
Webchecks
|
||||||
|
fail2ban
|
3
.config/nvim/stylua.toml
Normal file
3
.config/nvim/stylua.toml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
indent_type = "Spaces"
|
||||||
|
indent_width = 4
|
||||||
|
column_width = 120
|
672
.config/zsh/completions/_rbw
Normal file
672
.config/zsh/completions/_rbw
Normal file
|
@ -0,0 +1,672 @@
|
||||||
|
#compdef rbw
|
||||||
|
|
||||||
|
autoload -U is-at-least
|
||||||
|
|
||||||
|
_rbw() {
|
||||||
|
typeset -A opt_args
|
||||||
|
typeset -a _arguments_options
|
||||||
|
local ret=1
|
||||||
|
|
||||||
|
if is-at-least 5.2; then
|
||||||
|
_arguments_options=(-s -S -C)
|
||||||
|
else
|
||||||
|
_arguments_options=(-s -C)
|
||||||
|
fi
|
||||||
|
|
||||||
|
local context curcontext="$curcontext" state line
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
'-V[Print version]' \
|
||||||
|
'--version[Print version]' \
|
||||||
|
":: :_rbw_commands" \
|
||||||
|
"*::: :->rbw" \
|
||||||
|
&& ret=0
|
||||||
|
case $state in
|
||||||
|
(rbw)
|
||||||
|
words=($line[1] "${words[@]}")
|
||||||
|
(( CURRENT += 1 ))
|
||||||
|
curcontext="${curcontext%:*:*}:rbw-command-$line[1]:"
|
||||||
|
case $line[1] in
|
||||||
|
(config)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
":: :_rbw__config_commands" \
|
||||||
|
"*::: :->config" \
|
||||||
|
&& ret=0
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(config)
|
||||||
|
words=($line[1] "${words[@]}")
|
||||||
|
(( CURRENT += 1 ))
|
||||||
|
curcontext="${curcontext%:*:*}:rbw-config-command-$line[1]:"
|
||||||
|
case $line[1] in
|
||||||
|
(show)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(set)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
':key -- Configuration key to set:' \
|
||||||
|
':value -- Value to set the configuration option to:' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(unset)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
':key -- Configuration key to unset:' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(help)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
":: :_rbw__config__help_commands" \
|
||||||
|
"*::: :->help" \
|
||||||
|
&& ret=0
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(help)
|
||||||
|
words=($line[1] "${words[@]}")
|
||||||
|
(( CURRENT += 1 ))
|
||||||
|
curcontext="${curcontext%:*:*}:rbw-config-help-command-$line[1]:"
|
||||||
|
case $line[1] in
|
||||||
|
(show)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(set)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(unset)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(help)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
(register)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help (see more with '\''--help'\'')]' \
|
||||||
|
'--help[Print help (see more with '\''--help'\'')]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(login)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(unlock)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(unlocked)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(sync)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(list)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'*--fields=[Fields to display. Available options are id, name, user, folder. Multiple fields will be separated by tabs.]:FIELDS: ' \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(get)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--folder=[Folder name to search in]:FOLDER: ' \
|
||||||
|
'-f+[Field to get]:FIELD: ' \
|
||||||
|
'--field=[Field to get]:FIELD: ' \
|
||||||
|
'--full[Display the notes in addition to the password]' \
|
||||||
|
'--raw[Display output as JSON]' \
|
||||||
|
'--clipboard[Copy result to clipboard]' \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
':name -- Name or UUID of the entry to display:' \
|
||||||
|
'::user -- Username of the entry to display:' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(code)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--folder=[Folder name to search in]:FOLDER: ' \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
':name -- Name or UUID of the entry to display:' \
|
||||||
|
'::user -- Username of the entry to display:' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(add)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'*--uri=[URI for the password entry]:URI: ' \
|
||||||
|
'--folder=[Folder for the password entry]:FOLDER: ' \
|
||||||
|
'-h[Print help (see more with '\''--help'\'')]' \
|
||||||
|
'--help[Print help (see more with '\''--help'\'')]' \
|
||||||
|
':name -- Name of the password entry:' \
|
||||||
|
'::user -- Username for the password entry:' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(generate)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'*--uri=[URI for the password entry]:URI: ' \
|
||||||
|
'--folder=[Folder for the password entry]:FOLDER: ' \
|
||||||
|
'--no-symbols[Generate a password with no special characters]' \
|
||||||
|
'--only-numbers[Generate a password consisting of only numbers]' \
|
||||||
|
'--nonconfusables[Generate a password without visually similar characters (useful for passwords intended to be written down)]' \
|
||||||
|
'--diceware[Generate a password of multiple dictionary words chosen from the EFF word list. The len parameter for this option will set the number of words to generate, rather than characters.]' \
|
||||||
|
'-h[Print help (see more with '\''--help'\'')]' \
|
||||||
|
'--help[Print help (see more with '\''--help'\'')]' \
|
||||||
|
':len -- Length of the password to generate:' \
|
||||||
|
'::name -- Name of the password entry:' \
|
||||||
|
'::user -- Username for the password entry:' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(edit)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--folder=[Folder name to search in]:FOLDER: ' \
|
||||||
|
'-h[Print help (see more with '\''--help'\'')]' \
|
||||||
|
'--help[Print help (see more with '\''--help'\'')]' \
|
||||||
|
':name -- Name or UUID of the password entry:' \
|
||||||
|
'::user -- Username for the password entry:' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(remove)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--folder=[Folder name to search in]:FOLDER: ' \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
':name -- Name or UUID of the password entry:' \
|
||||||
|
'::user -- Username for the password entry:' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(history)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--folder=[Folder name to search in]:FOLDER: ' \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
':name -- Name or UUID of the password entry:' \
|
||||||
|
'::user -- Username for the password entry:' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(lock)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(purge)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(stop-agent)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(gen-completions)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help]' \
|
||||||
|
'--help[Print help]' \
|
||||||
|
':shell:(bash elvish fish powershell zsh)' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(help)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
":: :_rbw__help_commands" \
|
||||||
|
"*::: :->help" \
|
||||||
|
&& ret=0
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(help)
|
||||||
|
words=($line[1] "${words[@]}")
|
||||||
|
(( CURRENT += 1 ))
|
||||||
|
curcontext="${curcontext%:*:*}:rbw-help-command-$line[1]:"
|
||||||
|
case $line[1] in
|
||||||
|
(config)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
":: :_rbw__help__config_commands" \
|
||||||
|
"*::: :->config" \
|
||||||
|
&& ret=0
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(config)
|
||||||
|
words=($line[1] "${words[@]}")
|
||||||
|
(( CURRENT += 1 ))
|
||||||
|
curcontext="${curcontext%:*:*}:rbw-help-config-command-$line[1]:"
|
||||||
|
case $line[1] in
|
||||||
|
(show)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(set)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(unset)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
(register)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(login)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(unlock)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(unlocked)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(sync)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(list)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(get)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(code)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(add)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(generate)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(edit)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(remove)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(history)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(lock)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(purge)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(stop-agent)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(gen-completions)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(help)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_rbw_commands] )) ||
|
||||||
|
_rbw_commands() {
|
||||||
|
local commands; commands=(
|
||||||
|
'config:Get or set configuration options' \
|
||||||
|
'register:Register this device with the Bitwarden server' \
|
||||||
|
'login:Log in to the Bitwarden server' \
|
||||||
|
'unlock:Unlock the local Bitwarden database' \
|
||||||
|
'unlocked:Check if the local Bitwarden database is unlocked' \
|
||||||
|
'sync:Update the local copy of the Bitwarden database' \
|
||||||
|
'list:List all entries in the local Bitwarden database' \
|
||||||
|
'ls:List all entries in the local Bitwarden database' \
|
||||||
|
'get:Display the password for a given entry' \
|
||||||
|
'code:Display the authenticator code for a given entry' \
|
||||||
|
'add:Add a new password to the database' \
|
||||||
|
'generate:Generate a new password' \
|
||||||
|
'gen:Generate a new password' \
|
||||||
|
'edit:Modify an existing password' \
|
||||||
|
'remove:Remove a given entry' \
|
||||||
|
'rm:Remove a given entry' \
|
||||||
|
'history:View the password history for a given entry' \
|
||||||
|
'lock:Lock the password database' \
|
||||||
|
'purge:Remove the local copy of the password database' \
|
||||||
|
'stop-agent:Terminate the background agent' \
|
||||||
|
'gen-completions:Generate completion script for the given shell' \
|
||||||
|
'help:Print this message or the help of the given subcommand(s)' \
|
||||||
|
)
|
||||||
|
_describe -t commands 'rbw commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__add_commands] )) ||
|
||||||
|
_rbw__add_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw add commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__add_commands] )) ||
|
||||||
|
_rbw__help__add_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help add commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__code_commands] )) ||
|
||||||
|
_rbw__code_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw code commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__code_commands] )) ||
|
||||||
|
_rbw__help__code_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help code commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__config_commands] )) ||
|
||||||
|
_rbw__config_commands() {
|
||||||
|
local commands; commands=(
|
||||||
|
'show:Show the values of all configuration settings' \
|
||||||
|
'set:Set a configuration option' \
|
||||||
|
'unset:Reset a configuration option to its default' \
|
||||||
|
'help:Print this message or the help of the given subcommand(s)' \
|
||||||
|
)
|
||||||
|
_describe -t commands 'rbw config commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__config_commands] )) ||
|
||||||
|
_rbw__help__config_commands() {
|
||||||
|
local commands; commands=(
|
||||||
|
'show:Show the values of all configuration settings' \
|
||||||
|
'set:Set a configuration option' \
|
||||||
|
'unset:Reset a configuration option to its default' \
|
||||||
|
)
|
||||||
|
_describe -t commands 'rbw help config commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__edit_commands] )) ||
|
||||||
|
_rbw__edit_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw edit commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__edit_commands] )) ||
|
||||||
|
_rbw__help__edit_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help edit commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__gen-completions_commands] )) ||
|
||||||
|
_rbw__gen-completions_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw gen-completions commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__gen-completions_commands] )) ||
|
||||||
|
_rbw__help__gen-completions_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help gen-completions commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__generate_commands] )) ||
|
||||||
|
_rbw__generate_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw generate commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__generate_commands] )) ||
|
||||||
|
_rbw__help__generate_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help generate commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__get_commands] )) ||
|
||||||
|
_rbw__get_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw get commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__get_commands] )) ||
|
||||||
|
_rbw__help__get_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help get commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__config__help_commands] )) ||
|
||||||
|
_rbw__config__help_commands() {
|
||||||
|
local commands; commands=(
|
||||||
|
'show:Show the values of all configuration settings' \
|
||||||
|
'set:Set a configuration option' \
|
||||||
|
'unset:Reset a configuration option to its default' \
|
||||||
|
'help:Print this message or the help of the given subcommand(s)' \
|
||||||
|
)
|
||||||
|
_describe -t commands 'rbw config help commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__config__help__help_commands] )) ||
|
||||||
|
_rbw__config__help__help_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw config help help commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help_commands] )) ||
|
||||||
|
_rbw__help_commands() {
|
||||||
|
local commands; commands=(
|
||||||
|
'config:Get or set configuration options' \
|
||||||
|
'register:Register this device with the Bitwarden server' \
|
||||||
|
'login:Log in to the Bitwarden server' \
|
||||||
|
'unlock:Unlock the local Bitwarden database' \
|
||||||
|
'unlocked:Check if the local Bitwarden database is unlocked' \
|
||||||
|
'sync:Update the local copy of the Bitwarden database' \
|
||||||
|
'list:List all entries in the local Bitwarden database' \
|
||||||
|
'get:Display the password for a given entry' \
|
||||||
|
'code:Display the authenticator code for a given entry' \
|
||||||
|
'add:Add a new password to the database' \
|
||||||
|
'generate:Generate a new password' \
|
||||||
|
'edit:Modify an existing password' \
|
||||||
|
'remove:Remove a given entry' \
|
||||||
|
'history:View the password history for a given entry' \
|
||||||
|
'lock:Lock the password database' \
|
||||||
|
'purge:Remove the local copy of the password database' \
|
||||||
|
'stop-agent:Terminate the background agent' \
|
||||||
|
'gen-completions:Generate completion script for the given shell' \
|
||||||
|
'help:Print this message or the help of the given subcommand(s)' \
|
||||||
|
)
|
||||||
|
_describe -t commands 'rbw help commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__help_commands] )) ||
|
||||||
|
_rbw__help__help_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help help commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__history_commands] )) ||
|
||||||
|
_rbw__help__history_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help history commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__history_commands] )) ||
|
||||||
|
_rbw__history_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw history commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__list_commands] )) ||
|
||||||
|
_rbw__help__list_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help list commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__list_commands] )) ||
|
||||||
|
_rbw__list_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw list commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__lock_commands] )) ||
|
||||||
|
_rbw__help__lock_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help lock commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__lock_commands] )) ||
|
||||||
|
_rbw__lock_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw lock commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__login_commands] )) ||
|
||||||
|
_rbw__help__login_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help login commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__login_commands] )) ||
|
||||||
|
_rbw__login_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw login commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__purge_commands] )) ||
|
||||||
|
_rbw__help__purge_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help purge commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__purge_commands] )) ||
|
||||||
|
_rbw__purge_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw purge commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__register_commands] )) ||
|
||||||
|
_rbw__help__register_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help register commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__register_commands] )) ||
|
||||||
|
_rbw__register_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw register commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__remove_commands] )) ||
|
||||||
|
_rbw__help__remove_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help remove commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__remove_commands] )) ||
|
||||||
|
_rbw__remove_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw remove commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__config__help__set_commands] )) ||
|
||||||
|
_rbw__config__help__set_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw config help set commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__config__set_commands] )) ||
|
||||||
|
_rbw__config__set_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw config set commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__config__set_commands] )) ||
|
||||||
|
_rbw__help__config__set_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help config set commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__config__help__show_commands] )) ||
|
||||||
|
_rbw__config__help__show_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw config help show commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__config__show_commands] )) ||
|
||||||
|
_rbw__config__show_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw config show commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__config__show_commands] )) ||
|
||||||
|
_rbw__help__config__show_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help config show commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__stop-agent_commands] )) ||
|
||||||
|
_rbw__help__stop-agent_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help stop-agent commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__stop-agent_commands] )) ||
|
||||||
|
_rbw__stop-agent_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw stop-agent commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__sync_commands] )) ||
|
||||||
|
_rbw__help__sync_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help sync commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__sync_commands] )) ||
|
||||||
|
_rbw__sync_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw sync commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__unlock_commands] )) ||
|
||||||
|
_rbw__help__unlock_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help unlock commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__unlock_commands] )) ||
|
||||||
|
_rbw__unlock_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw unlock commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__unlocked_commands] )) ||
|
||||||
|
_rbw__help__unlocked_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help unlocked commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__unlocked_commands] )) ||
|
||||||
|
_rbw__unlocked_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw unlocked commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__config__help__unset_commands] )) ||
|
||||||
|
_rbw__config__help__unset_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw config help unset commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__config__unset_commands] )) ||
|
||||||
|
_rbw__config__unset_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw config unset commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_rbw__help__config__unset_commands] )) ||
|
||||||
|
_rbw__help__config__unset_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'rbw help config unset commands' commands "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$funcstack[1]" = "_rbw" ]; then
|
||||||
|
_rbw "$@"
|
||||||
|
else
|
||||||
|
compdef _rbw rbw
|
||||||
|
fi
|
22
README.md
22
README.md
|
@ -1,11 +1,21 @@
|
||||||
These are the dotfiles that I use on Void Linux.
|
# Dotfiles
|
||||||
I keep them on a selfhosted git server for easy synchronization, and mirror them to github so that others can use parts of them as well.
|
|
||||||
|
These are the dotfiles that I use on Void Linux. I keep them on a selfhosted
|
||||||
|
git server for easy synchronization, and mirror them to github so that others
|
||||||
|
can use parts of them as well.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
I've written a [script](https://github.com/ssnailed/bootstrapper) that will configure a fresh void installation to be used with these dotfiles.
|
|
||||||
You can also clone the repo to `~/.local/share/stow/dots` and run `~/.local/share/stow/dots/.local/bin/dotsync` to install them on an existing installation, but I'm sure that a few things would break.
|
I've written a [script](https://github.com/ssnailed/bootstrapper) that will
|
||||||
|
configure a fresh void installation to be used with these dotfiles. You can
|
||||||
|
also clone the repo to `~/.local/share/stow/dots` and run
|
||||||
|
`~/.local/share/stow/dots/.local/bin/dotsync` to install them on an existing
|
||||||
|
installation, but I'm sure that a few things would break.
|
||||||
|
|
||||||
## Warnings
|
## Warnings
|
||||||
|
|
||||||
My [.zprofile](.config/zsh/profile) automatically runs xinit if logged in on TTY1 and no other X server is running. This is because I use the default [getty](https://en.wikipedia.org/wiki/Getty_(Unix)) and want to automatically start dwm after logging in.
|
My [.zprofile](.config/zsh/profile) automatically runs xinit if logged in on
|
||||||
If any key mappings seem strange, it's because I use the dvorak keyboard layout.
|
TTY1 and no other X server is running. This is because I use the default
|
||||||
|
[getty](https://en.wikipedia.org/wiki/Getty_(Unix)) and want to automatically
|
||||||
|
start dwm after logging in. If any key mappings seem strange, it's because I
|
||||||
|
use the dvorak keyboard layout.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue