| author | |
| committer | |
| log | 6fea0a1f4e10affd9f1a3fbdec86a1a82564570b |
| tree | 247e873d557fb0665c6a7701d888028b0b9466b1 |
| parent | 10453abfb1d3dd180ecef7c8951f1a88d391c4eb |
| signature | Commit is signed but in an unrecognized format. |
10 files changed, 132 insertions(+), 79 deletions(-)
flake.nix-1| ... | ... | @@ -49,7 +49,6 @@ |
| 49 | 49 | }@inputs: |
| 50 | 50 | let |
| 51 | 51 | lib = nixpkgs.lib; |
| 52 | ||
| 53 | 52 | # TODO: apply these overlays sooner and remove uses of legacyPackages elsewhere. |
| 54 | 53 | overlays = [ |
| 55 | 54 | inputs.zig.overlays.default |
lib/mkSystem.nix+1-1| ... | ... | @@ -7,7 +7,7 @@ |
| 7 | 7 | mkNeovim, |
| 8 | 8 | }: name: { |
| 9 | 9 | user, # ./users/{name} |
| 10 | host, # ./users/{name}/{host} (optional) | |
| 10 | host, # ./users/{name}/{host} | |
| 11 | 11 | system, # arch-os |
| 12 | 12 | extraModules ? [], |
| 13 | 13 | }: let |
modules/macos/homebrew.nix+2-14| ... | ... | @@ -4,27 +4,15 @@ _: { |
| 4 | 4 | enable = true; |
| 5 | 5 | |
| 6 | 6 | onActivation = { |
| 7 | autoUpdate = true; | |
| 7 | autoUpdate = false; | |
| 8 | 8 | cleanup = "none"; |
| 9 | upgrade = true; | |
| 9 | upgrade = false; | |
| 10 | 10 | }; |
| 11 | 11 | |
| 12 | 12 | brews = [ |
| 13 | "imagemagick" | |
| 14 | "opam" | |
| 15 | 13 | ]; |
| 16 | 14 | |
| 17 | 15 | casks = [ |
| 18 | "battle-net" | |
| 19 | "stremio" | |
| 20 | "alt-tab" | |
| 21 | "legcord" | |
| 22 | "zulip" | |
| 23 | "zen-browser" | |
| 24 | "supertuxkart" | |
| 25 | "sf-symbols" | |
| 26 | ||
| 27 | "mediosz/tap/swipeaerospace" | |
| 28 | 16 | ]; |
| 29 | 17 | |
| 30 | 18 | masApps = { |
modules/neovim/default.nix-3| ... | ... | @@ -87,9 +87,6 @@ |
| 87 | 87 | ripgrep.enable = true; |
| 88 | 88 | }; |
| 89 | 89 | friendly-snippets.enable = true; |
| 90 | setupOpts = { | |
| 91 | keymap.preset = "super-tab"; | |
| 92 | }; | |
| 93 | 90 | }; |
| 94 | 91 | }; |
| 95 | 92 | statusline = { |
users/natalie/desktop/configuration.nix+1| ... | ... | @@ -9,6 +9,7 @@ |
| 9 | 9 | # Include the results of the hardware scan. |
| 10 | 10 | ./hardware-configuration.nix |
| 11 | 11 | ]; |
| 12 | documentation.man.generateCaches = false; | |
| 12 | 13 | programs = { |
| 13 | 14 | gamemode.enable = true; |
| 14 | 15 |
users/natalie/home.nix+2-2| ... | ... | @@ -2,8 +2,7 @@ |
| 2 | 2 | pkgs, |
| 3 | 3 | lib, |
| 4 | 4 | ... |
| 5 | }@args: | |
| 6 | { | |
| 5 | } @ args: { | |
| 7 | 6 | programs = { |
| 8 | 7 | # sort-lines:start |
| 9 | 8 | atuin.enable = true; |
| ... | ... | @@ -11,6 +10,7 @@ |
| 11 | 10 | hyfetch.enable = true; |
| 12 | 11 | direnv.enable = true; |
| 13 | 12 | fish.enable = true; |
| 13 | man.generateCaches = false; | |
| 14 | 14 | # sort-lines:end |
| 15 | 15 | }; |
| 16 | 16 |
users/natalie/laptop/configuration.nix+6-12| ... | ... | @@ -1,5 +1,4 @@ |
| 1 | { pkgs, ... }: | |
| 2 | { | |
| 1 | {pkgs, ...}: { | |
| 3 | 2 | environment.systemPackages = with pkgs; [ |
| 4 | 3 | pinentry_mac |
| 5 | 4 | signal-desktop-bin |
| ... | ... | @@ -8,7 +7,7 @@ |
| 8 | 7 | # Custom configuration modules in "modules" are shared between users, |
| 9 | 8 | # and can be configured in this "shared" namespace |
| 10 | 9 | shared.darwin = { |
| 11 | macAppStoreApps = [ "wireguard" ]; | |
| 10 | macAppStoreApps = ["wireguard"]; | |
| 12 | 11 | }; |
| 13 | 12 | |
| 14 | 13 | # Create /etc/zshrc that loads the nix-darwin environment. |
| ... | ... | @@ -30,14 +29,6 @@ |
| 30 | 29 | |
| 31 | 30 | # Use homebrew to install casks |
| 32 | 31 | homebrew = { |
| 33 | enable = true; | |
| 34 | ||
| 35 | onActivation = { | |
| 36 | autoUpdate = true; | |
| 37 | cleanup = "none"; | |
| 38 | upgrade = true; | |
| 39 | }; | |
| 40 | ||
| 41 | 32 | brews = [ |
| 42 | 33 | "imagemagick" |
| 43 | 34 | "opam" |
| ... | ... | @@ -49,8 +40,11 @@ |
| 49 | 40 | "alt-tab" |
| 50 | 41 | "legcord" |
| 51 | 42 | "zulip" |
| 52 | "zen-browser" | |
| 43 | "zen" | |
| 53 | 44 | "supertuxkart" |
| 45 | "sf-symbols" | |
| 46 | ||
| 47 | "mediosz/tap/swipeaerospace" | |
| 54 | 48 | ]; |
| 55 | 49 | }; |
| 56 | 50 | } |
users/natalie/vim.nix+20-1| ... | ... | @@ -1,8 +1,27 @@ |
| 1 | {...}: { | |
| 1 | {pkgs, ...}: { | |
| 2 | 2 | imports = [ |
| 3 | 3 | ./vim/default.nix |
| 4 | 4 | ]; |
| 5 | 5 | vim = { |
| 6 | options = { | |
| 7 | tabstop = 2; | |
| 8 | softtabstop = 2; | |
| 9 | shiftwidth = 2; | |
| 10 | undofile = true; | |
| 11 | swapfile = false; | |
| 12 | showmode = false; | |
| 13 | foldmethod = "expr"; | |
| 14 | foldexpr = "v:lua.vim.treesitter.foldexpr()"; | |
| 15 | }; | |
| 16 | ||
| 17 | autocmds = [ | |
| 18 | { | |
| 19 | event = ["LspAttach"]; | |
| 20 | pattern = ["*"]; | |
| 21 | desc = "User: Set LSP folding if client supports it"; | |
| 22 | callback = pkgs.lib.generators.mkLuaInline ''function(ctx) local client = assert(vim.lsp.get_client_by_id(ctx.data.client_id)) if client:supports_method("textDocument/foldingRange") then local win = vim.api.nvim_get_current_win() vim.wo[win][0].foldexpr = "v:lua.vim.lsp.foldexpr()" end end''; | |
| 23 | } | |
| 24 | ]; | |
| 6 | 25 | theme = { |
| 7 | 26 | name = "catppuccin"; |
| 8 | 27 | style = "mocha"; |
users/natalie/vim/keybinds.nix+5-3| ... | ... | @@ -1,4 +1,5 @@ |
| 1 | {...}: let | |
| 1 | { ... }: | |
| 2 | let | |
| 2 | 3 | mkKeymap = mode: key: action: desc: { |
| 3 | 4 | inherit |
| 4 | 5 | mode |
| ... | ... | @@ -7,7 +8,8 @@ |
| 7 | 8 | desc |
| 8 | 9 | ; |
| 9 | 10 | }; |
| 10 | in { | |
| 11 | in | |
| 12 | { | |
| 11 | 13 | vim = { |
| 12 | 14 | keymaps = [ |
| 13 | 15 | (mkKeymap "n" "<leader>e" ":lua require('snacks').explorer()<CR>" "File Explorer") |
| ... | ... | @@ -17,7 +19,7 @@ in { |
| 17 | 19 | (mkKeymap "n" "<leader>ff" ":lua require('snacks').picker.files()<CR>" "Find File") |
| 18 | 20 | (mkKeymap "n" "<leader>fg" ":lua require('snacks').picker.grep()<CR>" "Grep Files") |
| 19 | 21 | # Lsp |
| 20 | (mkKeymap "n" "K" ":lua vim.lsp.buf.hover()<CR>" "Hover docs") | |
| 22 | (mkKeymap "n" "K" ":Lspsaga hover_doc<CR>" "Hover docs") | |
| 21 | 23 | (mkKeymap "n" "lr" ":lua vim.lsp.buf.rename()<CR>" "Rename") |
| 22 | 24 | # (mkKeymap "n" "<leader>th" ":lua function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) end<CR>" "Toggle Inlay Hints") |
| 23 | 25 | ]; |
users/natalie/vim/languages.nix+95-42| ... | ... | @@ -1,63 +1,95 @@ |
| 1 | 1 | { |
| 2 | 2 | flake, |
| 3 | userConfig, | |
| 3 | user, | |
| 4 | host, | |
| 4 | 5 | pkgs, |
| 5 | 6 | ... |
| 6 | }: { | |
| 7 | }: let | |
| 8 | darwin = | |
| 9 | if host.darwin | |
| 10 | then "darwin" | |
| 11 | else "nixos"; | |
| 12 | flakePath = "/${ | |
| 13 | if host.darwin | |
| 14 | then "Users" | |
| 15 | else "home" | |
| 16 | }/${user.username}/.dotfiles"; | |
| 17 | ||
| 18 | # BIG HACK DO NOT DO PLS | |
| 19 | ||
| 20 | hostname = | |
| 21 | if host.darwin | |
| 22 | then "Natalies-MacBook-Air" | |
| 23 | else "nixos"; | |
| 24 | in { | |
| 7 | 25 | vim = { |
| 8 | 26 | extraPackages = with pkgs; [ |
| 9 | 27 | python312Packages.pylatexenc |
| 10 | 28 | ]; |
| 11 | 29 | lsp = { |
| 30 | lightbulb.enable = false; | |
| 31 | lspsaga = { | |
| 32 | enable = true; | |
| 33 | setupOpts = { | |
| 34 | lightbulb = { | |
| 35 | virtual_text = false; | |
| 36 | }; | |
| 37 | }; | |
| 38 | }; | |
| 12 | 39 | nvim-docs-view.enable = true; |
| 13 | 40 | 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''; | |
| 41 | servers.nixd.settings.nixd = { | |
| 42 | nixpkgs.expr = ''import "<nixpkgs>" { }''; | |
| 43 | options = | |
| 44 | { | |
| 45 | home-manager = { | |
| 46 | expr = ''(builtins.getFlake "${flakePath}").${darwin}Configurations.${hostname}.options.home-manager.users.type.getSubOptions [ ]''; | |
| 47 | }; | |
| 48 | } | |
| 49 | // pkgs.lib.optionalAttrs host.darwin { | |
| 50 | nix-darwin = { | |
| 51 | expr = ''(builtins.getFlake "${flakePath}").darwinConfigurations.${hostname}.options''; | |
| 52 | }; | |
| 53 | } | |
| 54 | // pkgs.lib.optionalAttrs host.linux { | |
| 55 | nixos = { | |
| 56 | expr = ''(builtins.getFlake "${flakePath}").nixosConfigurations.${hostname}.options''; | |
| 57 | }; | |
| 24 | 58 | }; |
| 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 | }; | |
| 59 | }; | |
| 60 | mappings = { | |
| 61 | codeAction = "<leader>ca"; | |
| 62 | goToDeclaration = "gD"; | |
| 63 | goToDefinition = "gd"; | |
| 64 | listReferences = "gr"; | |
| 65 | goToType = "gy"; | |
| 66 | hover = null; | |
| 67 | nextDiagnostic = "<leader>d"; | |
| 68 | openDiagnosticFloat = "<leader>df"; | |
| 69 | renameSymbol = "rn"; | |
| 70 | documentHighlight = null; | |
| 71 | listDocumentSymbols = null; | |
| 72 | listImplementations = null; | |
| 73 | listWorkspaceFolders = null; | |
| 74 | previousDiagnostic = null; | |
| 75 | removeWorkspaceFolder = null; | |
| 76 | signatureHelp = null; | |
| 77 | toggleFormatOnSave = null; | |
| 49 | 78 | }; |
| 50 | 79 | }; |
| 51 | 80 | languages = { |
| 52 | 81 | enableDAP = true; |
| 53 | # haskell.enable = true; | |
| 54 | 82 | lua.enable = true; |
| 55 | 83 | python.enable = true; |
| 56 | 84 | python.format.type = "ruff"; |
| 57 | markdown.extensions.render-markdown-nvim = { | |
| 85 | markdown = { | |
| 58 | 86 | enable = true; |
| 87 | extensions.render-markdown-nvim = { | |
| 88 | enable = true; | |
| 89 | }; | |
| 59 | 90 | }; |
| 60 | 91 | }; |
| 92 | ||
| 61 | 93 | formatter.conform-nvim = { |
| 62 | 94 | enable = true; |
| 63 | 95 | setupOpts = { |
| ... | ... | @@ -84,9 +116,13 @@ |
| 84 | 116 | additionalVimRegexHighlighting = true; |
| 85 | 117 | }; |
| 86 | 118 | |
| 87 | context.enable = true; | |
| 119 | grammars = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ | |
| 120 | markdown_inline | |
| 121 | markdown | |
| 122 | ]; | |
| 123 | ||
| 88 | 124 | highlight.enable = true; |
| 89 | indent.enable = true; | |
| 125 | indent.enable = false; | |
| 90 | 126 | }; |
| 91 | 127 | |
| 92 | 128 | visuals = { |
| ... | ... | @@ -98,13 +134,30 @@ |
| 98 | 134 | }; |
| 99 | 135 | autocomplete.blink-cmp = { |
| 100 | 136 | enable = true; |
| 101 | # mappings = { | |
| 102 | # }; | |
| 137 | mappings = { | |
| 138 | close = null; | |
| 139 | complete = null; | |
| 140 | confirm = null; | |
| 141 | next = null; | |
| 142 | previous = null; | |
| 143 | scrollDocsDown = null; | |
| 144 | scrollDocsUp = null; | |
| 145 | }; | |
| 103 | 146 | |
| 104 | 147 | setupOpts = { |
| 148 | keymap = { | |
| 149 | preset = "super-tab"; | |
| 150 | }; | |
| 105 | 151 | completion = { |
| 106 | 152 | ghost_text.enabled = false; |
| 107 | 153 | list.selection.preselect = true; |
| 154 | trigger = { | |
| 155 | show_in_snippet = true; | |
| 156 | }; | |
| 157 | accept.auto_brackets.enabled = true; | |
| 158 | }; | |
| 159 | signature = { | |
| 160 | enabled = true; | |
| 108 | 161 | }; |
| 109 | 162 | }; |
| 110 | 163 | }; |