summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatasha Moongrave <natasha@256phi.eu>2026-03-04 17:49:38 +0100
committerNatasha Moongrave <natasha@256phi.eu>2026-03-04 17:49:38 +0100
commit2850c819a08e6f8f8a627330dc2035946bc13c3a (patch)
tree2ed555f40d2dcb6f3211d67d7fae5fe90e78c02f
parent3d8f48467174748cd415fb0ad970b3b3ad0422b3 (diff)
fixed syntax error and formatting in nvim.tex
-rw-r--r--modules/home/i3wm/nord-blue/nvim.nix427
1 files changed, 244 insertions, 183 deletions
diff --git a/modules/home/i3wm/nord-blue/nvim.nix b/modules/home/i3wm/nord-blue/nvim.nix
index 380e584..f9d885d 100644
--- a/modules/home/i3wm/nord-blue/nvim.nix
+++ b/modules/home/i3wm/nord-blue/nvim.nix
@@ -1,184 +1,245 @@
--------------------------------------------------
--- LEADER
--------------------------------------------------
-vim.g.mapleader = " "
-
--------------------------------------------------
--- BASIC OPTIONS
--------------------------------------------------
-vim.opt.number = true
-vim.opt.relativenumber = true
-vim.opt.clipboard = "unnamedplus"
-vim.opt.showtabline = 2
-
-vim.o.timeout = true
-vim.o.timeoutlen = 300
-
--------------------------------------------------
--- THEME
--------------------------------------------------
-require("catppuccin").setup({
- flavour = "mocha",
- transparent_background = false,
-})
-vim.cmd.colorscheme("catppuccin")
-
--------------------------------------------------
--- TREESITTER (IDE-like syntax highlighting)
--------------------------------------------------
-require("nvim-treesitter.configs").setup({
- highlight = {
- enable = true,
- additional_vim_regex_highlighting = false,
- },
- indent = { enable = true },
-
- incremental_selection = {
- enable = true,
- keymaps = {
- init_selection = "<C-space>",
- node_incremental = "<C-space>",
- node_decremental = "<bs>",
- },
- },
-})
-
--------------------------------------------------
--- TELESCOPE
--------------------------------------------------
-local telescope = require("telescope")
-local builtin = require("telescope.builtin")
-
-telescope.setup({
- defaults = {
- layout_strategy = "horizontal",
- layout_config = { prompt_position = "top" },
- sorting_strategy = "ascending",
- winblend = 0,
- },
-})
-
-vim.keymap.set("n", "<leader><leader>", builtin.find_files, { desc = "Find files" })
-vim.keymap.set("n", "<leader>ff", builtin.find_files)
-vim.keymap.set("n", "<leader>fg", builtin.live_grep)
-vim.keymap.set("n", "<leader>fb", builtin.buffers)
-vim.keymap.set("n", "<leader>fh", builtin.help_tags)
-
--------------------------------------------------
--- WHICH-KEY
--------------------------------------------------
-require("which-key").setup({})
-
--------------------------------------------------
--- TABS
--------------------------------------------------
-vim.keymap.set("n", "tt", "<cmd>tabnew<CR>", { desc = "New tab" })
-vim.keymap.set("n", "tc", "<cmd>tabclose<CR>", { desc = "Close tab" })
-vim.keymap.set("n", "tn", "<cmd>tabnext<CR>", { desc = "Next tab" })
-vim.keymap.set("n", "tp", "<cmd>tabprevious<CR>", { desc = "Previous tab" })
-vim.keymap.set("n", "t0", "<cmd>tabfirst<CR>", { desc = "First tab" })
-vim.keymap.set("n", "t$", "<cmd>tablast<CR>", { desc = "Last tab" })
-
--------------------------------------------------
--- NVIM TREE
--------------------------------------------------
-require("nvim-tree").setup({
- view = {
- width = 30,
- side = "left",
- },
-
- renderer = {
- group_empty = true,
- },
-
- filters = {
- dotfiles = false,
- git_ignored = true,
- },
-
- git = {
- enable = true,
- ignore = true,
- },
-
- on_attach = function(bufnr)
- local api = require("nvim-tree.api")
-
- local function opts(desc)
- return {
- desc = "nvim-tree: " .. desc,
- buffer = bufnr,
- noremap = true,
- silent = true,
- nowait = true,
+{ pkgs, config, lib, ... }:
+
+{
+ #################################################
+ # Packages
+ #################################################
+ home.packages = with pkgs; [
+ zathura
+ ripgrep
+ fd
+ lazygit
+ ];
+
+ #################################################
+ # Neovim
+ #################################################
+ programs.neovim = {
+ enable = true;
+ defaultEditor = true;
+ viAlias = true;
+ vimAlias = true;
+
+ #################################################
+ # Plugins
+ #################################################
+ plugins = with pkgs.vimPlugins; [
+
+ # UI / Theme
+ catppuccin-nvim
+ nvim-web-devicons
+ which-key-nvim
+
+ # Syntax (IDE-style highlighting)
+ (nvim-treesitter.withPlugins (p: [
+ p.lua
+ p.nix
+ p.rust
+ p.python
+ p.bash
+ p.latex
+ p.c
+ ]))
+
+ # File Navigation
+ telescope-nvim
+ plenary-nvim
+ nvim-tree-lua
+
+ # Terminal / Git
+ toggleterm-nvim
+
+ # Writing / LaTeX
+ vimtex
+ orgmode
+
+ # Start screen
+ {
+ plugin = vim-startify;
+ config = "let g:startify_change_to_vcs_root = 0";
}
- end
-
- api.config.mappings.default_on_attach(bufnr)
-
- -- open file in new tab
- vim.keymap.set("n", "t", function()
- local node = api.tree.get_node_under_cursor()
- if node and node.type == "file" then
- vim.cmd("tabnew " .. node.absolute_path)
- end
- end, opts("Open in new tab"))
- end,
-})
-
-vim.keymap.set("n", "<leader>e", "<cmd>NvimTreeToggle<CR>")
-
--------------------------------------------------
--- TOGGLETERM + LAZYGIT
--------------------------------------------------
-require("toggleterm").setup({
- direction = "float",
- float_opts = { border = "rounded" },
-})
-
-local Terminal = require("toggleterm.terminal").Terminal
-
-local lazygit = Terminal:new({
- cmd = "lazygit",
- hidden = true,
- direction = "float",
- float_opts = { border = "rounded" },
-})
-
-vim.keymap.set("n", "<leader>gg", function()
- lazygit:toggle()
-end, { desc = "Lazygit" })
-
--------------------------------------------------
--- ORGMODE
--------------------------------------------------
-require("orgmode").setup({
- org_agenda_files = { "~/Documents/2. Writing/0. SOČ/org/*.org" },
- org_default_notes_file = "~/Documents/2. Writing/0. SOČ/org/index.org",
-})
-
--------------------------------------------------
--- VIMTEX
--------------------------------------------------
-vim.g.vimtex_view_method = "zathura"
-vim.g.vimtex_compiler_latexmk = {
- executable = "latexmk",
- options = {
- "-pdf",
- "-interaction=nonstopmode",
- "-synctex=1",
- "-file-line-error",
- },
-}
-vim.g.vimtex_syntax_enabled = 0
-
-vim.api.nvim_create_autocmd("FileType", {
- pattern = "tex",
- callback = function()
- vim.opt_local.wrap = true
- vim.opt_local.linebreak = true
- vim.opt_local.breakindent = true
- vim.opt_local.textwidth = 0
- end,
-}) \ No newline at end of file
+ ];
+
+ #################################################
+ # Lua Configuration
+ #################################################
+ extraLuaConfig = ''
+ -------------------------------------------------
+ -- LEADER
+ -------------------------------------------------
+ vim.g.mapleader = " "
+
+ -------------------------------------------------
+ -- BASIC OPTIONS
+ -------------------------------------------------
+ vim.opt.number = true
+ vim.opt.relativenumber = true
+ vim.opt.clipboard = "unnamedplus"
+ vim.opt.showtabline = 2
+
+ vim.o.timeout = true
+ vim.o.timeoutlen = 300
+
+ -------------------------------------------------
+ -- THEME
+ -------------------------------------------------
+ require("catppuccin").setup({
+ flavour = "mocha",
+ transparent_background = false,
+ })
+ vim.cmd.colorscheme("catppuccin")
+
+ -------------------------------------------------
+ -- TREESITTER (IDE-style syntax highlighting)
+ -------------------------------------------------
+ require("nvim-treesitter.configs").setup({
+ highlight = {
+ enable = true,
+ additional_vim_regex_highlighting = false,
+ },
+ indent = { enable = true },
+ incremental_selection = {
+ enable = true,
+ keymaps = {
+ init_selection = "<C-space>",
+ node_incremental = "<C-space>",
+ node_decremental = "<bs>",
+ },
+ },
+ })
+
+ -------------------------------------------------
+ -- TELESCOPE
+ -------------------------------------------------
+ local builtin = require("telescope.builtin")
+
+ require("telescope").setup({
+ defaults = {
+ layout_strategy = "horizontal",
+ layout_config = { prompt_position = "top" },
+ sorting_strategy = "ascending",
+ },
+ })
+
+ vim.keymap.set("n", "<leader><leader>", builtin.find_files)
+ vim.keymap.set("n", "<leader>ff", builtin.find_files)
+ vim.keymap.set("n", "<leader>fg", builtin.live_grep)
+ vim.keymap.set("n", "<leader>fb", builtin.buffers)
+ vim.keymap.set("n", "<leader>fh", builtin.help_tags)
+
+ -------------------------------------------------
+ -- WHICH-KEY
+ -------------------------------------------------
+ require("which-key").setup({})
+
+ -------------------------------------------------
+ -- TABS
+ -------------------------------------------------
+ vim.keymap.set("n", "tt", "<cmd>tabnew<CR>")
+ vim.keymap.set("n", "tc", "<cmd>tabclose<CR>")
+ vim.keymap.set("n", "tn", "<cmd>tabnext<CR>")
+ vim.keymap.set("n", "tp", "<cmd>tabprevious<CR>")
+ vim.keymap.set("n", "t0", "<cmd>tabfirst<CR>")
+ vim.keymap.set("n", "t$", "<cmd>tablast<CR>")
+
+ -------------------------------------------------
+ -- NVIM-TREE
+ -------------------------------------------------
+ require("nvim-tree").setup({
+ view = { width = 30, side = "left" },
+
+ renderer = { group_empty = true },
+
+ filters = {
+ dotfiles = false,
+ git_ignored = true,
+ },
+
+ git = {
+ enable = true,
+ ignore = true,
+ },
+
+ on_attach = function(bufnr)
+ local api = require("nvim-tree.api")
+
+ local function opts(desc)
+ return {
+ desc = "nvim-tree: " .. desc,
+ buffer = bufnr,
+ noremap = true,
+ silent = true,
+ nowait = true,
+ }
+ end
+
+ api.config.mappings.default_on_attach(bufnr)
+
+ -- open file in new tab
+ vim.keymap.set("n", "t", function()
+ local node = api.tree.get_node_under_cursor()
+ if node and node.type == "file" then
+ vim.cmd("tabnew " .. node.absolute_path)
+ end
+ end, opts("Open in new tab"))
+ end,
+ })
+
+ vim.keymap.set("n", "<leader>e", "<cmd>NvimTreeToggle<CR>")
+
+ -------------------------------------------------
+ -- TOGGLETERM + LAZYGIT
+ -------------------------------------------------
+ require("toggleterm").setup({
+ direction = "float",
+ float_opts = { border = "rounded" },
+ })
+
+ local Terminal = require("toggleterm.terminal").Terminal
+
+ local lazygit = Terminal:new({
+ cmd = "lazygit",
+ hidden = true,
+ direction = "float",
+ float_opts = { border = "rounded" },
+ })
+
+ vim.keymap.set("n", "<leader>gg", function()
+ lazygit:toggle()
+ end)
+
+ -------------------------------------------------
+ -- ORGMODE
+ -------------------------------------------------
+ require("orgmode").setup({
+ org_agenda_files = { "~/Documents/2. Writing/0. SOČ/org/*.org" },
+ org_default_notes_file = "~/Documents/2. Writing/0. SOČ/org/index.org",
+ })
+
+ -------------------------------------------------
+ -- VIMTEX
+ -------------------------------------------------
+ vim.g.vimtex_view_method = "zathura"
+ vim.g.vimtex_compiler_latexmk = {
+ executable = "latexmk",
+ options = {
+ "-pdf",
+ "-interaction=nonstopmode",
+ "-synctex=1",
+ "-file-line-error",
+ },
+ }
+ vim.g.vimtex_syntax_enabled = 0
+
+ vim.api.nvim_create_autocmd("FileType", {
+ pattern = "tex",
+ callback = function()
+ vim.opt_local.wrap = true
+ vim.opt_local.linebreak = true
+ vim.opt_local.breakindent = true
+ vim.opt_local.textwidth = 0
+ end,
+ })
+ '';
+ };
+} \ No newline at end of file