1
1
Fork 0

Compare commits

...

3 commits

Author SHA1 Message Date
Gaiety
512139b711 More basic tools 2026-04-02 20:40:29 -06:00
Gaiety
01045b33d6 symlink dotfiles, bat 2026-04-02 20:36:32 -06:00
Gaiety
8d897d868e 2026 fresh, mise setups 2026-04-02 20:34:40 -06:00
42 changed files with 24 additions and 1231 deletions

View file

@ -1,35 +1,6 @@
[user]
email = ava+git@basking.monster
name = gaiety
name = Gaiety
email = ava+git@gaiety.me
[apply]
# Detect whitespace errors when applying a patch
whitespace = fix
[color]
ui = auto
[color "diff"]
meta = yellow bold
frag = magenta bold # line info
old = red # deletions
new = green # additions
[color "status"]
added = yellow
changed = green
untracked = cyan
[diff]
# Detect copies as well as renames
renames = copies
tool = difft
[help]
# Automatically correct and execute mistyped commands
autocorrect = 1
[push]
# change to maching for machines with older versions of git 1.x.x
default = simple
autoSetupRemote = true
[core]
editor = nvim

88
.zshrc
View file

@ -1,86 +1,3 @@
export MISE_SHELL=zsh
export __MISE_ORIG_PATH="$PATH"
mise() {
local command
command="${1:-}"
if [ "$#" = 0 ]; then
command mise
return
fi
shift
case "$command" in
deactivate|shell|sh)
# if argv doesn't contains -h,--help
if [[ ! " $@ " =~ " --help " ]] && [[ ! " $@ " =~ " -h " ]]; then
eval "$(command mise "$command" "$@")"
return $?
fi
;;
esac
command mise "$command" "$@"
}
_mise_hook() {
eval "$(mise hook-env -s zsh)";
}
typeset -ag precmd_functions;
if [[ -z "${precmd_functions[(r)_mise_hook]+1}" ]]; then
precmd_functions=( _mise_hook ${precmd_functions[@]} )
fi
typeset -ag chpwd_functions;
if [[ -z "${chpwd_functions[(r)_mise_hook]+1}" ]]; then
chpwd_functions=( _mise_hook ${chpwd_functions[@]} )
fi
_mise_hook
if [ -z "${_mise_cmd_not_found:-}" ]; then
_mise_cmd_not_found=1
# preserve existing handler if present
if typeset -f command_not_found_handler >/dev/null; then
functions -c command_not_found_handler _command_not_found_handler
fi
typeset -gA _mise_cnf_tried
# helper for fallback behavior
_mise_fallback() {
local _cmd="$1"; shift
if typeset -f _command_not_found_handler >/dev/null; then
_command_not_found_handler "$_cmd" "$@"
return $?
else
print -u2 -- "zsh: command not found: $_cmd"
return 127
fi
}
command_not_found_handler() {
local cmd="$1"; shift
# never intercept mise itself or retry already-attempted commands
if [[ "$cmd" == "mise" || "$cmd" == mise-* || -n "${_mise_cnf_tried["$cmd"]}" ]]; then
_mise_fallback "$cmd" "$@"
return $?
fi
# run the hook; only retry if the command is actually found afterward
if mise hook-not-found -s zsh -- "$cmd"; then
_mise_hook
if command -v -- "$cmd" >/dev/null 2>&1; then
"$cmd" "$@"
return $?
fi
else
# only mark as tried if mise explicitly can't handle it
_mise_cnf_tried["$cmd"]=1
fi
# fall back
_mise_fallback "$cmd" "$@"
}
fi
# shellcheck shell=bash
@ -338,6 +255,5 @@ export EDITOR='nvim'
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
. "$HOME/.atuin/bin/env"
eval "$(atuin init zsh)"
eval "$(init zsh)"
eval "$(/home/gaiety/.local/bin/mise activate zsh)"

View file

@ -1,19 +1,16 @@
# Gaiety's Dotfiles
# Gaiety's Dotfiles 2026
Designed for Unix Systems.
![](./screenshot.png)
## Setup
Misc dependencies: `git, curl, apt`
```sh
# apt Installations
sudo ./setup.sh
# Links & Configs
task
curl https://mise.run | sh
chmod +x ./mise-tasks/*
mise trust
mise install
mise run install-terminal
mise run symlink
```

View file

@ -1,65 +0,0 @@
# https://taskfile.dev
version: '3'
tasks:
default:
deps: [mise, fonts, tools]
cmds:
- echo "mise checks ran, tools updated"
mise:
cmds:
- mise self-update
- mise doctor
fonts:
dir: downloads
cmds:
- curl -LO https://github.com/githubnext/monaspace/releases/download/v1.301/monaspace-frozen-v1.301.zip
- unzip monaspace-frozen-v1.301.zip -d ./fonts
- mkdir -p ~/.fonts
- find . -type f -exec mv {} ~/.fonts \;
tools:
deps: [git, zsh, kitty, ripgrep, neovim, bat, zoxide]
cmds:
- echo "tools installed"
zsh:
cmds: # installed via ./setup.sh
- cmd: sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
ignore_error: true
- cmd: rm ~/.zshrc
ignore_error: true
- cmd: ln -s "$(pwd)/.zshrc" ~/.zshrc
ignore_error: true
kitty:
cmds: # installed via ./setup.sh
- cmd: ln -s "$(pwd)/kitty" ~/.config/kitty
ignore_error: true
git:
cmds:
- cmd: ln -s "$(pwd)/.gitconfig" ~/.gitconfig
ignore_error: true
ripgrep:
cmds:
- mise use --global ripgrep@latest
neovim:
cmds:
- mise use --global neovim@0.11.4
- cmd: ln -s "$(pwd)/nvim" ~/.config/nvim
ignore_error: true
bat:
cmds:
- mise use --global bat@latest
zoxide:
cmds:
- mise use --global zoxide@latest

Binary file not shown.

View file

@ -1 +0,0 @@
/mnt/storage/repos/dotfiles/kitty

View file

@ -1,89 +0,0 @@
#########################
# verdigris for kitty for kitty
# 0.0.1
# GPL-3.0-only
# https://git.basking.monster/gaiety/verdigris
####################
#########################
# The basic colors
foreground #C6E4F0
background #00040B
selection_foreground #19323B
selection_background #C6E4F0
####################
#########################
# Cursor colors
cursor #C6E4F0
cursor_text_color #19323B
# cursor_trail_color none
####################
#########################
# URL colors
url_color #8CC8E0
####################
#########################
# Marks colors
# mark1_foreground black
# mark1_background #98d3cb
# mark2_foreground black
# mark2_background #f2dcd3
# mark3_foreground black
# mark3_background #f274bc
####################
#########################
# Tab bar colors
active_tab_foreground #C6E4F0
active_tab_background #19323B
inactive_tab_foreground #C6E4F0
inactive_tab_background #4E6872
# tab_bar_background #{pit.toHex()}
# tab_bar_margin_color none
####################
#########################
# window border colors and terminal bell colors
active_border_color #23DBC1
inactive_border_color #4E6872
bell_border_color #FF9F6F
# visual_bell_color none
####################
#########################
# The basic 16 colors
#: black
color0 #00040B
color8 #4E6872
#: red
color1 #E8ADA9
color9 #E8ADA9
#: green
color2 #98CCAC
color10 #98CCAC
#: yellow
color3 #E1B392
color11 #E1B392
#: blue
color4 #8CC8E0
color12 #8CC8E0
#: magenta
color5 #BEB6E8
color13 #BEB6E8
#: cyan
color6 #23DBC1
color14 #23DBC1
#: white
color7 #C6E4F0
color15 #C6E4F0
####################

View file

@ -1,18 +0,0 @@
# font_family VictorMono Nerd Font Mono
font_family Monaspace Krypton Frozen
bold_font Monaspace Neon Frozen
italic_font Monaspace Radon Frozen
bold_italic_font Monaspace Radon Frozen
cursor_trail 1
cursor_trail_decay 0.1 0.4
cursor_trail_start_threshold 2
font_size 20
tab_bar_min_tabs 2
tab_bar_edge bottom
tab_bar_style powerline
tab_powerline_style slanted
tab_title_template {title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}
include ./kitty-theme.conf
kitty_enable_wayland=1 kitty
background_opacity 1

3
mise-tasks/install-terminal Executable file
View file

@ -0,0 +1,3 @@
#!/usr/bin/env bash
#MISE description="Install Ghostty"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/mkasberg/ghostty-ubuntu/HEAD/install.sh)"

3
mise-tasks/symlink Executable file
View file

@ -0,0 +1,3 @@
#!/usr/bin/env bash
#MISE description="Symlink Dotfiles"
ln -sf "$(pwd)/.gitconfig" ~/.gitconfig

View file

@ -1,2 +1,6 @@
[tools]
task = "3.45.4"
bat = "latest"
fzf = "latest"
neovim = "latest"
tree-sitter = "latest"
zellij = "latest"

View file

@ -1,41 +0,0 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
-- Make sure to setup `mapleader` and `maplocalleader` before
-- loading lazy.nvim so that mappings are correct.
-- This is also a good place to setup other settings (vim.opt)
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"
-- Setup lazy.nvim
-- load plugins
require("lazy").setup({
spec = {
{ import = "plugins" },
{ import = "filetypes" },
},
}, lazy_defaults, {
checker = { enabled = true },
})
require "config/options"
require "config/keys"
require "config/autocmds"
vim.schedule(function()
-- require "mappings"
end)

View file

@ -1,50 +0,0 @@
{
"LuaSnip": { "branch": "master", "commit": "fb525166ccc30296fb3457441eb979113de46b00" },
"alpha-nvim": { "branch": "main", "commit": "a35468cd72645dbd52c0624ceead5f301c566dff" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" },
"cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"codestats.nvim": { "branch": "master", "commit": "041b315c4f82997186fcdb3fc2f687cc128a28f3" },
"elixir-tools.nvim": { "branch": "main", "commit": "f7e18753f5587b422aac628249fa46c66ed24af3" },
"flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"hlargs.nvim": { "branch": "main", "commit": "ce8d705866dae44513ff48613d5e37e4da524d70" },
"inc-rename.nvim": { "branch": "main", "commit": "a3e31af13844534c66041ce92f29af7745883875" },
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lsp-format.nvim": { "branch": "master", "commit": "42d1d3e407c846d95f84ea3767e72ed6e08f7495" },
"lualine.nvim": { "branch": "master", "commit": "a94fc68960665e54408fe37dcf573193c4ce82c9" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "c4c84f4521d62de595c0d0f718a9a40c1890c8ce" },
"mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" },
"neoscroll.nvim": { "branch": "master", "commit": "f957373912e88579e26fdaea4735450ff2ef5c9c" },
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
"notify": { "branch": "master", "commit": "b5825cf9ee881dd8e43309c93374ed5b87b7a896" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-autopairs": { "branch": "master", "commit": "2647cce4cb64fb35c212146663384e05ae126bdf" },
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
"nvim-cokeline": { "branch": "main", "commit": "9fbed130683b7b6f73198c09e35ba4b33f547c08" },
"nvim-colorizer.lua": { "branch": "master", "commit": "517df88cf2afb36652830df2c655df2da416a0ae" },
"nvim-lspconfig": { "branch": "master", "commit": "69a1624aff5dc30dddd0c59d99a947b63c80bf2a" },
"nvim-origami": { "branch": "main", "commit": "89a2c27b0855311c35057e6fa024d2824af6a4bd" },
"nvim-regexplainer": { "branch": "main", "commit": "2ec38892e7ce36f0c58b478f3570936fa5bd11f1" },
"nvim-spectre": { "branch": "master", "commit": "72f56f7585903cd7bf92c665351aa585e150af0f" },
"nvim-spider": { "branch": "main", "commit": "d4bdc45eac425e77108f068bd0706ff3ac20be7f" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-treesitter-context": { "branch": "master", "commit": "1a1a7c5d6d75cb49bf64049dafab15ebe294a79f" },
"nvim-treesitter-endwise": { "branch": "master", "commit": "d6cbb83307d516ec076d17c9a33d704ef626ee8c" },
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
"nvim-web-devicons": { "branch": "master", "commit": "19d6211c78169e78bab372b585b6fb17ad974e82" },
"overseer.nvim": { "branch": "master", "commit": "72c68aab0358c92f451168b704c411c4a3e3410e" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"rainbow-delimiters.nvim": { "branch": "master", "commit": "3277ad5f96eb03c9d618c88e24f683e4364e578c" },
"render-markdown.nvim": { "branch": "main", "commit": "0944ba04ea7fc9e9087c1dedc76562d6e0d110cf" },
"resession.nvim": { "branch": "master", "commit": "84c81e5fd8a94dc85a60b97089536174e558e288" },
"smear-cursor.nvim": { "branch": "main", "commit": "cf2f73a4d0b402edb8177d059ee1127e621b79a7" },
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
"switch.vim": { "branch": "main", "commit": "df58397cfa36d2f428ddc2652ba32d1db2af6d02" },
"symbols.nvim": { "branch": "main", "commit": "62cd4236b3eeabf3b970f225b1cc3379e11dc99c" },
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
"vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" },
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
}

View file

@ -1,11 +0,0 @@
local augroup = vim.api.nvim_create_augroup -- Create/get autocommand group
local autocmd = vim.api.nvim_create_autocmd -- Create autocommand
-- Highlight on yank
augroup('YankHighlight', { clear = true })
autocmd('TextYankPost', {
group = 'YankHighlight',
callback = function()
vim.highlight.on_yank({ higroup = 'IncSearch', timeout = '1000' })
end
})

View file

@ -1,21 +0,0 @@
local map = vim.api.nvim_set_keymap
local opts = { noremap = true, silent = true }
-- F2 rename variable
-- K inspect with LSP
map('n', '<S-Tab>', '<Cmd>bp<CR>', opts)
map('n', '<Tab>', '<Cmd>bn<CR>', opts)
map('n', '<[b>', '<Cmd>bp<CR>', opts)
map('n', '<]b>', '<Cmd>bn<CR>', opts)
map('n', '<leader>w', '<Cmd>bd<CR>', opts)
map('n', '<leader>s', '<Cmd>w<CR>', opts)
map('n', '<leader>S', '<Cmd>w!<CR>', opts)
map('n', '<leader>t', "<Cmd>Switch<CR>", opts)
map('n', '<leader>r', "<Cmd>Spectre<CR>", opts)
map('n', '<Up>', "<C-a>", opts)
map('n', '<Down>', "<C-x>", opts)
map('n', '<Right>', "<Cmd>Switch<CR>", opts)
map('n', '<Left>', "<Cmd>Switch<CR>", opts)
map('n', '<leader>t', "<Cmd>OverseerRun<CR>", opts)
map('n', '<leader>T', "<Cmd>OverseerToggle<CR>", opts)

View file

@ -1,40 +0,0 @@
-- This file is automatically loaded by plugins.core
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"
-- LazyVim auto format
vim.g.autoformat = true
-- Set Theme
-- vim.cmd.colorscheme "catppuccin"
-- Set Misc Options
local opt = vim.opt
opt.cursorline = true -- Enable highlighting of the current line
opt.autoindent = true
opt.expandtab = true -- Use spaces instead of tabs
opt.shiftwidth = 2 -- Size of an indent
opt.tabstop = 2 -- Size of an indent
opt.linebreak = true -- Wrap lines at convenient points
opt.list = true -- Show some invisible characters (tabs...
-- opt.mouse = false
opt.number = true -- Print line number
opt.relativenumber = true -- Relative line numbers
opt.ruler = false -- Disable the default ruler
opt.scrolloff = 4 -- Lines of context
opt.sidescrolloff = 8 -- Columns of context
opt.spelllang = { "en" }
opt.showmode = false -- Dont show mode since we have a statusline
opt.termguicolors = true -- True color support
opt.undofile = true
opt.undolevels = 10000
opt.virtualedit = "block" -- Allow cursor to move where there is no text in visual block mode
opt.wrap = false -- Disable line wrap
opt.signcolumn = "yes"
opt.foldcolumn = "0"
opt.foldlevel = 99
opt.foldlevelstart = 99
opt.foldmethod = "expr"
opt.foldexpr = "nvim_treesitter#foldexpr()"
opt.foldenable = true

View file

@ -1,32 +0,0 @@
return {
"elixir-tools/elixir-tools.nvim",
version = "*",
event = { "BufReadPre", "BufNewFile" },
ft = { "elixir", "heex", "eex" },
config = function()
local elixir = require("elixir")
local elixirls = require("elixir.elixirls")
elixir.setup {
nextls = { enable = true },
elixirls = {
enable = true,
settings = elixirls.settings {
dialyzerEnabled = true,
enableTestLenses = true,
},
on_attach = function(client, bufnr)
vim.keymap.set("n", "<space>fp", ":ElixirFromPipe<cr>", { buffer = true, noremap = true })
vim.keymap.set("n", "<space>tp", ":ElixirToPipe<cr>", { buffer = true, noremap = true })
vim.keymap.set("v", "<space>em", ":ElixirExpandMacro<cr>", { buffer = true, noremap = true })
end,
},
projectionist = {
enable = true
}
}
end,
dependencies = {
"nvim-lua/plenary.nvim",
},
}

View file

@ -1,8 +0,0 @@
return {
'MeanderingProgrammer/render-markdown.nvim',
ft = { "markdown" },
dependencies = { 'nvim-treesitter/nvim-treesitter'},
---@module 'render-markdown'
---@type render.md.UserConfig
opts = {},
}

View file

@ -1,21 +0,0 @@
return {
'bennypowers/nvim-regexplainer',
lazy = true,
config = function()
require 'regexplainer'.setup({
mappings = {
toggle = 'gR',
},
popup = {
border = {
padding = { 1, 2 },
style = 'solid',
}
}
})
end,
requires = {
'nvim-treesitter/nvim-treesitter',
'MunifTanjim/nui.nvim',
}
}

View file

@ -1,3 +0,0 @@
return {
"AndrewRadev/switch.vim"
}

View file

@ -1,17 +0,0 @@
return {
"liljaylj/codestats.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
event = { "TextChanged", "InsertEnter" },
cmd = { "CodeStatsXpSend", "CodeStatsProfileUpdate" },
config = function()
require("codestats").setup({
username = "gaiety", -- needed to fetch profile data
base_url = "https://codestats.net", -- codestats.net base url
api_key = "SFMyNTY.WjJGcFpYUjUjI01qSXhPVFU9.P5dSCW38Tr2S1o5cKqRAVlQfsTcU--po2dAE7PPj1Eo", -- fill with your codestats machine API
send_on_exit = true, -- send xp on nvim exit
send_on_timer = true, -- send xp on timer
timer_interval = 60000, -- timer interval in milliseconds (minimum 1000ms to prevent DDoSing codestat.net servers)
curl_timeout = 5, -- curl request timeout in seconds
})
end,
}

View file

@ -1,9 +0,0 @@
return {
"catgoose/nvim-colorizer.lua",
event = "BufReadPre",
opts = { -- set to setup table
mode = "virtualtext",
virtualtext = "",
virtualtext_inline = true,
},
}

View file

@ -1,44 +0,0 @@
return {
"goolord/alpha-nvim",
config = function()
local startify = require("alpha.themes.startify")
local dashboard = require("alpha.themes.dashboard")
local logo = [[
YIP YAP YAP YAP YIP YIP YAP
]]
-- ⠀⠀⢀⢮⣟⣾⣿⣿⣻⣿⡷⣻⣿⠿⣿⣿⣿⣤⣀⠹⣿⣿⣿⣿⣿⣿⣿⠏⠁⡧⠗⠁⠀⠀
-- ⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣟⣾⡿⣶⣿⣿⣿⣿⣿⣿⣦⡘⠿⠿⠿⣿⡟⠀⢰⠁⠀⠀
dashboard.section.header.val = vim.split(logo, "\n")
dashboard.section.header.opts.hl = "@tag"
local quotes = {
{ "Sorting moss by taste..." },
{ "There is no Kobold OSHA..." },
{ "All kobolds are just lil guys..." },
{ "Yips and Yaps are just morse code dots and dashes..." },
{ "Kobolds pass the Rorschach test by eating the picture..." },
}
dashboard.section.footer.val = quotes[math.random(#quotes)]
dashboard.section.buttons.val = {
dashboard.button('`', '󰙅 Tree'),
dashboard.button('SPC SPC', '󰱽 Find File'),
dashboard.button('SPC /', '󱝩 Live Grep'),
}
require("alpha").setup(
dashboard.opts
)
end,
}

View file

@ -1,32 +0,0 @@
return {
"chrisgrieser/nvim-origami",
event = "VeryLazy",
opts = {
useLspFoldsWithTreesitterFallback = true, -- required for `autoFold`
pauseFoldsOnSearch = true,
foldtext = {
enabled = true,
padding = 3,
lineCount = {
template = "%d lines", -- `%d` is replaced with the number of folded lines
hlgroup = "Comment",
},
diagnosticsCount = true, -- uses hlgroups and icons from `vim.diagnostic.config().signs`
gitsignsCount = true, -- requires `gitsigns.nvim`
},
autoFold = {
enabled = true,
kinds = { "comment", "imports" }, ---@type lsp.FoldingRangeKind[]
},
foldKeymaps = {
setup = true, -- modifies `h` and `l`
hOnlyOpensOnFirstColumn = false,
},
},
-- recommended: disable vim's auto-folding
init = function()
vim.opt.foldlevel = 99
vim.opt.foldlevelstart = 99
end,
}

View file

@ -1,3 +0,0 @@
return {
"RRethy/vim-illuminate",
}

View file

@ -1,199 +0,0 @@
return {
{
"smjonas/inc-rename.nvim",
opts = {}
},
{
{
"mason-org/mason-lspconfig.nvim",
opts = {
ensure_installed = { "lexical" }
},
dependencies = {
{ "mason-org/mason.nvim", opts = {} },
{ "neovim/nvim-lspconfig" },
{ "hrsh7th/nvim-cmp" },
{ "hrsh7th/cmp-nvim-lsp" },
{ "hrsh7th/cmp-buffer" },
{ "hrsh7th/cmp-path" },
{ "saadparwaiz1/cmp_luasnip" },
{ "L3MON4D3/LuaSnip" },
{ "rafamadriz/friendly-snippets" },
},
config = function()
vim.api.nvim_create_autocmd('LspAttach', {
desc = 'LSP actions',
callback = function()
local bufmap = function(mode, lhs, rhs)
local opts = { buffer = true }
vim.keymap.set(mode, lhs, rhs, opts)
end
bufmap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>')
bufmap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<cr>')
bufmap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>')
bufmap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<cr>')
bufmap('n', 'go', '<cmd>lua vim.lsp.buf.type_definition()<cr>')
bufmap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<cr>')
bufmap('n', 'gs', '<cmd>lua vim.lsp.buf.signature_help()<cr>')
bufmap('n', '<F2>', '<cmd>lua vim.lsp.buf.rename()<cr>')
bufmap('n', '<F3>', '<cmd>lua vim.lsp.buf.format({async = true})<cr>')
bufmap('n', '<F4>', '<cmd>lua vim.lsp.buf.code_action()<cr>')
bufmap('n', 'gl', '<cmd>lua vim.diagnostic.open_float()<cr>')
bufmap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<cr>')
bufmap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<cr>')
end
})
---
-- Diagnostics
---
vim.diagnostic.config({
virtual_text = true,
severity_sort = true,
float = {
border = 'rounded',
source = 'always',
},
})
vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(
vim.lsp.handlers.hover,
{ border = 'rounded' }
)
vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(
vim.lsp.handlers.signature_help,
{ border = 'rounded' }
)
---
-- LSP servers
---
-- require('mason').setup({})
-- require('mason-lspconfig').setup({})
local lspconfig = require('lspconfig')
local lsp_capabilities = require('cmp_nvim_lsp').default_capabilities()
lspconfig.tsserver.setup({
capabilities = lsp_capabilities,
})
lspconfig.lua_ls.setup({
capabilities = lsp_capabilities,
})
---
-- Autocomplete
---
vim.opt.completeopt = { 'menu', 'menuone', 'noselect' }
require('luasnip.loaders.from_vscode').lazy_load()
local cmp = require('cmp')
local luasnip = require('luasnip')
local select_opts = { behavior = cmp.SelectBehavior.Select }
cmp.setup({
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end
},
sources = {
{ name = 'path' },
{ name = 'render-markdown' },
{ name = 'nvim_lsp', keyword_length = 1 },
{ name = 'buffer', keyword_length = 3 },
{ name = 'luasnip', keyword_length = 2 },
},
window = {
documentation = cmp.config.window.bordered()
},
formatting = {
fields = { 'menu', 'abbr', 'kind' },
format = function(entry, item)
local menu_icon = {
nvim_lsp = 'λ',
luasnip = '',
buffer = 'Ω',
path = '🖫',
}
item.menu = menu_icon[entry.source.name]
return item
end,
},
mapping = {
['<Up>'] = cmp.mapping.select_prev_item(select_opts),
['<Down>'] = cmp.mapping.select_next_item(select_opts),
['<C-p>'] = cmp.mapping.select_prev_item(select_opts),
['<C-n>'] = cmp.mapping.select_next_item(select_opts),
['<C-u>'] = cmp.mapping.scroll_docs(-4),
['<C-d>'] = cmp.mapping.scroll_docs(4),
['<C-e>'] = cmp.mapping.abort(),
['<C-y>'] = cmp.mapping.confirm({ select = true }),
['<CR>'] = cmp.mapping.confirm({ select = false }),
['<C-f>'] = cmp.mapping(function(fallback)
if luasnip.jumpable(1) then
luasnip.jump(1)
else
fallback()
end
end, { 'i', 's' }),
['<C-b>'] = cmp.mapping(function(fallback)
if luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { 'i', 's' }),
['<Tab>'] = cmp.mapping(function(fallback)
local col = vim.fn.col('.') - 1
if cmp.visible() then
cmp.select_next_item(select_opts)
elseif col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then
fallback()
else
cmp.complete()
end
end, { 'i', 's' }),
['<S-Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item(select_opts)
else
fallback()
end
end, { 'i', 's' }),
},
})
end
}
},
{
"lukas-reineke/lsp-format.nvim",
config = function()
require("lsp-format").setup {}
vim.api.nvim_create_autocmd('LspAttach', {
callback = function(args)
local client = assert(vim.lsp.get_client_by_id(args.data.client_id))
require("lsp-format").on_attach(client, args.buf)
end,
})
end,
},
}

View file

@ -1,17 +0,0 @@
return {
{ "chrisgrieser/nvim-spider", lazy = true },
{
"folke/flash.nvim",
event = "VeryLazy",
---@type Flash.Config
opts = {},
-- stylua: ignore
keys = {
{ "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" },
{ "S", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" },
{ "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" },
{ "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" },
{ "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" },
},
}
}

View file

@ -1,60 +0,0 @@
return {
{
'RRethy/nvim-treesitter-endwise',
},
{
"windwp/nvim-ts-autotag",
config = function()
require('nvim-ts-autotag').setup({
opts = {
enable_close = true, -- Auto close tags
enable_rename = true, -- Auto rename pairs of tags
enable_close_on_slash = true -- Auto close on trailing </
}
})
end
},
{
'windwp/nvim-autopairs',
event = "InsertEnter",
config = function()
require('nvim-autopairs').setup()
local npairs = require("nvim-autopairs")
local Rule = require('nvim-autopairs.rule')
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
local cmp = require('cmp')
cmp.event:on(
'confirm_done',
cmp_autopairs.on_confirm_done()
)
npairs.setup({
check_ts = true,
ts_config = {
lua = { 'string' }, -- it will not add a pair on that treesitter node
javascript = { 'template_string' },
java = false, -- don't check treesitter on java
}
})
local ts_conds = require('nvim-autopairs.ts-conds')
-- press % => %% only while inside a comment or string
npairs.add_rules({
Rule("%", "%", "lua")
:with_pair(ts_conds.is_ts_node({ 'string', 'comment' })),
Rule("$", "$", "lua")
:with_pair(ts_conds.is_not_ts_node({ 'function' }))
})
end,
opts = {
enabled = function(bufnr) return true end,
disable_filetype = { "TelescopePrompt", "spectre_panel", "snacks_picker_input" },
enable_check_bracket_line = false,
map_cr = true,
map_bs = true, -- map the <BS> key
},
}
}

View file

@ -1,52 +0,0 @@
return {
"folke/snacks.nvim",
---@type snacks.Config
opts = {
picker = {
layout = {
preview = "main",
preset = "ivy",
},
sources = {
explorer = {
auto_close = true,
layout = { preset = "sidebar", preview = "top" },
}
}
},
terminal = {
win = {
position = "float",
border = "rounded",
height = 0.8,
width = 0.6,
}
},
},
keys = {
{ "`", function() Snacks.explorer() end, desc = "File Explorer" },
{ "<leader>s", function() Snacks.picker.lsp_symbols() end, desc = "LSP Symbols" },
{ "gd", function() Snacks.picker.lsp_definitions() end, desc = "Goto Definition" },
{ "gD", function() Snacks.picker.lsp_declarations() end, desc = "Goto Declaration" },
{ "gr", function() Snacks.picker.lsp_references() end, nowait = true, desc = "References" },
{ "gI", function() Snacks.picker.lsp_implementations() end, desc = "Goto Implementation" },
{ "gy", function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" },
{ "<leader><leader>", function() Snacks.picker.smart() end, desc = "Smart Find Files" },
{ "<leader>b", function() Snacks.picker.buffers() end, desc = "Buffers" },
{ "<leader>/", function() Snacks.picker.grep() end, desc = "Grep" },
{ "<leader>:", function() Snacks.picker.command_history() end, desc = "Command History" },
{ "<leader>n", function() Snacks.picker.notifications() end, desc = "Notification History" },
{ "<leader>u", function() Snacks.picker.undo() end, desc = "Undo History" },
{ '<leader>"', function() Snacks.picker.registers() end, desc = "Registers" },
{ "<leader>gb", function() Snacks.picker.git_branches() end, desc = "Git Branches" },
{ "<leader>gl", function() Snacks.picker.git_log() end, desc = "Git Log" },
{ "<leader>gs", function() Snacks.picker.git_status() end, desc = "Git Status" },
{ "<leader>gS", function() Snacks.picker.git_stash() end, desc = "Git Stash" },
{ "<leader>gd", function() Snacks.picker.git_diff() end, desc = "Git Diff (Hunks)" },
{ "<leader>gf", function() Snacks.picker.git_log_file() end, desc = "Git Log File" },
{ "<F12>", function() Snacks.terminal.toggle() end, desc = "Terminal Toggle", mode = { "n", "i", "t" } },
}
}

View file

@ -1,12 +0,0 @@
return {
"folke/noice.nvim",
dependencies = {
"nvim-pack/nvim-spectre",
"nvim-lua/plenary.nvim",
},
config = function ()
require("noice").setup {
presets = { inc_rename = true }
}
end
}

View file

@ -1,6 +0,0 @@
return {
"karb94/neoscroll.nvim",
opts = {
easing = "quadratic"
},
}

View file

@ -1,14 +0,0 @@
return {
"sphamba/smear-cursor.nvim",
event = "VeryLazy",
opts = {
stiffness = 0.8, -- 0.6 [0, 1]
trailing_stiffness = 0.5, -- 0.4 [0, 1]
stiffness_insert_mode = 0.6, -- 0.4 [0, 1]
trailing_stiffness_insert_mode = 0.6, -- 0.4 [0, 1]
distance_stop_animating = 0.5,
time_interval = 7, -- milliseconds
cursor_color = "#f9e2af",
legacy_computing_symbols_support = true,
},
}

View file

@ -1,67 +0,0 @@
return {
'nvim-lualine/lualine.nvim',
config = function()
-- Bubbles config for lualine
-- Author: lokesh-krishna
-- MIT license, see LICENSE for more details.
-- stylua: ignore
local colors = {
blue = '#89b4fa',
cyan = '#89dceb',
black = '#1e1e2e',
white = '#cdd6f4',
red = '#f38ba8',
violet = '#cba6f7',
grey = '#303030',
}
local bubbles_theme = {
normal = {
a = { fg = colors.black, bg = colors.violet },
b = { fg = colors.white, bg = colors.grey },
c = { fg = colors.white },
},
insert = { a = { fg = colors.black, bg = colors.blue } },
visual = { a = { fg = colors.black, bg = colors.cyan } },
replace = { a = { fg = colors.black, bg = colors.red } },
inactive = {
a = { fg = colors.white, bg = colors.black },
b = { fg = colors.white, bg = colors.black },
c = { fg = colors.white },
},
}
require('lualine').setup {
options = {
theme = bubbles_theme,
component_separators = '',
section_separators = { left = '', right = '' },
},
sections = {
lualine_a = { { 'mode', separator = { left = '' }, right_padding = 2 } },
lualine_b = { 'filename', 'branch' },
lualine_c = {
'%=', --[[ add your center components here in place of this comment ]]
},
lualine_x = {},
lualine_y = { 'filetype', 'progress' },
lualine_z = {
{ 'location', separator = { right = '' }, left_padding = 2 },
},
},
inactive_sections = {
lualine_a = { 'filename' },
lualine_b = {},
lualine_c = {},
lualine_x = {},
lualine_y = {},
lualine_z = { 'location' },
},
tabline = {},
extensions = {},
}
end,
}

View file

@ -1,20 +0,0 @@
return {
"oskarrrrrrr/symbols.nvim",
config = function()
local r = require("symbols.recipes")
require("symbols").setup(
r.DefaultFilters,
r.AsciiSymbols,
{
sidebar = {
unfold_on_goto = true,
close_on_goto = true,
preview = {
show_always = true,
show_line_number = true,
}
},
}
)
end
}

View file

@ -1,15 +0,0 @@
return {
{
"willothy/nvim-cokeline",
dependencies = {
"nvim-lua/plenary.nvim", -- Required for v0.4.0+
"nvim-tree/nvim-web-devicons", -- If you want devicons
"stevearc/resession.nvim" -- Optional, for persistent history
},
config = function()
require('cokeline').setup({
show_if_buffers_are_at_least = 2,
})
end,
}
}

View file

@ -1,4 +0,0 @@
return {
'stevearc/overseer.nvim',
opts = {},
}

View file

@ -1,5 +0,0 @@
return {
"folke/todo-comments.nvim",
event = "VeryLazy",
dependencies = { "nvim-lua/plenary.nvim" },
}

View file

@ -1,34 +0,0 @@
return {
{
"folke/which-key.nvim",
opts = {
spec = {
{ "<BS>", desc = "Decrement Selection", mode = "x" },
{ "<c-space>", desc = "Increment Selection", mode = { "x", "n" } },
},
},
},
{
"m-demare/hlargs.nvim",
event = { "VeryLazy" },
},
{
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate',
dependencies = {
'nvim-treesitter/nvim-treesitter-context',
},
main = 'nvim-treesitter.configs',
opts = {
auto_install = true,
highlight = {
enable = true,
}
},
},
{
"windwp/nvim-ts-autotag",
event = "VeryLazy",
opts = {},
}
}

View file

@ -1 +0,0 @@
/mnt/storage/repos/dotfiles/nvim

View file

@ -1,52 +0,0 @@
""
" verdigris v0.0.1
"
" URL: https://git.basking.monster/gaiety/verdigris/ports/neovim
" Author: Gaiety
" License: GPL-3.0-only
""
set background=dark
hi clear
if exists("syntax_on")
syntax reset
endif
let g:colors_name="verdigris"
let Italic = ""
if exists('g:verdigris_italic')
let Italic = "italic"
endif
let g:verdigris_italic = get(g:, 'verdigris_italic', 0)
let Bold = ""
if exists('g:verdigris_bold')
let Bold = "bold"
endif
let g:verdigris_bold = get(g:, 'verdigris_bold', 0)
hi Conceal guifg=#4E6872 ctermfg=242 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi DiffAdd guifg=#98CCAC ctermfg=115 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi DiffChange guifg=#E1B392 ctermfg=180 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi DiffDelete guifg=#E8ADA9 ctermfg=181 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi ErrorMsg guifg=#E8ADA9 ctermfg=181 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi SpellBad guifg=#E8ADA9 ctermfg=181 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi WarningMsg guifg=#E1B392 ctermfg=180 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi Comment guifg=#19323B ctermfg=236 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi Constant guifg=#FF9F6F ctermfg=215 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi String guifg=#23DBC1 ctermfg=43 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi Identifier guifg=#8CC8E0 ctermfg=116 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi Statement guifg=#C6E4F0 ctermfg=254 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi Exception guifg=#E8ADA9 ctermfg=181 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi PreProc guifg=#4E6872 ctermfg=242 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi Type guifg=#E1B392 ctermfg=180 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi Special guifg=#E1B392 ctermfg=180 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi Ignore guifg=#4E6872 ctermfg=242 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi Error guifg=#E8ADA9 ctermfg=181 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
hi Todo guifg=#8CC8E0 ctermfg=116 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

View file

@ -1,38 +0,0 @@
#!/bin/bash
echo Installing ZSH
sudo apt install zsh
chsh -s $(which zsh)
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
echo ZSH installed, log out then back in to have it be your default shell
echo then run this script again
echo Installing mise
curl https://mise.run | sh
echo "eval \"\$(~/.local/bin/mise activate bash)\"" >> ~/.bashrc
source ~/.bashrc
echo mise installed, restart your terminal then run this script again
mise doctor
mise trust
sudo apt install kitty
sudo update-alternatives --config x-terminal-emulator
echo kitty installed, set it as your default terminal if you wish
sudo apt install ranger
sudo update-alternatives --config xdg-open
echo ranger installed, set it as your default file manager if you wish
sudo apt install mosh
echo mosh installed
curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh
atuin import auto
echo Atuin installed
wget -qO difft.tar.gz https://github.com/Wilfred/difftastic/releases/latest/download/difft-x86_64-unknown-linux-gnu.tar.gz
sudo tar xf difft.tar.gz -C /usr/local/bin
echo difftastic installed
echo Finally, run 'task' whenever you are ready for the remaining setup