From 9aa3669139f0582283cb0a491473331393c4b966 Mon Sep 17 00:00:00 2001
From: Nikos Papadakis <nikos@papadakis.xyz>
Date: Sat, 28 Dec 2024 21:27:34 +0200
Subject: [PATCH] nix: out of store symlinks

---
 home.nix                        | 13 ++++++-------
 nvim/init.lua                   |  2 +-
 nvim/lazy-lock.json             |  2 +-
 nvim/lua/plugins/copilot.lua    |  4 ++--
 nvim/lua/plugins/supermaven.lua |  6 ++++++
 5 files changed, 16 insertions(+), 11 deletions(-)
 create mode 100644 nvim/lua/plugins/supermaven.lua

diff --git a/home.nix b/home.nix
index 5d1f962..3a77b21 100644
--- a/home.nix
+++ b/home.nix
@@ -1,4 +1,7 @@
 { config, pkgs, lib, extra, ... }:
+let
+  symlink = path: config.lib.file.mkOutOfStoreSymlink "/home/${extra.user}/.dotfiles/${path}";
+in
 {
   nixpkgs.config.allowUnfree = true;
 
@@ -17,13 +20,9 @@
   # Home Manager is pretty good at managing dotfiles. The primary way to manage
   # plain files is through 'home.file'.
   xdg.configFile = {
-    "nvim".source = ./nvim;
-    "hypr".source = ./hypr;
-    "ghostty".source = config.lib.file.mkOutOfStoreSymlink "/home/${extra.user}/.dotfiles/ghostty";
-  };
-
-  xdg.dataFile = {
-    "nvim/lazy-lock.json".source = config.lib.file.mkOutOfStoreSymlink "/home/${extra.user}/.dotfiles/nvim/lazy-lock.json";
+    "nvim".source = symlink "nvim";
+    "hypr".source = symlink "hypr";
+    "ghostty".source = symlink "ghostty";
   };
 
   # The home.packages option allows you to install Nix packages into your
diff --git a/nvim/init.lua b/nvim/init.lua
index 9224adf..0bb33f1 100644
--- a/nvim/init.lua
+++ b/nvim/init.lua
@@ -22,7 +22,7 @@ if vim.fn.empty(vim.fn.glob(lazypath)) == 1 then
     })
 end
 vim.opt.rtp:prepend(lazypath)
-require("lazy").setup("plugins", { lockfile = vim.fn.stdpath("data") .. "/lazy-lock.json" })
+require("lazy").setup("plugins", { lockfile = vim.fn.stdpath("config") .. "/lazy-lock.json" })
 
 -- vim.opt.background = "dark"
 vim.opt.clipboard = "unnamedplus"
diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json
index edce0ee..7e1aec8 100644
--- a/nvim/lazy-lock.json
+++ b/nvim/lazy-lock.json
@@ -6,7 +6,6 @@
   "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
   "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
   "conform.nvim": { "branch": "master", "commit": "9180320205d250429f0f80e073326c674e2a7149" },
-  "copilot.vim": { "branch": "release", "commit": "87038123804796ca7af20d1b71c3428d858a9124" },
   "fidget.nvim": { "branch": "main", "commit": "4e854f3299e21d1c18279add340428a97520fc44" },
   "gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
   "lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" },
@@ -22,6 +21,7 @@
   "nvim-web-devicons": { "branch": "master", "commit": "63f552a7f59badc6e6b6d22e603150f0d5abebb7" },
   "oil.nvim": { "branch": "master", "commit": "fdb50dc5c57524c4b0b05b593abff4d4f7a099f6" },
   "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
+  "supermaven-nvim": { "branch": "main", "commit": "07d20fce48a5629686aefb0a7cd4b25e33947d50" },
   "telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" },
   "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
   "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
diff --git a/nvim/lua/plugins/copilot.lua b/nvim/lua/plugins/copilot.lua
index be1fcea..0af62d2 100644
--- a/nvim/lua/plugins/copilot.lua
+++ b/nvim/lua/plugins/copilot.lua
@@ -1,4 +1,4 @@
 return {
-    "github/copilot.vim",
-    event = "InsertEnter"
+    -- "github/copilot.vim",
+    -- event = "InsertEnter"
 }
diff --git a/nvim/lua/plugins/supermaven.lua b/nvim/lua/plugins/supermaven.lua
new file mode 100644
index 0000000..c15dcf9
--- /dev/null
+++ b/nvim/lua/plugins/supermaven.lua
@@ -0,0 +1,6 @@
+return {
+    "supermaven-inc/supermaven-nvim",
+    config = function()
+        require("supermaven-nvim").setup {}
+    end,
+}