Merge branch 'main' into refactor

This commit is contained in:
sadan 2024-11-26 20:31:36 -05:00
commit 59a68ea7f6
No known key found for this signature in database
11 changed files with 455 additions and 29 deletions

View file

@ -1,9 +1,11 @@
{ config, lib, ... }: {
{ config, lib, ... }:
{
nixpkgs.overlays = [
(pkgs: _: {
ja-netfilter = pkgs.callPackage ./ja-netfilter { inherit lib; };
})
(final: pkgs:
(
final: pkgs:
let
inherit (pkgs) jetbrains;
globalPlugins = [
@ -12,7 +14,12 @@
];
ja-netfilter = pkgs.ja-netfilter.override {
programName = "jetbrains";
enabledPlugins = [ "dns" "url" "hideme" "power" ];
enabledPlugins = [
"dns"
"url"
"hideme"
"power"
];
pluginConfigs = {
dns = ''
[DNS]
@ -43,21 +50,30 @@
};
};
srcOverrideFn = name: { version
, url
, sha256
, plugins ? [ ]
,
}:
srcOverrideFn =
name:
{
version,
url,
sha256,
plugins ? [ ],
}:
let
versionChangedPkg = jetbrains.${name}.overrideAttrs
(_: old: rec {
versionChangedPkg = jetbrains.${name}.overrideAttrs (
_: old: rec {
inherit version;
src = pkgs.fetchurl {
inherit url sha256;
};
buildInputs = old.buildInputs ++ (with pkgs; [ xorg.libX11 libGL fontconfig ]);
});
buildInputs =
old.buildInputs
++ (with pkgs; [
xorg.libX11
libGL
fontconfig
]);
}
);
in
versionChangedPkg;
srcPatched = builtins.mapAttrs srcOverrideFn overrides;
@ -67,7 +83,8 @@
--add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
-javaagent:${javaAgentJar}=jetbrains
'';
forkingWrapper = package: wrapperName:
forkingWrapper =
package: wrapperName:
let
exe = lib.getExe package;
wrapperExe = pkgs.writeShellScriptBin wrapperName ''
@ -76,21 +93,22 @@
in
pkgs.symlinkJoin {
name = package.name;
paths = [ package wrapperExe ];
paths = [
package
wrapperExe
];
postBuild = ''
ln -s ${exe} $out/bin/${wrapperName}-unwrapped
'';
};
wrapJetBrains = package: name:
forkingWrapper (package.override { inherit vmopts; }) name;
netOverrideFn = name: _:
wrapJetBrains srcPatched.${name} name;
wrapJetBrains = package: name: forkingWrapper (package.override { inherit vmopts; }) name;
netOverrideFn = name: _: wrapJetBrains srcPatched.${name} name;
netPatched = builtins.mapAttrs netOverrideFn overrides;
in
{
jbeap = netPatched;
})
}
)
];
}

View file

@ -0,0 +1,9 @@
{ pkgs, ... }:
{
imports = [
./overlays.nix
];
home.packages = with pkgs; [
vscode-insider
];
}

View file

@ -0,0 +1,62 @@
{ nixpkgs, pkgs, ... }:
{
nixpkgs.overlays = [
(final: prev: {
vscode-insider = (
(prev.vscode.override {
isInsiders = true;
}).overrideAttrs
(
_: old:
let
sourceExecutableName = "code-insiders";
executableName = "code-insiders";
in
{
pname = "code-insiders";
installPhase = ''
runHook preInstall
mkdir -p "$out/lib/vscode" "$out/bin"
cp -r ./* "$out/lib/vscode"
mv "$out/lib/vscode/bin/code" "$out/lib/vscode/bin/${sourceExecutableName}" # ME
mv "$out/lib/vscode/code" "$out/lib/vscode/${sourceExecutableName}" # ME
ln -s "$out/lib/vscode/bin/${sourceExecutableName}" "$out/bin/${executableName}"
mkdir -p "$out/share/applications"
ln -s "$desktopItem/share/applications/${executableName}.desktop" "$out/share/applications/${executableName}.desktop"
ln -s "$urlHandlerDesktopItem/share/applications/${executableName}-url-handler.desktop" "$out/share/applications/${executableName}-url-handler.desktop"
# These are named vscode.png, vscode-insiders.png, etc to match the name in upstream *.deb packages.
mkdir -p "$out/share/pixmaps"
cp "$out/lib/vscode/resources/app/resources/linux/code.png" "$out/share/pixmaps/vs${executableName}.png"
# Override the previously determined VSCODE_PATH with the one we know to be correct
sed -i "/ELECTRON=/iVSCODE_PATH='$out/lib/vscode'" "$out/bin/${executableName}"
grep -q "VSCODE_PATH='$out/lib/vscode'" "$out/bin/${executableName}" # check if sed succeeded
# Remove native encryption code, as it derives the key from the executable path which does not work for us.
# The credentials should be stored in a secure keychain already, so the benefit of this is questionable
# in the first place.
rm -rf $out/lib/vscode/resources/app/node_modules/vscode-encrypt
# HOOK
runHook postInstall
'';
postFixup = ''
patchelf \
--add-needed ${pkgs.libglvnd}/lib/libGLESv2.so.2 \
--add-needed ${pkgs.libglvnd}/lib/libGL.so.1 \
--add-needed ${pkgs.libglvnd}/lib/libEGL.so.1 \
$out/lib/vscode/${sourceExecutableName}
'';
meta = old.meta // {
mainProgram = "code-insiders";
};
}
)
);
})
];
}

View file

@ -0,0 +1,7 @@
{pkgs, ...}: {
home = {
packages = with pkgs; [
zed-editor
];
};
}