{ pkgs, ... }: { programs.nixvim = { extraPackages = with pkgs; [ devcontainer ]; extraPlugins = [ (pkgs.vimUtils.buildVimPlugin { # https://codeberg.org/esensar/nvim-dev-container name = "devcontainer"; src = pkgs.fetchgit { url = "https://codeberg.org/esensar/nvim-dev-container"; rev = "ba9666bdaec23cfe8087c0b6bb0a15c93ec8ba87"; sha256 = "sha256-x1+HxC/wDsR1MukXzteIcoOeUJ8XxXvbujL5/XPvf6Q="; }; }) ]; extraConfigLua = '' require("devcontainer").setup({}) ''; keymaps = [ { mode = "n"; key = "dcs"; action = "DevcontainerStart"; options = { desc = "Start Dev Container"; silent = false; }; } { mode = "n"; key = "dcc"; action = "DevcontainerStopAll"; options = { desc = "Stop Dev Container"; silent = false; }; } { mode = "n"; key = "dcr"; action = "DevcontainerRemoveAll"; options = { desc = "Remove Dev Container"; silent = false; }; } { mode = "n"; key = "dca"; action = "DevcontainerAttach"; options = { desc = "Attach to Dev Container"; silent = false; }; } { mode = "n"; key = "dce"; action = ":DevcontainerExec "; options = { desc = "Execute Command in Dev Container"; silent = false; }; } { mode = "n"; key = "dcl"; action = "DevcontainerLogs"; options = { desc = "Open Dev Container Logs"; silent = true; }; } { mode = "n"; key = "dcz"; action = "DevcontainerEditNearestConfig"; options = { desc = "Edit Nearest devcontainer.json"; silent = false; }; } ]; }; }