{ config, lib, pkgs, ... }: { imports = [ ./modules/i3wm/original/default.nix ]; home = { username = "mun"; homeDirectory = "/home/mun"; stateVersion = "25.11"; packages = with pkgs; [ pay-respects zathura ripgrep fd git lazygit tree-sitter gcr ]; sessionVariables = { EDITOR = "nvim"; VISUAL = "nvim"; }; }; xdg = { enable = true; mimeApps = { enable = true; defaultApplications = { "text/plain" = [ "nvim.desktop" ]; "text/markdown" = [ "nvim.desktop" ]; "text/x-markdown" = [ "nvim.desktop" ]; }; }; }; programs = { ssh = { enable = true; forwardAgent = true; addKeysToAgent = "yes"; }; zsh = { enable = true; syntaxHighlighting.enable = true; shellAliases = { ll = "ls -l"; rebuild = "sudo nixos-rebuild switch"; edit = "sudo vi /etc/nixos/configuration.nix"; }; history.size = 10000; oh-my-zsh = { enable = true; plugins = [ "git" ]; theme = "simple"; }; initContent = '' export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket fastfetch ''; }; rofi = { enable = true; location = "center"; cycle = true; theme = "purple"; terminal = "${pkgs.kitty}/bin/kitty"; modes = [ "drun" "ssh" "emoji" "calc" ]; plugins = with pkgs; [ rofi-emoji rofi-calc ]; }; nnn = { enable = true; package = pkgs.nnn.override { withNerdIcons = true; }; }; neovim = { enable = true; defaultEditor = true; viAlias = true; vimAlias = true; withNodeJs = true; # +ANT FIX plugins = []; # disable HM plugin processing extraLuaConfig = '' -- LazyVim bootstrap local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath, }) end vim.opt.rtp:prepend(lazypath) require("lazy").setup({ spec = { { "LazyVim/LazyVim", import = "lazyvim.plugins" }, { import = "lazyvim.plugins.extras.lang.tex" }, { import = "lazyvim.plugins.extras.lang.markdown" }, { import = "lazyvim.plugins.extras.ui.mini-animate" }, { import = "lazyvim.plugins.extras.lang.typescript" }, { import = "lazyvim.plugins.extras.lang.python" }, { import = "lazyvim.plugins.extras.lang.rust" }, { import = "lazyvim.plugins.extras.lang.nix" }, { "lervag/vimtex", lazy = false, init = function() vim.g.vimtex_view_method = "zathura" end }, { "MeanderingProgrammer/render-markdown.nvim", opts = { enabled = true, file_types = { "markdown", "rmd" }, colorscheme = "default", }, dependencies = { "nvim-treesitter/nvim-treesitter", "nvim-tree/nvim-web-devicons", }, }, { "mracos/mermaid.vim", ft = { "mermaid" } }, }, defaults = { lazy = false, version = false }, checker = { enabled = true }, performance = { rtp = { disabled_plugins = { "gzip", "tarPlugin", "tohtml", "tutor", "zipPlugin", }, }, }, }) -- LaTeX wrapping 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.breakindentopt = "shift:2" vim.opt_local.textwidth = 0 end, }) -- Disable diagnostics in markdown vim.api.nvim_create_autocmd("FileType", { pattern = "markdown", callback = function() vim.diagnostic.disable(0) end, }) -- Nix LSP local lspconfig = require("lspconfig") lspconfig.nil_ls.setup({ cmd = { "nil" } }) vim.opt.clipboard = "unnamedplus" ''; }; }; services = { gnome-keyring.enable = true; }; }