{ lib, pkgs, config, ... }: let pkgsRepositories = pkgs.nix-vscode-extensions.forVSCodeVersion config.programs.vscode.package.version; pkgsRepository = pkgsRepositories.open-vsx; in { options.programs.vscode.profiles = lib.mkOption { type = lib.types.attrsOf (lib.types.submodule ({config, ...}: { options = { extraExtensions.oneDark = { enable = lib.mkEnableOption "should the one dark theme for vscode be enabled"; extension = lib.mkPackageOption pkgsRepository "onedark" { default = ["akamud" "vscode-theme-onedark"]; }; }; }; config = lib.mkIf config.extraExtensions.oneDark.enable { extensions = [ config.extraExtensions.oneDark.extension ]; userSettings = { "workbench.colorTheme" = "Atom One Dark"; }; }; })); }; }