├── private_dot_config
├── .keep
├── ArchVim
│ ├── .keep
│ ├── lua
│ │ └── plugins
│ │ │ ├── precognition-nvim.lua
│ │ │ └── treesitter.lua
│ └── init.lua
├── broot
│ ├── .keep
│ └── conf.toml
├── fish
│ ├── .keep
│ ├── functions
│ │ ├── .keep
│ │ ├── fish_command_not_found.fish
│ │ ├── mkcd.fish
│ │ ├── save_history.fish
│ │ └── vman.fish
│ ├── completions
│ │ └── lf.fish
│ ├── bindings.fish
│ ├── aliases.fish
│ ├── extras
│ │ └── kanagawa.fish
│ ├── config.fish
│ ├── abbr.fish
│ └── variables.fish
├── focus
│ ├── .keep
│ └── config.yml
├── nvim
│ ├── .keep
│ ├── utils
│ │ └── .keep
│ ├── snippets
│ │ ├── lua.lua
│ │ ├── css.lua
│ │ ├── javascript.lua
│ │ ├── go.lua
│ │ └── markdown.lua
│ ├── lua
│ │ ├── plugins
│ │ │ ├── fidget.lua
│ │ │ ├── neodev.lua
│ │ │ ├── tabular.lua
│ │ │ ├── vim-repeat.lua
│ │ │ ├── nvim-web-devicons.lua
│ │ │ ├── vim-unimpaired.lua
│ │ │ ├── vim-wakatime.lua
│ │ │ ├── glow.lua
│ │ │ ├── vim-rails.lua
│ │ │ ├── overseer.lua
│ │ │ ├── stay-centered.lua
│ │ │ ├── hardtime.lua
│ │ │ ├── nvim-bqf.lua
│ │ │ ├── mini.lua
│ │ │ ├── vim-rooter.lua
│ │ │ ├── nvim-emmet.lua
│ │ │ ├── which-key.lua
│ │ │ ├── nvim-surround.lua
│ │ │ ├── comment.lua
│ │ │ ├── persistent-breakpoints.lua
│ │ │ ├── tree-sitter-just.lua
│ │ │ ├── vim-gutentags.lua
│ │ │ ├── lsp_lines.lua
│ │ │ ├── symbol-usage.lua
│ │ │ ├── mason-nvim-dap.lua
│ │ │ ├── lsp_signature.lua
│ │ │ ├── lualine.lua
│ │ │ ├── nvim-dap-virtual-text.lua
│ │ │ ├── nvim-ts-rainbow.lua
│ │ │ ├── nvim-colorizer.lua
│ │ │ ├── headlines.lua
│ │ │ ├── nvim-bufferline.lua
│ │ │ ├── nvim-autopairs.lua
│ │ │ ├── mason.lua
│ │ │ ├── vim-bbye.lua
│ │ │ ├── detour.lua
│ │ │ ├── auto-session.lua
│ │ │ ├── vim-fugitive.lua
│ │ │ ├── todo-comments.lua
│ │ │ ├── nvim-dap-ui.lua
│ │ │ ├── nightfox.lua
│ │ │ ├── nvim-dap-go.lua
│ │ │ ├── mason-lspconfig.lua
│ │ │ ├── blink.lua
│ │ │ ├── nvim-ufo.lua
│ │ │ ├── precognition-nvim.lua
│ │ │ ├── nvim-lint.lua
│ │ │ ├── go-nvim.lua
│ │ │ ├── conform-nvim.lua
│ │ │ ├── kanagawa.lua
│ │ │ ├── trouble.lua
│ │ │ ├── luasnip.lua
│ │ │ ├── treesitter.lua
│ │ │ ├── mason-tool-installer.lua
│ │ │ ├── nvim-devdocs.lua
│ │ │ ├── gitsigns.lua
│ │ │ ├── nvim-dap.lua
│ │ │ ├── nvim-lspconfig.lua
│ │ │ ├── nvim-treesitter-textobjects.lua
│ │ │ ├── octo.lua
│ │ │ └── telescope.lua
│ │ ├── functions.lua
│ │ ├── theme.lua
│ │ ├── mappings.lua
│ │ ├── autocmds.lua
│ │ └── settings.lua
│ ├── templates
│ │ ├── skeleton.rs
│ │ ├── skeleton.svelte
│ │ ├── skeleton.prettierrc
│ │ ├── skeleton.eslintrc
│ │ ├── skeleton.gitignore
│ │ ├── skeleton.html
│ │ ├── skeleton.stylelintrc
│ │ ├── skeleton.scss
│ │ └── skeleton.LICENCE
│ ├── spell
│ │ ├── en.utf-8.add.spl
│ │ └── en.utf-8.add
│ ├── lsp
│ │ ├── lua_ls.lua
│ │ ├── ts_ls.lua
│ │ ├── solargraph.lua
│ │ ├── cssls.lua
│ │ ├── emmet.lua
│ │ └── gopls.lua
│ ├── init.lua
│ └── lazy-lock.json
├── kitty
│ ├── ssh.conf
│ ├── open-actions.conf
│ ├── kitty_session.conf
│ ├── mappings.conf
│ ├── theme.conf
│ ├── scrollback.conf
│ ├── fonts.conf
│ └── mouse.conf
├── yamlfmt
│ └── dot_yamlfmt
├── lf-ueberzug
│ └── lfrc-ueberzug
├── dot_psqlrc
├── programming
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ └── package.json
├── proselint
│ └── config.json
├── wezterm
│ └── wezterm.lua
├── zellij
│ ├── layouts
│ │ ├── f2.kdl
│ │ ├── bin-it.kdl
│ │ └── stellar-photos.kdl
│ └── config.kdl
├── lf
│ ├── lfrc
│ ├── lf.fish
│ ├── colors
│ └── icons
├── tilix
│ └── schemes
│ │ └── kanagawa.json
├── mise
│ └── config.toml
├── starship.toml
└── run-or-raise
│ └── shortcuts.conf
├── dot_rubocop.yml
├── dot_yamllint.yaml
├── README.md
├── dot_erb-lint.yml
├── dot_gitignore_global
├── dot_vimignore
├── dot_markdownlint.yaml
├── LICENCE
├── dot_golangci.yml
├── dot_tmux.conf
└── .tags
/private_dot_config/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/private_dot_config/ArchVim/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/private_dot_config/broot/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/private_dot_config/fish/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/private_dot_config/focus/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/utils/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/private_dot_config/fish/functions/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/snippets/lua.lua:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/dot_rubocop.yml:
--------------------------------------------------------------------------------
1 | AllCops:
2 | NewCops: enable
3 |
--------------------------------------------------------------------------------
/private_dot_config/fish/completions/lf.fish:
--------------------------------------------------------------------------------
1 | ../../lf/lf.fish
--------------------------------------------------------------------------------
/private_dot_config/kitty/ssh.conf:
--------------------------------------------------------------------------------
1 | env TERM=xterm-256color
2 |
--------------------------------------------------------------------------------
/private_dot_config/yamlfmt/dot_yamlfmt:
--------------------------------------------------------------------------------
1 | formatter:
2 | retain_line_breaks: true
3 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/fidget.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "j-hui/fidget.nvim",
3 | }
4 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/neodev.lua:
--------------------------------------------------------------------------------
1 | return { "folke/neodev.nvim", opts = {} }
2 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/tabular.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "godlygeek/tabular",
3 | }
4 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/vim-repeat.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "tpope/vim-repeat",
3 | }
4 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/templates/skeleton.rs:
--------------------------------------------------------------------------------
1 | fn main() {
2 | println!("Hello World!");
3 | }
4 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/templates/skeleton.svelte:
--------------------------------------------------------------------------------
1 |
3 |
4 |
6 |
--------------------------------------------------------------------------------
/private_dot_config/ArchVim/lua/plugins/precognition-nvim.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "tris203/precognition.nvim",
3 | }
4 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-web-devicons.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "DaikyXendo/nvim-web-devicons",
3 | }
4 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/functions.lua:
--------------------------------------------------------------------------------
1 | function P(val)
2 | print(vim.inspect(val))
3 | return val
4 | end
5 |
--------------------------------------------------------------------------------
/private_dot_config/lf-ueberzug/lfrc-ueberzug:
--------------------------------------------------------------------------------
1 | set previewer lf-ueberzug-previewer
2 | set cleaner lf-ueberzug-cleaner
3 |
--------------------------------------------------------------------------------
/private_dot_config/dot_psqlrc:
--------------------------------------------------------------------------------
1 | \set QUIET 1
2 | \pset linestyle unicode
3 | \pset border 2
4 | \pset null ∅
5 | \unset QUIET
6 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/vim-unimpaired.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "tpope/vim-unimpaired",
3 | event = "VeryLazy",
4 | }
5 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/vim-wakatime.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "wakatime/vim-wakatime",
3 | event = "VeryLazy",
4 | }
5 |
--------------------------------------------------------------------------------
/private_dot_config/programming/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "include": ["*.ts"]
4 | }
5 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/glow.lua:
--------------------------------------------------------------------------------
1 | return { "ellisonleao/glow.nvim", config = true, cmd = "Glow", ft = "markdown" }
2 |
--------------------------------------------------------------------------------
/private_dot_config/broot/conf.toml:
--------------------------------------------------------------------------------
1 | [[verbs]]
2 | invocation = "edit"
3 | key = "F2"
4 | shortcut = "e"
5 | execution = "nvim {file}"
6 |
--------------------------------------------------------------------------------
/private_dot_config/kitty/open-actions.conf:
--------------------------------------------------------------------------------
1 | protocol file
2 | mime image/*
3 | action launch --type=overlay kitten icat --hold ${FILE_PATH}
4 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/vim-rails.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "tpope/vim-rails",
3 | lazy = true,
4 | ft = { "ruby", "eruby" },
5 | }
6 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/spell/en.utf-8.add.spl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ayoisaiah/dotfiles/HEAD/private_dot_config/nvim/spell/en.utf-8.add.spl
--------------------------------------------------------------------------------
/private_dot_config/nvim/templates/skeleton.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 80,
3 | "singleQuote": true,
4 | "trailingComma": "es5"
5 | }
6 |
--------------------------------------------------------------------------------
/private_dot_config/fish/functions/fish_command_not_found.fish:
--------------------------------------------------------------------------------
1 | function fish_command_not_found
2 | echo "fish: Unknown command '$argv'" >&2
3 | end
4 |
--------------------------------------------------------------------------------
/private_dot_config/fish/functions/mkcd.fish:
--------------------------------------------------------------------------------
1 | # Create a directory and change to it immediately
2 | function mkcd
3 | mkdir -p $argv
4 | cd $argv
5 | end
6 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lsp/lua_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | lua_ls = {
3 | settings = {
4 | Lua = { diagnostics = { globals = { "vim" } } },
5 | },
6 | },
7 | }
8 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/overseer.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "stevearc/overseer.nvim",
3 | config = function()
4 | require("overseer").setup()
5 | end,
6 | }
7 |
--------------------------------------------------------------------------------
/dot_yamllint.yaml:
--------------------------------------------------------------------------------
1 | rules:
2 | document-start: disable
3 | quoted-strings:
4 | quote-type: double
5 | required: only-when-needed
6 | allow-quoted-quotes: true
7 |
--------------------------------------------------------------------------------
/private_dot_config/fish/functions/save_history.fish:
--------------------------------------------------------------------------------
1 | # sync history across all fish instances
2 | function save_history --on-event fish_preexec
3 | history --save
4 | end
5 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/stay-centered.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "arnamak/stay-centered.nvim",
3 | config = function()
4 | require("stay-centered").setup()
5 | end,
6 | }
7 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/hardtime.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "m4xshen/hardtime.nvim",
3 | event = "BufEnter",
4 | dependencies = { "MunifTanjim/nui.nvim" },
5 | opts = {},
6 | }
7 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-bqf.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "kevinhwang91/nvim-bqf",
3 | dependencies = {
4 | "nvim-treesitter/nvim-treesitter",
5 | },
6 | config = true,
7 | }
8 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/mini.lua:
--------------------------------------------------------------------------------
1 | local config = function() end
2 |
3 | return {
4 | "echasnovski/mini.nvim",
5 | version = "*",
6 | config = config,
7 | event = "BufEnter",
8 | }
9 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/templates/skeleton.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["airbnb-base", "plugin:prettier/recommended"],
3 | "env": {
4 | "browser": true
5 | },
6 | "rules": {
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Managed by [chezmoi](https://github.com/twpayne/chezmoi).
6 |
--------------------------------------------------------------------------------
/private_dot_config/fish/functions/vman.fish:
--------------------------------------------------------------------------------
1 | function vman --wraps man --description 'use nvim for displaying man pages'
2 | man $argv | col -bp | iconv -c | nvim -u NONE -R -c 'set ft=man nomod nolist' -;
3 | end
4 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/vim-rooter.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | vim.g.rooter_patterns = { "!^package.json", ".git" }
3 | end
4 |
5 | return {
6 | "airblade/vim-rooter",
7 | config = config,
8 | }
9 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-emmet.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "olrtg/nvim-emmet",
3 | config = function()
4 | vim.keymap.set({ "n", "v" }, "xe", require("nvim-emmet").wrap_with_abbreviation)
5 | end,
6 | }
7 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/which-key.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | require("which-key").setup()
3 | end
4 |
5 | return {
6 | "folke/which-key.nvim",
7 | event = "VeryLazy",
8 | config = config,
9 | }
10 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lsp/ts_ls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | ts_ls = {
3 | filetypes = { "typescript", "javascript" },
4 | init_options = {
5 | preferences = {
6 | disableSuggestions = true,
7 | },
8 | },
9 | },
10 | }
11 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-surround.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | require("nvim-surround").setup({})
3 | end
4 |
5 | return {
6 | "kylechui/nvim-surround",
7 | config = config,
8 | event = "BufEnter",
9 | }
10 |
--------------------------------------------------------------------------------
/private_dot_config/proselint/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "checks": {
3 | "typography.symbols.curly_quotes": false,
4 | "typography.diacritical_marks": false,
5 | "spelling.misc": false,
6 | "lexical_illusions.misc": false
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lsp/solargraph.lua:
--------------------------------------------------------------------------------
1 | return {
2 | solargraph = {
3 | init_options = {
4 | formatting = false,
5 | },
6 | settings = {
7 | solargraph = {
8 | diagnostics = false,
9 | },
10 | },
11 | },
12 | }
13 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/comment.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "numtostr/comment.nvim",
3 | config = function()
4 | require("Comment").setup()
5 | local ft = require("Comment.ft")
6 | ft.kdl = { "//%s" }
7 | end,
8 | event = "VeryLazy",
9 | }
10 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/persistent-breakpoints.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "Weissle/persistent-breakpoints.nvim",
3 | config = function()
4 | require("persistent-breakpoints").setup({
5 | load_breakpoints_event = { "BufReadPost" },
6 | })
7 | end,
8 | }
9 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/tree-sitter-just.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "IndianBoy42/tree-sitter-just",
3 | dependencies = {
4 | "nvim-treesitter/nvim-treesitter",
5 | },
6 | config = function()
7 | require("tree-sitter-just").setup()
8 | end,
9 | }
10 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/vim-gutentags.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "ludovicchabant/vim-gutentags",
3 | config = function()
4 | vim.g.gutentags_file_list_command = 'rg --files --follow --ignore-file "/home/ayo/.vimignore"'
5 | end,
6 | event = "VeryLazy",
7 | }
8 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/lsp_lines.lua:
--------------------------------------------------------------------------------
1 | return {
2 | url = "https://git.sr.ht/~whynothugo/lsp_lines.nvim",
3 | config = function()
4 | require("lsp_lines").setup({})
5 |
6 | vim.diagnostic.config({
7 | virtual_text = false,
8 | })
9 | end,
10 | }
11 |
--------------------------------------------------------------------------------
/private_dot_config/wezterm/wezterm.lua:
--------------------------------------------------------------------------------
1 | local wezterm = require("wezterm")
2 |
3 | return {
4 | font = wezterm.font("Delugia"),
5 | font_size = 10.0,
6 | color_scheme = "Sundried",
7 | window_decorations = "RESIZE",
8 | hide_tab_bar_if_only_one_tab = false,
9 | }
10 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/symbol-usage.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "Wansmer/symbol-usage.nvim",
3 | event = "BufReadPre", -- need run before LspAttach if you use nvim 0.9. On 0.10 use 'LspAttach'
4 | -- config = function()
5 | -- require('symbol-usage').setup()
6 | -- end
7 | }
8 |
--------------------------------------------------------------------------------
/dot_erb-lint.yml:
--------------------------------------------------------------------------------
1 | ---
2 | EnableDefaultLinters: true
3 | linters:
4 | ErbSafety:
5 | enabled: true
6 | # Rubocop:
7 | # enabled: true
8 | # rubocop_config:
9 | # inherit_from:
10 | # - .rubocop.yml
11 | RequireScriptNonce:
12 | enabled: true
13 |
--------------------------------------------------------------------------------
/private_dot_config/kitty/kitty_session.conf:
--------------------------------------------------------------------------------
1 | new_tab Base
2 | launch zellij attach -c base
3 |
4 | new_tab Work
5 | launch zellij attach -c work
6 |
7 | new_tab Freshman
8 | launch zellij attach -c freshman
9 |
10 | new_tab Side Projects
11 | launch zellij attach -c side-projects
12 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lsp/cssls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | cssls = {
3 | settings = {
4 | css = { validate = true, lint = {
5 | unknownAtRules = "ignore",
6 | } },
7 | scss = { validate = true, lint = {
8 | unknownAtRules = "ignore",
9 | } },
10 | },
11 | },
12 | }
13 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/mason-nvim-dap.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | local masonDap = require("mason-nvim-dap")
3 | masonDap.setup({})
4 | end
5 |
6 | return {
7 | "jay-babu/mason-nvim-dap.nvim",
8 | dependencies = {
9 | "mason-org/mason.nvim",
10 | },
11 | }
12 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/lsp_signature.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "ray-x/lsp_signature.nvim",
3 | config = function()
4 | require("lsp_signature").setup({
5 | -- fix_pos = true,
6 | -- toggle_key = "",
7 | -- select_signature_key = "",
8 | })
9 | end,
10 | }
11 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/lualine.lua:
--------------------------------------------------------------------------------
1 | local config = function(_, opts)
2 | require("lualine").setup(opts)
3 | end
4 |
5 | return {
6 | "nvim-lualine/lualine.nvim",
7 | config = config,
8 | opts = {
9 | options = { theme = "onedark" },
10 | },
11 | lazy = false,
12 | }
13 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lsp/emmet.lua:
--------------------------------------------------------------------------------
1 | return {
2 | emmet_language_server = {
3 | filetypes = {
4 | "css",
5 | "html",
6 | "markdown",
7 | "javascript",
8 | "javascriptreact",
9 | "scss",
10 | "pug",
11 | "typescriptreact",
12 | "typescript",
13 | },
14 | },
15 | }
16 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-dap-virtual-text.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "theHamsta/nvim-dap-virtual-text",
3 | dependencies = {
4 | "mfussenegger/nvim-dap",
5 | },
6 | config = function()
7 | require("nvim-dap-virtual-text").setup({
8 | only_first_definition = false,
9 | })
10 | end,
11 | }
12 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-ts-rainbow.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "p00f/nvim-ts-rainbow",
3 | config = function()
4 | require("nvim-treesitter.configs").setup({
5 | rainbow = {
6 | enable = true,
7 | extended_mode = true,
8 | max_file_lines = 1000,
9 | },
10 | })
11 | end,
12 | }
13 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-colorizer.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "norcalli/nvim-colorizer.lua",
3 | config = function()
4 | require("colorizer").setup({
5 | "html", "css", "scss", "javascript", "lua", "eruby",
6 | })
7 | end,
8 | ft = { "html", "css", "scss", "javascript", "lua", "eruby" },
9 | }
10 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/templates/skeleton.gitignore:
--------------------------------------------------------------------------------
1 | # dependencies
2 | /node_modules
3 |
4 | # testing
5 | /coverage
6 |
7 | # misc
8 | .DS_Store
9 | *.map
10 |
11 | # Logs
12 | logs
13 | *.log
14 | npm-debug.log*
15 | yarn-debug.log*
16 | yarn-error.log*
17 |
18 | # Environmental variables
19 | .env
20 | .env.test
21 |
--------------------------------------------------------------------------------
/dot_gitignore_global:
--------------------------------------------------------------------------------
1 | # dependencies
2 | /node_modules
3 |
4 | # testing
5 | /coverage
6 |
7 | # misc
8 | .DS_Store
9 | *.map
10 | .vim
11 |
12 | # Logs
13 | logs
14 | *.log
15 | npm-debug.log*
16 | yarn-debug.log*
17 | yarn-error.log*
18 |
19 | # Environmental variables
20 | .env
21 | .env.test
22 |
23 | # Ctags
24 | tags
25 |
--------------------------------------------------------------------------------
/private_dot_config/fish/bindings.fish:
--------------------------------------------------------------------------------
1 | # Set vi bindings as default
2 | function fish_user_key_bindings
3 | fish_default_key_bindings -M insert
4 | fish_vi_key_bindings --no-erase insert
5 | end
6 |
7 | fish_user_key_bindings
8 |
9 | bind \e\[A 'history --merge ; up-or-search'
10 |
11 | fzf_configure_bindings --directory=\cf
12 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/headlines.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "lukas-reineke/headlines.nvim",
3 | dependencies = { "nvim-treesitter" },
4 | config = function()
5 | require("headlines").setup({})
6 | vim.cmd([[highlight CodeBlock guibg=#2B3328]])
7 | vim.cmd([[highlight Dash guibg=#D19A66 gui=bold]])
8 | end,
9 | event = "BufEnter *.md",
10 | }
11 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-bufferline.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | require("bufferline").setup({
3 | options = {
4 | diagnostics = "nvim_lsp",
5 | buffer_close_icon = "",
6 | },
7 | })
8 | end
9 |
10 | return {
11 | "akinsho/nvim-bufferline.lua",
12 | tag = "v4.9.1",
13 | event = "BufEnter",
14 | config = config,
15 | }
16 |
--------------------------------------------------------------------------------
/private_dot_config/kitty/mappings.conf:
--------------------------------------------------------------------------------
1 | # Select entire command output by right-clicking
2 | mouse_map right press ungrabbed mouse_select_command_output
3 |
4 | map ctrl+1 goto_tab 1
5 | map ctrl+2 goto_tab 2
6 | map ctrl+3 goto_tab 3
7 | map ctrl+4 goto_tab 4
8 | map ctrl+5 goto_tab 5
9 | map ctrl+6 goto_tab 6
10 | map ctrl+7 goto_tab 7
11 | map ctrl+8 goto_tab 8
12 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-autopairs.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | require("nvim-autopairs").setup({
3 | disable_filetype = { "TelescopePrompt", "guihua", "guihua_rust", "clap_input" },
4 | })
5 | end
6 |
7 | return {
8 | "windwp/nvim-autopairs",
9 | lazy = true,
10 | event = { "BufReadPost", "BufNewFile" },
11 | config = config,
12 | }
13 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/templates/skeleton.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Document
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/dot_vimignore:
--------------------------------------------------------------------------------
1 | .git/
2 | _site/
3 | node_modules/
4 | vendor/
5 | venv/
6 | __pycache__/
7 | .pytest_cache/
8 | *.jpeg
9 | *.jpg
10 | *.JPG
11 | *.png
12 | *.mp4
13 | *.flac
14 | *.webm
15 | *.mp3
16 | *.ogg
17 | *.webp
18 | *.gif
19 | *.woff
20 | *.woff2
21 | *.dng
22 | *.cr2
23 | *.dng
24 | *.keep
25 | *.gz
26 | *.tar
27 | *.zip
28 | yarn.lock
29 | package-lock.json
30 | tags
31 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/mason.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | local mason = require("mason")
3 |
4 | mason.setup({
5 | ui = {
6 | icons = {
7 | package_installed = "✅",
8 | package_pending = "🔜",
9 | package_uninstalled = "❌",
10 | },
11 | },
12 | })
13 | end
14 |
15 | return {
16 | "mason-org/mason.nvim",
17 | config = config,
18 | }
19 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/theme.lua:
--------------------------------------------------------------------------------
1 | local my_colors = {
2 | waveBlue1 = "#363646",
3 | sumiInk1 = "#16161D",
4 | roninYellow = "#F5DD8E",
5 | }
6 |
7 | require("kanagawa").setup({
8 | dimInactive = true,
9 | colors = my_colors,
10 | functionStyle = { bold = true },
11 | typeStyle = { bold = true },
12 | })
13 |
14 | -- Load the colorscheme
15 | vim.cmd([[colorscheme kanagawa]])
16 |
--------------------------------------------------------------------------------
/private_dot_config/zellij/layouts/f2.kdl:
--------------------------------------------------------------------------------
1 | layout {
2 | pane stacked=true {
3 | pane {
4 | cwd "$HOME/dev/repos/f2"
5 | command "nvim"
6 | name "cli"
7 | }
8 | pane {
9 | cwd "$HOME/dev/repos/f2-docs"
10 | command "nvim"
11 | name "docs"
12 | }
13 | }
14 | pane size=1 borderless=true {
15 | plugin location="zellij:compact-bar"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/vim-bbye.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "moll/vim-bbye",
3 | config = function()
4 | local wk = require("which-key")
5 |
6 | wk.add({
7 | { "b", group = "Buffer" },
8 | { "bl", "Bwipeout", desc = "Clear current buffer" },
9 | { "bx", "bufdo :Bdelete", desc = "Clear all buffers" },
10 | })
11 | end,
12 | event = "VeryLazy",
13 | }
14 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/detour.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "carbon-steel/detour.nvim",
3 | config = function()
4 | vim.keymap.set("n", "", ":Detour")
5 | -- local wk = require("which-key")
6 | --
7 | -- wk.register({
8 | -- name = "Buffer",
9 | -- x = { "bufdo :Bdelete", "Clear all buffers" },
10 | -- }, { prefix = "b" })
11 | end,
12 | event = "VeryLazy",
13 | }
14 |
--------------------------------------------------------------------------------
/private_dot_config/zellij/layouts/bin-it.kdl:
--------------------------------------------------------------------------------
1 | layout {
2 | pane stacked=true {
3 | pane {
4 | cwd "$HOME/dev/repos/bin-it"
5 | command "nvim"
6 | name "Code"
7 | }
8 | pane {
9 | cwd "$HOME/dev/repos/bin-it"
10 | command "just test"
11 | name "Tests"
12 | }
13 | }
14 | pane size=1 borderless=true {
15 | plugin location="zellij:compact-bar"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/snippets/css.lua:
--------------------------------------------------------------------------------
1 | ---@diagnostic disable: undefined-global
2 |
3 | local subtitleComment = s(
4 | "stc",
5 | fmt(
6 | [[
7 | /* {}
8 | ========================================================================== */
9 | {}
10 | ]],
11 | { i(1, "Subtitle"), i(2) }
12 | )
13 | )
14 |
15 | local snippets = {
16 | subtitleComment,
17 | }
18 | local autosnippets = {}
19 |
20 | return snippets, autosnippets
21 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/auto-session.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal"
3 |
4 | require("auto-session").setup({
5 | log_level = vim.log.levels.ERROR,
6 | session_lens = {
7 | theme_conf = { border = true },
8 | },
9 | })
10 | end
11 |
12 | return {
13 | "rmagatti/auto-session",
14 | config = config,
15 | lazy = false,
16 | }
17 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/vim-fugitive.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | local wk = require("which-key")
3 |
4 | wk.add({
5 | { "g", group = "Git" },
6 | { "ga", "Git commit --amend", desc = "Amend commit" },
7 | { "gc", "Git commit --verbose", desc = "Git commit" },
8 | })
9 | end
10 |
11 | return {
12 | "tpope/vim-fugitive",
13 | config = config,
14 | event = "VeryLazy",
15 | }
16 |
--------------------------------------------------------------------------------
/private_dot_config/zellij/layouts/stellar-photos.kdl:
--------------------------------------------------------------------------------
1 | layout {
2 | pane stacked=true {
3 | pane {
4 | cwd "$HOME/dev/repos/stellar-photos/extension"
5 | command "nvim"
6 | name "Web Extension"
7 | }
8 | pane {
9 | cwd "$HOME/dev/repos/stellar-photos/server"
10 | command "nvim"
11 | name "Server"
12 | }
13 | }
14 | pane size=1 borderless=true {
15 | plugin location="zellij:compact-bar"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/snippets/javascript.lua:
--------------------------------------------------------------------------------
1 | ---@diagnostic disable: undefined-global
2 | local consoleLog = s("clg", fmt([[console.log({})]], { i(1) }))
3 | -- local import = s("imp", fmt([[import ]]))
4 | -- local callback = s(
5 | -- "cb",
6 | -- fmt([[({}) => {
7 | -- {}
8 | -- }]]),
9 | -- i(1),
10 | -- i(2)
11 | -- )
12 |
13 | local snippets = {
14 | -- callback,
15 | }
16 | local autosnippets = {
17 | consoleLog,
18 | }
19 |
20 | return snippets, autosnippets
21 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/todo-comments.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "folke/todo-comments.nvim",
3 | config = function()
4 | require("todo-comments").setup({
5 | search = {
6 | command = "rg",
7 | args = {
8 | "--color=never",
9 | "--no-heading",
10 | "--with-filename",
11 | "--line-number",
12 | "--column",
13 | "--ignore-file",
14 | "/home/ayo/.vimignore",
15 | },
16 | },
17 | })
18 | end,
19 | event = "VeryLazy",
20 | }
21 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/templates/skeleton.stylelintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "stylelint-config-standard",
3 | "plugins": ["stylelint-scss"],
4 | "rules": {
5 | "declaration-colon-newline-after": null,
6 | "scss/selector-no-redundant-nesting-selector": true,
7 | "max-empty-lines": 5,
8 | "at-rule-no-unknown": [
9 | true,
10 | {
11 | "ignoreAtRules": ["mixin", "include", "each", "function", "content"]
12 | }
13 | ]
14 | }
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-dap-ui.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | local dapui = require("dapui")
3 | local wk = require("which-key")
4 |
5 | dapui.setup()
6 |
7 | wk.add({
8 | { "d", group = "Debugger" },
9 | { "du", dapui.toggle, desc = "Toggle dap ui" },
10 | })
11 | end
12 |
13 | return {
14 | "rcarriga/nvim-dap-ui",
15 | config = config,
16 | dependencies = {
17 | "mfussenegger/nvim-dap",
18 | "nvim-neotest/nvim-nio",
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/private_dot_config/lf/lfrc:
--------------------------------------------------------------------------------
1 | set shell bash
2 |
3 | set ignorecase true
4 | set icons true
5 |
6 | set previewer ~/.config/lf/previewer.sh
7 | set cleaner ~/.config/lf/clear_img.sh
8 |
9 | cmd z %{{
10 | result="$(zoxide query --exclude "${PWD}" -- "$@")"
11 | lf -remote "send ${id} cd '${result}'"
12 | }}
13 |
14 | cmd zi ${{
15 | result="$(zoxide query -i -- "$@")"
16 | lf -remote "send ${id} cd '${result}'"
17 | }}
18 |
19 | map quit
20 |
21 | cmd delete IFS="`printf '\n\t'`"; rm $fx
22 |
23 | map D delete
24 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nightfox.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | require("nightfox").setup({
3 | palettes = {
4 | carbonfox = {
5 | orange = "#FFA066",
6 | },
7 | },
8 | specs = {
9 | carbonfox = {
10 | syntax = {
11 | variable = "orange",
12 | number = "white",
13 | },
14 | },
15 | },
16 | })
17 |
18 | vim.cmd([[colorscheme carbonfox]])
19 | end
20 |
21 | return {
22 | "EdenEast/nightfox.nvim",
23 | lazy = false,
24 | enabled = false,
25 | priority = 1000,
26 | config = config,
27 | }
28 |
--------------------------------------------------------------------------------
/private_dot_config/focus/config.yml:
--------------------------------------------------------------------------------
1 | display:
2 | dark_theme: true
3 | long_break:
4 | duration: 30m
5 | message: Take a long break
6 | sound: bell
7 | notifications:
8 | enabled: true
9 | settings:
10 | ambient_sound: ""
11 | auto_start_break: true
12 | auto_start_work: false
13 | cmd: ""
14 | long_break_interval: 4
15 | sound_on_break: false
16 | strict: false
17 | short_break:
18 | duration: 10m
19 | message: Take a breather
20 | sound: bell
21 | work:
22 | duration: 50m
23 | message: Focus on your task
24 | sound: loud_bell
25 |
--------------------------------------------------------------------------------
/private_dot_config/programming/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "noEmit": true,
4 | "sourceMap": true,
5 | "module": "es6",
6 | "strict": true,
7 | "target": "esnext",
8 | "allowJs": false,
9 | "moduleResolution": "node",
10 | "esModuleInterop": true,
11 | "skipLibCheck": true,
12 | "noUnusedParameters": true,
13 | "noUncheckedIndexedAccess": true,
14 | "noUnusedLocals": true,
15 | "noImplicitReturns": true,
16 | "allowSyntheticDefaultImports": true
17 | },
18 | "include": ["./**/*.ts"]
19 | }
20 |
--------------------------------------------------------------------------------
/private_dot_config/tilix/schemes/kanagawa.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Kanagawa",
3 | "comment": "Kanagawa Dark Scheme",
4 | "use-theme-colors": false,
5 | "foreground-color": "#DCD7BA",
6 | "background-color": "#1F1F28",
7 | "palette": [
8 | "#090618",
9 | "#C34043",
10 | "#76946A",
11 | "#C0A36E",
12 | "#7E9CD8",
13 | "#957FB8",
14 | "#6A9589",
15 | "#F8F8F2",
16 | "#727169",
17 | "#E82424",
18 | "#98BB6C",
19 | "#E6C384",
20 | "#7FB4CA",
21 | "#938AA9",
22 | "#7AA89F",
23 | "#F9F8F5"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/private_dot_config/ArchVim/init.lua:
--------------------------------------------------------------------------------
1 | local fn = vim.fn
2 | local opt = vim.opt
3 |
4 | local lazypath = fn.stdpath("data") .. "/lazy/lazy.nvim"
5 | if not vim.loop.fs_stat(lazypath) then
6 | vim.fn.system({
7 | "git",
8 | "clone",
9 | "--filter=blob:none",
10 | "https://github.com/folke/lazy.nvim.git",
11 | "--branch=stable", -- latest stable release
12 | lazypath,
13 | })
14 | end
15 | opt.rtp:prepend(lazypath)
16 |
17 | require("lazy").setup("plugins", {
18 | defaults = {
19 | lazy = true,
20 | },
21 | change_detection = {
22 | notify = false,
23 | },
24 | })
25 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/templates/skeleton.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | #TITLE
3 | ========================================================================== */
4 |
5 | /**
6 | * Long-form comment.
7 | *
8 | * This spans multiple lines and is also constrained to no longer than 80
9 | * characters in width.
10 | *
11 | * 1. Provide line-comments like this.
12 | */
13 |
14 | .x-class {
15 | color: #f00; /* [1] */
16 | }
17 |
18 | /* Sub-title
19 | ========================================================================== */
20 |
--------------------------------------------------------------------------------
/dot_markdownlint.yaml:
--------------------------------------------------------------------------------
1 | default: true
2 | "MD003": {style: "atx"} # Heading style, use pound marks in front of text
3 | "MD004": {style: "dash"} # UL style, dashed
4 | "MD010": false # Allow hard tabs
5 | "MD013": {code_blocks: false} # Enable line length checks except in code blocks
6 | "MD033": false # Allow inline HTML
7 | "MD041": false # First line in the file may not be a heading
8 | "MD046": {style: "fenced"} # Only allow fenced code blocks
9 | "MD047": false # Disable "file must end with a single newline" check
10 | "MD048": {style: "backtick"} # Only allow backticks for code blocks
11 | "MD052": false
12 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-dap-go.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | local dapgo = require("dap-go")
3 | local wk = require("which-key")
4 |
5 | dapgo.setup({
6 | dap_configurations = {},
7 | })
8 |
9 | wk.add({
10 | { "d", group = "Debugger" },
11 | { "dT", "lua require('dap-go').debug_last_test()", desc = "Debug last run test" },
12 | { "dt", "lua require('dap-go').debug_test()", desc = "Debug closest test" },
13 | })
14 | end
15 |
16 | return {
17 | "leoluz/nvim-dap-go",
18 | event = { "BufEnter *.go" },
19 | config = config,
20 | }
21 |
--------------------------------------------------------------------------------
/private_dot_config/ArchVim/lua/plugins/treesitter.lua:
--------------------------------------------------------------------------------
1 | local config = function(_, opts)
2 | require("nvim-treesitter.configs").setup(opts)
3 | end
4 |
5 | return {
6 | "nvim-treesitter/nvim-treesitter",
7 | build = ":TSUpdate",
8 | config = config,
9 | version = false,
10 | dependencies = {
11 | "nvim-treesitter/nvim-treesitter-textobjects",
12 | },
13 | event = { "BufReadPost", "BufNewFile" },
14 | opts = {
15 | ensure_installed = "all",
16 | highlight = {
17 | enable = true,
18 | },
19 | indent = {
20 | enable = true,
21 | },
22 | matchup = {
23 | enable = true,
24 | },
25 | },
26 | }
27 |
--------------------------------------------------------------------------------
/private_dot_config/mise/config.toml:
--------------------------------------------------------------------------------
1 | [tools]
2 | bun = "latest"
3 | go = "1.25"
4 | "go:github.com/open-telemetry/opentelemetry-collector-contrib/cmd/telemetrygen" = "latest"
5 | node = "latest"
6 | "npm:@anthropic-ai/claude-code" = "latest"
7 | "npm:@bitwarden/cli" = "latest"
8 | "npm:@google/gemini-cli" = "latest"
9 | "npm:autocannon" = "latest"
10 | "npm:markdownlint-cli" = "latest"
11 | "npm:nodemon" = "latest"
12 | "npm:npm-check-updates" = "latest"
13 | "npm:prettier" = "latest"
14 | python = "3.13"
15 | rust = "latest"
16 |
17 | [settings]
18 | idiomatic_version_file_enable_tools = ["node"]
19 | experimental = true
20 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/mason-lspconfig.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | local masonLspConfig = require("mason-lspconfig")
3 |
4 | masonLspConfig.setup({
5 | ensure_installed = {
6 | "biome",
7 | "lua_ls",
8 | "jsonls",
9 | "rust_analyzer",
10 | "gopls",
11 | "golangci_lint_ls",
12 | "html",
13 | "ts_ls",
14 | "jqls",
15 | "bashls",
16 | "marksman",
17 | "cssls",
18 | "sqlls",
19 | "biome",
20 | "yamlls",
21 | },
22 | })
23 | end
24 |
25 | return {
26 | "mason-org/mason-lspconfig.nvim",
27 | dependencies = {
28 | "mason-org/mason.nvim",
29 | },
30 | }
31 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/blink.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "saghen/blink.cmp",
3 | version = "1.*",
4 | dependencies = {
5 | "L3MON4D3/LuaSnip",
6 | "folke/lazydev.nvim",
7 | },
8 | opts = {
9 | keymap = { preset = "enter" },
10 | completion = { documentation = { auto_show = true } },
11 | sources = {
12 | default = { "lsp", "path", "snippets", "buffer", "lazydev" },
13 | providers = {
14 | lazydev = { module = "lazydev.integrations.blink", score_offset = 100 },
15 | },
16 | },
17 | snippets = { preset = "luasnip" },
18 | signature = { enabled = true },
19 | },
20 | event = "VimEnter",
21 | }
22 |
--------------------------------------------------------------------------------
/private_dot_config/programming/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "node",
3 | "version": "1.0.0",
4 | "main": "index.js",
5 | "license": "MIT",
6 | "devDependencies": {
7 | "eslint": "^8.24.0",
8 | "eslint-config-airbnb-base": "^15.0.0",
9 | "eslint-config-airbnb-typescript": "^17.0.0",
10 | "eslint-config-prettier": "^8.5.0",
11 | "eslint-plugin-import": "^2.26.0",
12 | "eslint-plugin-prettier": "^4.2.1",
13 | "prettier": "^2.7.1",
14 | "typescript": "^4.8.3",
15 | "@types/node": "18",
16 | "@typescript-eslint/eslint-plugin": "^5.38.0",
17 | "@typescript-eslint/parser": "^5.38.0"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-ufo.lua:
--------------------------------------------------------------------------------
1 | --TODO: Learn about folding workflow
2 | local config = function()
3 | vim.o.foldcolumn = "1"
4 | vim.o.foldlevel = 99
5 | vim.o.foldlevelstart = 99
6 | vim.o.foldenable = true
7 |
8 | vim.keymap.set("n", "zR", require("ufo").openAllFolds)
9 | vim.keymap.set("n", "zM", require("ufo").closeAllFolds)
10 |
11 | local ufo = require("ufo")
12 | ufo.setup({
13 | close_fold_kinds = { "imports", "comment" },
14 | provider_selector = function(bufnr, filetype, buftype)
15 | return { "treesitter", "indent" }
16 | end,
17 | })
18 | end
19 |
20 | return {
21 | "kevinhwang91/nvim-ufo",
22 | dependencies = {
23 | "kevinhwang91/promise-async",
24 | },
25 | event = "VeryLazy",
26 | -- config = config,
27 | }
28 |
--------------------------------------------------------------------------------
/private_dot_config/kitty/theme.conf:
--------------------------------------------------------------------------------
1 | background #111213
2 | foreground #cacecd
3 | cursor #e2be21
4 | # selection_background #303233
5 | color0 #323232
6 | color8 #323232
7 | color1 #c22832
8 | color9 #c22832
9 | color2 #8ec43d
10 | color10 #8ec43d
11 | color3 #e0c64f
12 | color11 #e0c64f
13 | color4 #43a5d5
14 | color12 #43a5d5
15 | color5 #8b57b5
16 | color13 #8b57b5
17 | color6 #8ec43d
18 | color14 #8ec43d
19 | color7 #eeeeee
20 | color15 #ffffff
21 | # selection_foreground #111213
22 | selection_foreground #000000
23 | selection_background #f9c22e
24 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/init.lua:
--------------------------------------------------------------------------------
1 | -- All non-plugin Neovim options
2 | require("settings")
3 | -- auto commands
4 | require("autocmds")
5 | -- Mappings not related to any plugin
6 | require("mappings")
7 | -- Custom functions
8 | require("functions")
9 |
10 | vim.lsp.enable({ "cssls", "gopls", "ts_ls", "lua_ls", "emmet", "solargraph" })
11 |
12 | local fn = vim.fn
13 | local opt = vim.opt
14 |
15 | local lazypath = fn.stdpath("data") .. "/lazy/lazy.nvim"
16 | if not vim.loop.fs_stat(lazypath) then
17 | vim.fn.system({
18 | "git",
19 | "clone",
20 | "--filter=blob:none",
21 | "https://github.com/folke/lazy.nvim.git",
22 | "--branch=stable", -- latest stable release
23 | lazypath,
24 | })
25 | end
26 | opt.rtp:prepend(lazypath)
27 |
28 | require("lazy").setup("plugins", {
29 | defaults = {
30 | lazy = true,
31 | },
32 | change_detection = {
33 | notify = false,
34 | },
35 | })
36 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/precognition-nvim.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "tris203/precognition.nvim",
3 | enabled = false,
4 | lazy = false,
5 | config = {
6 | startVisible = true,
7 | showBlankVirtLine = true,
8 | highlightColor = { link = "Comment" },
9 | hints = {
10 | Caret = { text = "^", prio = 2 },
11 | Dollar = { text = "$", prio = 1 },
12 | MatchingPair = { text = "%", prio = 5 },
13 | Zero = { text = "0", prio = 1 },
14 | w = { text = "w", prio = 10 },
15 | b = { text = "b", prio = 9 },
16 | e = { text = "e", prio = 8 },
17 | W = { text = "W", prio = 7 },
18 | B = { text = "B", prio = 6 },
19 | E = { text = "E", prio = 5 },
20 | },
21 | gutterHints = {
22 | G = { text = "G", prio = 10 },
23 | gg = { text = "gg", prio = 9 },
24 | PrevParagraph = { text = "{", prio = 8 },
25 | NextParagraph = { text = "}", prio = 8 },
26 | },
27 | },
28 | }
29 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-lint.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | local lint = require("lint")
3 | local golangcilint = require("lint").linters.golangcilint
4 | golangcilint.args = {
5 | "run",
6 | "--fix=true",
7 | "--fast",
8 | "--out-format=json",
9 | }
10 |
11 | lint.linters_by_ft = {
12 | markdown = { "markdownlint" },
13 | sh = { "shellcheck" },
14 | dockerfile = { "hadolint" },
15 | javascript = { "biomejs" },
16 | typescript = { "biomejs" },
17 | json = { "jsonlint" },
18 | go = { "golangcilint" },
19 | css = { "stylelint" },
20 | scss = { "stylelint" },
21 | sql = { "sqlfluff" },
22 | yaml = { "yamllint" },
23 | ["yaml.ansible"] = { "ansiblelint" },
24 | }
25 |
26 | vim.api.nvim_create_autocmd({ "BufWritePost" }, {
27 | callback = function()
28 | lint.try_lint()
29 | end,
30 | })
31 | end
32 |
33 | return {
34 | "mfussenegger/nvim-lint",
35 | event = { "BufReadPost" },
36 | config = config,
37 | }
38 |
--------------------------------------------------------------------------------
/private_dot_config/starship.toml:
--------------------------------------------------------------------------------
1 | command_timeout = 2000
2 | add_newline = false
3 |
4 | [character]
5 | success_symbol = '✅'
6 | error_symbol = '🔴'
7 |
8 | [aws]
9 | disabled = true
10 |
11 | [gcloud]
12 | disabled = true
13 |
14 | [time]
15 | disabled = true
16 |
17 | [cmd_duration]
18 | disabled = true
19 |
20 | [directory]
21 | truncation_length = 8
22 |
23 | [hostname]
24 | disabled = true
25 |
26 | [nodejs]
27 | symbol = '🟩'
28 |
29 | [golang]
30 | symbol = '🐀'
31 | format = 'via [$symbol($version )($mod_version )]($style)'
32 |
33 | [battery]
34 | disabled = true
35 |
36 | [git_status]
37 | conflicted = '🚩'
38 | ahead = '💨'
39 | behind = '⏩'
40 | diverged = '😵'
41 | untracked = '🤷'
42 | stashed = '📦'
43 | modified = '📝'
44 | staged = '[++\($count\)](green)'
45 | renamed = '👅'
46 | deleted = '💥'
47 |
48 | [shell]
49 | fish_indicator = '🦈'
50 | bash_indicator = '💲'
51 | powershell_indicator = '💪'
52 | unknown_indicator = '💻'
53 | disabled = false
54 |
--------------------------------------------------------------------------------
/private_dot_config/fish/aliases.fish:
--------------------------------------------------------------------------------
1 | alias vim="nvim"
2 |
3 | alias vi="/usr/bin/vim"
4 |
5 | # Return to the project root (where .git folder is)
6 | alias gcd="cd (git rev-parse --show-toplevel)"
7 |
8 | alias n="npm"
9 | alias y="yarn"
10 | alias p="pnpm"
11 |
12 | # Replace ls with eza
13 | alias ls="eza --icons --hyperlink"
14 |
15 | alias brl="br -dp"
16 | alias brgs="br -gc :gs"
17 |
18 | # Replace cat with bat
19 | alias cat="bat"
20 |
21 | # gotestfmt
22 | alias gotestfmt="gotestfmt -hide 'empty-packages'"
23 |
24 | alias yt="yt-dlp"
25 |
26 | alias pn="pnpm"
27 |
28 | alias r="bundle exec rails"
29 |
30 | alias py="python3"
31 |
32 | alias grep="grep -H -P --color=auto"
33 |
34 | alias astro="NVIM_APPNAME=AstroNvim nvim"
35 |
36 | alias nv="NVIM_APPNAME=NvChad nvim"
37 |
38 | alias lazy="NVIM_APPNAME=LazyVim nvim"
39 |
40 | alias aa="NVIM_APPNAME=ArchVim nvim"
41 |
42 | # Kitty uses TERM=kitty which causes issues with remote sessions
43 | alias ssh="TERM=xterm-256color command ssh"
44 |
45 | alias lss="/usr/bin/ls"
46 |
47 | alias fresh="NVIM_APPNAME=FreshVim nvim"
48 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/spell/en.utf-8.add:
--------------------------------------------------------------------------------
1 | Firefox
2 | filesystem
3 | screenshot
4 | stylesheet
5 | middleware
6 | stylesheets
7 | whitelisted
8 | CSS
9 | whitelist
10 | subdomain
11 | Youtube
12 | inline
13 | minification
14 | fallbacks
15 | Neovim
16 | Ubuntu
17 | Screenshots
18 | Dotfiles
19 | TypeScript
20 | ES5
21 | S5
22 | transpile
23 | transcompiles
24 | IDE
25 | JSON
26 | wildcard
27 | Webpack
28 | ECMAScript
29 | transpiling
30 | codebase
31 | JSDoc
32 | lodash
33 | autocompletion
34 | clickjacking
35 | allowlist
36 | app
37 | YouTube
38 | Webpacker
39 | transpiled
40 | Templating
41 | templating
42 | API
43 | Heroku
44 | GitHub
45 | Unsplash
46 | DevTools
47 | CLI
48 | config
49 | workflow
50 | pandoc
51 | linux
52 | WordPress
53 | plugins
54 | Filmmaking
55 | GPU
56 | familarize
57 | admin
58 | plugin
59 | vim
60 | async
61 | promisified
62 | APIs
63 | unhandled
64 | Nock
65 | hostname
66 | Honeybadger
67 | cachable
68 | leaderboard
69 | exif
70 | fallback
71 | F2
72 | walkthrough
73 | performant
74 | Coreutils
75 | Debian
76 | unsafety
77 | Fluentd
78 | Logtail
79 | schedulable
80 | NGINX
81 | stringified
82 |
--------------------------------------------------------------------------------
/LICENCE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Ayooluwa Isaiah
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/templates/skeleton.LICENCE:
--------------------------------------------------------------------------------
1 | MIT Licence
2 |
3 | Copyright (c) 2020 Ayooluwa Isaiah
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/go-nvim.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | require("go").setup()
3 |
4 | local wk = require("which-key")
5 |
6 | wk.add({
7 | { "g", group = "go" },
8 | { "gT", "GoRmTag", desc = "Remove struct tags" },
9 | { "gr", "GoTestFunc", desc = "Run test under cursor" },
10 | { "gi", "GoImports", desc = "Run goimports on current file" },
11 | { "gt", "GoAddTag", desc = "Add struct tags" },
12 | { "gfs", "GoFillStruct", desc = "Auto fill struct" },
13 | { "gfw", "GoFillSwitch", desc = "Auto fill switch" },
14 | { "ge", "GoIfErr", desc = "Add if err" },
15 | { "gp", "GoFixPlurals", desc = "Fix plurals" },
16 | })
17 | end
18 |
19 | return {
20 | "ray-x/go.nvim",
21 | dependencies = {
22 | "ray-x/guihua.lua",
23 | "neovim/nvim-lspconfig",
24 | "nvim-treesitter/nvim-treesitter",
25 | },
26 | config = config,
27 | event = { "CmdlineEnter" },
28 | ft = { "go", "gomod" },
29 | build = ':lua require("go.install").update_all_sync()',
30 | }
31 |
--------------------------------------------------------------------------------
/private_dot_config/lf/lf.fish:
--------------------------------------------------------------------------------
1 | # Autocompletion for fish shell.
2 | #
3 | # You may put this file to a directory in $fish_complete_path variable:
4 | #
5 | # mkdir -p ~/.config/fish/completions
6 | # ln -s "/path/to/lf.fish" ~/.config/fish/completions
7 | #
8 |
9 | complete -c lf -o command -r -d 'command to execute on client initialization'
10 | complete -c lf -o config -r -d 'path to the config file (instead of the usual paths)'
11 | complete -c lf -o cpuprofile -r -d 'path to the file to write the CPU profile'
12 | complete -c lf -o doc -d 'show documentation'
13 | complete -c lf -o last-dir-path -r -d 'path to the file to write the last dir on exit (to use for cd)'
14 | complete -c lf -o log -r -d 'path to the log file to write messages'
15 | complete -c lf -o memprofile -r -d 'path to the file to write the memory profile'
16 | complete -c lf -o remote -x -d 'send remote command to server'
17 | complete -c lf -o selection-path -r -d 'path to the file to write selected files on open (to use as open file dialog)'
18 | complete -c lf -o server -d 'start server (automatic)'
19 | complete -c lf -o single -d 'start a client without server'
20 | complete -c lf -o version -d 'show version'
21 | complete -c lf -o help -d 'show help'
22 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/conform-nvim.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | local conform = require("conform")
3 |
4 | conform.setup({
5 | formatters = {
6 | golines = {
7 | command = "golines",
8 | args = {
9 | "-m",
10 | "80",
11 | },
12 | },
13 | sqlfluff = {
14 | command = "sqlfluff",
15 | args = {
16 | "fix",
17 | "--dialect",
18 | "postgres",
19 | "--disable-progress-bar",
20 | "-f",
21 | "-n",
22 | "-",
23 | },
24 | stdin = true,
25 | },
26 | },
27 | formatters_by_ft = {
28 | lua = { "stylua" },
29 | python = { "ruff" },
30 | javascript = { "biome-check" },
31 | typescript = { "biome-check" },
32 | markdown = { "prettier" },
33 | pug = { "prettier" },
34 | css = { "biome-check" },
35 | html = { "djlint" },
36 | go = { "gofumpt", "golines" },
37 | json = { "biome-check" },
38 | jsonc = { "biome-check" },
39 | sql = { "sqlfluff" },
40 | fish = { "fish_indent" },
41 | yaml = { "yamlfmt" },
42 | ["_"] = { "trim_whitespace" },
43 | },
44 | format_on_save = {
45 | timeout_ms = 2000,
46 | lsp_fallback = true,
47 | },
48 | })
49 | end
50 |
51 | return {
52 | "stevearc/conform.nvim",
53 | event = { "BufReadPost", "BufNewFile" },
54 | config = config,
55 | }
56 |
--------------------------------------------------------------------------------
/private_dot_config/fish/extras/kanagawa.fish:
--------------------------------------------------------------------------------
1 | #!/usr/bin/fish
2 |
3 | # Kanagawa Fish shell theme
4 | # A template was taken and modified from Tokyonight:
5 | # https://github.com/folke/tokyonight.nvim/blob/main/extras/fish_tokyonight_night.fish
6 | set -l foreground DCD7BA
7 | set -l selection 2D4F67
8 | set -l comment 727169
9 | set -l red C34043
10 | set -l orange FF9E64
11 | set -l yellow C0A36E
12 | set -l green 76946A
13 | set -l purple 957FB8
14 | set -l cyan 7AA89F
15 | set -l pink D27E99
16 |
17 | # Syntax Highlighting Colors
18 | set -g fish_color_normal $foreground
19 | set -g fish_color_command $cyan
20 | set -g fish_color_keyword $pink
21 | set -g fish_color_quote $yellow
22 | set -g fish_color_redirection $foreground
23 | set -g fish_color_end $orange
24 | set -g fish_color_error $red
25 | set -g fish_color_param $purple
26 | set -g fish_color_comment $comment
27 | set -g fish_color_selection --background=$selection
28 | set -g fish_color_search_match --background=$selection
29 | set -g fish_color_operator $green
30 | set -g fish_color_escape $pink
31 | set -g fish_color_autosuggestion $comment
32 |
33 | # Completion Pager Colors
34 | set -g fish_pager_color_progress $comment
35 | set -g fish_pager_color_prefix $cyan
36 | set -g fish_pager_color_completion $foreground
37 | set -g fish_pager_color_description $comment
38 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/kanagawa.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | local my_colors = {
3 | waveBlue1 = "#363646",
4 | sumiInk1 = "#16161D",
5 | roninYellow = "#F5DD8E",
6 | }
7 |
8 | require("kanagawa").setup({
9 | dimInactive = true,
10 | colors = {
11 | palette = my_colors,
12 | theme = {
13 | all = {
14 | ui = {
15 | bg_gutter = "none",
16 | },
17 | },
18 | },
19 | },
20 | functionStyle = { bold = true },
21 | typeStyle = { bold = true },
22 | overrides = function(colors)
23 | local theme = colors.theme
24 | return {
25 | TelescopeTitle = { fg = theme.ui.special, bold = true },
26 | TelescopeResultsNormal = { fg = theme.ui.fg_dim, bg = theme.ui.bg_m1 },
27 | TelescopePreviewNormal = { bg = theme.ui.bg_dim },
28 |
29 | Pmenu = { fg = theme.ui.shade0, bg = theme.ui.bg_p1 },
30 | PmenuSel = { fg = "NONE", bg = theme.ui.bg_p2 },
31 | PmenuSbar = { bg = theme.ui.bg_m1 },
32 | PmenuThumb = { bg = theme.ui.bg_p2 },
33 | }
34 | end,
35 | })
36 |
37 | -- vim.api.nvim_set_hl
38 | vim.api.nvim_set_hl(0, "@markdownUrl", { underline = true, italic = true })
39 | -- Load the colorscheme
40 | vim.cmd([[colorscheme kanagawa-wave]])
41 | end
42 |
43 | return {
44 | "rebelot/kanagawa.nvim",
45 | lazy = false,
46 | priority = 1000,
47 | config = config,
48 | }
49 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/trouble.lua:
--------------------------------------------------------------------------------
1 | return {
2 | "folke/trouble.nvim",
3 | config = function()
4 | require("trouble").setup({})
5 |
6 | local wk = require("which-key")
7 |
8 | wk.add({
9 | { "", "Trouble diagnostics toggle", desc = "Toggle Trouble", group = "LSP" },
10 | {
11 | "[t",
12 | "lua require('trouble').previous({skip_groups = true, jump = true});",
13 | desc = "Go to previous item in Trouble",
14 | },
15 | {
16 | "]t",
17 | "lua require('trouble').next({skip_groups = true, jump = true});",
18 | desc = "Go to next item in Trouble",
19 | },
20 | })
21 |
22 | -- wk.register({
23 | -- name = "LSP",
24 | --
25 | -- [""] = { "TroubleToggle", "Toggle Trouble" },
26 | -- })
27 |
28 | -- wk.register({
29 | -- name = "LSP",
30 | -- ["]"] = {
31 | -- name = "next",
32 | -- t = {
33 | -- "lua require('trouble').next({skip_groups = true, jump = true});",
34 | -- "Go to next item in Trouble",
35 | -- },
36 | -- },
37 | -- ["["] = {
38 | -- name = "previous",
39 | -- t = {
40 | -- "lua require('trouble').previous({skip_groups = true, jump = true});",
41 | -- "Go to previous item in Trouble",
42 | -- },
43 | -- },
44 | -- })
45 | end,
46 | event = "VeryLazy",
47 | }
48 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/luasnip.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | local ls = require("luasnip")
3 |
4 | ls.config.set_config({
5 | history = true,
6 | update_events = "TextChanged,TextChangedI",
7 | enable_autosnippets = true,
8 | ext_opts = {
9 | [require("luasnip.util.types").choiceNode] = {
10 | active = {
11 | virt_text = {
12 | {
13 | "🔀",
14 | },
15 | },
16 | },
17 | },
18 | },
19 | })
20 |
21 | require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/snippets" })
22 |
23 | vim.keymap.set({ "i", "s" }, "", function()
24 | if ls.jumpable(1) then
25 | ls.jump(1)
26 | end
27 | end, { silent = true })
28 |
29 | vim.keymap.set({ "i", "s" }, "", function()
30 | if ls.jumpable(-1) then
31 | ls.jump(-1)
32 | end
33 | end, { silent = true })
34 |
35 | vim.keymap.set("i", "", function()
36 | if ls.choice_active() then
37 | ls.change_choice(1)
38 | end
39 | end, { silent = true })
40 |
41 | vim.keymap.set("i", "", function()
42 | if ls.choice_active() then
43 | ls.change_choice(-1)
44 | end
45 | end, { silent = true })
46 |
47 | -- reload luasnips file which reloads snippets
48 | vim.keymap.set("n", "s", "source ~/.config/nvim/lua/plugins/luasnip.lua")
49 | end
50 |
51 | return {
52 | "L3MON4D3/LuaSnip",
53 | config = config,
54 | event = "BufEnter",
55 | }
56 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/snippets/go.lua:
--------------------------------------------------------------------------------
1 | ---@diagnostic disable: undefined-global
2 |
3 | local errCheck = s(
4 | "ife",
5 | fmt(
6 | [[
7 | if err != nil {{
8 | {}
9 | }}{}
10 | ]],
11 | {
12 | c(1, { t("return err"), t("return nil, err"), t("t.Fatal(err)"), t("log.Fatal(err)") }),
13 | i(0),
14 | }
15 | )
16 | )
17 |
18 | local handlerFunc = s(
19 | "hf",
20 | fmt(
21 | [[
22 | func {} (w http.ResponseWriter, r *http.Request) {{
23 | {}
24 | }}{}
25 | ]],
26 | {
27 | i(1),
28 | i(2),
29 | i(0),
30 | }
31 | )
32 | )
33 |
34 | local testFunc = s(
35 | "tf",
36 | fmt(
37 | [[
38 | func Test{} (t *testing.T) {{
39 | {}
40 | }}{}
41 | ]],
42 | {
43 | i(1),
44 | i(2),
45 | i(0),
46 | }
47 | )
48 | )
49 |
50 | local testHelper = s(
51 | "th",
52 | fmt(
53 | [[
54 | func {}(t *testing.T) {{
55 | t.Helper(){}
56 | }}{}
57 | ]],
58 | {
59 | i(1),
60 | i(2),
61 | i(0),
62 | }
63 | )
64 | )
65 |
66 | local print = s("fl", fmt("fmt.Println({}){}", { i(1, "args"), i(2) }))
67 | local deepPrint = s("fst", fmt('fmt.Printf("%+v\\n", {}){}', { i(1, "args"), i(2) }))
68 | local quotePrint = s("fq", fmt('fmt.Printf("%+q\\n", {}){}', { i(1, "args"), i(2) }))
69 |
70 | local snippets = {
71 | print,
72 | deepPrint,
73 | quotePrint,
74 | testFunc,
75 | testHelper,
76 | handlerFunc,
77 | }
78 |
79 | local autosnippets = {
80 | errCheck,
81 | }
82 |
83 | return snippets, autosnippets
84 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/snippets/markdown.lua:
--------------------------------------------------------------------------------
1 | ---@diagnostic disable: undefined-global
2 | local codeBlock = s(
3 | "c",
4 | fmt(
5 | [[
6 | ```{}
7 | {}
8 | ```{}
9 | ]],
10 | { i(1, "text"), i(2), i(3) }
11 | )
12 | )
13 |
14 | local codeBlockJS = s(
15 | "cj",
16 | fmt(
17 | [[
18 | ```{}
19 | {}
20 | ```{}
21 | ]],
22 | { i(1, "javascript"), i(2), i(3) }
23 | )
24 | )
25 |
26 | local codeBlockWithLabel = s(
27 | "cl",
28 | fmt(
29 | [[
30 | ```{}
31 | [label {}]
32 | {}
33 | ```{}
34 | ]],
35 | {
36 | c(1, { t("text"), t("go"), t("javascript"), t("json"), t("php"), t("python") }),
37 | i(2, "file.txt"),
38 | i(3),
39 | i(4),
40 | }
41 | )
42 | )
43 |
44 | local codeBlockOutput = s(
45 | "ci",
46 | fmt(
47 | [[
48 | ```{}
49 | [output]
50 | {}
51 | ```{}
52 | ]],
53 | { i(1, "text"), i(2), i(3) }
54 | )
55 | )
56 |
57 | local anchorTag = s("lnk", fmt("[{}]({})", { i(1, "text"), i(2, "http://localhost:3000") }))
58 | local image = s("img", fmt("", { i(1, "alt"), i(2, "todo.png") }))
59 | local bold = s("**", fmt("**{}**", { i(1, "text") }))
60 | local italic = s("__", fmt("_{}_", { i(1, "text") }))
61 | local strikethrough = s("~~", fmt("~{}~", { i(1, "text") }))
62 |
63 | local snippets = {
64 | codeBlock,
65 | codeBlockWithLabel,
66 | codeBlockOutput,
67 | codeBlockJS,
68 | }
69 |
70 | local autosnippets = {
71 | anchorTag,
72 | image,
73 | bold,
74 | italic,
75 | strikethrough,
76 | }
77 |
78 | return snippets, autosnippets
79 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/treesitter.lua:
--------------------------------------------------------------------------------
1 | local config = function(_, opts)
2 | require("nvim-dap-repl-highlights").setup()
3 | require("nvim-treesitter.configs").setup(opts)
4 | end
5 |
6 | return {
7 | "nvim-treesitter/nvim-treesitter",
8 | build = ":TSUpdate",
9 | config = config,
10 | version = false,
11 | dependencies = {
12 | "nvim-treesitter/nvim-treesitter-textobjects",
13 | "LiadOz/nvim-dap-repl-highlights",
14 | },
15 | event = { "BufReadPost", "BufNewFile" },
16 | opts = {
17 | ensure_installed = {
18 | "bash",
19 | "comment",
20 | "css",
21 | "csv",
22 | "diff",
23 | "dockerfile",
24 | "dap_repl",
25 | "fish",
26 | "git_config",
27 | "git_rebase",
28 | "gitattributes",
29 | "gitcommit",
30 | "gitignore",
31 | "go",
32 | "gomod",
33 | "gosum",
34 | "gpg",
35 | "html",
36 | "http",
37 | "java",
38 | "javascript",
39 | "json",
40 | "json5",
41 | "jq",
42 | "kdl",
43 | "lua",
44 | "markdown",
45 | "nginx",
46 | "python",
47 | "pug",
48 | "powershell",
49 | "promql",
50 | "regex",
51 | "ruby",
52 | "rust",
53 | "sql",
54 | "scss",
55 | "ssh_config",
56 | "tmux",
57 | "toml",
58 | "typescript",
59 | "vrl",
60 | "vim",
61 | "vimdoc",
62 | "xml",
63 | "yaml",
64 | },
65 | highlight = {
66 | enable = true,
67 | },
68 | indent = {
69 | enable = true,
70 | },
71 | matchup = {
72 | enable = true,
73 | },
74 | },
75 | }
76 |
--------------------------------------------------------------------------------
/private_dot_config/fish/config.fish:
--------------------------------------------------------------------------------
1 | set LANG en_US.UTF-8
2 |
3 | if test (uname -s) = "Darwin"
4 | eval "$(/opt/homebrew/bin/brew shellenv)"
5 | end
6 |
7 | # Aliases
8 | source $HOME/.config/fish/aliases.fish
9 |
10 | # Abbreviations
11 | source $HOME/.config/fish/abbr.fish
12 |
13 | # Variables
14 | source $HOME/.config/fish/variables.fish
15 |
16 | # Key bindings
17 | source $HOME/.config/fish/bindings.fish
18 |
19 | # Kanagawa theme
20 | source $HOME/.config/fish/extras/kanagawa.fish
21 |
22 | # SHELL
23 | zoxide init fish | source # Better cd
24 |
25 | starship init fish | source
26 |
27 | mise activate fish | source
28 |
29 | if set -q KITTY_INSTALLATION_DIR
30 | set --global KITTY_SHELL_INTEGRATION enabled
31 | source "$KITTY_INSTALLATION_DIR/shell-integration/fish/vendor_conf.d/kitty-shell-integration.fish"
32 | set --prepend fish_complete_path "$KITTY_INSTALLATION_DIR/shell-integration/fish/vendor_completions.d"
33 | end
34 |
35 | # Setup python argcomplete for Ansible
36 | for cmd in ansible ansible-config ansible-console ansible-doc ansible-galaxy ansible-inventory ansible-playbook ansible-pull ansible-vault
37 | register-python-argcomplete --shell fish $cmd | source
38 | end
39 |
40 | function fish_mode_prompt
41 | switch $fish_bind_mode
42 | case default
43 | echo '🟡 '
44 | case insert
45 | echo '🟢 '
46 | case replace_one
47 | echo '🔵 '
48 | case visual
49 | echo '🟣 '
50 | case '*'
51 | echo '🔴 '
52 | end
53 | end
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/mason-tool-installer.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | require("mason-tool-installer").setup({
3 | ensure_installed = {
4 | -- lua
5 | "lua_ls",
6 | "stylua",
7 |
8 | -- json
9 | "jsonls",
10 | "jsonlint",
11 | "jq-lsp",
12 | "jq",
13 |
14 | -- go
15 | "gopls",
16 | "golangci_lint_ls",
17 | "delve",
18 | "go-debug-adapter",
19 | "golines",
20 | "gofumpt",
21 | "golangci-lint",
22 | "goimports",
23 |
24 | -- web
25 | "ts_ls",
26 | "js-debug-adapter",
27 | "html",
28 | "cssls",
29 | "firefox-debug-adapter",
30 | "prettier",
31 | "biome",
32 | "djlint",
33 |
34 | -- shell
35 | "bashls",
36 |
37 | -- markdown
38 | "marksman",
39 | "markdownlint-cli2",
40 | "markdownlint",
41 |
42 | -- sql
43 | "sqlls",
44 | "pgformatter",
45 |
46 | -- yaml
47 | "yamlls",
48 | "yamlfmt",
49 | "yamllint",
50 |
51 | -- ansible
52 | "ansible-lint",
53 |
54 | -- git
55 | "gitlint",
56 |
57 | -- python
58 | "ruff",
59 |
60 | -- nginx
61 | "nginx-config-formatter",
62 |
63 | -- docker
64 | "hadolint",
65 |
66 | -- other
67 | "tree-sitter-cli",
68 | },
69 | integrations = {
70 | ["mason-lspconfig"] = true,
71 | ["mason-nvim-dap"] = true,
72 | ["mason-null-ls"] = false,
73 | },
74 | })
75 | end
76 |
77 | return {
78 | "WhoIsSethDaniel/mason-tool-installer.nvim",
79 | dependencies = {
80 | "mason-org/mason-lspconfig.nvim",
81 | "jay-babu/mason-nvim-dap.nvim",
82 | },
83 | config = config,
84 | }
85 |
--------------------------------------------------------------------------------
/private_dot_config/fish/abbr.fish:
--------------------------------------------------------------------------------
1 | # Git
2 | abbr g git
3 | abbr ga 'git add'
4 | abbr gaa 'git add -A'
5 | abbr gb 'git branch'
6 | abbr gbd 'git branch -d'
7 | abbr gbdd 'git branch -D'
8 | abbr gbl 'git blame'
9 | abbr gch 'git checkout'
10 | abbr gchb 'git checkout -b'
11 | abbr gc 'git commit'
12 | abbr gcm 'git commit -m'
13 | abbr gcl 'git clone'
14 | abbr gca 'git commit --amend -m'
15 | abbr gcp 'git cherry-pick'
16 | abbr gd 'git diff'
17 | abbr gdc 'git diff --cached'
18 | abbr gf 'git fetch'
19 | abbr gl 'git log'
20 | abbr glp 'git log --patch'
21 | abbr gls 'git log --stat'
22 | abbr glo 'git log --pretty=oneline'
23 | abbr gm 'git merge'
24 | abbr gp 'git push'
25 | abbr gpf 'git push --force-with-lease'
26 | abbr gpl 'git pull'
27 | abbr gr 'git restore'
28 | abbr grs 'git restore --staged'
29 | abbr grm 'git remote'
30 | abbr grb 'git rebase'
31 | abbr gs 'git status --short'
32 | abbr gss 'git status'
33 | abbr gst 'git stash'
34 |
35 | # Ubuntu (apt)
36 | abbr apti 'sudo apt install -y'
37 | abbr aptu 'sudo apt update -y'
38 | abbr aptr 'sudo apt remove -y'
39 | abbr aptf 'sudo apt full-upgrade -y'
40 | abbr aptl 'sudo apt list --upgradable'
41 | abbr di 'sudo dpkg -i'
42 |
43 | # Fedora (dnf)
44 | abbr dnfi 'sudo dnf install -y'
45 | abbr dnfr 'sudo dnf remove -y'
46 | abbr dnfu 'sudo dnf update -y'
47 |
48 | # Show power consumption, battery health and related statistics
49 | abbr b3 'upower -i /org/freedesktop/UPower/devices/battery_BAT0'
50 |
51 | # Reload fish configuration
52 | abbr rf 'source ~/.config/fish/config.fish'
53 |
54 | # Sync current history with history file
55 | abbr hm 'history --merge'
56 |
57 | # Sync local time
58 | abbr ntp 'sudo ntpdate pool.ntp.org'
59 |
60 | # Exa
61 | abbr ll 'eza --long --all --group --git'
62 |
63 | # Kitty
64 | abbr kssh 'kitty +kitten ssh'
65 |
66 | # Fast fetch
67 | abbr ff fastfetch
68 |
69 | # Zellij
70 | abbr zz zellij
71 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-devdocs.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | local wk = require("which-key")
3 | local devdocs = require("nvim-devdocs")
4 |
5 | devdocs.setup({
6 | ensure_installed = {
7 | "html",
8 | "css",
9 | "sass",
10 | "redis",
11 | "javascript",
12 | "go",
13 | "node",
14 | "postgresql-15",
15 | "typescript",
16 | "ansible",
17 | "fish-3.6",
18 | "npm",
19 | "http",
20 | "lua-5.4",
21 | "docker",
22 | "bash",
23 | "eslint",
24 | "esbuild",
25 | "git",
26 | "markdown",
27 | "docker",
28 | "tailwindcss",
29 | "web_extensions",
30 | "dom",
31 | "jq",
32 | },
33 | previewer_cmd = "glow",
34 | cmd_args = { "-s", "dracula", "-w", "80" },
35 | })
36 |
37 | wk.register({
38 | name = "Docs",
39 | c = { "DevdocsOpen css", "CSS" },
40 | d = { "DevdocsOpen dom", "DOM" },
41 | f = { "DevdocsOpen fish-3.6", "Fish" },
42 | g = { "DevdocsOpen go", "Go" },
43 | h = { "DevdocsOpen html", "HTML" },
44 | j = { "DevdocsOpen javascript", "JavaScript" },
45 | k = { "DevdocsOpen docker", "Docker" },
46 | n = { "DevdocsOpen node", "Node.js" },
47 | m = { "DevdocsOpen markdown", "Markdown" },
48 | t = { "DevdocsOpen typescript", "TypeScript" },
49 | p = { "DevdocsOpen postgresql-15", "PostgreSQL" },
50 | w = { "DevdocsOpen web_extensions", "Web extensions" },
51 | x = { "DevdocsOpen tailwindcss", "Tailwind" },
52 | z = { "DevdocsOpenCurrent", "Current language" },
53 | }, { prefix = "z" })
54 | end
55 |
56 | return {
57 | -- "luckasRanarison/nvim-devdocs",
58 | -- dependencies = {
59 | -- "nvim-lua/plenary.nvim",
60 | -- "nvim-telescope/telescope.nvim",
61 | -- "nvim-treesitter/nvim-treesitter",
62 | -- },
63 | -- config = config,
64 | -- event = "VeryLazy",
65 | }
66 |
--------------------------------------------------------------------------------
/dot_golangci.yml:
--------------------------------------------------------------------------------
1 | linters-settings:
2 | errcheck:
3 | check-type-assertions: true
4 | goconst:
5 | min-len: 2
6 | min-occurrences: 3
7 | gocritic:
8 | enabled-tags:
9 | - diagnostic
10 | - experimental
11 | - opinionated
12 | - performance
13 | - style
14 | goimports:
15 | local-prefixes: github.com/ayoisaiah/focus
16 | gomnd:
17 | settings:
18 | mnd:
19 | # don't include the "operation" and "assign" checks
20 | checks: argument,case,condition,return
21 | govet:
22 | check-shadowing: true
23 | enable:
24 | - fieldalignment
25 | nolintlint:
26 | require-explanation: true
27 | require-specific: true
28 |
29 | linters:
30 | disable-all: true
31 | enable:
32 | - bodyclose
33 | - dogsled
34 | - dupl
35 | - errcheck
36 | - errorlint
37 | - exportloopref
38 | - exhaustive
39 | - goconst
40 | - godot
41 | - gocritic
42 | - gofmt
43 | - goimports
44 | - gomnd
45 | - gocyclo
46 | - goprintffuncname
47 | - gosec
48 | - gosimple
49 | - govet
50 | - ineffassign
51 | - misspell
52 | - nakedret
53 | - nolintlint
54 | - prealloc
55 | - predeclared
56 | - revive
57 | - staticcheck
58 | - stylecheck
59 | - thelper
60 | - tparallel
61 | - unconvert
62 | - unparam
63 | - unused
64 | - whitespace
65 | - wsl
66 |
67 | issues:
68 | fix: true
69 | exclude-rules:
70 | - path: _test\.go # disable some linters for test files
71 | linters:
72 | - gocyclo
73 | - gosec
74 | - dupl
75 | - linters:
76 | - stylecheck
77 | text: 'error strings should not be capitalized'
78 | - linters:
79 | - typecheck
80 | text: 'has no field or method'
81 | - linters:
82 | - typecheck
83 | text: 'undeclared name'
84 |
85 | max-issues-per-linter: 0
86 | max-same-issues: 0
87 |
88 | run:
89 | issues-exit-code: 1
90 |
--------------------------------------------------------------------------------
/private_dot_config/fish/variables.fish:
--------------------------------------------------------------------------------
1 | # Force tmux to start in utf8 https://github.com/wernight/powerline-web-fonts/issues/8
2 | set -gx LANG "en_US.UTF-8"
3 | set -gx LC_CTYPE "en_US.UTF-8"
4 |
5 | set -gx EDITOR nvim
6 | set -gx SYSTEMD_EDITOR $EDITOR
7 | set -gx VISUAL $EDITOR
8 |
9 | set -gx FZF_DEFAULT_COMMAND "fd --type file --hidden --follow --ignore-file '/home/ayo/.vimignore'"
10 |
11 | # Path stuff
12 | set PATH /usr/local/bin $PATH
13 | set -gx PATH $PATH "$HOME/bin" # temporary executables
14 | set -gx PATH "$HOME/.local/bin" $PATH
15 |
16 | # Go
17 | set -gx PATH $PATH /usr/local/go/bin
18 | set -gx PATH $PATH "$HOME/go/bin"
19 | set -gx GOBIN "$HOME/go/bin"
20 | set -gx GOPATH "$HOME/go"
21 | set -gx GOROOT /usr/local/go
22 | set -Ux GO111MODULE on
23 |
24 | # Rust
25 | set -gx PATH $PATH "/home/ayo/.cargo/bin"
26 |
27 | # Deno
28 | set -gx DENO_INSTALL "/home/ayo/.deno"
29 | set -gx PATH $PATH "$DENO_INSTALL/bin"
30 |
31 | # Bat
32 | set -gx BAT_THEME gruvbox-dark
33 |
34 | # Volta
35 | set -gx VOLTA_HOME "$HOME/.volta"
36 | set -gx PATH $PATH "$VOLTA_HOME/bin"
37 |
38 | set -gx PAGER less
39 | set -gx PSQL_PAGER "pspg -s 11"
40 |
41 | set -gx PATH $PATH "$HOME/.pub-cache/bin"
42 |
43 | set -gx PATH $PATH "$HOME/.bun/bin"
44 |
45 | # Flutter
46 | set -gx PATH "$HOME/.flutter/bin" $PATH
47 |
48 | # Mise
49 | set -gx MISE_NPM_BUN true
50 |
51 | # NVIM
52 | set -gx PATH "$HOME/.local/share/bob/nvim-bin" $PATH
53 | set -gx SUDO_EDITOR "/home/user/.local/share/bob/nvim-bin/nvim"
54 |
55 | # Android
56 | set -gx ANDROID_HOME "$HOME/Android"
57 |
58 | ## Fzf.fish
59 | set fzf_preview_dir_cmd eza --all --color=always
60 |
61 | set fzf_fd_opts --hidden --follow --ignore-file '/home/ayo/.vimignore'
62 |
63 | # The next line updates PATH for the Google Cloud SDK.
64 | if [ -f '/home/ayo/.local/bin/google-cloud-sdk/path.fish.inc' ]
65 | . '/home/ayo/.local/bin/google-cloud-sdk/path.fish.inc'
66 | end
67 |
68 | set -gx PNPM_HOME "/home/ayo/.local/share/pnpm"
69 | set -gx PATH "$PNPM_HOME" $PATH
70 |
71 | set -gx PATH $PATH "$HOME/.local/bin/depot-tools"
72 |
73 | set -gx PATH /home/ayo/.local/share/mise/shims $PATH
74 |
75 | set -x GPG_TTY (tty)
76 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/gitsigns.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | local wk = require("which-key")
3 | local gs = require("gitsigns")
4 |
5 | gs.setup({
6 | on_attach = function()
7 | local nextHunk = function()
8 | if vim.wo.diff then
9 | return "]h"
10 | end
11 | vim.schedule(function()
12 | gs.next_hunk()
13 | end)
14 | return ""
15 | end
16 |
17 | local prevHunk = function()
18 | if vim.wo.diff then
19 | return "[h"
20 | end
21 | vim.schedule(function()
22 | gs.prev_hunk()
23 | end)
24 | return ""
25 | end
26 |
27 | wk.add({
28 | { "[", expr = true, group = "previous", replace_keycodes = false },
29 | { "[h", prevHunk, desc = "Previous hunk", expr = true, replace_keycodes = false },
30 | { "]", expr = true, group = "next", replace_keycodes = false },
31 | { "]h", nextHunk, desc = "Next hunk", expr = true, replace_keycodes = false },
32 | })
33 |
34 | wk.add({
35 | { "g", group = "Git" },
36 | { "gS", gs.undo_stage_hunk, desc = "Undo stage hunk" },
37 | { "gW", gs.reset_buffer, desc = "Reset stage buffer" },
38 | {
39 | "gb",
40 | function()
41 | gs.blame_line({ full = true })
42 | end,
43 | desc = "Blame line",
44 | },
45 | { "gd", gs.diffthis, desc = "Diff current file" },
46 | { "gp", gs.preview_hunk, desc = "Preview hunk" },
47 | { "gr", gs.reset_hunk, desc = "Reset hunk" },
48 | { "gs", gs.stage_hunk, desc = "Stage hunk" },
49 | { "gw", gs.stage_buffer, desc = "Stage buffer" },
50 | })
51 |
52 | wk.add({
53 | {
54 | mode = { "v" },
55 | { "g", group = "Git" },
56 | {
57 | "gs",
58 | function()
59 | gs.stage_hunk({ vim.fn.line("."), vim.fn.line("v") })
60 | end,
61 | desc = "Stage hunk",
62 | },
63 | {
64 | "gr",
65 | function()
66 | gs.reset_hunk({ vim.fn.line("."), vim.fn.line("v") })
67 | end,
68 | desc = "Reset hunk",
69 | },
70 | },
71 | })
72 | end,
73 | })
74 | end
75 |
76 | return {
77 | "lewis6991/gitsigns.nvim",
78 | config = config,
79 | event = { "BufReadPost" },
80 | }
81 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/mappings.lua:
--------------------------------------------------------------------------------
1 | -- This file is for custom key bindings for native vim functions
2 |
3 | local map = vim.api.nvim_set_keymap
4 |
5 | vim.g.mapleader = "," -- Change leader key from \ to ,
6 |
7 | local opts = { silent = true }
8 |
9 | map("i", "", "", opts)
10 | map("n", "", "", opts)
11 | map("v", "", "", opts)
12 |
13 | map("i", "jj", "", opts)
14 |
15 | -- A saner way to save files
16 | map("n", "", ":w", opts)
17 |
18 | -- MOVING LINES
19 | map("n", "", ":m .+1==", opts)
20 | map("n", "", ":m .-2==", opts)
21 | map("v", "", ":m '>+1gv=gv", opts)
22 | map("v", "", ":m '<-2gv=gv", opts)
23 |
24 | -- turn off search highlighting
25 | map("n", "", ":nohlsearch", opts)
26 |
27 | -- execute current lua file
28 | map("n", "x", ":source %", opts)
29 |
30 | map("", "gf", ":e ", {}) -- Create the file under cursor
31 |
32 | -- Keep search matches in the middle of the screen
33 | map("n", "n", "nzz", opts)
34 | map("n", "N", "Nzz", opts)
35 |
36 | map("n", "", "h", opts)
37 | map("n", "", "l", opts)
38 |
39 | -- Disable Ex mode mapping
40 | map("n", "Q", "", opts)
41 |
42 | -- ":Q" as ":q"
43 | vim.cmd([[command! Qa :qa]])
44 | vim.cmd([[command! Q :q]])
45 |
46 | -- Copy and paste to the system clipboard
47 | map("n", "y", '"+y', opts)
48 | map("v", "y", '"+y', opts)
49 | map("n", "p", '"+p', opts)
50 | map("v", "p", '"+p', opts)
51 | map("n", "P", '"+P', opts)
52 | map("v", "P", '"+P', opts)
53 |
54 | map("n", "t", "PlenaryTestFile", opts)
55 |
56 | -- Tabs
57 | map("n", "1", "1gt", opts)
58 | map("n", "2", "2gt", opts)
59 | map("n", "3", "3gt", opts)
60 | map("n", "4", "4gt", opts)
61 | map("n", "5", "5gt", opts)
62 | map("n", "6", "6gt", opts)
63 | map("n", "", "tabnew", opts)
64 | map("n", "w", "tabclose", opts)
65 |
66 | -- TODO: Organize these sort of functions/mappings
67 | local function confirm_and_delete_buffer()
68 | local confirm = vim.fn.confirm("Delete buffer and file?", "&Yes\n&No", 2)
69 |
70 | if confirm == 1 then
71 | os.remove(vim.fn.expand("%"))
72 | vim.api.nvim_buf_delete(0, { force = true })
73 | end
74 | end
75 | vim.keymap.set("n", "bd", confirm_and_delete_buffer)
76 |
--------------------------------------------------------------------------------
/dot_tmux.conf:
--------------------------------------------------------------------------------
1 | # Remap binding from C-b to C-a
2 | unbind C-a
3 | unbind C-b
4 | set-option -g prefix C-a
5 | bind-key C-a send-prefix
6 |
7 | # Split panes
8 | bind C-v split-window -h -c "#{pane_current_path}"
9 | bind C-h split-window -v -c "#{pane_current_path}"
10 | unbind '"'
11 | unbind %
12 |
13 | # Mouse
14 | set -g mouse on
15 |
16 | # Use wl-copy
17 | set -s copy-command 'wl-copy'
18 |
19 | # Fix slow escape time
20 | set -s escape-time 0
21 |
22 | # Send focus events
23 | set -g focus-events on
24 |
25 | # 256 colours
26 | set-option -g default-terminal "xterm-256color"
27 |
28 | # Reload tmux config on the fly
29 | bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded"
30 |
31 | # Quickly open tmux config file
32 | bind-key M split-window -h "vim ~/.tmux.conf"
33 |
34 | # Switch between panes without using prefix
35 | bind -n M-h select-pane -L
36 | bind -n M-l select-pane -R
37 | bind -n M-k select-pane -U
38 | bind -n M-j select-pane -D
39 |
40 | # Reorder tmux windows
41 | bind-key -n S-Left swap-window -t -1 -d
42 | bind-key -n S-Right swap-window -t +1 -d
43 |
44 | # don't rename windows automatically
45 | set-option -g allow-rename off
46 |
47 | # Make sure window indexes remain sequential
48 | set-option -g renumber-windows on
49 |
50 | # Distinguish the active pane more clearly
51 | set -g pane-border-style 'fg=#666666,bg=default'
52 | set -g pane-active-border-style 'fg=#84C318,bg=default'
53 |
54 | # Start windows and panes at 2 not 0
55 | set -g base-index 1
56 | setw -g pane-base-index 1
57 |
58 | # Prompt to set window name on creation
59 | bind-key c command-prompt -p "window name:" "new-window; rename-window '%%'"
60 |
61 | # Undercurl https://github.com/folke/tokyonight.nvim#making-undercurls-work-properly-in-tmux
62 | set -g default-terminal "${TERM}"
63 | set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support
64 | set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # underscore colours - needs tmux-3.0
65 |
66 | set -g status-interval 1
67 |
68 | set -g @onedark_widgets "#(focus status)"
69 |
70 | # List of plugins
71 | set -g @plugin 'tmux-plugins/tpm'
72 | set -g @plugin 'tmux-plugins/tmux-resurrect'
73 | set -g @plugin 'tmux-plugins/tmux-continuum'
74 | set -g @plugin 'odedlaz/tmux-onedark-theme'
75 |
76 | # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
77 | run -b '~/.tmux/plugins/tpm/tpm'
78 |
79 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lsp/gopls.lua:
--------------------------------------------------------------------------------
1 | return {
2 | cmd = {
3 | "gopls",
4 | },
5 | settings = {
6 | gopls = {
7 | gofumpt = true,
8 | codelenses = {
9 | gc_details = false,
10 | generate = true,
11 | regenerate_cgo = true,
12 | run_govulncheck = true,
13 | test = true,
14 | tidy = true,
15 | upgrade_dependency = true,
16 | vendor = true,
17 | },
18 | hints = {
19 | assignVariableTypes = false,
20 | compositeLiteralFields = false,
21 | compositeLiteralTypes = false,
22 | constantValues = false,
23 | functionTypeParameters = false,
24 | parameterNames = false,
25 | rangeVariableTypes = false,
26 | },
27 | analyses = {
28 | nilness = true,
29 | unusedparams = true,
30 | unusedwrite = true,
31 | useany = true,
32 | unreachable = true,
33 | modernize = true,
34 | stylecheck = true,
35 | appends = true,
36 | asmdecl = true,
37 | assign = true,
38 | atomic = true,
39 | bools = true,
40 | buildtag = true,
41 | cgocall = true,
42 | composite = true,
43 | contextcheck = true,
44 | deba = true,
45 | atomicalign = true,
46 | composites = true,
47 | copylocks = true,
48 | deepequalerrors = true,
49 | defers = true,
50 | deprecated = true,
51 | directive = true,
52 | embed = true,
53 | errorsas = true,
54 | fillreturns = true,
55 | framepointer = true,
56 | gofix = true,
57 | hostport = true,
58 | infertypeargs = true,
59 | lostcancel = true,
60 | httpresponse = true,
61 | ifaceassert = true,
62 | loopclosure = true,
63 | nilfunc = true,
64 | nonewvars = true,
65 | noresultvalues = true,
66 | printf = true,
67 | shadow = true,
68 | shift = true,
69 | sigchanyzer = true,
70 | simplifycompositelit = true,
71 | simplifyrange = true,
72 | simplifyslice = true,
73 | slog = true,
74 | sortslice = true,
75 | stdmethods = true,
76 | stdversion = true,
77 | stringintconv = true,
78 | structtag = true,
79 | testinggoroutine = true,
80 | tests = true,
81 | timeformat = true,
82 | unmarshal = true,
83 | unsafeptr = true,
84 | unusedfunc = true,
85 | unusedresult = true,
86 | waitgroup = true,
87 | yield = true,
88 | unusedvariable = true,
89 | },
90 | usePlaceholders = true,
91 | completeUnimported = true,
92 | staticcheck = false,
93 | directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },
94 | semanticTokens = true,
95 | },
96 | },
97 | }
98 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-dap.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | local dap = require("dap")
3 | local dapui = require("dapui")
4 | local wk = require("which-key")
5 |
6 | dap.configurations.go = {}
7 |
8 | dapui.setup()
9 |
10 | dap.listeners.after.event_initialized["dapui_config"] = function()
11 | dapui.open()
12 | end
13 |
14 | dap.listeners.before.event_terminated["dapui_config"] = function()
15 | dapui.close()
16 | end
17 |
18 | dap.listeners.before.event_exited["dapui_config"] = function()
19 | dapui.close()
20 | end
21 |
22 | -- TODO: Setup proper highlighting
23 | -- https://github.com/mfussenegger/nvim-dap/discussions/355
24 |
25 | vim.fn.sign_define("DapBreakpoint", { text = "🔴", texthl = "", linehl = "", numhl = "" })
26 | vim.fn.sign_define("DapLogPoint", { text = "🔶", texthl = "", linehl = "", numhl = "" })
27 | vim.fn.sign_define("DapRejected", { text = "🚫", texthl = "", linehl = "", numhl = "" })
28 | vim.fn.sign_define("DapBreakpointCondition", { text = "🟥", texthl = "", linehl = "", numhl = "" })
29 | vim.fn.sign_define("DapStopped", { text = "🛑", texthl = "", linehl = "", numhl = "" })
30 |
31 | wk.add({
32 | { "", "lua require('dap').step_over()", desc = "Step over" },
33 | { "", "lua require('dap').step_into()", desc = "Step into" },
34 | { "", "lua require('dap').step_out()", desc = "Step out" },
35 | { "", "lua require('dap').continue()", desc = "Continue" },
36 | })
37 |
38 | wk.add({
39 | { "d", group = "Debugger" },
40 | {
41 | "db",
42 | "lua require('persistent-breakpoints.api').toggle_breakpoint()",
43 | desc = "Toggle breakpoint",
44 | },
45 | {
46 | "dc",
47 | "lua require('persistent-breakpoints.api').set_conditional_breakpoint()",
48 | desc = "Set conditional breakpoint",
49 | },
50 | {
51 | "dd",
52 | "lua require('persistent-breakpoints.api').clear_all_breakpoints()",
53 | desc = "Clear all breakpoints",
54 | },
55 | {
56 | "dl",
57 | "lua require('dap').set_breakpoint(nil, nil, vim.fn.input('Log point message: '))",
58 | desc = "Set logpoint",
59 | },
60 | { "dr", "lua require('dap').restart()", desc = "Restart the debugging session" },
61 | { "dx", "lua require('dap').terminate()", desc = "Terminate the debugging session" },
62 | })
63 | end
64 |
65 | return {
66 | "mfussenegger/nvim-dap",
67 | config = config,
68 | dependencies = {
69 | "LiadOz/nvim-dap-repl-highlights",
70 | "rcarriga/nvim-dap-ui",
71 | "leoluz/nvim-dap-go",
72 | "Weissle/persistent-breakpoints.nvim",
73 | },
74 | }
75 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-lspconfig.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | local wk = require("which-key")
3 | local builtin = require("telescope.builtin")
4 |
5 | wk.add({
6 | { "l", group = "LSP" },
7 | { "lW", builtin.lsp_dynamic_workspace_symbols, desc = "Dynamic workspace symbols" },
8 | -- { "la", codeAction.code_action, desc = "Code actions" },
9 | { "ld", vim.lsp.buf.definition, desc = "Go to definition" },
10 | { "lf", vim.lsp.buf.format, desc = "Format buffer" },
11 | { "li", builtin.lsp_incoming_calls, desc = "Incoming calls" },
12 | { "lk", vim.lsp.buf.signature_help, desc = "Signature help" },
13 | {
14 | "lm",
15 | function()
16 | builtin.lsp_document_symbols({
17 | show_line = true,
18 | symbols = { "method", "function" },
19 | })
20 | end,
21 | desc = "Document methods and functions",
22 | },
23 | { "lo", builtin.lsp_outgoing_calls, desc = "Outgoing calls" },
24 | -- { "lp", definition.definition_preview, desc = "Preview symbol definition" },
25 | { "lr", vim.lsp.buf.rename, desc = "Rename symbol" },
26 | {
27 | "lt",
28 | function()
29 | builtin.lsp_document_symbols({
30 | show_line = true,
31 | ignore_symbols = { "field" },
32 | })
33 | end,
34 | desc = "Document symbols",
35 | },
36 | {
37 | "lv",
38 | function()
39 | builtin.lsp_document_symbols({
40 | show_line = true,
41 | symbols = { "variable" },
42 | })
43 | end,
44 | desc = "Variables",
45 | },
46 | { "lw", builtin.lsp_workspace_symbols, desc = "Workspace symbols" },
47 | { "lx", builtin.diagnostics, desc = "Diagnostics in all open buffers" },
48 | {
49 | "ly",
50 | function()
51 | builtin.diagnostics({ bufnr = 0 })
52 | end,
53 | desc = "Diagnostics in current buffer",
54 | },
55 | { "lz", builtin.lsp_references, desc = "Symbol references" },
56 | -- {
57 | -- "la",
58 | -- codeAction.range_code_action,
59 | -- desc = "code action for the visual mode range",
60 | -- mode = "v",
61 | -- },
62 | })
63 |
64 | wk.add({
65 | { "[", group = "previous" },
66 | { "[c", vim.diagnostic.goto_prev, desc = "previous diagnostic" },
67 | -- { "[r", ts.goto_prev_usage, desc = "Go to previous usage" },
68 | { "]", group = "next" },
69 | { "]c", vim.diagnostic.goto_next, desc = "Next diagnostic" },
70 | -- { "]r", ts.goto_next_usage, desc = "Go to next usage" },
71 | })
72 | end
73 |
74 | return {
75 | "neovim/nvim-lspconfig",
76 | dependencies = {
77 | "mason-org/mason.nvim",
78 | "mason-org/mason-lspconfig.nvim",
79 | "WhoIsSethDaniel/mason-tool-installer.nvim",
80 | "saghen/blink.cmp",
81 | "j-hui/fidget.nvim",
82 | },
83 | config = config,
84 | }
85 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/nvim-treesitter-textobjects.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | require("nvim-treesitter.configs").setup({
3 | textobjects = {
4 | select = {
5 | enable = true,
6 | lookahead = true,
7 | keymaps = {
8 | ["aa"] = { query = "@assignment.outer", desc = "Select outer part of assignment" },
9 | ["ia"] = { query = "@assignment.inner", desc = "Select inner part of assignment" },
10 | ["lh"] = { query = "@assignment.lhs", desc = "Select left-hand side of assignment" },
11 | ["rh"] = { query = "@assignment.rhs", desc = "Select right-hand side of assignment" },
12 | ["af"] = { query = "@function.outer", desc = "Select outer part of a function" },
13 | ["if"] = { query = "@function.inner", desc = "Select inner part of a function" },
14 | ["ac"] = { query = "@class.outer", desc = "Select outer part of a class region" },
15 | ["ic"] = { query = "@class.inner", desc = "Select inner part of a class region" },
16 | ["am"] = { query = "@comment.outer", desc = "Select outer part of a comment" },
17 | ["im"] = { query = "@comment.inner", desc = "Select inner part of a comment" },
18 | ["ab"] = { query = "@block.outer", desc = "Select outer part of a block" },
19 | ["ib"] = { query = "@block.inner", desc = "Select inner part of a block" },
20 | ["al"] = { query = "@loop.outer", desc = "Select outer part of a loop" },
21 | ["il"] = { query = "@loop.inner", desc = "Select inner part of a loop" },
22 | ["ap"] = { query = "@parameter.outer", desc = "Select outer part of parameters" },
23 | ["ip"] = { query = "@parameter.inner", desc = "Select inner part of parameters" },
24 | ["an"] = { query = "@conditional.outer", desc = "Select outer part of a conditional" },
25 | ["in"] = { query = "@conditional.inner", desc = "Select inner part of a conditional" },
26 | ["ar"] = { query = "@regex.outer", desc = "Select outer part of a regular expression" },
27 | ["ir"] = { query = "@regex.inner", desc = "Select inner part of a regular expression" },
28 | },
29 | },
30 | swap = {
31 | enable = true,
32 | swap_next = {
33 | ["a"] = "@parameter.inner",
34 | },
35 | swap_previous = {
36 | ["A"] = "@parameter.inner",
37 | },
38 | },
39 | move = {
40 | enable = true,
41 | set_jumps = true,
42 | goto_next_start = {
43 | ["]f"] = { query = "@function.outer", desc = "Go to next function" },
44 | ["]F"] = { query = "@function.inner", desc = "Go to next function inner" },
45 | },
46 | goto_previous_start = {
47 | ["[f"] = { query = "@function.outer", desc = "Go to previous function" },
48 | ["[F"] = { query = "@function.inner", desc = "Go to previous function inner" },
49 | },
50 | },
51 | },
52 | })
53 | end
54 |
55 | return {
56 | "nvim-treesitter/nvim-treesitter-textobjects",
57 | config = config,
58 | }
59 |
--------------------------------------------------------------------------------
/private_dot_config/nvim/lua/plugins/octo.lua:
--------------------------------------------------------------------------------
1 | local config = function()
2 | require("octo").setup({
3 | suppress_missing_scope = {
4 | projects_v2 = true,
5 | },
6 | })
7 |
8 | local wk = require("which-key")
9 |
10 | wk.add({
11 | { "hi", group = "GitHub" },
12 | { "hib", "Octo issue browser", desc = "Open the current issue in the browser" },
13 | { "hic", "Octo issue create", desc = "Create a new issue" },
14 | { "hie", "Octo issue edit", desc = "Edit an issue" },
15 | { "hil", "Octo issue list", desc = "List current repo issues" },
16 | { "hio", "Octo issue reopen", desc = "Reopen the current issue" },
17 | { "hiu", "