Inject the password-store flag to vscode.

This commit is contained in:
Tom Alexander 2025-12-10 20:57:26 -05:00
parent d8d466e737
commit dc28b9a112
Signed by: talexander
GPG Key ID: 36C99E8B3C39D85F

View File

@ -5,59 +5,21 @@
... ...
}: }:
{ let
imports = [ ]; extensions_to_install =
final:
options.me = { with final.vscode-extensions;
vscode.enable = lib.mkOption { let
type = lib.types.bool; common = [
default = false;
example = true;
description = "Whether we want to install vscode.";
};
vscode.enable_work_profile = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = "Whether we want to install the remote tunnels vscode extension.";
};
};
config = lib.mkIf (config.me.vscode.enable && config.me.graphical) {
allowedUnfree = [
"vscode"
"vscode-x86_64-unknown-linux-gnu-with-extensions"
"vscode-with-extensions"
"vscode-extension-ms-vscode-remote-remote-ssh"
"vscode-extension-MS-python-vscode-pylance"
];
environment.systemPackages = with pkgs; [
(vscode-with-extensions.override {
vscodeExtensions =
with vscode-extensions;
(
[
bbenoist.nix bbenoist.nix
ms-azuretools.vscode-docker ms-azuretools.vscode-docker
ms-vscode-remote.remote-ssh ms-vscode-remote.remote-ssh
esbenp.prettier-vscode esbenp.prettier-vscode
] ];
++ ( work_specific = [
if config.me.vscode.enable_work_profile then
[
# ms-python.vscode-pylance # ms-python.vscode-pylance
] ]
else ++ (pkgs.vscode-utils.extensionsFromVscodeMarketplace [
[
ms-python.python
ms-python.debugpy
]
)
++ (pkgs.vscode-utils.extensionsFromVscodeMarketplace (
if config.me.vscode.enable_work_profile then
[
{ {
name = "remote-server"; name = "remote-server";
publisher = "ms-vscode"; publisher = "ms-vscode";
@ -88,12 +50,47 @@
version = "2025.18.0"; version = "2025.18.0";
sha256 = "6auzfS1DmOuaqV2rDHSCC9BlrcON4xUrdJZ0N0wYCs4="; sha256 = "6auzfS1DmOuaqV2rDHSCC9BlrcON4xUrdJZ0N0wYCs4=";
} }
] ]);
personal_specific = [
ms-python.python
ms-python.debugpy
];
in
if config.me.vscode.enable_work_profile then
common ++ work_specific
else else
[ ] common ++ personal_specific;
)) in
); {
}) imports = [ ];
options.me = {
vscode.enable = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = "Whether we want to install vscode.";
};
vscode.enable_work_profile = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = "Whether we want to install the remote tunnels vscode extension.";
};
};
config = lib.mkIf (config.me.vscode.enable && config.me.graphical) {
allowedUnfree = [
"vscode"
"vscode-x86_64-unknown-linux-gnu-with-extensions"
"vscode-with-extensions"
"vscode-extension-ms-vscode-remote-remote-ssh"
"vscode-extension-MS-python-vscode-pylance"
];
environment.systemPackages = with pkgs; [
vscode-with-extensions
]; ];
me.install.user.talexander.file = { me.install.user.talexander.file = {
@ -156,5 +153,25 @@
]; ];
}; };
}; };
nixpkgs.overlays = [
(final: prev: {
vscode-with-extensions = (
prev.vscode-with-extensions.override {
vscodeExtensions = (extensions_to_install final);
}
);
})
(final: prev: {
vscode-with-extensions = pkgs.symlinkJoin {
name = prev.vscode-with-extensions.name;
paths = [ prev.vscode-with-extensions ];
buildInputs = [ pkgs.makeWrapper ];
postBuild = ''
wrapProgram $out/bin/code --add-flags --password-store=gnome-libsecret
'';
};
})
];
}; };
} }