1
0
Fork 0
mirror of https://codeberg.org/Mo8it/dotfiles.git synced 2024-10-17 20:52:40 +00:00

Init commit

This commit is contained in:
Mo8it 2022-03-20 05:22:56 +01:00
commit 6a286e7ef4
29 changed files with 619 additions and 0 deletions

View file

@ -0,0 +1,47 @@
{
"asciidoc.preview.scrollEditorWithPreview": false,
"cSpell.allowCompoundWords": true,
"editor.formatOnSave": true,
"editor.minimap.enabled": false,
"editor.minimap.renderCharacters": false,
"editor.unicodeHighlight.ambiguousCharacters": false,
"git.autofetch": true,
"git.confirmSync": false,
"julia.NumThreads": 16,
"julia.enableCrashReporter": true,
"julia.enableTelemetry": true,
"julia.symbolCacheDownload": true,
"julia.usePlotPane": false,
"markdown.preview.scrollEditorWithPreview": false,
"outline.showArrays": false,
"outline.showBooleans": false,
"outline.showConstants": false,
"outline.showEnumMembers": false,
"outline.showEnums": false,
"outline.showFields": false,
"outline.showKeys": false,
"outline.showNull": false,
"outline.showNumbers": false,
"outline.showObjects": false,
"outline.showOperators": false,
"outline.showPackages": false,
"outline.showProperties": false,
"outline.showStrings": false,
"outline.showStructs": false,
"outline.showTypeParameters": false,
"outline.showVariables": false,
"python.formatting.provider": "black",
"terminal.integrated.commandsToSkipShell": [
"language-julia.interrupt"
],
"terminal.integrated.defaultProfile.linux": "fish",
"todo-tree.ripgrep.ripgrep": "/usr/bin/rg",
"update.mode": "none",
"window.menuBarVisibility": "toggle",
"workbench.enableExperiments": false,
"workbench.startupEditor": "none",
"workbench.iconTheme": "vscode-icons",
"vsicons.dontShowNewVersionMessage": true,
"files.trimTrailingWhitespace": true,
"window.zoomLevel": -1
}

43
.config/fish/config.fish Normal file
View file

@ -0,0 +1,43 @@
if status is-interactive
# Abbreviations
## Replacements
abbr -a -g cat bat
abbr -a -g ls lsd
abbr -a -g ll "lsd -l"
abbr -a -g rm trash
abbr -a -g cd z
## Safety options
abbr -a -g cp "cp -i"
abbr -a -g mv "mv -i"
abbr -a -g rmi "rm -i"
## Default options
abbr -a -g rsync "rsync -avh --partial --zc=zstd --zl=22 --info=PROGRESS2 --no-i-r --stats"
abbr -a -g onefetch "onefetch --no-palette"
## Podman
set -l sagemath_image docker.io/sagemath/sagemath:latest
abbr -a -g sage "podman pull $sagemath_image; podman run -it --rm $sagemath_image"
abbr -a -g sage-jupyter "podman pull $sagemath_image; podman run -it --rm -p8888:8888 $sagemath_image sage-jupyter"
set -l fedora_image registry.fedoraproject.org/fedora:latest
abbr -a -g fedora "podman pull $fedora_image; podman run -it --rm $fedora_image"
set -l asciidoctor_image docker.io/asciidoctor/docker-asciidoctor:latest
abbr -a -g adoc "podman pull $asciidoctor_image; podman run -it --rm -v (pwd):/documents/:Z $asciidoctor_image"
## Scripts
abbr -a -g up "kitty --detach --start-as maximized --session ~/.config/kitty/up.session"
# Variables
set -x EDITOR /usr/bin/nvim
set -x JULIA_NUM_THREADS 16
# Setup
## Zoxide
zoxide init fish | source
## starship
starship init fish | source
end

13
.config/kitty/kitty.conf Normal file
View file

@ -0,0 +1,13 @@
shell /usr/bin/fish
scrollback_lines 10000
wayland_titlebar_color black
font_size 14.0
map ctrl+shift+k next_window
map ctrl+shift+j previous_window
map ctrl+shift+enter new_window_with_cwd
map ctrl+shift+t new_tab_with_cwd

13
.config/kitty/up.session Normal file
View file

@ -0,0 +1,13 @@
layout vertical
launch fish -C "rpm-ostree upgrade"
launch fish -c "flatpak update -y && flatpak remove --delete-data --unused"
launch fish -c "nvim --headless -c 'autocmd User PackerComplete quitall' -c 'PackerSync'"
launch fish -c "cargo install-update -a"
launch fish -c "pipx upgrade-all"
launch fish -c "npm update -g"

18
.config/nvim/init.lua Normal file
View file

@ -0,0 +1,18 @@
require("options")
require("plugins")
--
-- Load all plugin configurations
local f = io.popen("fd --base-directory ~/.config/nvim/lua/plugins -t f --exact-depth 1 | rg '..(.+).lua' -r '$1'")
local plugin_names = f:lines()
for plugin_name in plugin_names do
require("plugins." .. plugin_name)
end
f:close()
--
require("keybindings")

View file

@ -0,0 +1,39 @@
local map = vim.api.nvim_set_keymap
local opts = {
noremap = true,
silent = true,
}
--
map("", "<Space>", "<Nop>", opts)
vim.g.mapleader = " "
vim.g.maplocalleader = " "
--
map("n", "<C-k>", ":BufferLineCycleNext<CR>", opts)
map("n", "<C-j>", ":BufferLineCyclePrev<CR>", opts)
map("n", "<C-b>", ":NvimTreeToggle<CR>", opts)
-- Telescope
map("n", "<C-p>", "<cmd>lua require('telescope.builtin').find_files()<CR>", opts)
map("n", "<C-f>", "<cmd>lua require('telescope.builtin').current_buffer_fuzzy_find()<CR>", opts)
--
map("n", "<space>s", "<cmd>lua require('telescope.builtin').lsp_document_symbols()<CR>", opts)
map("n", "<space>f", "<cmd>lua require('telescope.builtin').live_grep()<CR>", opts)
map("n", "<space>d", "<cmd>lua require('telescope.builtin').lsp_definitions()<CR>", opts)
-- hlslens
map("n", "n", [[<Cmd>execute('normal! ' . v:count1 . 'n')<CR><Cmd>lua require('hlslens').start()<CR>]], opts)
map("n", "N", [[<Cmd>execute('normal! ' . v:count1 . 'N')<CR><Cmd>lua require('hlslens').start()<CR>]], opts)
map("n", "*", [[*<Cmd>lua require('hlslens').start()<CR>]], opts)
map("n", "#", [[#<Cmd>lua require('hlslens').start()<CR>]], opts)
map("n", "g*", [[g*<Cmd>lua require('hlslens').start()<CR>]], opts)
map("n", "g#", [[g#<Cmd>lua require('hlslens').start()<CR>]], opts)
--
map("x", "*", [[*<Cmd>lua require('hlslens').start()<CR>]], opts)
map("x", "#", [[#<Cmd>lua require('hlslens').start()<CR>]], opts)
map("x", "g*", [[g*<Cmd>lua require('hlslens').start()<CR>]], opts)
map("x", "g#", [[g#<Cmd>lua require('hlslens').start()<CR>]], opts)

View file

@ -0,0 +1,43 @@
local opt = vim.opt
local cmd = vim.cmd
--
opt.expandtab = true
opt.tabstop = 4
opt.shiftwidth = 4
opt.smartindent = true
opt.mouse = "a"
opt.number = true
opt.relativenumber = true
opt.ignorecase = true
opt.smartcase = true
opt.gdefault = true
opt.termguicolors = true
opt.wrap = false
opt.whichwrap = "b,s,h,l,<,>,[,]"
opt.clipboard = "unnamedplus"
opt.undofile = true
opt.showmode = false
opt.scrolloff = 3
opt.sidescrolloff = 5
opt.cursorline = true
opt.shell = "/usr/bin/fish"
opt.confirm = true
-- Highlight on yank
vim.cmd([[au TextYankPost * silent! lua vim.highlight.on_yank {timeout=1200}]])

View file

@ -0,0 +1,128 @@
return require("packer").startup(function()
-- Plugin manager
use("wbthomason/packer.nvim")
-- Themes
use("olimorris/onedarkpro.nvim")
-- Git
use({
"lewis6991/gitsigns.nvim",
requires = {
"nvim-lua/plenary.nvim",
},
})
-- Telescope
use({
"nvim-telescope/telescope.nvim",
requires = {
"nvim-lua/plenary.nvim",
},
})
-- File tree
use({
"kyazdani42/nvim-tree.lua",
requires = {
"kyazdani42/nvim-web-devicons",
},
})
-- Status line
use({
"nvim-lualine/lualine.nvim",
requires = {
"kyazdani42/nvim-web-devicons",
},
})
-- Buffer line
use({
"akinsho/bufferline.nvim",
requires = {
"kyazdani42/nvim-web-devicons",
},
})
-- Show indentation
use("lukas-reineke/indent-blankline.nvim")
-- Comment
use("numToStr/Comment.nvim")
-- Todo-comment
use({
"AmeerTaweel/todo.nvim",
requires = {
"nvim-lua/plenary.nvim",
},
})
-- hlslens
use("kevinhwang91/nvim-hlslens")
-- Lightspeed
use("ggandor/lightspeed.nvim")
-- Treesitter
use({
"nvim-treesitter/nvim-treesitter",
run = ":TSUpdate",
})
-- GPS
use({
"SmiteshP/nvim-gps",
requires = {
"nvim-treesitter/nvim-treesitter",
},
})
-- Context
use({
"romgrk/nvim-treesitter-context",
requires = {
"nvim-treesitter/nvim-treesitter",
},
})
-- Rainbow parentheses
use({
"p00f/nvim-ts-rainbow",
requires = {
"nvim-treesitter/nvim-treesitter",
},
})
-- Cutlass
use("gbprod/cutlass.nvim")
-- Auto-session
use("rmagatti/auto-session")
-- null-ls
use({
"jose-elias-alvarez/null-ls.nvim",
requires = {
"nvim-lua/plenary.nvim",
},
})
-- LSP config
use("neovim/nvim-lspconfig")
-- Signature
use("ray-x/lsp_signature.nvim")
-- Autocompletion
use("hrsh7th/nvim-cmp")
-- Sources
-- LSP
use("hrsh7th/cmp-nvim-lsp")
-- Snippets
use("L3MON4D3/LuaSnip")
use("saadparwaiz1/cmp_luasnip")
-- Buffer
use("hrsh7th/cmp-buffer")
-- Path
use("hrsh7th/cmp-path")
-- cmdline
use("hrsh7th/cmp-cmdline")
end)

View file

@ -0,0 +1 @@
require("auto-session").setup()

View file

@ -0,0 +1,11 @@
require("bufferline").setup({
options = {
offsets = {
{
filetype = "NvimTree",
text = "",
text_align = "left",
},
},
},
})

View file

@ -0,0 +1 @@
require("Comment").setup()

View file

@ -0,0 +1,4 @@
require("cutlass").setup({
cut_key = "m",
exclude = { "ns", "nS" }, -- For lightspeed
})

View file

@ -0,0 +1 @@
require("gitsigns").setup()

View file

@ -0,0 +1 @@
require("nvim-gps").setup()

View file

@ -0,0 +1,4 @@
require("hlslens").setup({
calm_down = true,
nearest_only = true,
})

View file

@ -0,0 +1 @@
require("indent_blankline").setup()

View file

@ -0,0 +1,124 @@
-- Add additional capabilities supported by nvim-cmp
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require("cmp_nvim_lsp").update_capabilities(capabilities)
local lspconfig = require("lspconfig")
-- Enable some language servers with the additional completion capabilities offered by nvim-cmp
local function format_on_save(client)
if client.resolved_capabilities.document_formatting then
vim.cmd([[
augroup LspFormatting
autocmd! * <buffer>
autocmd BufWritePre <buffer> lua vim.lsp.buf.formatting_sync()
augroup END
]])
end
end
lspconfig["pylsp"].setup({
capabilities = capabilities,
on_attach = function(client, bufnr)
require("lsp_signature").on_attach()
-- Disable formatting
client.resolved_capabilities.document_formatting = false
client.resolved_capabilities.document_range_formatting = false
end,
})
lspconfig["julials"].setup({
capabilities = capabilities,
on_attach = function(client, bufnr)
require("lsp_signature").on_attach()
format_on_save(client)
end,
})
-- null-ls
null_ls = require("null-ls")
null_ls.setup({
sources = {
null_ls.builtins.formatting.black,
null_ls.builtins.formatting.isort,
null_ls.builtins.formatting.djhtml,
null_ls.builtins.formatting.prettierd,
null_ls.builtins.formatting.stylua,
null_ls.builtins.formatting.fish_indent,
null_ls.builtins.formatting.shellharden,
null_ls.builtins.formatting.shfmt,
null_ls.builtins.formatting.taplo,
--
null_ls.builtins.diagnostics.gitlint,
null_ls.builtins.diagnostics.shellcheck,
},
on_attach = format_on_save,
})
-- luasnip setup
local luasnip = require("luasnip")
-- nvim-cmp setup
local has_words_before = function()
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
end
vim.opt.completeopt = "menuone,noselect,preview"
local cmp = require("cmp")
cmp.setup({
snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
},
mapping = {
["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
["<CR>"] = cmp.mapping.confirm({ select = true }),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
else
fallback()
end
end, { "i", "c", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "c", "s" }),
},
sources = {
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "buffer" },
{ name = "path" },
},
})
-- Use buffer source for "/"
cmp.setup.cmdline("/", {
sources = {
{ name = "buffer" },
},
})
-- Use cmdline & path source for ":"
cmp.setup.cmdline(":", {
sources = {
{ name = "path" },
{ name = "cmdline" },
},
})

View file

@ -0,0 +1,15 @@
local gps = require("nvim-gps")
require("lualine").setup({
sections = {
lualine_a = { "filename" },
lualine_b = { "branch", "diff", "diagnostics" },
lualine_c = { { gps.get_location, cond = gps.is_available } },
lualine_x = { "filetype" },
lualine_y = {},
lualine_z = { "progress" },
},
extensions = {
"nvim-tree",
},
})

View file

@ -0,0 +1,17 @@
local onedarkpro = require("onedarkpro")
onedarkpro.setup({
theme = "onedark",
colors = {
onedark = {
bg = "#1e1e1e",
color_column = "#000000", -- For unfocussed
},
},
options = {
cursorline = true,
window_unfocussed_color = true,
},
})
onedarkpro.load()

View file

@ -0,0 +1 @@
require("telescope").setup()

View file

@ -0,0 +1 @@
require("todo").setup()

View file

@ -0,0 +1,24 @@
require("nvim-tree").setup({
open_on_setup = false,
auto_close = true,
hijack_cursor = true,
hijack_unnamed_buffer_when_opening = true,
update_cwd = true,
diagnostics = {
enable = true,
},
git = {
enable = true,
ignore = false,
},
view = {
width = 25,
side = "left",
},
actions = {
open_file = {
quit_on_open = true,
resize_window = true,
},
},
})

View file

@ -0,0 +1,27 @@
require("nvim-treesitter.configs").setup({
ensure_installed = {
"python",
"gdscript",
-- "godot_resource",
"julia",
"lua",
"latex",
"bash",
"fish",
"html",
"json",
"toml",
"yaml",
},
highlight = {
enable = true,
additional_vim_regex_highlighting = false,
},
indent = {
enable = true,
},
rainbow = {
enable = true,
extenden_mode = true,
},
})

14
.config/starship.toml Normal file
View file

@ -0,0 +1,14 @@
[package]
disabled = true
[python]
disabled = true
[julia]
disabled = true
[battery]
disabled = true
[directory]
truncate_to_repo = false

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
Manifest.toml

20
.julia/config/startup.jl Normal file
View file

@ -0,0 +1,20 @@
ENV["JULIA_SHELL"] = "/usr/bin/fish"
ENV["JULIA_EDITOR"] = "nvim"
using Pkg: Pkg
Pkg.update()
project_path = Pkg.project().path
project_dir = split(project_path, "/")[end - 1]
if !(project_dir in ("nvim-lspconfig",))
println("Startup setup...")
using OhMyREPL: OhMyREPL
using BenchmarkTools: @btime, @benchmark
using Revise: Revise, includet
if isfile("Project.toml")
Pkg.activate(".")
end
end

View file

@ -0,0 +1,2 @@
[deps]
LanguageServer = "2b0e0bc5-e4fd-59b4-8912-456d1b03d8d7"

View file

@ -0,0 +1,4 @@
[deps]
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
OhMyREPL = "5fb14364-9ced-5910-84b2-373655c76a03"
Revise = "295af30f-e4ad-537b-8983-00126c2a3abe"

1
.npmrc Normal file
View file

@ -0,0 +1 @@
prefix=/var/home/mo/.npm-global