diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index 2d12fcb..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1,90 +0,0 @@ -# CLAUDE.md - -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. - -## Overview - -This is a nix-darwin and home-manager configuration for managing a macOS system (Apple Silicon M3 Max) declaratively. The configuration uses Nix flakes and manages both system-level packages (via nix-darwin) and user-level packages and dotfiles (via home-manager). - -## Architecture - -### Flake Structure - -The repository follows a modular architecture: - -- **`flake.nix`**: Entry point defining inputs (nixpkgs, nix-darwin, home-manager, nur) and outputs. Defines the main darwin configuration `salarm3max` for aarch64-darwin. -- **`home.nix`**: Main home-manager configuration importing all program modules and defining system-wide packages. -- **`programs/default.nix`**: List of program module imports (each program has its own subdirectory with `default.nix`). -- **`programs/*/default.nix`**: Individual program configurations (fish, git, jujutsu, ghostty, wezterm, zed, etc.). - -### Key Design Patterns - -1. **Modular Program Configuration**: Each program (fish, git, ghostty, etc.) has its own directory under `programs/` with a `default.nix` file. -2. **Allowlist for Unfree Packages**: Unfree packages are explicitly allowlisted in `home.nix` using `allowUnfreePredicate`. -3. **External Config Fetching**: Neovim config is fetched from external GitHub repo (`softinio/nvim-config`) rather than managed in this repo. -4. **Integration Through Imports**: `programs/default.nix` is a simple list that gets imported into `home.nix`, making it easy to enable/disable programs. - -## Common Commands - -**Note**: User uses Fish shell, not Bash. All commands below work in Fish. - -### Building and Activating Configuration - -```fish -# Build and switch to new configuration (PREFERRED - use this alias) -nixre - -# Full command (if needed) -darwin-rebuild switch --flake ~/.config/nixpkgs#salarm3max - -# Build without switching -darwin-rebuild build --flake ~/.config/nixpkgs#salarm3max -``` - -### Updating Dependencies - -```fish -# Update all flake inputs -nix flake update - -# Update specific input -nix flake lock --update-input nixpkgs -``` - -### Testing Changes - -```fish -# Build configuration locally to test before switching -nix build .#darwinConfigurations.salarm3max.system -``` - -### Maintenance - -```fish -# Garbage collection -nix-collect-garbage -d # Also aliased as: nixgc - -# Repair Nix store -nix-store --repair --verify --check-contents # Also aliased as: nixstorerepair - -# Check system info -nix-shell -p nix-info --run "nix-info -m" # Also aliased as: nixinfo -``` - -## Adding New Programs - -To add a new program configuration: - -1. Create directory: `programs/newprogram/` -2. Create `programs/newprogram/default.nix` with configuration -3. Add `./newprogram` to the list in `programs/default.nix` -4. Run `nixre` to apply changes - -## Important Notes - -- **Platform**: This configuration is specifically for `aarch64-darwin` (Apple Silicon Macs). -- **User**: Configuration is for user `salar` with home directory `/Users/salar`. -- **Shell**: Fish is the default shell with extensive customizations. -- **Nix Features**: Experimental features `nix-command` and `flakes` are enabled. -- **Version Control**: Uses jujutsu (jj) as the primary VCS alongside git. -- **Editor**: Neovim is the default editor (`$EDITOR` and `$VISUAL` environment variables). diff --git a/flake.lock b/flake.lock index d5d00b4..72a9e75 100644 --- a/flake.lock +++ b/flake.lock @@ -1,27 +1,6 @@ { "nodes": { "flake-parts": { - "inputs": { - "nixpkgs-lib": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1759362264, - "narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "758cf7296bee11f1706a574c77d072b8a7baa881", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_2": { "inputs": { "nixpkgs-lib": [ "nur", @@ -42,24 +21,6 @@ "type": "github" } }, - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -67,11 +28,11 @@ ] }, "locked": { - "lastModified": 1759536080, - "narHash": "sha256-0aXlKPxm2M+F5oywX2TTbY0e6h+tQ+6OYyx7UZn3A4A=", + "lastModified": 1758296614, + "narHash": "sha256-l60D1i0aaSqemy9dL7wP0ePMfcv/oZbeKpvUMY+q0kQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "edafd6da1936426708f1be0b1a4288007f16639a", + "rev": "55b1f5b7b191572257545413b98e37abab2fdb00", "type": "github" }, "original": { @@ -80,34 +41,6 @@ "type": "github" } }, - "ixx": { - "inputs": { - "flake-utils": [ - "nixvim", - "nuschtosSearch", - "flake-utils" - ], - "nixpkgs": [ - "nixvim", - "nuschtosSearch", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1754860581, - "narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=", - "owner": "NuschtOS", - "repo": "ixx", - "rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281", - "type": "github" - }, - "original": { - "owner": "NuschtOS", - "ref": "v0.1.1", - "repo": "ixx", - "type": "github" - } - }, "nix-darwin": { "inputs": { "nixpkgs": [ @@ -115,11 +48,11 @@ ] }, "locked": { - "lastModified": 1758805352, - "narHash": "sha256-BHdc43Lkayd+72W/NXRKHzX5AZ+28F3xaUs3a88/Uew=", + "lastModified": 1758102940, + "narHash": "sha256-wwqf3+A8EiqwWpcAaPN20QXJLlpGPpwtLTrzgnngI2o=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "c48e963a5558eb1c3827d59d21c5193622a1477c", + "rev": "ebd0bfc11fc2b5cff37401e9b3703881ad5fabbd", "type": "github" }, "original": { @@ -130,11 +63,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1759417375, - "narHash": "sha256-O7eHcgkQXJNygY6AypkF9tFhsoDQjpNEojw3eFs73Ow=", + "lastModified": 1758262103, + "narHash": "sha256-aBGl3XEOsjWw6W3AHiKibN7FeoG73dutQQEqnd/etR8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "dc704e6102e76aad573f63b74c742cd96f8f1e6c", + "rev": "12bd230118a1901a4a5d393f9f56b6ad7e571d01", "type": "github" }, "original": { @@ -146,11 +79,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1759381078, - "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", + "lastModified": 1758198701, + "narHash": "sha256-7To75JlpekfUmdkUZewnT6MoBANS0XVypW6kjUOXQwc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", + "rev": "0147c2f1d54b30b5dd6d4a8c8542e8d7edf93b5d", "type": "github" }, "original": { @@ -160,40 +93,17 @@ "type": "github" } }, - "nixvim": { - "inputs": { - "flake-parts": "flake-parts", - "nixpkgs": [ - "nixpkgs" - ], - "nuschtosSearch": "nuschtosSearch", - "systems": "systems_2" - }, - "locked": { - "lastModified": 1759527752, - "narHash": "sha256-+sncyvy1dkwRBeq7vw/YpsKqB18UuaKuW2lKRRv6/EI=", - "owner": "nix-community", - "repo": "nixvim", - "rev": "42d87fd4d8f51ea8c591b0b72af76b0aba991f54", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixvim", - "type": "github" - } - }, "nur": { "inputs": { - "flake-parts": "flake-parts_2", + "flake-parts": "flake-parts", "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1759527694, - "narHash": "sha256-fuQw+vP25GSQxPKTPAHZBUXuoFeN9dCTwfJxEv5sv0Y=", + "lastModified": 1758314668, + "narHash": "sha256-UeSA8UbYgBeeI/r6YRlkwKrBMhnE2ZliSFb7QB7p4zQ=", "owner": "nix-community", "repo": "nur", - "rev": "b2b1349ad22d5ba62a3e069e9a3745f40fbb9203", + "rev": "180ae0f66d4d50d36c01e750bd7c05f49ff8f24b", "type": "github" }, "original": { @@ -202,67 +112,13 @@ "type": "github" } }, - "nuschtosSearch": { - "inputs": { - "flake-utils": "flake-utils", - "ixx": "ixx", - "nixpkgs": [ - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1758662783, - "narHash": "sha256-igrxT+/MnmcftPOHEb+XDwAMq3Xg1Xy7kVYQaHhPlAg=", - "owner": "NuschtOS", - "repo": "search", - "rev": "7d4c0fc4ffe3bd64e5630417162e9e04e64b27a4", - "type": "github" - }, - "original": { - "owner": "NuschtOS", - "repo": "search", - "type": "github" - } - }, "root": { "inputs": { "home-manager": "home-manager", "nix-darwin": "nix-darwin", "nixpkgs": "nixpkgs", - "nixvim": "nixvim", "nur": "nur" } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index aca228b..6908110 100644 --- a/flake.nix +++ b/flake.nix @@ -7,10 +7,6 @@ url = "github:LnL7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; - nixvim = { - url = "github:nix-community/nixvim"; - inputs.nixpkgs.follows = "nixpkgs"; - }; nur.url = "github:nix-community/nur"; home-manager = { url = "github:nix-community/home-manager"; @@ -22,7 +18,6 @@ { self, nix-darwin, - nixvim, home-manager, nur, nixpkgs, @@ -91,11 +86,6 @@ home-manager.backupFileExtension = "backup"; home-manager.useUserPackages = true; home-manager.users.salar = homeManagerConfFor ./home.nix; - home-manager.extraSpecialArgs = { - inputs = { - inherit nixvim; - }; - }; } ]; specialArgs = { diff --git a/home.nix b/home.nix index 99dba20..c288088 100644 --- a/home.nix +++ b/home.nix @@ -1,5 +1,4 @@ { - inputs, lib, pkgs, ... @@ -9,15 +8,11 @@ # Let Home Manager install and manage itself. programs.home-manager.enable = true; - imports = [ - inputs.nixvim.homeModules.nixvim - ] - ++ (import ./programs); + imports = (import ./programs); nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ - "copilot.vim" "discord" "gh-copilot" "slack" @@ -63,9 +58,11 @@ marksman marp-cli maven + meld metals multimarkdown mypy + neovim nerd-fonts.fira-code nil niv @@ -219,4 +216,12 @@ }; }; }; + + # Neovim Configuration + xdg.configFile."nvim".source = pkgs.fetchFromGitHub { + owner = "softinio"; + repo = "nvim-config"; + rev = "e89dc85e3a4116796d4393d37c12c31737e6f17c"; + sha256 = "sha256-HCLF7vM4pUbW2OlOuat1isnuyfqfPxjJ4wWYLcNcu0M="; + }; } diff --git a/programs/default.nix b/programs/default.nix index 3d8075e..97af51d 100644 --- a/programs/default.nix +++ b/programs/default.nix @@ -5,8 +5,7 @@ ./ghostty ./git ./jujutsu - # ./kitty - ./nixvim + ./kitty ./tmux ./wezterm ./vscode diff --git a/programs/fish/default.nix b/programs/fish/default.nix index 312537e..3c25ce2 100644 --- a/programs/fish/default.nix +++ b/programs/fish/default.nix @@ -46,7 +46,7 @@ fenv source $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh end - set -xg PATH $HOME/bin $HOME/.cargo/bin $HOME/.npm-global/bin /Users/salar/.luarocks/bin:/Users/salar/bin:/Users/salar/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin "/Applications/IntelliJ IDEA.app/Contents/MacOS" $PATH + set -xg PATH $HOME/bin $HOME/.cargo/bin $HOME/.npm-global/bin /Users/salar/.luarocks/bin:/Users/salar/bin:/Users/salar/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin $PATH set -xg WORKSPACE /Users/salar/Projects diff --git a/programs/ghostty/default.nix b/programs/ghostty/default.nix index fff3c56..bf2778e 100644 --- a/programs/ghostty/default.nix +++ b/programs/ghostty/default.nix @@ -5,10 +5,7 @@ let copy-on-select = "clipboard"; font-family = "SF Mono"; font-size = 16; - link-previews = true; - macos-shortcuts = "ask"; macos-titlebar-style = "transparent"; - maximize = true; mouse-hide-while-typing = true; split-divider-color = "orange"; theme = "Builtin Tango Dark"; @@ -17,9 +14,6 @@ let working-directory = "home"; keybind = [ "shift+enter=text:\n" - "super+k=toggle_split_zoom" - "super+b>'=new_split:right" - "super+b>-=new_split:down" ]; }; in diff --git a/programs/jujutsu/default.nix b/programs/jujutsu/default.nix index a8d885a..6f4a9c8 100644 --- a/programs/jujutsu/default.nix +++ b/programs/jujutsu/default.nix @@ -4,7 +4,7 @@ let l = [ "log" "-r" - "(main@origin..@):: | (main@origin..@)-" + "(main..@):: | (main..@)-" ]; }; in @@ -17,7 +17,6 @@ in key = "~/.ssh/id_ed25519.pub"; }; ui = { - default-command = "log"; diff-formatter = [ "difft" "--color=always" @@ -26,10 +25,11 @@ in ]; editor = "nvim"; merge-editor = [ - "idea" + "meld" "$left" - "$right" "$base" + "$right" + "-o" "$output" ]; pager = "less -FRX"; diff --git a/programs/nixvim/_plugins/avante.nix b/programs/nixvim/_plugins/avante.nix deleted file mode 100644 index 2034464..0000000 --- a/programs/nixvim/_plugins/avante.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ ... }: - -{ - programs.nixvim = { - plugins.avante = { - enable = true; - settings = { - provider = "claude"; - providers = { - claude = { - model = "claude-sonnet-4-5-20250929"; - }; - }; - }; - }; - }; -} diff --git a/programs/nixvim/_plugins/conform.nix b/programs/nixvim/_plugins/conform.nix deleted file mode 100644 index a3a7c1d..0000000 --- a/programs/nixvim/_plugins/conform.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ ... }: - -{ - programs.nixvim = { - plugins.conform-nvim = { - enable = true; - settings = { - formatters_by_ft = { - lua = [ "stylua" ]; - nix = [ "nixfmt" ]; - python = '' - function(bufnr) - if require("conform").get_formatter_info("ruff_format", bufnr).available then - return { "ruff_fix", "ruff_format" } - else - return { "isort", "black", "flake8" } - end - end - ''; - scala = [ "scalafmt" ]; - swift = [ "swift_format" ]; - "*" = [ "trim_whitespace" "trim_newlines" ]; - }; - format_on_save = '' - function(bufnr) - -- Disable with a global or buffer-local variable - if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then - return - end - return { timeout_ms = 500, lsp_fallback = true } - end - ''; - }; - }; - }; -} diff --git a/programs/nixvim/_plugins/default.nix b/programs/nixvim/_plugins/default.nix deleted file mode 100644 index c384695..0000000 --- a/programs/nixvim/_plugins/default.nix +++ /dev/null @@ -1,105 +0,0 @@ -{ ... }: - -{ - imports = [ - ./avante.nix - ./conform.nix - ./floaterm.nix - ./lsp.nix - ./lualine.nix - ./neo-tree.nix - ./telescope.nix - ./treesitter.nix - ]; - - # Global plugin configurations can go here - programs.nixvim = { - colorschemes.tokyonight = { - enable = true; - settings = { - style = "night"; - on_colors.__raw = "function(colors) colors.bg = \"#000000\" end"; - }; - }; - - plugins = { - # Lazy loading - lz-n.enable = true; - - web-devicons.enable = true; - - gitsigns = { - enable = true; - settings.signs = { - add.text = "+"; - change.text = "~"; - delete.text = "_"; - topdelete.text = "‾"; - changedelete.text = "~"; - }; - }; - - nvim-autopairs.enable = true; - - colorizer = { - enable = true; - settings.user_default_options.names = false; - }; - - copilot-vim.enable = true; - - fidget.enable = true; - - flash.enable = true; - - img-clip = { - enable = true; - settings = { - default = { - embed_image_as_base64 = false; - prompt_for_file_name = false; - drag_and_drop = { - insert_mode = true; - }; - use_absolute_path = true; - }; - }; - }; - - indent-blankline.enable = true; - - markview.enable = true; - - nui.enable = true; - - oil = { - enable = true; - lazyLoad.settings.cmd = "Oil"; - }; - - snacks.enable = true; - - todo-comments = { - enable = true; - keymaps.todoTelescope.key = "t"; - }; - - trim = { - enable = true; - settings = { - highlight = true; - ft_blocklist = [ - "checkhealth" - "floaterm" - "lspinfo" - "neo-tree" - "TelescopePrompt" - ]; - }; - }; - - trouble.enable = true; - which-key.enable = true; - }; - }; -} diff --git a/programs/nixvim/_plugins/floaterm.nix b/programs/nixvim/_plugins/floaterm.nix deleted file mode 100644 index a8cc99d..0000000 --- a/programs/nixvim/_plugins/floaterm.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ ... }: - -{ - programs.nixvim.plugins.floaterm = { - enable = true; - - settings = { - width = 0.8; - height = 0.8; - title = ""; - keymap_toggle = ","; - }; - }; -} diff --git a/programs/nixvim/_plugins/lsp.nix b/programs/nixvim/_plugins/lsp.nix deleted file mode 100644 index ed030e5..0000000 --- a/programs/nixvim/_plugins/lsp.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ lib, ... }: - -{ - programs.nixvim = { - diagnostic.settings.virtual_text = true; - - lsp = { - inlayHints.enable = true; - servers = { - bashls.enable = true; - html.enable = true; - jqls.enable = true; - jsonls.enable = true; - lua_ls = { - enable = true; - settings.settings.diagnostics.globals = [ "vim" ]; - }; - marksman.enable = true; - metals.enable = true; - nil_ls.enable = true; - nixd.enable = true; - pyrefly.enable = true; - rust_analyzer.enable = true; - sourcekit.enable = true; - ts_ls.enable = true; - yamlls.enable = true; - }; - - keymaps = - lib.mapAttrsToList - ( - key: props: - { - inherit key; - options.silent = true; - } - // props - ) - { - "k".action.__raw = "function() vim.diagnostic.jump({ count=-1, float=true }) end"; - "j".action.__raw = "function() vim.diagnostic.jump({ count=1, float=true }) end"; - gd.lspBufAction = "definition"; - gD.lspBufAction = "references"; - gt.lspBufAction = "type_definition"; - gi.lspBufAction = "implementation"; - K.lspBufAction = "hover"; - "".lspBufAction = "rename"; - }; - }; - - plugins = { - lsp-format = { - enable = true; - lspServersToEnable = "all"; - }; - - # Sane defaults for all servers - lspconfig.enable = true; - }; - }; -} diff --git a/programs/nixvim/_plugins/lualine.nix b/programs/nixvim/_plugins/lualine.nix deleted file mode 100644 index 53945e7..0000000 --- a/programs/nixvim/_plugins/lualine.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ ... }: - -{ - programs.nixvim.plugins.lualine = { - enable = true; - - settings = { - options.globalstatus = true; - - sections = { - lualine_a = [ "mode" ]; - lualine_b = [ "branch" ]; - lualine_c = [ - "filename" - "diff" - ]; - - lualine_x = [ - "diagnostics" - - { - __unkeyed.__raw = '' - function() - local msg = "" - local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype') - local clients = vim.lsp.get_clients() - if next(clients) == nil then - return msg - end - for _, client in ipairs(clients) do - local filetypes = client.config.filetypes - if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then - return client.name - end - end - return msg - end - ''; - icon = ""; - color.fg = "#ffffff"; - } - "encoding" - "fileformat" - "filetype" - ]; - }; - }; - }; -} diff --git a/programs/nixvim/_plugins/neo-tree.nix b/programs/nixvim/_plugins/neo-tree.nix deleted file mode 100644 index 73c1ee6..0000000 --- a/programs/nixvim/_plugins/neo-tree.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ ... }: - -{ - programs.nixvim = { - keymaps = [ - { - mode = "n"; - key = "m"; - action = ":Neotree action=focus reveal toggle"; - options.silent = true; - } - ]; - - plugins.neo-tree = { - enable = true; - - closeIfLastWindow = true; - window = { - width = 30; - autoExpandWidth = true; - position = "right"; - }; - }; - }; -} diff --git a/programs/nixvim/_plugins/telescope.nix b/programs/nixvim/_plugins/telescope.nix deleted file mode 100644 index 9934365..0000000 --- a/programs/nixvim/_plugins/telescope.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ ... }: - -{ - programs.nixvim = { - plugins.telescope = { - enable = true; - - extensions = { - fzf-native.enable = true; - ui-select.enable = true; - undo.enable = true; - }; - - keymaps = { - "ff" = "find_files"; - "fg" = "live_grep"; - "b" = "buffers"; - "fh" = "help_tags"; - "fd" = "diagnostics"; - - "" = "git_files"; - "?" = "oldfiles"; - }; - - settings.defaults = { - file_ignore_patterns = [ - "^.git/" - "^.mypy_cache/" - "^__pycache__/" - "^output/" - "^data/" - "%.ipynb" - ]; - set_env.COLORTERM = "truecolor"; - }; - }; - - keymaps = [ - { - mode = "n"; - key = ""; - action.__raw = '' - function() - require('telescope.builtin').live_grep({ - default_text="TODO", - initial_mode="normal" - }) - end - ''; - options.silent = true; - } - ]; - }; -} diff --git a/programs/nixvim/_plugins/treesitter.nix b/programs/nixvim/_plugins/treesitter.nix deleted file mode 100644 index 950c461..0000000 --- a/programs/nixvim/_plugins/treesitter.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ pkgs, ... }: - -{ - programs.nixvim.plugins = { - treesitter = { - enable = true; - - grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ - awk - bash - c - cpp - css - dockerfile - fish - git-rebase - gitattributes - gitcommit - gitignore - go - haskell - hocon - html - http - java - javascript - json - json5 - jsonc - lua - make - markdown - markdown-inline - nix - proto - python - rust - scala - sql - swift - terraform - toml - typescript - vim - xml - yaml - ]; - - nixvimInjections = true; - - settings = { - highlight.enable = true; - indent.enable = true; - }; - folding = false; - }; - - treesitter-refactor = { - enable = true; - highlightDefinitions = { - enable = true; - # Set to false if you have an `updatetime` of ~100. - clearOnCursorMove = false; - }; - }; - - hmts.enable = true; - }; -} diff --git a/programs/nixvim/completion.nix b/programs/nixvim/completion.nix deleted file mode 100644 index 18b1ce3..0000000 --- a/programs/nixvim/completion.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ ... }: - -{ - programs.nixvim = { - opts.completeopt = [ - "menu" - "menuone" - "noselect" - ]; - - plugins = { - luasnip.enable = true; - - lspkind = { - enable = true; - - settings = { - cmp = { - enable = true; - menu = { - nvim_lsp = "[LSP]"; - nvim_lua = "[api]"; - path = "[path]"; - luasnip = "[snip]"; - buffer = "[buffer]"; - cmp_tabby = "[Tabby]"; - }; - }; - }; - }; - - cmp = { - enable = true; - - settings = { - snippet.expand = '' - function(args) - require('luasnip').lsp_expand(args.body) - end - ''; - - mapping = { - "" = "cmp.mapping.scroll_docs(-4)"; - "" = "cmp.mapping.scroll_docs(4)"; - "" = "cmp.mapping.complete()"; - "" = "cmp.mapping.close()"; - "" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})"; - "" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})"; - "" = "cmp.mapping.confirm({ select = true })"; - }; - - sources = [ - { name = "path"; } - { name = "nvim_lsp"; } - { name = "luasnip"; } - { - name = "buffer"; - option.get_bufnrs.__raw = "vim.api.nvim_list_bufs"; - } - ]; - }; - }; - }; - }; -} diff --git a/programs/nixvim/default.nix b/programs/nixvim/default.nix deleted file mode 100644 index 8ad3bef..0000000 --- a/programs/nixvim/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ pkgs, ... }: - -{ - imports = [ - ./options.nix - ./keymappings.nix - ./completion.nix - ./_plugins - ]; - - programs.nixvim = { - enable = true; - - defaultEditor = true; - - nixpkgs.useGlobalPackages = true; - - viAlias = true; - vimAlias = true; - }; -} diff --git a/programs/nixvim/keymappings.nix b/programs/nixvim/keymappings.nix deleted file mode 100644 index 23e0df3..0000000 --- a/programs/nixvim/keymappings.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ lib, ... }: - -{ - programs.nixvim = { - keymaps = - let - normal = - lib.mapAttrsToList - ( - key: action: { - mode = "n"; - inherit action key; - } - ) - { - "" = ""; - "" = ":noh"; - "Y" = "y$"; - "" = ":b#"; - "" = ":close"; - "s" = ":w"; - "" = ":w"; - "h" = "h"; - "l" = "l"; - "L" = "$"; - "H" = "^"; - "" = ":resize -2"; - "" = ":resize +2"; - "" = ":vertical resize +2"; - "" = ":vertical resize -2"; - "" = ":move-2"; - "" = ":move+"; - }; - visual = - lib.mapAttrsToList - ( - key: action: { - mode = "v"; - inherit action key; - } - ) - { - # Removed gv to allow dot-repeat - ">" = ">"; - "<" = "<"; - # TAB keeps gv for convenience - "" = ">gv"; - "" = "