From da81f70d18bd92e600e87fd5c39b1fd849021cc3 Mon Sep 17 00:00:00 2001 From: Ryan Schanzenbacher Date: Tue, 16 Jun 2026 21:17:26 -0400 Subject: declare screen settings and initial nvim setup --- users/ryan/modules/default.nix | 15 ++++++ users/ryan/modules/nvim/default.nix | 53 ++++++++++++++++++++++ .../extraConfigs/after/ftplugin/mail/custom.vim | 2 + .../after/ftplugin/markdown/custom.vim | 2 + users/ryan/modules/nvim/init.lua | 26 +++++++++++ users/ryan/modules/nvim/init.vim | 27 +++++++++++ 6 files changed, 125 insertions(+) create mode 100644 users/ryan/modules/default.nix create mode 100644 users/ryan/modules/nvim/default.nix create mode 100644 users/ryan/modules/nvim/extraConfigs/after/ftplugin/mail/custom.vim create mode 100644 users/ryan/modules/nvim/extraConfigs/after/ftplugin/markdown/custom.vim create mode 100644 users/ryan/modules/nvim/init.lua create mode 100644 users/ryan/modules/nvim/init.vim (limited to 'users/ryan/modules') diff --git a/users/ryan/modules/default.nix b/users/ryan/modules/default.nix new file mode 100644 index 0000000..55af9ec --- /dev/null +++ b/users/ryan/modules/default.nix @@ -0,0 +1,15 @@ +{ lib, ... }: +let + entries = builtins.readDir ./.; + + modulesDirs = lib.filterAttrs + (name: type: + type == "directory" && + builtins.pathExists (./. + "/${name}/default.nix")) + entries; +in +{ + imports = map + (name: ./${name}) + (builtins.attrNames modulesDirs); +} diff --git a/users/ryan/modules/nvim/default.nix b/users/ryan/modules/nvim/default.nix new file mode 100644 index 0000000..83c9e1f --- /dev/null +++ b/users/ryan/modules/nvim/default.nix @@ -0,0 +1,53 @@ +{config, lib, pkgs, ...}: + +with lib; + +let + cfg = config.ryan.neovim; +in +{ + options.ryan.neovim.enable = mkEnableOption "Neovim"; + + config = mkIf cfg.enable { + programs.neovim = { + enable = true; + + extraConfig = builtins.readFile ./init.vim; + + initLua = builtins.readFile ./init.lua; + + plugins = with pkgs.vimPlugins; [ + vim-pandoc + vim-pandoc-syntax + vim-table-mode + + tokyonight-nvim + lualine-nvim + nvim-web-devicons + + coq_nvim + #coq-artifacts + + (nvim-treesitter.withPlugins (p: [ + p.zig + p.go + p.python + p.vim + ])) + + #transparent-nvim + marks-nvim + leap-nvim + ]; + + extraPackages = with pkgs; [ + pyright + gopls + zls + ]; + + }; + + xdg.configFile."nvim/after".source = ./extraConfigs/after; + }; +} diff --git a/users/ryan/modules/nvim/extraConfigs/after/ftplugin/mail/custom.vim b/users/ryan/modules/nvim/extraConfigs/after/ftplugin/mail/custom.vim new file mode 100644 index 0000000..75078e5 --- /dev/null +++ b/users/ryan/modules/nvim/extraConfigs/after/ftplugin/mail/custom.vim @@ -0,0 +1,2 @@ +setlocal tw=0 wm=0 +setlocal wrap linebreak diff --git a/users/ryan/modules/nvim/extraConfigs/after/ftplugin/markdown/custom.vim b/users/ryan/modules/nvim/extraConfigs/after/ftplugin/markdown/custom.vim new file mode 100644 index 0000000..96aac6e --- /dev/null +++ b/users/ryan/modules/nvim/extraConfigs/after/ftplugin/markdown/custom.vim @@ -0,0 +1,2 @@ +"Used to overwrite table behavior in markdown files +let b:table_mode_corner='+' diff --git a/users/ryan/modules/nvim/init.lua b/users/ryan/modules/nvim/init.lua new file mode 100644 index 0000000..2686f15 --- /dev/null +++ b/users/ryan/modules/nvim/init.lua @@ -0,0 +1,26 @@ +require('lualine').setup() +local coq = require 'coq' +--require("transparent") +--require("mason").setup() +--require("mason-lspconfig").setup { +-- ensure_installed = { "pyright" }, +-- } + +-- nvim marks +require'marks'.setup { + default_mappings = true +} + +-- Leap keybinds +config = function(_, opts) + vim.keymap.set({'n', 'x', 'o'}, 's', '(leap-forward)') + vim.keymap.set({'n', 'x', 'o'}, 'S', '(leap-backward)') + vim.keymap.set({'n', 'x', 'o'}, 'gs', '(leap-from-window)') +end + +--require'nvim-treesitter'.install { 'zig','go','python','vim' } + +vim.opt.conceallevel = 2 +vim.opt.concealcursor = nc + +--local lspconfig = require('lspconfig') diff --git a/users/ryan/modules/nvim/init.vim b/users/ryan/modules/nvim/init.vim new file mode 100644 index 0000000..8a4d54e --- /dev/null +++ b/users/ryan/modules/nvim/init.vim @@ -0,0 +1,27 @@ +set nu rnu +imap kj +set ts=4 +set sw=4 +set sts=4 +set et +set mouse= +set cursorline +set cc=79 + +"Load Theme +colorscheme tokyonight-night + +"vim-pandoc config +let g:pandoc#modules#disabled = ['spell', 'folding'] + +"vim-table-mode config +let g:table_mode_corner_corner='+' +let g:table_mode_header_fillchar='=' + +"pandoc render and open preview +command Pv AsyncRun zathura '%:r.pdf' +command Rd silent exec "!pandoc -t pdf -o %:r.pdf --from=markdown+escaped_line_breaks -V geometry:margin=1in %" +command Rr exec "!pandoc -t pdf -o %:r.pdf --from=markdown+escaped_line_breaks -V geometry:margin=1in %" + +"Auto-rerender markdown files to pdf +autocmd BufWritePost *.mkd :Rd -- cgit v1.3