Refactor: Replace users with home
This commit is contained in:
parent
36a22dc58a
commit
aaaf4808f3
65 changed files with 17 additions and 25 deletions
3
dotfiles/nvim/ftplugin/lua.lua
Normal file
3
dotfiles/nvim/ftplugin/lua.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
vim.bo.tabstop = 2
|
||||
vim.bo.softtabstop = 2
|
||||
vim.bo.shiftwidth = 2
|
3
dotfiles/nvim/ftplugin/nix.lua
Normal file
3
dotfiles/nvim/ftplugin/nix.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
vim.bo.tabstop = 2
|
||||
vim.bo.softtabstop = 2
|
||||
vim.bo.shiftwidth = 2
|
3
dotfiles/nvim/init.lua
Normal file
3
dotfiles/nvim/init.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
require"settings"
|
||||
require"plugins"
|
||||
|
55
dotfiles/nvim/lua/plugins/cmp.lua
Normal file
55
dotfiles/nvim/lua/plugins/cmp.lua
Normal file
|
@ -0,0 +1,55 @@
|
|||
return {
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
"L3MON4D3/LuaSnip",
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
"hrsh7th/cmp-buffer",
|
||||
"hrsh7th/cmp-path",
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
{
|
||||
"tamago324/cmp-zsh",
|
||||
config = function()
|
||||
require"cmp_zsh".setup {
|
||||
zshrc = true,
|
||||
filetypes = { "bash", "zsh", "sh" },
|
||||
}
|
||||
end,
|
||||
},
|
||||
"ray-x/cmp-treesitter",
|
||||
"hrsh7th/cmp-nvim-lua",
|
||||
"andersevenrud/cmp-tmux",
|
||||
},
|
||||
config = function()
|
||||
local cmp = require"cmp"
|
||||
cmp.setup {
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require"luasnip".lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
view = {
|
||||
entries = "native",
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert {
|
||||
['<C-k>'] = cmp.mapping.select_prev_item(),
|
||||
['<C-j>'] = cmp.mapping.select_next_item(),
|
||||
['<A-j>'] = cmp.mapping.scroll_docs(4),
|
||||
['<A-k>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<S-CR>'] = cmp.mapping.complete(),
|
||||
['<C-Space>'] = cmp.mapping.confirm({ select = true }),
|
||||
['<C-e>'] = cmp.mapping.abort(),
|
||||
},
|
||||
sources = {
|
||||
{ name = "path" },
|
||||
{ name = "luasnip" },
|
||||
{ name = "zsh" },
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "buffer" },
|
||||
{ name = "treesitter" },
|
||||
{ name = "nvim-lua" },
|
||||
{ name = "tmux" },
|
||||
},
|
||||
}
|
||||
end
|
||||
}
|
||||
|
5
dotfiles/nvim/lua/plugins/comment.lua
Normal file
5
dotfiles/nvim/lua/plugins/comment.lua
Normal file
|
@ -0,0 +1,5 @@
|
|||
return {
|
||||
"numToStr/Comment.nvim",
|
||||
opts = {},
|
||||
lazy = false
|
||||
}
|
7
dotfiles/nvim/lua/plugins/dressing.lua
Normal file
7
dotfiles/nvim/lua/plugins/dressing.lua
Normal file
|
@ -0,0 +1,7 @@
|
|||
return {
|
||||
"stevearc/dressing.nvim",
|
||||
config = function()
|
||||
require"dressing".setup {
|
||||
}
|
||||
end
|
||||
}
|
11
dotfiles/nvim/lua/plugins/ibl.lua
Normal file
11
dotfiles/nvim/lua/plugins/ibl.lua
Normal file
|
@ -0,0 +1,11 @@
|
|||
return {
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
main = "ibl",
|
||||
opts = {},
|
||||
opts = {
|
||||
indent = {
|
||||
char = "▏"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
22
dotfiles/nvim/lua/plugins/init.lua
Normal file
22
dotfiles/nvim/lua/plugins/init.lua
Normal file
|
@ -0,0 +1,22 @@
|
|||
if vim.fn.executable("git") ~= 1 then
|
||||
vim.notify("git is not installed. Skipping plugins.", vim.log.levels.WARN)
|
||||
return
|
||||
end
|
||||
|
||||
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", -- latest stable release
|
||||
lazypath,
|
||||
})
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
plugins = require"util.require_dir"(vim.fn.stdpath("config").."/lua/plugins/", true)
|
||||
|
||||
require"lazy".setup(plugins)
|
||||
|
49
dotfiles/nvim/lua/plugins/kanagawa.lua
Normal file
49
dotfiles/nvim/lua/plugins/kanagawa.lua
Normal file
|
@ -0,0 +1,49 @@
|
|||
return {
|
||||
"rebelot/kanagawa.nvim",
|
||||
config = function()
|
||||
require"kanagawa".setup {
|
||||
theme = "dragon",
|
||||
background = {
|
||||
dark = "dragon",
|
||||
light = "lotus",
|
||||
},
|
||||
transparent = true,
|
||||
colors = {
|
||||
theme = {
|
||||
all = {
|
||||
ui = {
|
||||
bg_gutter = "none",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
overrides = function(colors)
|
||||
local theme = colors.theme
|
||||
return {
|
||||
NormalFloat = { bg = "none" },
|
||||
FloatBorder = { bg = "none" },
|
||||
FloatTitle = { bg = "none" },
|
||||
|
||||
-- Save an hlgroup with dark background and dimmed foreground
|
||||
-- so that you can use it where your still want darker windows.
|
||||
-- E.g.: autocmd TermOpen * setlocal winhighlight=Normal:NormalDark
|
||||
NormalDark = { fg = theme.ui.fg_dim, bg = theme.ui.bg_m3 },
|
||||
|
||||
-- Popular plugins that open floats will link to NormalFloat by default;
|
||||
-- set their background accordingly if you wish to keep them dark and borderless
|
||||
LazyNormal = { bg = theme.ui.bg_m3, fg = theme.ui.fg_dim },
|
||||
MasonNormal = { bg = theme.ui.bg_m3, fg = theme.ui.fg_dim },
|
||||
TelescopeTitle = { fg = theme.ui.special, bold = true },
|
||||
TelescopePromptNormal = { bg = theme.ui.bg_p1 },
|
||||
TelescopePromptBorder = { fg = theme.ui.bg_p1, bg = theme.ui.bg_p1 },
|
||||
TelescopeResultsNormal = { fg = theme.ui.fg_dim, bg = theme.ui.bg_m1 },
|
||||
TelescopeResultsBorder = { fg = theme.ui.bg_m1, bg = theme.ui.bg_m1 },
|
||||
TelescopePreviewNormal = { bg = theme.ui.bg_dim },
|
||||
TelescopePreviewBorder = { bg = theme.ui.bg_dim, fg = theme.ui.bg_dim },
|
||||
}
|
||||
end,
|
||||
}
|
||||
vim.cmd"colorscheme kanagawa"
|
||||
end
|
||||
}
|
||||
|
5
dotfiles/nvim/lua/plugins/lsp/c.lua
Normal file
5
dotfiles/nvim/lua/plugins/lsp/c.lua
Normal file
|
@ -0,0 +1,5 @@
|
|||
return function ()
|
||||
require"lspconfig".clangd.setup {
|
||||
capabilities = require"cmp_nvim_lsp".default_capabilities()
|
||||
}
|
||||
end
|
5
dotfiles/nvim/lua/plugins/lsp/js.lua
Normal file
5
dotfiles/nvim/lua/plugins/lsp/js.lua
Normal file
|
@ -0,0 +1,5 @@
|
|||
return function ()
|
||||
require"lspconfig".tsserver.setup {
|
||||
capabilities = require"cmp_nvim_lsp".default_capabilities()
|
||||
}
|
||||
end
|
24
dotfiles/nvim/lua/plugins/lsp/lua.lua
Normal file
24
dotfiles/nvim/lua/plugins/lsp/lua.lua
Normal file
|
@ -0,0 +1,24 @@
|
|||
return function()
|
||||
require'lspconfig'.lua_ls.setup {
|
||||
capabilities = require"cmp_nvim_lsp".default_capabilities(),
|
||||
on_init = function(client)
|
||||
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
|
||||
|
||||
client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {
|
||||
runtime = {
|
||||
version = 'LuaJIT'
|
||||
},
|
||||
workspace = {
|
||||
checkThirdParty = false,
|
||||
library = vim.api.nvim_get_runtime_file("", true)
|
||||
}
|
||||
})
|
||||
end,
|
||||
settings = {
|
||||
Lua = {}
|
||||
}
|
||||
}
|
||||
end
|
6
dotfiles/nvim/lua/plugins/lsp/nix.lua
Normal file
6
dotfiles/nvim/lua/plugins/lsp/nix.lua
Normal file
|
@ -0,0 +1,6 @@
|
|||
return function ()
|
||||
require"lspconfig".nil_ls.setup {
|
||||
capabilities = require"cmp_nvim_lsp".default_capabilities()
|
||||
}
|
||||
end
|
||||
|
5
dotfiles/nvim/lua/plugins/lsp/php.lua
Normal file
5
dotfiles/nvim/lua/plugins/lsp/php.lua
Normal file
|
@ -0,0 +1,5 @@
|
|||
return function ()
|
||||
require"lspconfig".intelephense. setup {
|
||||
capabilities = require"cmp_nvim_lsp".default_capabilities(),
|
||||
}
|
||||
end
|
10
dotfiles/nvim/lua/plugins/lsp/python.lua
Normal file
10
dotfiles/nvim/lua/plugins/lsp/python.lua
Normal file
|
@ -0,0 +1,10 @@
|
|||
return function()
|
||||
require"lspconfig".basedpyright.setup {
|
||||
settings = {
|
||||
python = {
|
||||
pythonPath = vim.fn.exepath("python3"),
|
||||
},
|
||||
},
|
||||
}
|
||||
end
|
||||
|
11
dotfiles/nvim/lua/plugins/lsp/rust.lua
Normal file
11
dotfiles/nvim/lua/plugins/lsp/rust.lua
Normal file
|
@ -0,0 +1,11 @@
|
|||
return function()
|
||||
require"lspconfig".rust_analyzer.setup {
|
||||
settings = {
|
||||
["rust-analyzer"] = {
|
||||
diagnostics = {
|
||||
enable = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
end
|
29
dotfiles/nvim/lua/plugins/lspconfig.lua
Normal file
29
dotfiles/nvim/lua/plugins/lspconfig.lua
Normal file
|
@ -0,0 +1,29 @@
|
|||
return {
|
||||
"neovim/nvim-lspconfig",
|
||||
config = function()
|
||||
local require_dir = require"util.require_dir"
|
||||
local lspees = require_dir(vim.fn.stdpath("config").."/lua/plugins/lsp/", "plugins.lsp")
|
||||
for _, lspee in ipairs(lspees) do
|
||||
lspee()
|
||||
end
|
||||
|
||||
local map = require"util.map"
|
||||
local vlb = vim.lsp.buf
|
||||
local format = function()
|
||||
vlb.format { async = true }
|
||||
end
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
|
||||
callback = function()
|
||||
map("n", "<leader>lgD", vlb.declaration, "[l]sp [g]o to [D]eclaration")
|
||||
map("n", "<leader>lgd", vlb.definition, "[l]sp [g]o to [d]definition")
|
||||
map("n", "<leader>lgi", vlb.implementation, "[l]sp [g]o to [i]mplementation")
|
||||
map("n", "<leader>lgr", vlb.references, "[l]sp [g]o to [r]eferences")
|
||||
map("n", "<leader>lh", vlb.hover, "[l]sp [h]over over selection")
|
||||
map("n", "<leader>lfm", format, "[l]sp [f]or[m]at file")
|
||||
map("n", "<leader>lca", vlb.code_action, "[l]sp [C]ode [a]ction")
|
||||
end,
|
||||
})
|
||||
end
|
||||
}
|
||||
|
139
dotfiles/nvim/lua/plugins/lualine.lua
Normal file
139
dotfiles/nvim/lua/plugins/lualine.lua
Normal file
|
@ -0,0 +1,139 @@
|
|||
return {
|
||||
"nvim-lualine/lualine.nvim",
|
||||
dependencies = {
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
config = function()
|
||||
-- Inspired by https://github.com/nvim-lualine/lualine.nvim/blob/master/examples/evil_lualine.lua
|
||||
local rgb_to_hex = require"util.rgb_to_hex"
|
||||
local hl = require"util.hl"
|
||||
local config = {
|
||||
options = {
|
||||
component_separators = "",
|
||||
section_separators = "",
|
||||
theme = {
|
||||
normal = {
|
||||
c = {
|
||||
fg = rgb_to_hex(hl("Normal").fg),
|
||||
bg = "none",
|
||||
},
|
||||
},
|
||||
inactive = {
|
||||
c = {
|
||||
fg = rgb_to_hex(hl("Normal").fg),
|
||||
bg = "none",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
sections = {
|
||||
lualine_a = {}, lualine_b = {}, lualine_y = {}, lualine_z = {}, -- Remove defaults
|
||||
lualine_c = {}, lualine_x = {}, -- Extend these later
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_a = {}, lualine_b = {}, lualine_c = {}, lualine_x = {}, lualine_y = {}, lualine_z = {},
|
||||
},
|
||||
}
|
||||
|
||||
local function buffer_not_empty()
|
||||
return vim.fn.empty(vim.fn.expand("%:t")) ~= 1
|
||||
end
|
||||
|
||||
local function ins_l(component)
|
||||
table.insert(config.sections.lualine_c, component)
|
||||
end
|
||||
|
||||
local function ins_r(component)
|
||||
table.insert(config.sections.lualine_x, component)
|
||||
end
|
||||
|
||||
local distro = require"util.get_distro"()
|
||||
|
||||
ins_l {
|
||||
function()
|
||||
return "▊"
|
||||
end,
|
||||
padding = {
|
||||
left = 0,
|
||||
right = 0,
|
||||
},
|
||||
color = {
|
||||
fg = rgb_to_hex(hl("Comment").fg),
|
||||
},
|
||||
}
|
||||
|
||||
ins_l {
|
||||
function()
|
||||
return distro.traits.icon
|
||||
end,
|
||||
color = {
|
||||
fg = distro.traits.color,
|
||||
},
|
||||
}
|
||||
|
||||
ins_l {
|
||||
"filename",
|
||||
cond = buffer_not_empty,
|
||||
color = {
|
||||
fg = rgb_to_hex(hl("Operator").fg),
|
||||
}
|
||||
}
|
||||
|
||||
ins_l {
|
||||
"filesize",
|
||||
cond = buffer_not_empty,
|
||||
}
|
||||
|
||||
ins_l {
|
||||
"o:encoding",
|
||||
cond = buffer_not_empty,
|
||||
}
|
||||
|
||||
ins_l {
|
||||
"fileformat",
|
||||
icons_enabled = false,
|
||||
cond = buffer_not_empty,
|
||||
}
|
||||
|
||||
ins_r { "diagnostics" }
|
||||
ins_r { "diff" }
|
||||
|
||||
ins_r {
|
||||
"branch",
|
||||
padding = {
|
||||
right = 0,
|
||||
},
|
||||
color = {
|
||||
fg = rgb_to_hex(hl("Constant").fg)
|
||||
}
|
||||
}
|
||||
|
||||
ins_r {
|
||||
"location",
|
||||
}
|
||||
|
||||
ins_r {
|
||||
"mode",
|
||||
fmt = string.lower,
|
||||
color = {
|
||||
fg = rgb_to_hex(hl("String").fg),
|
||||
}
|
||||
}
|
||||
|
||||
ins_r {
|
||||
function()
|
||||
return "▊"
|
||||
end,
|
||||
padding = {
|
||||
left = 0,
|
||||
right = 0,
|
||||
},
|
||||
color = {
|
||||
fg = rgb_to_hex(hl("Comment").fg),
|
||||
}
|
||||
}
|
||||
|
||||
require"lualine".setup(config)
|
||||
end
|
||||
}
|
||||
|
6
dotfiles/nvim/lua/plugins/nvim-colorizer.lua
Normal file
6
dotfiles/nvim/lua/plugins/nvim-colorizer.lua
Normal file
|
@ -0,0 +1,6 @@
|
|||
return {
|
||||
"norcalli/nvim-colorizer.lua",
|
||||
config = function()
|
||||
require"colorizer".setup()
|
||||
end,
|
||||
}
|
24
dotfiles/nvim/lua/plugins/telescope.lua
Normal file
24
dotfiles/nvim/lua/plugins/telescope.lua
Normal file
|
@ -0,0 +1,24 @@
|
|||
return {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
config = function()
|
||||
require"telescope".setup {}
|
||||
|
||||
local tb = require"telescope.builtin"
|
||||
local map = require"util.map"
|
||||
|
||||
-- Default pickers
|
||||
map("n", "<leader>tf", tb.find_files,"[T]elescope [f]iles")
|
||||
map("n", "<leader>tg", tb.live_grep, "[T]elescope [g]rep")
|
||||
map("n", "<leader>tb", tb.buffers, "[T]elescope [b]uffers")
|
||||
map("n", "<leader>tm", function()
|
||||
tb.man_pages({ "ALL" })
|
||||
end, "[T]elescope [m]an pages")
|
||||
map("n", "<leader>tk", tb.keymaps, "[T]elescope [k]eymaps")
|
||||
map("n", "<leader>tk", tb.keymaps, "[T]elescope [k]eymaps")
|
||||
|
||||
-- LSP pickers
|
||||
map("n", "<leader>tld", tb.diagnostics, "[T]elescope [l]sp [d]iagnostics")
|
||||
map("n", "<leader>tlr", tb.lsp_references, "[T]elescope [l]sp [r]eferences")
|
||||
end,
|
||||
}
|
15
dotfiles/nvim/lua/plugins/treesitter.lua
Normal file
15
dotfiles/nvim/lua/plugins/treesitter.lua
Normal file
|
@ -0,0 +1,15 @@
|
|||
return {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
config = function()
|
||||
require"nvim-treesitter.configs".setup {
|
||||
ensure_installed = "all", -- pipebomb
|
||||
highlight = {
|
||||
enable = true,
|
||||
},
|
||||
indent = {
|
||||
enable = true,
|
||||
},
|
||||
}
|
||||
end,
|
||||
run = ":TSUpdate",
|
||||
}
|
8
dotfiles/nvim/lua/plugins/vimtex.lua
Normal file
8
dotfiles/nvim/lua/plugins/vimtex.lua
Normal file
|
@ -0,0 +1,8 @@
|
|||
return {
|
||||
"lervag/vimtex",
|
||||
lazy = false,
|
||||
init = function()
|
||||
vim.g.vimtex_view_method = "zathura"
|
||||
end
|
||||
}
|
||||
|
0
dotfiles/nvim/lua/settings/autocmds.lua
Normal file
0
dotfiles/nvim/lua/settings/autocmds.lua
Normal file
3
dotfiles/nvim/lua/settings/init.lua
Normal file
3
dotfiles/nvim/lua/settings/init.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
require"settings.options"
|
||||
require"settings.autocmds"
|
||||
require"settings.keymaps"
|
7
dotfiles/nvim/lua/settings/keymaps.lua
Normal file
7
dotfiles/nvim/lua/settings/keymaps.lua
Normal file
|
@ -0,0 +1,7 @@
|
|||
local map = require"util.map"
|
||||
|
||||
map("n", "<Space>", "<Nop>", "Mapleader")
|
||||
vim.g.mapleader = " "
|
||||
|
||||
map("n", "<leader>df", vim.diagnostic.open_float, "[D]iagnostics [f]loat")
|
||||
|
26
dotfiles/nvim/lua/settings/options.lua
Normal file
26
dotfiles/nvim/lua/settings/options.lua
Normal file
|
@ -0,0 +1,26 @@
|
|||
local options = {
|
||||
tabstop = 4,
|
||||
softtabstop = 4,
|
||||
shiftwidth = 4,
|
||||
expandtab = true,
|
||||
number = true,
|
||||
relativenumber = true,
|
||||
fileencoding = "utf-8",
|
||||
cursorline = true,
|
||||
wrap = false,
|
||||
signcolumn = "yes",
|
||||
swapfile = false,
|
||||
errorbells = false,
|
||||
undofile = true,
|
||||
incsearch = true,
|
||||
hlsearch = false,
|
||||
backup = false,
|
||||
termguicolors = true,
|
||||
}
|
||||
|
||||
for option, value in pairs(options) do
|
||||
pcall(function()
|
||||
vim.opt[option] = value
|
||||
end)
|
||||
end
|
||||
|
59
dotfiles/nvim/lua/util/get_distro.lua
Normal file
59
dotfiles/nvim/lua/util/get_distro.lua
Normal file
|
@ -0,0 +1,59 @@
|
|||
local function distro_traits(name)
|
||||
local icons = {
|
||||
[ "unknown" ] = {
|
||||
icon = "",
|
||||
color = "#f3be25",
|
||||
},
|
||||
[ "debian" ] = {
|
||||
icon = "",
|
||||
color = "#d70a53",
|
||||
},
|
||||
[ "gentoo" ] = {
|
||||
icon = "",
|
||||
color = "#54487A",
|
||||
},
|
||||
[ "nixos" ] = {
|
||||
icon = "",
|
||||
color = "#5277C3",
|
||||
},
|
||||
[ "\"opensuse-tumbleweed\"" ] = {
|
||||
icon = "",
|
||||
color = "#73ba25",
|
||||
},
|
||||
}
|
||||
|
||||
local icon = icons[name]
|
||||
if icon == nil then
|
||||
icon = icons["unknown"]
|
||||
end
|
||||
|
||||
return icon
|
||||
end
|
||||
|
||||
return function()
|
||||
local release_file = io.open("/etc/os-release", "rb")
|
||||
if release_file == nil then
|
||||
return {
|
||||
name = "unknown",
|
||||
traits = distro_traits("unknown"),
|
||||
}
|
||||
end
|
||||
|
||||
local content = vim.split(release_file:read("*a"), "\n")
|
||||
local distro_id = nil
|
||||
for _, line in ipairs(content) do
|
||||
if string.sub(line, 0, 3) == "ID=" then
|
||||
distro_id = string.sub(line, 4, -1)
|
||||
goto distro_id_found
|
||||
end
|
||||
end
|
||||
::distro_id_found::
|
||||
|
||||
release_file:close()
|
||||
|
||||
return {
|
||||
name = distro_id,
|
||||
traits = distro_traits(distro_id)
|
||||
}
|
||||
end
|
||||
|
7
dotfiles/nvim/lua/util/hl.lua
Normal file
7
dotfiles/nvim/lua/util/hl.lua
Normal file
|
@ -0,0 +1,7 @@
|
|||
return function (name)
|
||||
local hl = vim.api.nvim_get_hl(0, { name = name })
|
||||
while hl.link ~= nil do
|
||||
hl = vim.api.nvim_get_hl(0, { name = hl.link })
|
||||
end
|
||||
return hl
|
||||
end
|
9
dotfiles/nvim/lua/util/map.lua
Normal file
9
dotfiles/nvim/lua/util/map.lua
Normal file
|
@ -0,0 +1,9 @@
|
|||
return function(mode, key, mapping, comment)
|
||||
local opts = {
|
||||
noremap = true,
|
||||
silent = true,
|
||||
desc = comment
|
||||
}
|
||||
vim.keymap.set(mode, key, mapping, opts)
|
||||
end
|
||||
|
27
dotfiles/nvim/lua/util/require_dir.lua
Normal file
27
dotfiles/nvim/lua/util/require_dir.lua
Normal file
|
@ -0,0 +1,27 @@
|
|||
return function(dir, skip_init)
|
||||
local returns = {}
|
||||
local lua_files = vim.split(vim.fn.glob(dir.."/*.lua"), "\n")
|
||||
local namespace = string.gsub(dir, vim.fn.stdpath("config").."/lua/", "")
|
||||
namespace = string.gsub(namespace, "%/", ".")
|
||||
|
||||
for _, file in ipairs(lua_files) do
|
||||
file = string.gsub(file, "%.lua", "")
|
||||
file = string.gsub(file, dir.."/", namespace)
|
||||
|
||||
if skip_init and file == namespace.."init" then
|
||||
goto continue
|
||||
end
|
||||
|
||||
local require_ok, require_return = pcall(require, file)
|
||||
if require_ok then
|
||||
table.insert(returns, require_return)
|
||||
else
|
||||
vim.notify("Could not require file: '"..file.."': "..require_return, vim.log.levels.WARNING)
|
||||
end
|
||||
|
||||
::continue::
|
||||
end
|
||||
|
||||
return returns
|
||||
end
|
||||
|
11
dotfiles/nvim/lua/util/rgb_to_hex.lua
Normal file
11
dotfiles/nvim/lua/util/rgb_to_hex.lua
Normal file
|
@ -0,0 +1,11 @@
|
|||
return function(rgb)
|
||||
if rgb == nil then
|
||||
return nil
|
||||
end
|
||||
|
||||
local r = string.format("%02x", (rgb / 65536) % 256)
|
||||
local g = string.format("%02x", (rgb / 256) % 256)
|
||||
local b = string.format("%02x", rgb % 256)
|
||||
|
||||
return "#"..r..g..b
|
||||
end
|
12
dotfiles/zsh/.zshrc
Executable file
12
dotfiles/zsh/.zshrc
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
# Prefetch paths
|
||||
source "$ZDOTDIR/conf.d/path.zsh"
|
||||
|
||||
for file in $ZDOTDIR/conf.d/*; do
|
||||
if [[ "$file" == *"path.zsh" ]]; then
|
||||
continue
|
||||
fi
|
||||
source "$file"
|
||||
done
|
||||
|
8
dotfiles/zsh/conf.d/alias.zsh
Normal file
8
dotfiles/zsh/conf.d/alias.zsh
Normal file
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
alias reload="exec zsh"
|
||||
|
||||
if [ -x "$(command -v nix)" ]; then
|
||||
alias nix-develop="nix develop -c $SHELL"
|
||||
fi
|
||||
|
11
dotfiles/zsh/conf.d/color.zsh
Executable file
11
dotfiles/zsh/conf.d/color.zsh
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
alias ls='ls --color=auto'
|
||||
alias ll='ls -lah --color=auto'
|
||||
alias grep='grep --color=auto'
|
||||
|
||||
term_name=$(ps -o comm= "$PPID")
|
||||
if [ "$term_name" = "xterm" ] && [ -n "$(command -v "transset")" ]; then
|
||||
transset -a 0.95 > /dev/null
|
||||
fi
|
||||
|
20
dotfiles/zsh/conf.d/completions.zsh
Executable file
20
dotfiles/zsh/conf.d/completions.zsh
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
if [ -z "$FZF_TAB_PLUGIN" ]; then
|
||||
if [ ! -d "$HOME/.cache/fzf-tab" ]; then
|
||||
echo "Installing fzf-tab"
|
||||
git clone "https://github.com/Aloxaf/fzf-tab" "$HOME/.cache/fzf-tab"
|
||||
fi
|
||||
FZF_TAB_PLUGIN="$HOME/.cache/fzf-tab/fzf-tab.plugin.zsh"
|
||||
fi
|
||||
|
||||
autoload -Uz compinit
|
||||
compinit
|
||||
|
||||
source "$FZF_TAB_PLUGIN"
|
||||
zstyle ':completion:*:git-checkout:*' sort false
|
||||
|
||||
if [ -n "$TMUX" ]; then
|
||||
zstyle ':fzf-tab:*' fzf-command ftb-tmux-popup
|
||||
fi
|
||||
|
6
dotfiles/zsh/conf.d/env.zsh
Executable file
6
dotfiles/zsh/conf.d/env.zsh
Executable file
|
@ -0,0 +1,6 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
if [ -n "$(command -v qt5ct)" ] && [ -z "$DESKTOP_SESSION" ]; then
|
||||
export QT_QPA_PLATFORMTHEME=qt5ct
|
||||
fi
|
||||
|
9
dotfiles/zsh/conf.d/fuck.zsh
Executable file
9
dotfiles/zsh/conf.d/fuck.zsh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
if [ -n "$(command -v thefuck)" ]; then
|
||||
fuck() {
|
||||
eval $(thefuck --alias)
|
||||
fuck
|
||||
}
|
||||
fi
|
||||
|
5
dotfiles/zsh/conf.d/gpg.zsh
Executable file
5
dotfiles/zsh/conf.d/gpg.zsh
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
GPG_TTY=$(tty)
|
||||
export GPG_TTY
|
||||
|
6
dotfiles/zsh/conf.d/manpager.zsh
Executable file
6
dotfiles/zsh/conf.d/manpager.zsh
Executable file
|
@ -0,0 +1,6 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
if [ -n "$(command -v "nvim")" ]; then
|
||||
export MANPAGER='nvim +Man!'
|
||||
fi
|
||||
|
7
dotfiles/zsh/conf.d/nix.zsh
Normal file
7
dotfiles/zsh/conf.d/nix.zsh
Normal file
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
# Nix specific zsh configuration
|
||||
if [ -x "$(command -v nix)" ]; then
|
||||
source "$NIX_SHELL_PLUGIN"
|
||||
fi
|
||||
|
50
dotfiles/zsh/conf.d/path.zsh
Executable file
50
dotfiles/zsh/conf.d/path.zsh
Executable file
|
@ -0,0 +1,50 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
add_to_path() {
|
||||
if [ -d "$1" ] && [[ "$PATH" != *"$1"* ]]; then
|
||||
PATH="$PATH:$1"
|
||||
fi
|
||||
}
|
||||
|
||||
add_to_path "$HOME/.local/bin"
|
||||
|
||||
if [ -f "/etc/profile.d/nix.sh" ]; then
|
||||
source /etc/profile.d/nix.sh
|
||||
fi
|
||||
|
||||
# Language package mangers
|
||||
if [ -n "$(command -v go)" ]; then
|
||||
export GOPATH="$HOME/.local/share/go"
|
||||
add_to_path "$HOME/.local/share/go/bin"
|
||||
fi
|
||||
|
||||
if [ -n "$(command -v npm)" ]; then
|
||||
if [ -f "$HOME/.npmrc" ]; then
|
||||
if [ -z "$(grep prefix "$HOME/.npmrc")" ]; then
|
||||
npm config set prefix "$HOME/.local/share/npm"
|
||||
fi
|
||||
else
|
||||
npm config set prefix "$HOME/.local/share/npm"
|
||||
fi
|
||||
add_to_path "$HOME/.local/share/npm/bin"
|
||||
fi
|
||||
|
||||
if [ -n "$(command -v cargo)" ]; then
|
||||
export CARGO_HOME="$HOME/.local/share/cargo"
|
||||
add_to_path "$HOME/.local/share/cargo/bin"
|
||||
fi
|
||||
|
||||
if [ -n "$(command -v pip3)" ] && [ -n "$(command -v virtualenv)" ]; then
|
||||
if [ ! -d "$HOME/.local/share/python3-venv" ]; then
|
||||
python3 -m venv "$HOME/.local/share/python3-venv"
|
||||
fi
|
||||
|
||||
if [ "$(grep "executable" "$HOME/.local/share/python3-venv/pyvenv.cfg" | awk '{print $3}')" \
|
||||
!= "$(realpath $(command -v python3))" ]; then
|
||||
python3 -m venv --upgrade "$HOME/.local/share/python3-venv"
|
||||
fi
|
||||
|
||||
export VIRTUAL_ENV_DISABLE_PROMPT=true
|
||||
source "$HOME/.local/share/python3-venv/bin/activate"
|
||||
fi
|
||||
|
29
dotfiles/zsh/conf.d/ps1.zsh
Executable file
29
dotfiles/zsh/conf.d/ps1.zsh
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
distro=$(cat /etc/os-release | grep -w 'ID=.*' | sed -e 's/ID=//g' | awk '{print $1}')
|
||||
case "$distro" in
|
||||
"debian") dicon="%F{red}%f" ;;
|
||||
"gentoo") dicon="%F{magenta}%f" ;;
|
||||
"\"opensuse-tumbleweed\"") dicon="%F{green} %f" ;;
|
||||
"nixos") dicon="%F{cyan}%f" ;;
|
||||
*) dicon="%F{yellow}[]%f" ;;
|
||||
esac
|
||||
|
||||
if [ -n "$IN_NIX_SHELL" ]; then
|
||||
if [ -z "$NIX_SHELL_PACKAGES" ]; then
|
||||
nix_shell_ps1=" %F{red}nix-shell%f"
|
||||
else
|
||||
nix_shell_ps1=" %F{red}{ $NIX_SHELL_PACKAGES }%f"
|
||||
fi
|
||||
else
|
||||
nix_shell_ps1=""
|
||||
fi
|
||||
|
||||
setopt prompt_subst
|
||||
autoload -Uz vcs_info
|
||||
precmd () { vcs_info }
|
||||
zstyle ':vcs_info:*' formats ' %F{yellow}(%b)%f'
|
||||
|
||||
NL=$'\n'
|
||||
export PS1='%F{green}%~%f$vcs_info_msg_0_$nix_shell_ps1$NL$dicon > '
|
||||
|
11
dotfiles/zsh/conf.d/ssh.zsh
Executable file
11
dotfiles/zsh/conf.d/ssh.zsh
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
if [ -z "$DESKTOP_SESSION" ]; then
|
||||
if [ -z "$(pidof gnome-keyring-daemon)" ] && [ -n "$(command -v gnome-keyring-daemon)" ]; then
|
||||
{ eval $(gnome-keyring-daemon --start); } > /dev/null 2>&1
|
||||
export SSH_AUTH_SOCK
|
||||
else
|
||||
{ eval $(ssh-agent -s); } > /dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
|
29
dotfiles/zsh/conf.d/suggestions.zsh
Executable file
29
dotfiles/zsh/conf.d/suggestions.zsh
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
export HISTFILE=~/.cache/zsh_history
|
||||
export HISTSIZE=10000
|
||||
export SAVEHIST=$HISTSIZE
|
||||
|
||||
setopt INC_APPEND_HISTORY
|
||||
setopt SHARE_HISTORY
|
||||
setopt HIST_IGNORE_SPACE
|
||||
setopt HIST_SAVE_NO_DUPS
|
||||
|
||||
if [ -z "$AUTOSUGGEST_PLUGIN" ]; then
|
||||
import_file="/usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh"
|
||||
else
|
||||
import_file="$AUTOSUGGEST_PLUGIN"
|
||||
fi
|
||||
|
||||
if [ ! -f "$import_file" ]; then
|
||||
if [ ! -d "$HOME/.cache/zsh-autosuggestions" ]; then
|
||||
echo "Installing zsh-autosuggestions..."
|
||||
git clone "https://github.com/zsh-users/zsh-autosuggestions.git" "$HOME/.cache/zsh-autosuggestions"
|
||||
fi
|
||||
import_file="$HOME/.cache/zsh-autosuggestions/zsh-autosuggestions.zsh"
|
||||
fi
|
||||
|
||||
source "$import_file"
|
||||
|
||||
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
|
||||
|
18
dotfiles/zsh/conf.d/syntax.zsh
Executable file
18
dotfiles/zsh/conf.d/syntax.zsh
Executable file
|
@ -0,0 +1,18 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
if [ -z "$SYNTAX_PLUGIN" ]; then
|
||||
import_file="/usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
|
||||
else
|
||||
import_file="$SYNTAX_PLUGIN"
|
||||
fi
|
||||
|
||||
if [ ! -f "$import_file" ]; then
|
||||
if [ ! -d "$HOME/.cache/zsh-syntax-highlighting" ]; then
|
||||
echo "Installing zsh-syntax-highlighting..."
|
||||
git clone "https://github.com/zsh-users/zsh-syntax-highlighting.git" "$HOME/.cache/zsh-syntax-highlighting"
|
||||
fi
|
||||
import_file="$HOME/.cache/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
|
||||
fi
|
||||
|
||||
source "$import_file"
|
||||
|
9
dotfiles/zsh/conf.d/tmux.zsh
Executable file
9
dotfiles/zsh/conf.d/tmux.zsh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env zsh
|
||||
|
||||
# Disabled until I fix my tmux config
|
||||
return
|
||||
|
||||
if [ "$TERM" = "xterm-256color" ] && [ -x "$(command -v tmux)" ]; then
|
||||
tmux new-session
|
||||
fi
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue