nix-flakes/modules/home/devtool/vscode.nix
2026-07-05 13:31:18 +09:00

51 lines
1.5 KiB
Nix

{ pkgs, ... }:
let
styleScript = pkgs.writeText "inject.js" ''
;(() => {
const el = document.createElement('style')
el.innerText = `
.part.editor>.content .editor-group-container .editor-group-watermark .letterpress {
background-image: url("https://file.mizuki.guru/.tesiotjosaeifjpoeawsjfnpoiawsejfopieawjfopjakweopfjawieof/IN_VISUAL_STUDIO_CODE.webp") !important;
opacity: 1.0;
overflow: visible;
filter: none;
aspect-ratio: 16 / 9 !important;
max-height: fit-content !important;
}
`
document.head.appendChild(el)
})();
'';
in
{
programs.vscode = {
enable = true;
mutableExtensionsDir = true;
userSettings = {
"extensions.autoUpdate" = true;
};
package = (pkgs.vscode.override { isInsiders = true; }).overrideAttrs (oldAttrs: {
version = "latest";
src = builtins.fetchTarball {
url = "https://code.visualstudio.com/sha/download?build=insider&os=linux-x64";
sha256 = "1vzf897inlzxfwmnaykkj3gqg18wbh9zhv7lnh3if6agixv0v91b";
};
buildInputs = oldAttrs.buildInputs ++ [
pkgs.krb5
pkgs.libsoup_3
pkgs.webkitgtk_4_1
pkgs.libxtst
pkgs.libjpeg8
pkgs.pipewire
pkgs.libei
];
postFixup = ''
cat ${styleScript} >> $out/lib/vscode/resources/app/out/vs/code/electron-browser/workbench/workbench.js
''
+ (oldAttrs.postFixup or "");
});
};
}