mirror of
https://github.com/sadan4/dotfiles.git
synced 2025-06-22 12:17:00 -04:00
Merge branch 'main' into refactor
This commit is contained in:
commit
59a68ea7f6
11 changed files with 455 additions and 29 deletions
|
@ -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;
|
||||
})
|
||||
|
||||
}
|
||||
)
|
||||
|
||||
];
|
||||
}
|
||||
|
|
9
common/users/homeModules/vscode/default.nix
Normal file
9
common/users/homeModules/vscode/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./overlays.nix
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
vscode-insider
|
||||
];
|
||||
}
|
62
common/users/homeModules/vscode/overlays.nix
Normal file
62
common/users/homeModules/vscode/overlays.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
)
|
||||
);
|
||||
})
|
||||
];
|
||||
}
|
7
common/users/homeModules/zed.nix
Normal file
7
common/users/homeModules/zed.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{pkgs, ...}: {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
zed-editor
|
||||
];
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue