| author | |
| committer | |
| log | 10453abfb1d3dd180ecef7c8951f1a88d391c4eb |
| tree | 9b2caa7e161c38750c04703669c705c08c86ac1a |
| parent | 69e9b167cbf154160adcdd28dcc7f6c4f901ee97 |
| signature | Commit is signed but in an unrecognized format. |
9 files changed, 270 insertions(+), 174 deletions(-)
flake.nix+114-104| ... | @@ -39,71 +39,79 @@ | ... | @@ -39,71 +39,79 @@ |
| 39 | nix-index-database.url = "github:nix-community/nix-index-database"; | 39 | nix-index-database.url = "github:nix-community/nix-index-database"; |
| 40 | nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; | 40 | nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; |
| 41 | }; | 41 | }; |
| 42 | outputs = { | 42 | outputs = |
| 43 | self, | 43 | { |
| 44 | nixpkgs, | 44 | self, |
| 45 | nixos-cosmic, | 45 | nixpkgs, |
| 46 | darwin, | 46 | nixos-cosmic, |
| 47 | ... | 47 | darwin, |
| 48 | } @ inputs: let | 48 | ... |
| 49 | lib = nixpkgs.lib; | 49 | }@inputs: |
| 50 | 50 | let | |
| 51 | # TODO: apply these overlays sooner and remove uses of legacyPackages elsewhere. | 51 | lib = nixpkgs.lib; |
| 52 | overlays = [ | 52 | |
| 53 | inputs.zig.overlays.default | 53 | # TODO: apply these overlays sooner and remove uses of legacyPackages elsewhere. |
| 54 | inputs.rust-overlay.overlays.default | 54 | overlays = [ |
| 55 | inputs.nh.overlays.default | 55 | inputs.zig.overlays.default |
| 56 | 56 | inputs.rust-overlay.overlays.default | |
| 57 | # https://github.com/LnL7/nix-darwin/issues/1041 | 57 | inputs.nh.overlays.default |
| 58 | (_: prev: { | 58 | |
| 59 | karabiner-elements = prev.karabiner-elements.overrideAttrs (old: { | 59 | # https://github.com/LnL7/nix-darwin/issues/1041 |
| 60 | version = "14.13.0"; | 60 | (_: prev: { |
| 61 | 61 | karabiner-elements = prev.karabiner-elements.overrideAttrs (old: { | |
| 62 | src = prev.fetchurl { | 62 | version = "14.13.0"; |
| 63 | inherit (old.src) url; | 63 | |
| 64 | hash = "sha256-gmJwoht/Tfm5qMecmq1N6PSAIfWOqsvuHU8VDJY8bLw="; | 64 | src = prev.fetchurl { |
| 65 | }; | 65 | inherit (old.src) url; |
| 66 | }); | 66 | hash = "sha256-gmJwoht/Tfm5qMecmq1N6PSAIfWOqsvuHU8VDJY8bLw="; |
| 67 | }) | 67 | }; |
| 68 | ]; | 68 | }); |
| 69 | |||
| 70 | # Users of this flake currently use x86_64 Linux and Apple Silicon | ||
| 71 | systems = [ | ||
| 72 | "x86_64-linux" | ||
| 73 | "aarch64-darwin" | ||
| 74 | ]; | ||
| 75 | forAllSystems = f: | ||
| 76 | builtins.listToAttrs ( | ||
| 77 | builtins.map (system: { | ||
| 78 | name = system; | ||
| 79 | value = f ( | ||
| 80 | inputs | ||
| 81 | // { | ||
| 82 | inherit system; | ||
| 83 | pkgs = nixpkgs.legacyPackages.${system}; | ||
| 84 | } | ||
| 85 | ); | ||
| 86 | }) | 69 | }) |
| 87 | systems | 70 | ]; |
| 88 | ); | ||
| 89 | 71 | ||
| 90 | mkSystem = import ./lib/mkSystem.nix { | 72 | # Users of this flake currently use x86_64 Linux and Apple Silicon |
| 91 | inherit | 73 | systems = [ |
| 92 | overlays | 74 | "x86_64-linux" |
| 93 | nixpkgs | 75 | "aarch64-darwin" |
| 94 | inputs | 76 | ]; |
| 95 | mkNeovim | 77 | forAllSystems = |
| 96 | ; | 78 | f: |
| 97 | }; | 79 | builtins.listToAttrs ( |
| 98 | mkNeovim = import ./lib/mkNeovim.nix { | 80 | builtins.map (system: { |
| 99 | inherit self overlays nixpkgs inputs; | 81 | name = system; |
| 100 | }; | 82 | value = f ( |
| 101 | in rec { | 83 | inputs |
| 102 | inherit self; | 84 | // { |
| 103 | # "nix fmt" | 85 | inherit system; |
| 104 | formatter = forAllSystems (inputs: inputs.pkgs.nixfmt-tree); | 86 | pkgs = nixpkgs.legacyPackages.${system}; |
| 105 | packages = forAllSystems ( | 87 | } |
| 106 | {system, ...}: | 88 | ); |
| 89 | }) systems | ||
| 90 | ); | ||
| 91 | |||
| 92 | mkSystem = import ./lib/mkSystem.nix { | ||
| 93 | inherit | ||
| 94 | overlays | ||
| 95 | nixpkgs | ||
| 96 | inputs | ||
| 97 | mkNeovim | ||
| 98 | ; | ||
| 99 | }; | ||
| 100 | mkNeovim = import ./lib/mkNeovim.nix { | ||
| 101 | inherit | ||
| 102 | self | ||
| 103 | overlays | ||
| 104 | nixpkgs | ||
| 105 | inputs | ||
| 106 | ; | ||
| 107 | }; | ||
| 108 | in | ||
| 109 | rec { | ||
| 110 | inherit self; | ||
| 111 | # "nix fmt" | ||
| 112 | formatter = forAllSystems (inputs: inputs.pkgs.nixfmt-tree); | ||
| 113 | packages = forAllSystems ( | ||
| 114 | { system, ... }: | ||
| 107 | { | 115 | { |
| 108 | nvim-chloe = mkNeovim "chloe" system; | 116 | nvim-chloe = mkNeovim "chloe" system; |
| 109 | nvim-natalie = mkNeovim "natalie" system; | 117 | nvim-natalie = mkNeovim "natalie" system; |
| ... | @@ -112,47 +120,49 @@ | ... | @@ -112,47 +120,49 @@ |
| 112 | # "nix run .#darwin-rebuild" | 120 | # "nix run .#darwin-rebuild" |
| 113 | darwin-rebuild = darwin.packages.aarch64-darwin.darwin-rebuild; | 121 | darwin-rebuild = darwin.packages.aarch64-darwin.darwin-rebuild; |
| 114 | } | 122 | } |
| 115 | ); | 123 | ); |
| 116 | |||
| 117 | # natalie's desktop computer | ||
| 118 | nixosConfigurations.nixos = mkSystem "nixos" { | ||
| 119 | user = "natalie"; | ||
| 120 | host = "desktop"; | ||
| 121 | system = "x86_64-linux"; | ||
| 122 | extraModules = [ | ||
| 123 | nixos-cosmic.nixosModules.default | ||
| 124 | ]; | ||
| 125 | }; | ||
| 126 | # natalie's laptop | ||
| 127 | darwinConfigurations."Natalies-MacBook-Air" = mkSystem "Natalies-MacBook-Air" { | ||
| 128 | user = "natalie"; | ||
| 129 | host = "laptop"; | ||
| 130 | system = "aarch64-darwin"; | ||
| 131 | }; | ||
| 132 | 124 | ||
| 133 | # chloe's mac studio "sandwich" | 125 | # natalie's desktop computer |
| 134 | darwinConfigurations.sandwich = mkSystem "sandwich" { | 126 | nixosConfigurations.nixos = mkSystem "nixos" { |
| 135 | user = "chloe"; | 127 | user = "natalie"; |
| 136 | host = "sandwich"; | 128 | host = "desktop"; |
| 137 | system = "aarch64-darwin"; | 129 | system = "x86_64-linux"; |
| 138 | }; | 130 | extraModules = [ |
| 139 | # chloe's macbook air "paperback" | 131 | nixos-cosmic.nixosModules.default |
| 140 | darwinConfigurations.paperback = mkSystem "paperback" { | 132 | ]; |
| 141 | user = "chloe"; | 133 | }; |
| 142 | host = "paperback"; | 134 | # natalie's laptop |
| 143 | system = "aarch64-darwin"; | 135 | darwinConfigurations."Natalies-MacBook-Air" = mkSystem "Natalies-MacBook-Air" { |
| 136 | user = "natalie"; | ||
| 137 | host = "laptop"; | ||
| 138 | system = "aarch64-darwin"; | ||
| 139 | }; | ||
| 140 | |||
| 141 | # chloe's mac studio "sandwich" | ||
| 142 | darwinConfigurations.sandwich = mkSystem "sandwich" { | ||
| 143 | user = "chloe"; | ||
| 144 | host = "sandwich"; | ||
| 145 | system = "aarch64-darwin"; | ||
| 146 | }; | ||
| 147 | # chloe's macbook air "paperback" | ||
| 148 | darwinConfigurations.paperback = mkSystem "paperback" { | ||
| 149 | user = "chloe"; | ||
| 150 | host = "paperback"; | ||
| 151 | system = "aarch64-darwin"; | ||
| 152 | }; | ||
| 153 | |||
| 154 | # generate checks for "nix flake check --all-systems --no-build" | ||
| 155 | checks.aarch64-darwin = builtins.listToAttrs ( | ||
| 156 | builtins.map ( | ||
| 157 | name: | ||
| 158 | let | ||
| 159 | d = darwinConfigurations.${name}.system; | ||
| 160 | in | ||
| 161 | { | ||
| 162 | name = "darwinConfiguration-" + d.name; | ||
| 163 | value = d; | ||
| 164 | } | ||
| 165 | ) (builtins.attrNames darwinConfigurations) | ||
| 166 | ); | ||
| 144 | }; | 167 | }; |
| 145 | |||
| 146 | # generate checks for "nix flake check --all-systems --no-build" | ||
| 147 | checks.aarch64-darwin = builtins.listToAttrs ( | ||
| 148 | builtins.map ( | ||
| 149 | name: let | ||
| 150 | d = darwinConfigurations.${name}.system; | ||
| 151 | in { | ||
| 152 | name = "darwinConfiguration-" + d.name; | ||
| 153 | value = d; | ||
| 154 | } | ||
| 155 | ) (builtins.attrNames darwinConfigurations) | ||
| 156 | ); | ||
| 157 | }; | ||
| 158 | } | 168 | } |
modules/neovim/default.nix+1-2| ... | @@ -74,7 +74,7 @@ | ... | @@ -74,7 +74,7 @@ |
| 74 | }; | 74 | }; |
| 75 | filetree = { | 75 | filetree = { |
| 76 | neo-tree = { | 76 | neo-tree = { |
| 77 | enable = true; | 77 | enable = false; |
| 78 | }; | 78 | }; |
| 79 | }; | 79 | }; |
| 80 | tabline = { | 80 | tabline = { |
| ... | @@ -133,7 +133,6 @@ | ... | @@ -133,7 +133,6 @@ |
| 133 | indent = 2; | 133 | indent = 2; |
| 134 | padding = 1; | 134 | padding = 1; |
| 135 | } | 135 | } |
| 136 | {section = "startup";} | ||
| 137 | ]; | 136 | ]; |
| 138 | }; | 137 | }; |
| 139 | image.enable = true; | 138 | image.enable = true; |
modules/shared/nix.nix+4-3| ... | @@ -1,14 +1,14 @@ | ... | @@ -1,14 +1,14 @@ |
| 1 | { inputs, ... }: | 1 | {inputs, ...}: { |
| 2 | { | ||
| 3 | nixpkgs.config = { | 2 | nixpkgs.config = { |
| 4 | allowUnfree = true; | 3 | allowUnfree = true; |
| 5 | }; | 4 | }; |
| 6 | 5 | ||
| 7 | nix = { | 6 | nix = { |
| 8 | nixPath = [ "nixpkgs = ${inputs.nixpkgs}" ]; | 7 | # nixPath = ["nixpkgs = ${inputs.nixpkgs}"]; |
| 9 | extraOptions = '' | 8 | extraOptions = '' |
| 10 | warn-dirty = false | 9 | warn-dirty = false |
| 11 | ''; | 10 | ''; |
| 11 | channel.enable = false; | ||
| 12 | 12 | ||
| 13 | optimise = { | 13 | optimise = { |
| 14 | automatic = true; | 14 | automatic = true; |
| ... | @@ -19,6 +19,7 @@ | ... | @@ -19,6 +19,7 @@ |
| 19 | "nix-command" | 19 | "nix-command" |
| 20 | "flakes" | 20 | "flakes" |
| 21 | ]; | 21 | ]; |
| 22 | extra-nix-path = "nixpkgs=flake:nixpkgs"; | ||
| 22 | substituters = [ | 23 | substituters = [ |
| 23 | "https://cache.nixos.org/?priority=10" | 24 | "https://cache.nixos.org/?priority=10" |
| 24 | 25 |
users/natalie/packages.nix+3-5| ... | @@ -1,7 +1,6 @@ | ... | @@ -1,7 +1,6 @@ |
| 1 | # Packages installed with home-manager | 1 | # Packages installed with home-manager |
| 2 | { pkgs, ... }: | 2 | {pkgs, ...}: |
| 3 | with pkgs; | 3 | with pkgs; [ |
| 4 | [ | ||
| 5 | #general development | 4 | #general development |
| 6 | just | 5 | just |
| 7 | pkg-config | 6 | pkg-config |
| ... | @@ -36,7 +35,7 @@ with pkgs; | ... | @@ -36,7 +35,7 @@ with pkgs; |
| 36 | nh | 35 | nh |
| 37 | 36 | ||
| 38 | #terminal stuff | 37 | #terminal stuff |
| 39 | (btop.override { cudaSupport = true; }) | 38 | (btop.override {cudaSupport = true;}) |
| 40 | tmux | 39 | tmux |
| 41 | zellij | 40 | zellij |
| 42 | lazygit | 41 | lazygit |
| ... | @@ -83,7 +82,6 @@ with pkgs; | ... | @@ -83,7 +82,6 @@ with pkgs; |
| 83 | lua51Packages.lua | 82 | lua51Packages.lua |
| 84 | lua51Packages.luarocks-nix | 83 | lua51Packages.luarocks-nix |
| 85 | codespell | 84 | codespell |
| 86 | typst | ||
| 87 | tree-sitter | 85 | tree-sitter |
| 88 | 86 | ||
| 89 | #python | 87 | #python |
users/natalie/vim.nix+1| ... | @@ -7,5 +7,6 @@ | ... | @@ -7,5 +7,6 @@ |
| 7 | name = "catppuccin"; | 7 | name = "catppuccin"; |
| 8 | style = "mocha"; | 8 | style = "mocha"; |
| 9 | }; | 9 | }; |
| 10 | hideSearchHighlight = true; | ||
| 10 | }; | 11 | }; |
| 11 | } | 12 | } |
users/natalie/vim/default.nix+2| ... | @@ -2,5 +2,7 @@ | ... | @@ -2,5 +2,7 @@ |
| 2 | imports = [ | 2 | imports = [ |
| 3 | ./keybinds.nix | 3 | ./keybinds.nix |
| 4 | ./languages.nix | 4 | ./languages.nix |
| 5 | ./latex.nix | ||
| 5 | ]; | 6 | ]; |
| 7 | |||
| 6 | } | 8 | } |
users/natalie/vim/keybinds.nix+7-16| ... | @@ -10,25 +10,16 @@ | ... | @@ -10,25 +10,16 @@ |
| 10 | in { | 10 | in { |
| 11 | vim = { | 11 | vim = { |
| 12 | keymaps = [ | 12 | keymaps = [ |
| 13 | (mkKeymap "n" "<leader>e" "<cmd>lua require('snacks').explorer()<cr>" "File Explorer") | 13 | (mkKeymap "n" "<leader>e" ":lua require('snacks').explorer()<CR>" "File Explorer") |
| 14 | 14 | ||
| 15 | # Snacks Picker Replaces Telescope!? | 15 | # Snacks Picker Replaces Telescope!? |
| 16 | (mkKeymap "n" "<leader><space>" "<cmd>lua require('snacks').picker.smart()" "Smart Find Files") | 16 | (mkKeymap "n" "<leader><space>" ":lua require('snacks').picker.smart()<CR>" "Smart Find Files") |
| 17 | (mkKeymap "n" "<leader>ff" "<cmd>lua require('snacks').picker.files()<cr>" "Find File") | 17 | (mkKeymap "n" "<leader>ff" ":lua require('snacks').picker.files()<CR>" "Find File") |
| 18 | # (mkKeymap "n" "<leader>fr" "<cmd>lua require('snacks').picker.recent()<cr>" "Open Recent File") | 18 | (mkKeymap "n" "<leader>fg" ":lua require('snacks').picker.grep()<CR>" "Grep Files") |
| 19 | (mkKeymap "n" "<leader>fg" "<cmd>lua require('snacks').picker.grep()<cr>" "Grep Files") | ||
| 20 | # (mkKeymap "n" "<leader>fb" "<cmd>lua require('snacks').picker.buffers()<cr>" "Grep Buffers") | ||
| 21 | # (mkKeymap "n" "<leader>fh" "<cmd>lua require('snacks').picker.help()<cr>" "Grep Help Tags") | ||
| 22 | # (mkKeymap "n" "<leader>fg" "<cmd>lua require('snacks').picker.git_files()<cr>" "Grep Git Files") | ||
| 23 | # (mkKeymap "n" "<leader>fd" "<cmd>lua require('snacks').picker.diagnostics()<cr>" "Grep Diagnostics") | ||
| 24 | # (mkKeymap "n" "<leader>fc" "<cmd>lua require('aerial').snacks_picker()<cr>" "Code Outline") | ||
| 25 | |||
| 26 | # Lsp | 19 | # Lsp |
| 27 | (mkKeymap "n" "gd" "<cmd>lua require('snacks').picker.lsp_definitions<cr>" "Goto Definition") | 20 | (mkKeymap "n" "K" ":lua vim.lsp.buf.hover()<CR>" "Hover docs") |
| 28 | (mkKeymap "n" "gD" "<cmd>lua require('snacks').picker.lsp_declarations<cr>" "Goto Declarations") | 21 | (mkKeymap "n" "lr" ":lua vim.lsp.buf.rename()<CR>" "Rename") |
| 29 | (mkKeymap "n" "gI" "<cmd>lua require('snacks').picker.lsp_implementations<cr>" "Goto Implementation") | 22 | # (mkKeymap "n" "<leader>th" ":lua function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) end<CR>" "Toggle Inlay Hints") |
| 30 | (mkKeymap "n" "gr" "<cmd>lua require('snacks').picker.lsp_references<cr>" "Goto References") | ||
| 31 | (mkKeymap "n" "gy" "<cmd>lua require('snacks').picker.lsp_type_definitions<cr>" "Goto T[y]pe Definition") | ||
| 32 | ]; | 23 | ]; |
| 33 | }; | 24 | }; |
| 34 | } | 25 | } |
users/natalie/vim/languages.nix+83-44| ... | @@ -1,54 +1,61 @@ | ... | @@ -1,54 +1,61 @@ |
| 1 | {flake, ...}: { | 1 | { |
| 2 | flake, | ||
| 3 | userConfig, | ||
| 4 | pkgs, | ||
| 5 | ... | ||
| 6 | }: { | ||
| 2 | vim = { | 7 | vim = { |
| 3 | lsp.servers.nixd.settings = { | 8 | extraPackages = with pkgs; [ |
| 4 | nixd.nixpkgs.expr = "import '${flake.inputs.nixpkgs}' { }"; | 9 | python312Packages.pylatexenc |
| 10 | ]; | ||
| 11 | lsp = { | ||
| 12 | nvim-docs-view.enable = true; | ||
| 13 | inlayHints.enable = true; | ||
| 14 | servers.nixd.settings = { | ||
| 15 | nixd.nixpkgs.expr = ''import "${flake.inputs.nixpkgs}" { }''; | ||
| 16 | options = { | ||
| 17 | nixos = { | ||
| 18 | expr = '' | ||
| 19 | (let pkgs = import "${flake.inputs.nixpkgs}" {}; inherit (pkgs) lib; in (lib.evalModules { modules = (import "${flake.inputs.nixpkgs}/nixos/modules/module-list.nix"); check = false;})).options''; | ||
| 20 | }; | ||
| 21 | nix_darwin = { | ||
| 22 | expr = '' | ||
| 23 | (let pkgs = import "${flake.inputs.nixpkgs}" {}; inherit (pkgs) lib; in (lib.evalModules { modules = import ("${flake.inputs.darwin}/modules/module-list.nix"); check = false;})).options''; | ||
| 24 | }; | ||
| 25 | home_manager = { | ||
| 26 | expr = '' | ||
| 27 | (let pkgs = import "${flake.inputs.nixpkgs}" {}; lib = import "${flake.inputs.home-manager}/modules/lib/stdlib-extended.nix" pkgs.lib; in (lib.evalModules { modules = (import "${flake.inputs.home-manager}/modules/modules.nix") { inherit lib pkgs; check = false; };})).options''; | ||
| 28 | }; | ||
| 29 | }; | ||
| 30 | mappings = { | ||
| 31 | codeAction = "<leader>ca"; | ||
| 32 | goToDeclaration = "gD"; | ||
| 33 | goToDefinition = "gd"; | ||
| 34 | listReferences = "gr"; | ||
| 35 | goToType = "gy"; | ||
| 36 | hover = "K"; | ||
| 37 | nextDiagnostic = "<leader>d"; | ||
| 38 | openDiagnosticFloat = "<leader>df"; | ||
| 39 | renameSymbol = "rn"; | ||
| 40 | documentHighlight = null; | ||
| 41 | listDocumentSymbols = null; | ||
| 42 | listImplementations = null; | ||
| 43 | listWorkspaceFolders = null; | ||
| 44 | previousDiagnostic = null; | ||
| 45 | removeWorkspaceFolder = null; | ||
| 46 | signatureHelp = null; | ||
| 47 | toggleFormatOnSave = null; | ||
| 48 | }; | ||
| 49 | }; | ||
| 5 | }; | 50 | }; |
| 6 | languages = { | 51 | languages = { |
| 7 | enableDAP = true; | 52 | enableDAP = true; |
| 8 | haskell.enable = true; | 53 | # haskell.enable = true; |
| 9 | lua.enable = true; | 54 | lua.enable = true; |
| 10 | python.enable = true; | 55 | python.enable = true; |
| 11 | python.format.type = "ruff"; | 56 | python.format.type = "ruff"; |
| 12 | # markdown.extensions.markview-nvim = { | 57 | markdown.extensions.render-markdown-nvim = { |
| 13 | # enable = true; | 58 | enable = true; |
| 14 | # setupOpts = { | ||
| 15 | # }; | ||
| 16 | # }; | ||
| 17 | nix = { | ||
| 18 | lsp = { | ||
| 19 | server = "nixd"; | ||
| 20 | options = { | ||
| 21 | nixos = { | ||
| 22 | expr = "(let | ||
| 23 | pkgs = import '${flake.inputs.nixpkgs}' {}; | ||
| 24 | inherit (pkgs) lib; | ||
| 25 | in (lib.evalModules { | ||
| 26 | modules = import '${flake.inputs.nixpkgs}/nixos/modules/module-list.nix'; | ||
| 27 | check = false; | ||
| 28 | })).options"; | ||
| 29 | }; | ||
| 30 | nix_darwin = { | ||
| 31 | expr = "(let | ||
| 32 | pkgs = import ''${flake.inputs.nixpkgs}' {}; | ||
| 33 | inherit (pkgs) lib; | ||
| 34 | in (lib.evalModules { | ||
| 35 | modules = import '${flake.inputs.darwin}/modules/module-list.nix'; | ||
| 36 | check = false; | ||
| 37 | })).options"; | ||
| 38 | }; | ||
| 39 | home_manager = { | ||
| 40 | expr = "(let | ||
| 41 | pkgs = import '${flake.inputs.nixpkgs}' {}; | ||
| 42 | lib = import '${flake.inputs.home-manager}/modules/lib/stdlib-extended.nix' pkgs.lib; | ||
| 43 | in (lib.evalModules { | ||
| 44 | modules = (import '${flake.inputs.home-manager}/modules/modules.nix') { | ||
| 45 | inherit lib pkgs; | ||
| 46 | check = false; | ||
| 47 | }; | ||
| 48 | })).options"; | ||
| 49 | }; | ||
| 50 | }; | ||
| 51 | }; | ||
| 52 | }; | 59 | }; |
| 53 | }; | 60 | }; |
| 54 | formatter.conform-nvim = { | 61 | formatter.conform-nvim = { |
| ... | @@ -69,5 +76,37 @@ | ... | @@ -69,5 +76,37 @@ |
| 69 | haskell = ["hlint"]; | 76 | haskell = ["hlint"]; |
| 70 | }; | 77 | }; |
| 71 | }; | 78 | }; |
| 79 | treesitter = { | ||
| 80 | enable = true; | ||
| 81 | fold = true; | ||
| 82 | addDefaultGrammars = true; | ||
| 83 | highlight = { | ||
| 84 | additionalVimRegexHighlighting = true; | ||
| 85 | }; | ||
| 86 | |||
| 87 | context.enable = true; | ||
| 88 | highlight.enable = true; | ||
| 89 | indent.enable = true; | ||
| 90 | }; | ||
| 91 | |||
| 92 | visuals = { | ||
| 93 | fidget-nvim = { | ||
| 94 | setupOpts = { | ||
| 95 | logger.level = "trace"; | ||
| 96 | }; | ||
| 97 | }; | ||
| 98 | }; | ||
| 99 | autocomplete.blink-cmp = { | ||
| 100 | enable = true; | ||
| 101 | # mappings = { | ||
| 102 | # }; | ||
| 103 | |||
| 104 | setupOpts = { | ||
| 105 | completion = { | ||
| 106 | ghost_text.enabled = false; | ||
| 107 | list.selection.preselect = true; | ||
| 108 | }; | ||
| 109 | }; | ||
| 110 | }; | ||
| 72 | }; | 111 | }; |
| 73 | } | 112 | } |
users/natalie/vim/latex.nix created+55| ... | @@ -0,0 +1,55 @@ | ||
| 1 | {pkgs, ...}: { | ||
| 2 | vim = { | ||
| 3 | lazy.plugins.vimtex = { | ||
| 4 | enabled = true; | ||
| 5 | package = pkgs.vimPlugins.vimtex; | ||
| 6 | lazy = true; | ||
| 7 | ft = "tex"; | ||
| 8 | }; | ||
| 9 | |||
| 10 | globals = { | ||
| 11 | tex_flavor = "latex"; | ||
| 12 | maplocalleader = "\\"; | ||
| 13 | vimtex_compiler_method = "latexmk"; | ||
| 14 | vimtex_view_method = "zathura"; | ||
| 15 | vimtex_compiler_latexmk = { | ||
| 16 | callback = 1; | ||
| 17 | continuous = 1; | ||
| 18 | executable = "latexmk"; | ||
| 19 | hooks = []; | ||
| 20 | options = [ | ||
| 21 | "-verbose" | ||
| 22 | "-file-line-error" | ||
| 23 | "-synctex=1" | ||
| 24 | "-interaction=nonstopmode" | ||
| 25 | "-shell-escape" | ||
| 26 | ]; | ||
| 27 | }; | ||
| 28 | vimtex_log_ignore = [ | ||
| 29 | "Underfull" | ||
| 30 | "Overfull" | ||
| 31 | "specifier changed to" | ||
| 32 | "Token not allowed in a PDF string" | ||
| 33 | ]; | ||
| 34 | vimtex_quickfix_ignore_filters = [ | ||
| 35 | "Underfull" | ||
| 36 | "Overfull" | ||
| 37 | ]; | ||
| 38 | }; | ||
| 39 | |||
| 40 | lsp = { | ||
| 41 | servers = { | ||
| 42 | texlab = { | ||
| 43 | enable = true; | ||
| 44 | cmd = ["${pkgs.texlab}/bin/texlab"]; | ||
| 45 | filetypes = ["tex"]; | ||
| 46 | }; | ||
| 47 | }; | ||
| 48 | }; | ||
| 49 | treesitter = { | ||
| 50 | grammars = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ | ||
| 51 | latex | ||
| 52 | ]; | ||
| 53 | }; | ||
| 54 | }; | ||
| 55 | } | ||