diff --git a/config/nvim/init.lua b/config/nvim/init.lua index c26916b..f3dc6ac 100644 --- a/config/nvim/init.lua +++ b/config/nvim/init.lua @@ -48,6 +48,7 @@ for _, plugin in ipairs(disabled_plugins) do end local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim' +local lazylock = vim.fn.stdpath('state') .. '/lazy-lock.json' if not vim.uv.fs_stat(lazypath) then vim.fn.system({ 'git', @@ -63,4 +64,5 @@ vim.opt.rtp:prepend(lazypath) require('lazy').setup('plugins', { defaults = { lazy = false }, change_detection = { enabled = false }, + lockfile = lazylock, }) diff --git a/config/nvim/lua/plugins/ui.lua b/config/nvim/lua/plugins/ui.lua index 08f704c..0586f84 100644 --- a/config/nvim/lua/plugins/ui.lua +++ b/config/nvim/lua/plugins/ui.lua @@ -36,9 +36,9 @@ return { lualine_a = { "mode" }, lualine_b = { "FugitiveHead", "diff" }, lualine_c = { { "filename", path = 0 } }, - lualine_x = { "diagnostics" }, - lualine_y = { "filetype" }, - lualine_z = { theme_status, "progress" }, + lualine_x = {}, + lualine_y = {}, + lualine_z = { "progress" }, }, } end, diff --git a/home/nvim.nix b/home/nvim.nix index c955b3a..07d9879 100644 --- a/home/nvim.nix +++ b/home/nvim.nix @@ -6,8 +6,12 @@ }: let nvimConfig = lib.cleanSourceWith { src = ../config/nvim; - filter = path: type: builtins.baseNameOf path != ".git"; + filter = path: type: + builtins.baseNameOf path != ".git" + && builtins.baseNameOf path != "lazy-lock.json"; }; + lazyLockSeed = ../config/nvim/lazy-lock.json; + lazyLockPath = "${config.xdg.stateHome}/nvim/lazy-lock.json"; python = pkgs.writeShellScriptBin "python" '' exec ${pkgs.python3}/bin/python3 "$@" ''; @@ -52,4 +56,15 @@ in { source = nvimConfig; recursive = true; }; + + home.activation.seedNvimLazyLock = lib.hm.dag.entryAfter ["writeBoundary"] '' + state_dir="${config.xdg.stateHome}/nvim" + lockfile="${lazyLockPath}" + + if [ ! -e "$lockfile" ]; then + mkdir -p "$state_dir" + cp ${lazyLockSeed} "$lockfile" + chmod u+w "$lockfile" + fi + ''; } diff --git a/home/zsh.nix b/home/zsh.nix index effccd1..683e046 100644 --- a/home/zsh.nix +++ b/home/zsh.nix @@ -250,6 +250,12 @@ if command -v wt >/dev/null 2>&1; then eval "$(command wt config shell init zsh)" + + # `wt` changes directories by sourcing directives into the current shell, + # so wrappers around it must stay shell functions instead of scripts. + wtc() { + wt switch --create --base @ "$@" + } fi '')