summaryrefslogtreecommitdiff
path: root/pkgs/custom-neovim/config/lua
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/custom-neovim/config/lua')
-rw-r--r--pkgs/custom-neovim/config/lua/art.lua269
-rw-r--r--pkgs/custom-neovim/config/lua/autocommands.lua36
-rw-r--r--pkgs/custom-neovim/config/lua/colorscheme.lua31
-rw-r--r--pkgs/custom-neovim/config/lua/mappings.lua30
-rw-r--r--pkgs/custom-neovim/config/lua/neovide.lua47
-rw-r--r--pkgs/custom-neovim/config/lua/options.lua45
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/alpha.lua68
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/lspconfig.lua91
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/lualine.lua88
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/persisted.lua3
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/presence.lua3
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/snacks.lua60
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/tabby.lua53
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/telescope.lua1
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/which-key.lua3
-rw-r--r--pkgs/custom-neovim/config/lua/utilities.lua25
16 files changed, 853 insertions, 0 deletions
diff --git a/pkgs/custom-neovim/config/lua/art.lua b/pkgs/custom-neovim/config/lua/art.lua
new file mode 100644
index 0000000..f36a5d9
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/art.lua
@@ -0,0 +1,269 @@
+-- Credits to the ascii.nvim plugin and jgs on the ascii art archive.
+
+Art = {
+ space = {
+ saturn = {
+ [[ ~+ ]],
+ [[ * + ]],
+ [[ ' | ]],
+ [[ () .-.,="``"=. - o - ]],
+ [[ '=/_ \ | ]],
+ [[ * | '=._ | ]],
+ [[ \ `=./`, ' ]],
+ [[ . '=.__.=' `=' * ]],
+ [[ + + ]],
+ [[ O * ' . ]],
+ },
+ },
+ neovim = {
+ default1 = {
+ [[ __ ]],
+ [[ ___ ___ ___ __ __ /\_\ ___ ___ ]],
+ [[ / _ `\ / __`\ / __`\/\ \/\ \\/\ \ / __` __`\ ]],
+ [[/\ \/\ \/\ __//\ \_\ \ \ \_/ |\ \ \/\ \/\ \/\ \ ]],
+ [[\ \_\ \_\ \____\ \____/\ \___/ \ \_\ \_\ \_\ \_\]],
+ [[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]],
+ },
+
+ default2 = {
+ [[ _______ ____ ____.__ ]],
+ [[ \ \ ____ ___\ \ / /|__| _____ ]],
+ [[ / | \_/ __ \/ _ \ Y / | |/ \ ]],
+ [[/ | \ ___( <_> ) / | | Y Y \]],
+ [[\____|__ /\___ >____/ \___/ |__|__|_| /]],
+ [[ \/ \/ \/ ]],
+ },
+
+ dos_rebel = {
+ [[ ]],
+ [[ ██████ █████ █████ █████ ███ ]],
+ [[ ░░██████ ░░███ ░░███ ░░███ ░░░ ]],
+ [[ ░███░███ ░███ ██████ ██████ ░███ ░███ ████ █████████████ ]],
+ [[ ░███░░███░███ ███░░███ ███░░███ ░███ ░███ ░░███ ░░███░░███░░███ ]],
+ [[ ░███ ░░██████ ░███████ ░███ ░███ ░░███ ███ ░███ ░███ ░███ ░███ ]],
+ [[ ░███ ░░█████ ░███░░░ ░███ ░███ ░░░█████░ ░███ ░███ ░███ ░███ ]],
+ [[ █████ ░░█████░░██████ ░░██████ ░░███ █████ █████░███ █████ ]],
+ [[ ░░░░░ ░░░░░ ░░░░░░ ░░░░░░ ░░░ ░░░░░ ░░░░░ ░░░ ░░░░░ ]],
+ [[ ]],
+ },
+
+ rowan_cap = {
+ [[ ]],
+ [[ dMMMMb dMMMMMP .aMMMb dMP dMP dMP dMMMMMMMMb ]],
+ [[ dMP dMP dMP dMP"dMP dMP dMP amr dMP"dMP"dMP ]],
+ [[ dMP dMP dMMMP dMP dMP dMP dMP dMP dMP dMP dMP ]],
+ [[ dMP dMP dMP dMP.aMP YMvAP" dMP dMP dMP dMP ]],
+ [[ dMP dMP dMMMMMP VMMMP" VP" dMP dMP dMP dMP ]],
+ [[ ]],
+ },
+
+ isometric = {
+ [[ ]],
+ [[ /\__\ /\ \ /\ \ /\__\ ___ /\__\ ]],
+ [[ /::| | /::\ \ /::\ \ /:/ / /\ \ /::| | ]],
+ [[ /:|:| | /:/\:\ \ /:/\:\ \ /:/ / \:\ \ /:|:| | ]],
+ [[ /:/|:| |__ /::\~\:\ \ /:/ \:\ \ /:/__/ ___ /::\__\ /:/|:|__|__ ]],
+ [[ /:/ |:| /\__\ /:/\:\ \:\__\ /:/__/ \:\__\ |:| | /\__\ __/:/\/__/ /:/ |::::\__\ ]],
+ [[ \/__|:|/:/ / \:\~\:\ \/__/ \:\ \ /:/ / |:| |/:/ / /\/:/ / \/__/~~/:/ / ]],
+ [[ |:/:/ / \:\ \:\__\ \:\ /:/ / |:|__/:/ / \::/__/ /:/ / ]],
+ [[ |::/ / \:\ \/__/ \:\/:/ / \::::/__/ \:\__\ /:/ / ]],
+ [[ /:/ / \:\__\ \::/ / ~~~~ \/__/ /:/ / ]],
+ [[ \/__/ \/__/ \/__/ \/__/ ]],
+ [[ ]],
+ },
+
+ ogre = {
+ [[ ]],
+ [[ __ _ ]],
+ [[ /\ \ \___ ___/\ /(_)_ __ ___ ]],
+ [[ / \/ / _ \/ _ \ \ / | | '_ ` _ \ ]],
+ [[ / /\ | __| (_) \ V /| | | | | | | ]],
+ [[ \_\ \/ \___|\___/ \_/ |_|_| |_| |_| ]],
+ [[ ]],
+ },
+
+ slant_relief = {
+ [[ ]],
+ [[ /\\\\\_____/\\\_______________________________/\\\________/\\\___________________________ ]],
+ [[ \/\\\\\\___\/\\\______________________________\/\\\_______\/\\\__________________________ ]],
+ [[ _\/\\\/\\\__\/\\\______________________________\//\\\______/\\\___/\\\_____________________ ]],
+ [[ _\/\\\//\\\_\/\\\_____/\\\\\\\\______/\\\\\_____\//\\\____/\\\___\///_____/\\\\\__/\\\\\__ ]],
+ [[ _\/\\\\//\\\\/\\\___/\\\/////\\\___/\\\///\\\____\//\\\__/\\\_____/\\\__/\\\///\\\\\///\\\_ ]],
+ [[ _\/\\\_\//\\\/\\\__/\\\\\\\\\\\___/\\\__\//\\\____\//\\\/\\\_____\/\\\_\/\\\_\//\\\__\/\\\ ]],
+ [[ _\/\\\__\//\\\\\\_\//\\///////___\//\\\__/\\\______\//\\\\\______\/\\\_\/\\\__\/\\\__\/\\\_ ]],
+ [[ _\/\\\___\//\\\\\__\//\\\\\\\\\\__\///\\\\\/________\//\\\_______\/\\\_\/\\\__\/\\\__\/\\\ ]],
+ [[ _\///_____\/////____\//////////_____\/////___________\///________\///__\///___\///___\///__ ]],
+ [[ ]],
+ },
+
+ ansi_shadow = {
+ [[ ]],
+ [[ ███╗ ██╗███████╗ ██████╗ ██╗ ██╗██╗███╗ ███╗ ]],
+ [[ ████╗ ██║██╔════╝██╔═══██╗██║ ██║██║████╗ ████║ ]],
+ [[ ██╔██╗ ██║█████╗ ██║ ██║██║ ██║██║██╔████╔██║ ]],
+ [[ ██║╚██╗██║██╔══╝ ██║ ██║╚██╗ ██╔╝██║██║╚██╔╝██║ ]],
+ [[ ██║ ╚████║███████╗╚██████╔╝ ╚████╔╝ ██║██║ ╚═╝ ██║ ]],
+ [[ ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═╝ ╚═╝ ]],
+ [[ ]],
+ },
+
+ bloody = {
+ [[ ]],
+ [[ ███▄ █ ▓█████ ▒█████ ██▒ █▓ ██▓ ███▄ ▄███▓ ]],
+ [[ ██ ▀█ █ ▓█ ▀ ▒██▒ ██▒▓██░ █▒▓██▒▓██▒▀█▀ ██▒ ]],
+ [[ ▓██ ▀█ ██▒▒███ ▒██░ ██▒ ▓██ █▒░▒██▒▓██ ▓██░ ]],
+ [[ ▓██▒ ▐▌██▒▒▓█ ▄ ▒██ ██░ ▒██ █░░░██░▒██ ▒██ ]],
+ [[ ▒██░ ▓██░░▒████▒░ ████▓▒░ ▒▀█░ ░██░▒██▒ ░██▒ ]],
+ [[ ░ ▒░ ▒ ▒ ░░ ▒░ ░░ ▒░▒░▒░ ░ ▐░ ░▓ ░ ▒░ ░ ░ ]],
+ [[ ░ ░░ ░ ▒░ ░ ░ ░ ░ ▒ ▒░ ░ ░░ ▒ ░░ ░ ░ ]],
+ [[ ░ ░ ░ ░ ░ ░ ░ ▒ ░░ ▒ ░░ ░ ]],
+ [[ ░ ░ ░ ░ ░ ░ ░ ░ ]],
+ [[ ░ ]],
+ [[ ]],
+ },
+
+ delta_corps_priest1 = {
+ [[ ]],
+ [[ ███▄▄▄▄ ▄████████ ▄██████▄ ▄█ █▄ ▄█ ▄▄▄▄███▄▄▄▄ ]],
+ [[ ███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ▄██▀▀▀███▀▀▀██▄ ]],
+ [[ ███ ███ ███ █▀ ███ ███ ███ ███ ███▌ ███ ███ ███ ]],
+ [[ ███ ███ ▄███▄▄▄ ███ ███ ███ ███ ███▌ ███ ███ ███ ]],
+ [[ ███ ███ ▀▀███▀▀▀ ███ ███ ███ ███ ███▌ ███ ███ ███ ]],
+ [[ ███ ███ ███ █▄ ███ ███ ███ ███ ███ ███ ███ ███ ]],
+ [[ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ]],
+ [[ ▀█ █▀ ██████████ ▀██████▀ ▀██████▀ █▀ ▀█ ███ █▀ ]],
+ [[ ]],
+ },
+
+ elite = {
+ [[ ]],
+ [[ ▐ ▄ ▄▄▄ . ▌ ▐·▪ • ▌ ▄ ·. ]],
+ [[ •█▌▐█▀▄.▀·▪ ▪█·█▌██ ·██ ▐███▪ ]],
+ [[ ▐█▐▐▌▐▀▀▪▄ ▄█▀▄ ▐█▐█•▐█·▐█ ▌▐▌▐█· ]],
+ [[ ██▐█▌▐█▄▄▌▐█▌.▐▌ ███ ▐█▌██ ██▌▐█▌ ]],
+ [[ ▀▀ █▪ ▀▀▀ ▀█▄▀▪. ▀ ▀▀▀▀▀ █▪▀▀▀ ]],
+ [[ ]],
+ },
+
+ the_edge = {
+ [[ ]],
+ [[ ▄ ▄███▄ ████▄ ▄ ▄█ █▀▄▀█ ]],
+ [[ █ █▀ ▀ █ █ █ ██ █ █ █ ]],
+ [[ ██ █ ██▄▄ █ █ █ █ ██ █ ▄ █ ]],
+ [[ █ █ █ █▄ ▄▀ ▀████ █ █ ▐█ █ █ ]],
+ [[ █ █ █ ▀███▀ █ █ ▐ █ ]],
+ [[ █ ██ █▐ ▀ ]],
+ [[ ▐ ]],
+ [[ ]],
+ },
+
+ banner3 = {
+ [[ ]],
+ [[ ## ## ######## ####### ## ## #### ## ## ]],
+ [[ ### ## ## ## ## ## ## ## ### ### ]],
+ [[ #### ## ## ## ## ## ## ## #### #### ]],
+ [[ ## ## ## ###### ## ## ## ## ## ## ### ## ]],
+ [[ ## #### ## ## ## ## ## ## ## ## ]],
+ [[ ## ### ## ## ## ## ## ## ## ## ]],
+ [[ ## ## ######## ####### ### #### ## ## ]],
+ [[ ]],
+ },
+
+ colossal = {
+ [[ ]],
+ [[ 888b 888 888 888 d8b ]],
+ [[ 8888b 888 888 888 Y8P ]],
+ [[ 88888b 888 888 888 ]],
+ [[ 888Y88b 888 .d88b. .d88b. Y88b d88P 888 88888b.d88b. ]],
+ [[ 888 Y88b888 d8P Y8b d88""88b Y88b d88P 888 888 "888 "88b ]],
+ [[ 888 Y88888 88888888 888 888 Y88o88P 888 888 888 888 ]],
+ [[ 888 Y8888 Y8b. Y88..88P Y888P 888 888 888 888 ]],
+ [[ 888 Y888 "Y8888 "Y88P" Y8P 888 888 888 888 ]],
+ [[ ]],
+ },
+
+ decimal = {
+ [[ ]],
+ [[ 78 101 111 86 105 109 ]],
+ [[ ]],
+ },
+
+ def_leppard = {
+ [[ ]],
+ [[ : ]],
+ [[ L. ,; t#, ]],
+ [[ EW: ,ft f#i ;##W. t ]],
+ [[ E##; t#E .E#t :#L:WE Ej .. : ]],
+ [[ E###t t#E i#W, .KG ,#D t .DD.E#, ,W, .Et ]],
+ [[ E#fE#f t#E L#D. EE ;#f EK: ,WK. E#t t##, ,W#t ]],
+ [[ E#t D#G t#E :K#Wfff; f#. t#iE#t i#D E#t L###, j###t ]],
+ [[ E#t f#E. t#E i##WLLLLt :#G GK E#t j#f E#t .E#j##, G#fE#t ]],
+ [[ E#t t#K: t#E .E#L ;#L LW. E#tL#i E#t ;WW; ##,:K#i E#t ]],
+ [[ E#t ;#W,t#E f#E: t#f f#: E#WW, E#t j#E. ##f#W, E#t ]],
+ [[ E#t :K#D#E ,WW; f#D#; E#K: E#t .D#L ###K: E#t ]],
+ [[ E#t .E##E .D#; G#t ED. E#t :K#t ##D. E#t ]],
+ [[ .. G#E tt t t E#t ... #G .. ]],
+ [[ fE ,;. j ]],
+ [[ , ]],
+ [[ ]],
+ },
+
+ larry_3d = {
+ [[ ]],
+ [[ __ __ __ __ ]],
+ [[ /\ \/\ \ /\ \/\ \ __ ]],
+ [[ \ \ `\\ \ __ ___\ \ \ \ \/\_\ ___ ___ ]],
+ [[ \ \ , ` \ /'__`\ / __`\ \ \ \ \/\ \ /' __` __`\ ]],
+ [[ \ \ \`\ \/\ __//\ \L\ \ \ \_/ \ \ \/\ \/\ \/\ \ ]],
+ [[ \ \_\ \_\ \____\ \____/\ `\___/\ \_\ \_\ \_\ \_\ ]],
+ [[ \/_/\/_/\/____/\/___/ `\/__/ \/_/\/_/\/_/\/_/ ]],
+ [[ ]],
+ },
+
+ lean = {
+ [[ ]],
+ [[ _/ _/ _/ _/ _/ ]],
+ [[ _/_/ _/ _/_/ _/_/ _/ _/ _/_/_/ _/_/ ]],
+ [[ _/ _/ _/ _/_/_/_/ _/ _/ _/ _/ _/ _/ _/ _/ ]],
+ [[ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ ]],
+ [[ _/ _/ _/_/_/ _/_/ _/ _/ _/ _/ _/ ]],
+ [[ ]],
+ },
+
+ morse = {
+ [[ ]],
+ [[ -. . --- ...- .. -- ]],
+ [[ ]],
+ },
+
+ sharp = {
+ [[ ]],
+ [[  ]],
+ [[ ████ ██████ █████ ██ ]],
+ [[ ███████████ █████  ]],
+ [[ █████████ ███████████████████ ███ ███████████ ]],
+ [[ █████████ ███ █████████████ █████ ██████████████ ]],
+ [[ █████████ ██████████ █████████ █████ █████ ████ █████ ]],
+ [[ ███████████ ███ ███ █████████ █████ █████ ████ █████ ]],
+ [[ ██████ █████████████████████ ████ █████ █████ ████ ██████ ]],
+ [[ ]],
+ },
+ },
+ misc = {
+ hydra = {
+ [[ ]],
+ [[ ⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣿⣶⣿⣦⣼⣆ ]],
+ [[ ⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦ ]],
+ [[ ⠈⢿⣿⣟⠦ ⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄ ]],
+ [[ ⣸⣿⣿⢧ ⢻⠻⣿⣿⣷⣄⣀⠄⠢⣀⡀⠈⠙⠿⠄ ]],
+ [[ ⢠⣿⣿⣿⠈ ⣻⣿⣿⣿⣿⣿⣿⣿⣛⣳⣤⣀⣀ ]],
+ [[ ⢠⣧⣶⣥⡤⢄ ⣸⣿⣿⠘ ⢀⣴⣿⣿⡿⠛⣿⣿⣧⠈⢿⠿⠟⠛⠻⠿⠄ ]],
+ [[ ⣰⣿⣿⠛⠻⣿⣿⡦⢹⣿⣷ ⢊⣿⣿⡏ ⢸⣿⣿⡇ ⢀⣠⣄⣾⠄ ]],
+ [[ ⣠⣿⠿⠛ ⢀⣿⣿⣷⠘⢿⣿⣦⡀ ⢸⢿⣿⣿⣄ ⣸⣿⣿⡇⣪⣿⡿⠿⣿⣷⡄ ]],
+ [[ ⠙⠃ ⣼⣿⡟ ⠈⠻⣿⣿⣦⣌⡇⠻⣿⣿⣷⣿⣿⣿ ⣿⣿⡇ ⠛⠻⢷⣄ ]],
+ [[ ⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆ ]],
+ [[ ⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⡟⢀⣀⣤⣾⡿⠃ ]],
+ [[ ]],
+ },
+ },
+}
diff --git a/pkgs/custom-neovim/config/lua/autocommands.lua b/pkgs/custom-neovim/config/lua/autocommands.lua
new file mode 100644
index 0000000..48a976e
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/autocommands.lua
@@ -0,0 +1,36 @@
+-- Autocommands
+
+-- Use relative line number in normal mode and absolute in insert mode
+-- vim.opt.number = true
+-- local numbertoggle = vim.api.nvim_create_augroup("numbertoggle", {})
+-- vim.api.nvim_create_autocmd(
+-- { "BufEnter", "FocusGained", "InsertLeave", "WinEnter", "CmdlineLeave" },
+-- {
+-- group = numbertoggle,
+-- callback = function()
+-- if vim.opt.number and vim.api.nvim_get_mode() ~= "i" then
+-- vim.opt.relativenumber = true
+-- end
+-- end,
+-- }
+-- )
+
+-- vim.api.nvim_create_autocmd(
+-- { "BufLeave", "FocusLost", "InsertEnter", "WinLeave", "CmdlineEnter" },
+-- {
+-- group = numbertoggle,
+-- callback = function()
+-- if vim.opt.number then
+-- vim.opt.relativenumber = false
+-- vim.cmd("redraw")
+-- end
+-- end,
+-- }
+-- )
+
+ -- start terminal in insert mode
+vim.api.nvim_create_autocmd("TermOpen", {
+ callback = function()
+ vim.cmd "startinsert!"
+ end,
+})
diff --git a/pkgs/custom-neovim/config/lua/colorscheme.lua b/pkgs/custom-neovim/config/lua/colorscheme.lua
new file mode 100644
index 0000000..ed03aef
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/colorscheme.lua
@@ -0,0 +1,31 @@
+-- Set colorscheme.
+vim.cmd.colorscheme("oxocarbon")
+
+-- Set boolean to use patches.
+local correct_borderless_windows = true
+
+-- Patches.
+local link_highlight = function(first_highlight, second_highlight)
+ vim.cmd.highlight {bang = true, "link", first_highlight, second_highlight}
+end
+
+vim.api.nvim_create_autocmd({"ColorScheme", "VimEnter"}, {
+ callback = function()
+ -- Fixes some colorschemes having borderless floating windows.
+ if correct_borderless_windows then
+ link_highlight("FloatBorder", "Comment")
+
+ -- Telescope-specific highlights
+ link_highlight("TelescopeBorder", "Comment")
+ link_highlight("TelescopeResultsTitle", "Variable")
+ link_highlight("TelescopePreviewTitle", "Variable")
+ link_highlight("TelescopePromptTitle", "Variable")
+ link_highlight("TelescopePromptNormal", "Variable")
+ link_highlight("TelescopePromptBorder", "Variable")
+ link_highlight("TelescopePromptPrefix", "Variable")
+
+ -- Snacks-specific highlights
+ link_highlight("SnacksPickerDir", "SnacksPickerFile")
+ end
+ end,
+})
diff --git a/pkgs/custom-neovim/config/lua/mappings.lua b/pkgs/custom-neovim/config/lua/mappings.lua
new file mode 100644
index 0000000..15a28e5
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/mappings.lua
@@ -0,0 +1,30 @@
+-- Keymap function.
+local mapkey = utils.mapkey
+
+-- Map the leader key.
+vim.g.mapleader = ' '
+
+-- Pickers
+mapkey("n", "<leader>f", "Open file picker", ":Telescope find_files<cr>")
+mapkey("n", "<leader>c", "Open recent file picker", ":Telescope oldfiles<cr>")
+-- mapkey("n", "<leader>e", "Open file explorer", ":Pick explorer<cr>")
+mapkey("n", "<leader>b", "Open buffer picker", ":Telescope buffers<cr>")
+mapkey("n", "<leader>/", "Open live grep picker", ":Telescope live_grep<cr>")
+mapkey("n", "<leader>\\", "Open command palette", ":Telescope commands<cr>")
+mapkey("n", "<leader>?", "Open help picker", ":Telescope help<cr>")
+mapkey("n", "<leader>'", "Open last picker", ":Telescope resume<cr>")
+
+-- Tabs
+mapkey("n", "<leader>t", "Manage tabs", "")
+mapkey("n", "<leader>tt", "Open new tab", ":tabnew<cr>")
+mapkey("n", "<leader>tq", "Close tab", ":tabclose<cr>")
+mapkey("n", "<leader>tn", "Go to next tab", ":tabnext<cr>")
+mapkey("n", "<leader>tp", "Go to previous tab", ":tabprev<cr>")
+
+-- QOL Keys
+mapkey("t", "<Esc><Esc>", "Exit terminal insert mode", "<C-\\><C-n>")
+vim.keymap.set("c", "<cr>", function()
+ if vim.fn.pumvisible() == 1 then return '<c-y>' end
+ return '<cr>'
+end, { expr = true }) -- Make enter complete command.
+mapkey("n", "<esc>", "Clear highlights", ":noh<cr>") -- Make esc clear highlights
diff --git a/pkgs/custom-neovim/config/lua/neovide.lua b/pkgs/custom-neovim/config/lua/neovide.lua
new file mode 100644
index 0000000..dc804fc
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/neovide.lua
@@ -0,0 +1,47 @@
+if vim.g.neovide then
+-- if false then
+ vim.o.guifont = "CodeNewRoman Nerd Font:h12"
+ -- vim.g.neovide_scale_factor = 0.8
+
+ -- Zoom keymaps.
+ local change_scale_factor = function(delta)
+ vim.g.neovide_scale_factor = vim.g.neovide_scale_factor + delta
+ end
+ vim.keymap.set("n", "<C-=>", function()
+ change_scale_factor(1)
+ end)
+ vim.keymap.set("n", "<C-->", function()
+ change_scale_factor(-1)
+ end)
+
+ -- Standard terminal emulator keymaps.
+ vim.api.nvim_set_keymap("c", "<sc-v>", "<C-R>+", { noremap = true }) -- Paste in command mode.
+ vim.api.nvim_set_keymap('t', '<sc-v>', '<C-\\><C-n>"+Pi', {noremap = true}) -- Paste in terminal mode.
+
+
+ local positionAnimationLength = 0.2
+ local scrollAnimationFarLines = 0.1
+ local scrollAnimationLength = 0.1
+ vim.g.neovide_position_animation_length = positionAnimationLength
+ vim.g.neovide_scroll_animation_far_lines = scrollAnimationFarLines
+ vim.g.neovide_scroll_animation_length = scrollAnimationLength
+
+ -- Don't smooth scroll in terminals.
+ vim.api.nvim_create_autocmd("BufEnter", {
+ pattern = "*",
+ callback = function(args)
+ local filetype = vim.api.nvim_buf_get_option(args.buf, "filetype")
+
+ -- When entering terminal for first time I noticed the filetype is empty
+ if filetype == '' or filetype == 'terminal' then
+ vim.g.neovide_position_animation_length = 0
+ vim.g.neovide_scroll_animation_far_lines = 0
+ vim.g.neovide_scroll_animation_length = 0
+ else
+ vim.g.neovide_position_animation_length = positionAnimationLength
+ vim.g.neovide_scroll_animation_far_lines = scrollAnimationFarLines
+ vim.g.neovide_scroll_animation_length = scrollAnimationLength
+ end
+ end,
+ })
+end
diff --git a/pkgs/custom-neovim/config/lua/options.lua b/pkgs/custom-neovim/config/lua/options.lua
new file mode 100644
index 0000000..8981dad
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/options.lua
@@ -0,0 +1,45 @@
+-- General Settings
+vim.o.winborder = 'rounded'
+vim.o.showtabline = 2 -- whether to only show tabline if there is more than one tab.
+vim.o.laststatus = 3 -- only have one statusline at the bottom of the window.
+vim.o.showmode = false -- don't show the mode in the commandline.
+vim.o.ruler = false -- don't show #,# in the commandline.
+vim.o.icm = 'split'
+vim.o.cia = 'abbr,kind,menu'
+vim.o.mouse = ""
+vim.o.relativenumber = true -- set numbered lines
+vim.o.scrolloff = 4 -- minimal number of screen lines to keep above and below the cursor
+vim.o.signcolumn = "yes" -- always show the sign column, otherwise it would shift the text each time
+vim.o.clipboard = "unnamedplus" -- use system clipboard
+vim.o.sessionoptions = 'curdir,folds,globals,help,tabpages,terminal,winsize' -- Things to save with the session.
+
+-- Indention
+local indent = 2
+vim.o.autoindent = true -- auto indentation
+vim.o.expandtab = true -- convert tabs to spaces
+vim.o.shiftwidth = indent -- the number of spaces inserted for each indentation
+vim.o.smartindent = true -- make indenting smarter
+vim.o.softtabstop = indent -- when hitting <BS>, pretend like a tab is removed, even if spaces
+vim.o.tabstop = indent -- insert 2 spaces for a tab
+vim.o.shiftround = true -- use multiple of shiftwidth when indenting with "<" and ">"
+
+-- Backups
+vim.o.backup = false -- create a backup file
+vim.o.swapfile = false -- creates a swapfile
+vim.o.writebackup = false -- if a file is being edited by another program, it is not allowed to be edited
+
+-- Search
+vim.o.hlsearch = true -- highlight all matches on previous search pattern
+vim.o.ignorecase = true -- ignore case in search patterns
+vim.o.smartcase = true -- smart case
+
+-- Folding
+vim.o.foldmethod = "expr"
+vim.o.foldexpr = "v:lua.vim.treesitter.foldexpr()" -- Set folder to treesitter.
+vim.o.foldlevel = 99 -- Don't fold initially.
+vim.o.foldnestmax = 4 -- Don't fold if more than 4 folds deep.
+vim.o.foldtext = "" -- Color text in folds.
+
+-- Set Colorscheme
+vim.cmd.colorscheme("oxocarbon")
+vim.o.termguicolors = true
diff --git a/pkgs/custom-neovim/config/lua/plugins/alpha.lua b/pkgs/custom-neovim/config/lua/plugins/alpha.lua
new file mode 100644
index 0000000..f377b0d
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/alpha.lua
@@ -0,0 +1,68 @@
+local alpha = require("alpha")
+local dashboard = require("alpha.themes.dashboard")
+
+-- -- Set header
+-- dashboard.section.header.val = Art.misc.hydra
+
+-- -- Set menu
+-- dashboard.section.buttons.val = {
+-- dashboard.button( "f", " > Find file", ":cd $HOME | Telescope find_files<CR>" ),
+-- dashboard.button( "r", " > Find recent file", ":Telescope oldfiles<CR>" ),
+-- dashboard.button( "s", " > Load session", ":Telescope persisted<cr>" ),
+-- dashboard.button( "l", " > Load last session", ":SessionLoadLast<cr>" ),
+-- dashboard.button( "q", " > Quit", ":qa<CR>" ),
+-- }
+
+-- -- Center components.
+-- dashboard.section.header.opts.position = "center"
+-- dashboard.section.footer.opts.position = "center"
+
+-- -- Send config to alpha
+-- alpha.setup(dashboard.opts)
+
+require("alpha").setup {
+ dashboard = {
+ config = {},
+ opts = {
+ autostart = true
+ },
+ section = {
+ buttons = {
+ entries = { { "f", "󰈞 Find File", "<CMD>Telescope find_files<CR>" }, { "n", " New File", "<CMD>ene!<CR>" }, { "p", " Projects ", "<CMD>Telescope projects<CR>" }, { "r", " Recent files",
+":Telescope oldfiles <CR>" }, { "t", "󰊄 Find Text", "<CMD>Telescope live_grep<CR>" }, { "c", " Configuration", "<CMD>edit /home/lucas/.config/lvim/config.lua <CR>" }, { "q", "󰅖 Quit", "<CMD>quit<CR>"
+} },
+ opts = {
+ hl_shortcut = "Include",
+ spacing = 1
+ }
+ },
+ footer = {
+ opts = {
+ hl = "Number",
+ position = "center"
+ },
+ type = "text",
+ val = { " ", " lunarvim.org", "release-1.4/neovim-0.9-d15c8d7" }
+ },
+ header = {
+ opts = {
+ hl = "Label",
+ position = "center"
+ },
+ type = "text",
+ }
+ }
+ },
+ mode = "dashboard",
+}
+
+-- Set options just for the dashboard.
+vim.api.nvim_create_autocmd("BufEnter", {
+ pattern = "alpha",
+ callback = function()
+ vim.opt_local.foldenable = false -- disable folding
+ vim.opt_local.relativenumber = false
+ vim.opt_local.number = false
+ end,
+})
+
diff --git a/pkgs/custom-neovim/config/lua/plugins/lspconfig.lua b/pkgs/custom-neovim/config/lua/plugins/lspconfig.lua
new file mode 100644
index 0000000..445caee
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/lspconfig.lua
@@ -0,0 +1,91 @@
+-- vim.keymap.set('n', '<space>d', vim.diagnostic.setloclist, {desc = "Add buffer diagnostics to the location list."})
+
+-- Disable semantic tokens to stop weird highlighting.
+vim.api.nvim_create_autocmd('LspAttach', {
+ callback = function(ev)
+ local client = vim.lsp.get_client_by_id(ev.data.client_id)
+ if client then
+ client.server_capabilities.semanticTokensProvider = nil
+ end
+ end
+})
+
+-- Use LspAttach autocommand to only map the following keys
+-- after the language server attaches to the current buffer
+vim.api.nvim_create_autocmd('LspAttach', {
+ group = vim.api.nvim_create_augroup('UserLspConfig', {}),
+ callback = function(ev)
+ -- Enable completion triggered by <c-x><c-o>
+ vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
+
+ -- Buffer local mappings.
+ -- See `:help vim.lsp.*` for documentation on any of the below functions
+
+ local keymap = function(mode, key, desc, action)
+ vim.keymap.set(mode, key, action, {noremap = true, silent = true, desc = desc})
+ end
+
+ keymap('n', 'gD', "Go to declaration", vim.lsp.buf.declaration)
+ keymap('n', 'gd', "Go to definition", vim.lsp.buf.definition)
+ keymap('n', 'gy', "Go to type definition", vim.lsp.buf.type_definition)
+ keymap('n', 'gi', "Go to implementation", vim.lsp.buf.implementation)
+ keymap('n', '<M-k>', "Signature Help", vim.lsp.buf.signature_help)
+ keymap('i', '<M-k>', "Signature Help", vim.lsp.buf.signature_help)
+ keymap('n', "<space>o", "Manage LSP workspace", "")
+ keymap('n', '<space>oa', "Add Workspace Folder", vim.lsp.buf.add_workspace_folder)
+ keymap('n', '<space>or', "Remove Workspace Folder", vim.lsp.buf.remove_workspace_folder)
+ keymap('n', '<space>ol', "List Workspace Folders", function()
+ print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
+ end)
+ keymap('n', '<space>r', "Rename Symbol", vim.lsp.buf.rename)
+ keymap("n", "<leader>s", "Open symbol picker", ":Telescope lsp_document_symbols<cr>")
+ keymap("n", "<leader>S", "Open workspace symbol picker", ":Telescope lsp_workspace_symbols<cr>")
+
+ -- LSP Pickers
+ keymap({'n', 'v'}, "<leader>a", "Perform code action", require("actions-preview").code_actions)
+ keymap("n", "<leader>D", "Open workspace diagnostic picker", ":Pick diagnostic<cr>")
+ keymap("n", "<leader>d", "Open diagnostic picker", [[:Pick diagnostic scope="current"<cr>]])
+
+ keymap('n', 'gr', "Buffer References", vim.lsp.buf.references)
+ keymap('n', '<localleader>f', "Format Buffer", function()
+ vim.lsp.buf.format { async = true }
+ end)
+ end,
+})
+
+local lspconfig = require('lspconfig')
+
+-- Configure individual lsps
+lspconfig.nil_ls.setup {}
+lspconfig.lua_ls.setup {
+ on_init = function(client)
+ local path = client.workspace_folders[1].name
+ if vim.loop.fs_stat(path..'/.luarc.json') or vim.loop.fs_stat(path..'/.luarc.jsonc') then
+ return
+ end
+
+ client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {
+ runtime = {
+ -- Tell the language server which version of Lua you're using
+ -- (most likely LuaJIT in the case of Neovim)
+ version = 'LuaJIT'
+ },
+ -- Make the server aware of Neovim runtime files
+ workspace = {
+ checkThirdParty = false,
+ library = {
+ vim.env.VIMRUNTIME,
+ -- Depending on the usage, you might want to add additional paths here.
+ "${3rd}/luv/library"
+ -- "${3rd}/busted/library",
+ }
+ -- or pull in all of 'runtimepath'. NOTE: this is a lot slower
+ -- library = vim.api.nvim_get_runtime_file("", true)
+ }
+ })
+ end,
+ settings = {
+ Lua = {}
+ }
+}
+lspconfig.marksman.setup {}
diff --git a/pkgs/custom-neovim/config/lua/plugins/lualine.lua b/pkgs/custom-neovim/config/lua/plugins/lualine.lua
new file mode 100644
index 0000000..b38d3ed
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/lualine.lua
@@ -0,0 +1,88 @@
+local generate_lualine_theme = function()
+ local colors = utils.generate_theme_from_lualine()
+ return {
+ normal = {
+ a = {bg = colors.modes.normal, fg = colors.text.dark, gui = 'bold'},
+ b = {bg = colors.background, fg = colors.text.light},
+ c = {bg = colors.background, fg = colors.text.light},
+ x = {bg = colors.background, fg = colors.text.light},
+ y = {bg = colors.background, fg = colors.text.light},
+ z = {bg = colors.modes.normal, fg = colors.text.dark, gui = 'bold'},
+ },
+ insert = {
+ a = {bg = colors.modes.insert, fg = colors.text.dark, gui = 'bold'},
+ b = {bg = colors.background, fg = colors.text.light},
+ c = {bg = colors.background, fg = colors.text.light},
+ x = {bg = colors.background, fg = colors.text.light},
+ y = {bg = colors.background, fg = colors.text.light},
+ z = {bg = colors.modes.insert, fg = colors.text.dark, gui = 'bold'},
+ },
+ visual = {
+ a = {bg = colors.modes.visual, fg = colors.text.dark, gui = 'bold'},
+ b = {bg = colors.background, fg = colors.text.light},
+ c = {bg = colors.background, fg = colors.text.light},
+ x = {bg = colors.background, fg = colors.text.light},
+ y = {bg = colors.background, fg = colors.text.light},
+ z = {bg = colors.modes.visual, fg = colors.text.dark, gui = 'bold'},
+ },
+ replace = {
+ a = {bg = colors.modes.replace, fg = colors.text.dark, gui = 'bold'},
+ b = {bg = colors.background, fg = colors.text.light},
+ c = {bg = colors.background, fg = colors.text.light},
+ x = {bg = colors.background, fg = colors.text.light},
+ y = {bg = colors.background, fg = colors.text.light},
+ z = {bg = colors.modes.replace, fg = colors.text.dark, gui = 'bold'},
+ },
+ command = {
+ a = {bg = colors.modes.command, fg = colors.text.dark, gui = 'bold'},
+ b = {bg = colors.background, fg = colors.text.light},
+ c = {bg = colors.background, fg = colors.text.light},
+ x = {bg = colors.background, fg = colors.text.light},
+ y = {bg = colors.background, fg = colors.text.light},
+ z = {bg = colors.modes.command, fg = colors.text.dark, gui = 'bold'},
+ },
+ inactive = {
+ a = {bg = colors.modes.inactive, fg = colors.text.dark, gui = 'bold'},
+ b = {bg = colors.background, fg = colors.text.light},
+ c = {bg = colors.background, fg = colors.text.light},
+ x = {bg = colors.background, fg = colors.text.light},
+ y = {bg = colors.background, fg = colors.text.light},
+ z = {bg = colors.modes.inactive, fg = colors.text.dark, gui = 'bold'},
+ },
+ };
+end
+
+require('lualine').setup {
+ options = {
+ theme = generate_lualine_theme(),
+ component_separators = "",
+ section_separators = { left = '', right = '' },
+ },
+ sections = {
+ lualine_a = { { 'mode', separator = { left = '', rignt = '' }, right_padding = 2 } }, -- { left = '', rignt = '' }
+ lualine_b = { 'filename', 'diff' },
+ lualine_c = { 'branch' },
+ lualine_x = { {'diagnostics', sources = { 'nvim_lsp' } } },
+ lualine_y = { 'lsp_status', 'progress' },
+ lualine_z = {
+ { 'location', separator = { left = '', right = '' }, left_padding = 2 },
+ },
+ },
+ inactive_sections = {
+ lualine_a = {},
+ lualine_b = { 'filename' },
+ lualine_c = {},
+ lualine_x = {},
+ lualine_y = { 'location' },
+ lualine_z = {},
+ },
+ tabline = {},
+ extensions = {},
+}
+
+-- vim.api.nvim_create_autocmd("ColorScheme", {
+-- callback = function()
+-- setup_lualine()
+-- print "colorscheme changed"
+-- end,
+-- })
diff --git a/pkgs/custom-neovim/config/lua/plugins/persisted.lua b/pkgs/custom-neovim/config/lua/plugins/persisted.lua
new file mode 100644
index 0000000..d3a5814
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/persisted.lua
@@ -0,0 +1,3 @@
+require("persisted").setup()
+
+require("telescope").load_extension("persisted")
diff --git a/pkgs/custom-neovim/config/lua/plugins/presence.lua b/pkgs/custom-neovim/config/lua/plugins/presence.lua
new file mode 100644
index 0000000..7ffb57f
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/presence.lua
@@ -0,0 +1,3 @@
+require('presence').setup({
+ neovim_image_text = "Neovim Text Editor",
+})
diff --git a/pkgs/custom-neovim/config/lua/plugins/snacks.lua b/pkgs/custom-neovim/config/lua/plugins/snacks.lua
new file mode 100644
index 0000000..324b013
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/snacks.lua
@@ -0,0 +1,60 @@
+require("snacks").setup {
+ bigfile = { enabled = true },
+ picker = { enabled = true },
+ dashboard = {
+ width = 60,
+ row = nil, -- dashboard position. nil for center
+ col = nil, -- dashboard position. nil for center
+ pane_gap = 4, -- empty columns between vertical panes
+ autokeys = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", -- autokey sequence
+ -- These settings are used by some built-in sections
+ preset = {
+ -- Defaults to a picker that supports `fzf-lua`, `telescope.nvim` and `mini.pick`
+ ---@type fun(cmd:string, opts:table)|nil
+ pick = nil,
+ -- Used by the `keys` section to show keymaps.
+ -- Set your custom keymaps here.
+ -- When using a function, the `items` argument are the default keymaps.
+ ---@type snacks.dashboard.Item[]
+ keys = {
+ { icon = " ", key = "f", desc = "Find File", action = ":lua Snacks.dashboard.pick('files')" },
+ { icon = " ", key = "n", desc = "New File", action = ":ene | startinsert" },
+ { icon = " ", key = "g", desc = "Find Text", action = ":lua Snacks.dashboard.pick('live_grep')" },
+ { icon = " ", key = "r", desc = "Recent Files", action = ":lua Snacks.dashboard.pick('oldfiles')" },
+ { icon = " ", key = "c", desc = "Config", action = ":lua Snacks.dashboard.pick('files', {cwd = vim.fn.stdpath('config')})" },
+ { icon = " ", key = "q", desc = "Quit", action = ":qa" },
+ },
+ -- Used by the `header` section
+ header = table.concat(Art.misc.hydra, "\n"),
+ },
+ -- item field formatters
+ formats = {
+ icon = function(item)
+ if item.file and item.icon == "file" or item.icon == "directory" then
+ return M.icon(item.file, item.icon)
+ end
+ return { item.icon, width = 2, hl = "icon" }
+ end,
+ footer = { "%s", align = "center" },
+ header = { "%s", align = "center" },
+ file = function(item, ctx)
+ local fname = vim.fn.fnamemodify(item.file, ":~")
+ fname = ctx.width and #fname > ctx.width and vim.fn.pathshorten(fname) or fname
+ if #fname > ctx.width then
+ local dir = vim.fn.fnamemodify(fname, ":h")
+ local file = vim.fn.fnamemodify(fname, ":t")
+ if dir and file then
+ file = file:sub(-(ctx.width - #dir - 2))
+ fname = dir .. "/…" .. file
+ end
+ end
+ local dir, file = fname:match("^(.*)/(.+)$")
+ return dir and { { dir .. "/", hl = "dir" }, { file, hl = "file" } } or { { fname, hl = "file" } }
+ end,
+ },
+ sections = {
+ { section = "header" },
+ { section = "keys", gap = 1, padding = 1 },
+ },
+ }
+}
diff --git a/pkgs/custom-neovim/config/lua/plugins/tabby.lua b/pkgs/custom-neovim/config/lua/plugins/tabby.lua
new file mode 100644
index 0000000..211c0c0
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/tabby.lua
@@ -0,0 +1,53 @@
+local general_theme = utils.generate_theme_from_lualine()
+local colors = {
+ current = { fg = general_theme.modes.insert, bg = general_theme.background, style = 'bold'},
+ not_current = { fg = general_theme.text.light, bg = general_theme.background };
+ fill = { bg = general_theme.background };
+};
+local theme = {
+ fill = colors.fill,
+ head = colors.fill,
+ current_tab = colors.current,
+ tab = colors.not_current,
+ win = colors.fill,
+ tail = colors.fill,
+}
+require('tabby').setup({
+ line = function(line)
+ return {
+ {
+ -- { '  ', hl = theme.head },
+ -- line.sep('', theme.head, theme.fill),
+ },
+ line.tabs().foreach(function(tab)
+ local hl = tab.is_current() and theme.current_tab or theme.tab
+ return {
+ line.sep('', hl, theme.fill),
+ -- tab.is_current() and '' or '󰆣',
+ tab.number(),
+ tab.name(),
+ line.sep('', hl, theme.fill),
+ hl = hl,
+ margin = ' ',
+ }
+ end),
+ line.spacer(),
+ line.wins_in_tab(line.api.get_current_tab()).foreach(function(win)
+ return {
+ line.sep('', theme.win, theme.fill),
+ -- win.is_current() and '' or '',
+ win.buf_name(),
+ line.sep('', theme.win, theme.fill),
+ hl = theme.win,
+ margin = ' ',
+ }
+ end),
+ {
+ line.sep('', theme.tail, theme.fill),
+ { '  ', hl = theme.tail },
+ },
+ hl = theme.fill,
+ }
+ end,
+ -- option = {}, -- setup modules' option,
+})
diff --git a/pkgs/custom-neovim/config/lua/plugins/telescope.lua b/pkgs/custom-neovim/config/lua/plugins/telescope.lua
new file mode 100644
index 0000000..be3366b
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/telescope.lua
@@ -0,0 +1 @@
+require("telescope").setup()
diff --git a/pkgs/custom-neovim/config/lua/plugins/which-key.lua b/pkgs/custom-neovim/config/lua/plugins/which-key.lua
new file mode 100644
index 0000000..612af14
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/which-key.lua
@@ -0,0 +1,3 @@
+require("which-key").setup {
+ preset = "modern",
+}
diff --git a/pkgs/custom-neovim/config/lua/utilities.lua b/pkgs/custom-neovim/config/lua/utilities.lua
new file mode 100644
index 0000000..3de4a54
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/utilities.lua
@@ -0,0 +1,25 @@
+utils = {}
+
+utils.mapkey = function(mode, key, desc, action)
+ vim.keymap.set(mode, key, action, {noremap = true, silent = true, desc = desc})
+end
+
+utils.generate_theme_from_lualine = function()
+ local auto_theme = require("lualine.themes.auto")
+ return {
+ modes = {
+ normal = auto_theme.normal.a.bg,
+ insert = auto_theme.insert.a.bg,
+ visual = auto_theme.visual.a.bg,
+ replace = auto_theme.replace.a.bg,
+ command = auto_theme.command.a.bg,
+ inactive = auto_theme.inactive.a.bg,
+ },
+ text = {
+ dark = auto_theme.normal.a.fg,
+ light = auto_theme.normal.c.fg,
+ },
+ background = auto_theme.normal.c.bg,
+ }
+end
+