{ 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 = "d"; action = ""; options = { desc = "Manage Dev Container"; silent = true; }; } { mode = "n"; key = "ds"; action = ":DevcontainerStart"; options = { desc = "Start Dev Container"; silent = false; }; } { mode = "n"; key = "dc"; action = ":DevcontainerStopAll"; options = { desc = "Stop Dev Container"; silent = false; }; } { mode = "n"; key = "dr"; action = ":DevcontainerRemoveAll"; options = { desc = "Remove Dev Container"; silent = false; }; } { mode = "n"; key = "da"; action = ":DevcontainerAttach"; options = { desc = "Attach to Dev Container"; silent = false; }; } { mode = "n"; key = "de"; action = ":DevcontainerExec "; options = { desc = "Execute Command in Dev Container"; silent = false; }; } { mode = "n"; key = "dl"; action = ":DevcontainerLogs"; options = { desc = "Open Dev Container Logs"; silent = true; }; } { mode = "n"; key = "dz"; action = ":DevcontainerEditNearestConfig"; options = { desc = "Edit Nearest devcontainer.json"; silent = false; }; } ]; }; }