39 lines
1.1 KiB
Nix
39 lines
1.1 KiB
Nix
{ self, ... }:
|
|
let
|
|
packageName = "zed-editor";
|
|
vulkanIcd = "/usr/share/vulkan/icd.d/nvidia_icd.json";
|
|
eglVendor = "/usr/share/glvnd/egl_vendor.d/10_nvidia.json";
|
|
in
|
|
{
|
|
perSystem = { pkgs, ... }: {
|
|
packages."${packageName}" = pkgs.symlinkJoin {
|
|
name = "zed-editor-host-gpu";
|
|
paths = [ pkgs.zed-editor ];
|
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
meta = pkgs.zed-editor.meta // {
|
|
mainProgram = "zeditor";
|
|
};
|
|
postBuild = ''
|
|
for exe in $out/bin/*; do
|
|
wrapProgram "$exe" \
|
|
--unset WAYLAND_DISPLAY \
|
|
--unset GDK_BACKEND \
|
|
--set VK_DRIVER_FILES ${vulkanIcd} \
|
|
--set VK_ICD_FILENAMES ${vulkanIcd} \
|
|
--set __EGL_VENDOR_LIBRARY_FILENAMES ${eglVendor} \
|
|
--set __GLX_VENDOR_LIBRARY_NAME nvidia
|
|
done
|
|
'';
|
|
};
|
|
};
|
|
|
|
flake.modules.homeManager.zed-editor = { pkgs, ... }: {
|
|
home.packages = [ pkgs.vulkan-tools ];
|
|
|
|
programs.zed-editor = {
|
|
enable = true;
|
|
package = self.packages.${pkgs.stdenv.hostPlatform.system}."${packageName}";
|
|
installRemoteServer = true;
|
|
};
|
|
};
|
|
} |