gpu stuff for zed on x11
This commit is contained in:
@@ -1,33 +1,39 @@
|
||||
{ self, inputs, ... }:
|
||||
{ self, ... }:
|
||||
let
|
||||
packageName = "zed-editor";
|
||||
|
||||
zedWrapper = inputs.wrappers.lib.wrapModule ({ config, lib, wlib, ... }: {
|
||||
options = {
|
||||
text-to-say = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Text for the ascii cow to say.";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
binName = "my-pkg";
|
||||
package = config.pkgs.cowsay;
|
||||
args = [ config.text-to-say ];
|
||||
};
|
||||
});
|
||||
vulkanIcd = "/usr/share/vulkan/icd.d/nvidia_icd.json";
|
||||
eglVendor = "/usr/share/glvnd/egl_vendor.d/10_nvidia.json";
|
||||
in
|
||||
{
|
||||
perSystem = { system, pkgs, lib, ... }: {
|
||||
packages."${packageName}" = (zedWrapper.apply {
|
||||
inherit pkgs;
|
||||
text-to-say = "Hello from wrapped module!";
|
||||
}).wrapper;
|
||||
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."${packageName}" = { config, pkgs, lib, ... }: {
|
||||
home.packages = [
|
||||
inputs.self.packages.${pkgs.stdenv.hostPlatform.system}."${packageName}"
|
||||
];
|
||||
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;
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user