ark/overlays/vscode-wayland.nix

52 lines
1.4 KiB
Nix
Raw Normal View History

2021-08-21 18:57:52 +03:00
_: prev:
let
pkgs = prev;
lib = pkgs.lib;
vscodeWayland =
let
flags = [
"--flag-switches-begin"
"--enable-features=UseOzonePlatform,WebRTCPipeWireCapturer,IgnoreGPUBlocklist,Vulkan"
"--flag-switches-end"
"--ozone-platform=wayland"
"--enable-webrtc-pipewire-capturer"
"--ignore-gpu-blocklist"
"--enable-gpu-rasterization"
"--enable-zero-copy"
"--disable-gpu-driver-bug-workarounds"
];
in
pkgs.writeScriptBin "vscode-wayland" ''
#!${pkgs.stdenv.shell}
${pkgs.vscode}/bin/code ${lib.concatStringsSep " " flags}
'';
in
{
vscodeWayland =
let
pname = "vscode";
desktop = pkgs.makeDesktopItem {
name = pname;
exec = pname;
icon = "vscode";
desktopName = "VSCode Wayland";
};
in
lib.hiPrio (pkgs.stdenv.mkDerivation {
inherit pname;
version = pkgs.vscode.version;
nativeBuildInputs = [ pkgs.makeWrapper ];
phases = [ "installPhase" "fixupPhase" ];
installPhase = ''
mkdir -p $out/bin
install -m755 ${vscodeWayland}/bin/${pname}-wayland $out/bin/${pname}
cp -r ${desktop}/share $out/share
'';
fixupPhase = ''
wrapProgram $out/bin/${pname} \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath (with pkgs; [ vulkan-loader vulkan-extension-layer libGL ])}
'';
});
}