Add themeing to yyy_theme (depends on zzz_earlyload, must run before other stuff)
diff --git a/modules/neovim/yyy_theme/default.nix b/modules/neovim/yyy_theme/default.nix
new file mode 100644
index 0000000..4160599
--- /dev/null
+++ b/modules/neovim/yyy_theme/default.nix
@@ -0,0 +1,16 @@
+{ pkgs, ... }: {
+ programs.neovim = {
+ plugins = with pkgs.vimPlugins; [
+ onehalf
+ nvim-hlslens
+ pkgs.nvim-scrollbar
+ nvim-web-devicons
+ ];
+ extraConfig =
+ builtins.readFile ./theme.vim
+ + ''
+ source ${./scrollbar.lua}
+ source ${./icons.lua}
+ '';
+ };
+}
diff --git a/modules/neovim/yyy_theme/icons.lua b/modules/neovim/yyy_theme/icons.lua
new file mode 100644
index 0000000..025ccdb
--- /dev/null
+++ b/modules/neovim/yyy_theme/icons.lua
@@ -0,0 +1,3 @@
+require'nvim-web-devicons'.setup {
+ default = true;
+}
diff --git a/modules/neovim/yyy_theme/scrollbar.lua b/modules/neovim/yyy_theme/scrollbar.lua
new file mode 100644
index 0000000..90d9701
--- /dev/null
+++ b/modules/neovim/yyy_theme/scrollbar.lua
@@ -0,0 +1,31 @@
+local kopts = {noremap = true, silent = true}
+
+vim.api.nvim_set_keymap('n', 'n',
+ [[<Cmd>execute('normal! ' . v:count1 . 'n')<CR><Cmd>lua require('hlslens').start()<CR>]],
+ kopts)
+vim.api.nvim_set_keymap('n', 'N',
+ [[<Cmd>execute('normal! ' . v:count1 . 'N')<CR><Cmd>lua require('hlslens').start()<CR>]],
+ kopts)
+vim.api.nvim_set_keymap('n', '*', [[*<Cmd>lua require('hlslens').start()<CR>]], kopts)
+vim.api.nvim_set_keymap('n', '#', [[#<Cmd>lua require('hlslens').start()<CR>]], kopts)
+vim.api.nvim_set_keymap('n', 'g*', [[g*<Cmd>lua require('hlslens').start()<CR>]], kopts)
+vim.api.nvim_set_keymap('n', 'g#', [[g#<Cmd>lua require('hlslens').start()<CR>]], kopts)
+
+vim.api.nvim_set_keymap('n', '<Leader>l', ':noh<CR>', kopts)
+
+require("scrollbar").setup({
+ handle = {
+ color = vim.g["lightgrey"].gui,
+ },
+ marks = {
+ Search = { color = vim.g["yellow"].gui },
+ Error = { color = vim.g["red"].gui },
+ Warn = { color = vim.g["red"].gui },
+ Info = { color = vim.g["blue"].gui },
+ Hint = { color = vim.g["cyan"].gui },
+ Misc = { color = vim.g["purple"].gui },
+ },
+ handlers = {
+ search = true,
+ },
+})
diff --git a/modules/neovim/yyy_theme/theme.vim b/modules/neovim/yyy_theme/theme.vim
new file mode 100644
index 0000000..98e442d
--- /dev/null
+++ b/modules/neovim/yyy_theme/theme.vim
@@ -0,0 +1,35 @@
+if exists('+termguicolors')
+ let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
+ let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
+ set termguicolors
+endif
+colorscheme onehalfdark
+
+call g:Highlight("PmenuSbar", g:statusline, g:statusline)
+call g:Highlight("PmenuThumb", g:white, g:white)
+call g:Highlight("PmenuSel", g:transparent, g:lightgrey)
+call g:Highlight("Pmenu", g:transparent, g:statusline)
+
+call g:Highlight("HlSearchLens", g:darkyellow, g:transparent)
+call g:Highlight("HlSearchLensNear", g:white, g:darkyellow)
+
+set signcolumn=yes
+set guicursor=v-r-cr:hor50,i:ver50
+set guifont=Liga\ Roboto\ Mono:h12
+set splitright
+set splitbelow
+set scrolloff=3
+set number
+
+set textwidth=80
+set colorcolumn=+1
+call g:Highlight("ColorColumn", g:transparent, g:statusline)
+
+set number
+
+augroup numbertoggle
+ autocmd!
+ autocmd BufEnter,FocusGained,InsertLeave,WinEnter * if &nu && mode() != "i" | set rnu | endif
+ autocmd BufLeave,FocusLost,InsertEnter,WinLeave * if &nu | set nornu | endif
+augroup END
+