better chromium / vscode wayland
This commit is contained in:
parent
3918630973
commit
a991ffa4bf
53
overlays/chromium-wayland.nix
Normal file
53
overlays/chromium-wayland.nix
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
_: prev:
|
||||||
|
let
|
||||||
|
pkgs = prev;
|
||||||
|
lib = pkgs.lib;
|
||||||
|
chromiumWayland =
|
||||||
|
let
|
||||||
|
flags = [
|
||||||
|
"--enable-vulkan"
|
||||||
|
"--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 "chromium-wayland" ''
|
||||||
|
#!${pkgs.stdenv.shell}
|
||||||
|
${pkgs.chromium}/bin/chromium ${lib.concatStringsSep " " flags}
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
chromiumWayland =
|
||||||
|
let
|
||||||
|
pname = "chromium";
|
||||||
|
desktop = pkgs.makeDesktopItem {
|
||||||
|
name = pname;
|
||||||
|
exec = pname;
|
||||||
|
icon = "chromium-browser";
|
||||||
|
desktopName = "Chromium Wayland";
|
||||||
|
genericName = "Web Browser";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
lib.hiPrio (pkgs.stdenv.mkDerivation {
|
||||||
|
inherit pname;
|
||||||
|
version = pkgs.chromium.version;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
||||||
|
phases = [ "installPhase" "fixupPhase" ];
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
install -m755 ${chromiumWayland}/bin/${pname}-wayland $out/bin/${pname}
|
||||||
|
cp -r ${desktop}/share $out/share
|
||||||
|
'';
|
||||||
|
/*fixupPhase = ''
|
||||||
|
wrapProgram $out/bin/${name} \
|
||||||
|
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath (with pkgs; [ vulkan-loader libGL ])}
|
||||||
|
'';*/
|
||||||
|
});
|
||||||
|
}
|
@ -9,6 +9,7 @@ final: prev: rec {
|
|||||||
sha256 = "sha256-EraTDRKd6t0c9U68tSRdGkeB1hfqNS4KUewEXwkL8io=";
|
sha256 = "sha256-EraTDRKd6t0c9U68tSRdGkeB1hfqNS4KUewEXwkL8io=";
|
||||||
};
|
};
|
||||||
isWayland = true;
|
isWayland = true;
|
||||||
|
enableVulkan = true;
|
||||||
extraOptions = [
|
extraOptions = [
|
||||||
"--enable-vulkan"
|
"--enable-vulkan"
|
||||||
"--ignore-gpu-blocklist"
|
"--ignore-gpu-blocklist"
|
||||||
@ -24,6 +25,7 @@ final: prev: rec {
|
|||||||
, binaryName
|
, binaryName
|
||||||
, desktopName
|
, desktopName
|
||||||
, isWayland ? false
|
, isWayland ? false
|
||||||
|
, enableVulkan ? false
|
||||||
, extraOptions ? [ ]
|
, extraOptions ? [ ]
|
||||||
, autoPatchelfHook
|
, autoPatchelfHook
|
||||||
, makeDesktopItem
|
, makeDesktopItem
|
||||||
@ -140,7 +142,7 @@ final: prev: rec {
|
|||||||
|
|
||||||
flags = (lib.optionals isWayland [
|
flags = (lib.optionals isWayland [
|
||||||
"--flag-switches-begin"
|
"--flag-switches-begin"
|
||||||
"--enable-features=UseOzonePlatform,WebRTCPipeWireCapturer"
|
"--enable-features=UseOzonePlatform,WebRTCPipeWireCapturer${lib.optionalString enableVulkan ",Vulkan"}"
|
||||||
"--flag-switches-end"
|
"--flag-switches-end"
|
||||||
"--ozone-platform=wayland"
|
"--ozone-platform=wayland"
|
||||||
"--enable-webrtc-pipewire-capturer"
|
"--enable-webrtc-pipewire-capturer"
|
||||||
|
51
overlays/vscode-wayland.nix
Normal file
51
overlays/vscode-wayland.nix
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
_: 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 ])}
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
}
|
@ -94,92 +94,6 @@ in
|
|||||||
fontComb = "${font} ${toString fontSize}";
|
fontComb = "${font} ${toString fontSize}";
|
||||||
fontPackage = pkgs.iosevka;
|
fontPackage = pkgs.iosevka;
|
||||||
|
|
||||||
chromiumWayland =
|
|
||||||
let
|
|
||||||
flags = [
|
|
||||||
"--enable-vulkan"
|
|
||||||
"--flag-switches-begin"
|
|
||||||
"--enable-features=UseOzonePlatform,WebRTCPipeWireCapturer,IgnoreGPUBlocklis"
|
|
||||||
"--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 "chromium-wayland" ''
|
|
||||||
#!${pkgs.stdenv.shell}
|
|
||||||
VK_ICD_FILENAMES="${pkgs.amdvlk}/share/vulkan/icd.d/amd_icd64.json:${pkgs.driversi686Linux.amdvlk}/share/vulkan/icd.d/amd_icd32.json" chromium ${lib.concatStringsSep " " flags}
|
|
||||||
'';
|
|
||||||
vscodiumWayland =
|
|
||||||
let
|
|
||||||
flags = [
|
|
||||||
"--enable-vulkan"
|
|
||||||
"--flag-switches-begin"
|
|
||||||
"--enable-features=UseOzonePlatform,WebRTCPipeWireCapturer,IgnoreGPUBlocklist"
|
|
||||||
"--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 "vscodium-wayland" ''
|
|
||||||
#!${pkgs.stdenv.shell}
|
|
||||||
code ${lib.concatStringsSep " " flags}
|
|
||||||
'';
|
|
||||||
vscodiumWaylandPkg =
|
|
||||||
let
|
|
||||||
name = "vscodium-wayland";
|
|
||||||
desktop = pkgs.makeDesktopItem {
|
|
||||||
inherit name;
|
|
||||||
exec = name;
|
|
||||||
icon = "vscodium";
|
|
||||||
desktopName = "VSCodium Wayland";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
pkgs.stdenv.mkDerivation {
|
|
||||||
name = name;
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
||||||
phases = [ "installPhase" "fixupPhase" ];
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
ln -s ${vscodiumWayland}/bin/${name} $out/bin
|
|
||||||
ln -s ${desktop}/share $out/share
|
|
||||||
'';
|
|
||||||
fixupPhase = ''
|
|
||||||
wrapProgram $out/bin/${name} \
|
|
||||||
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath (with pkgs; [ vulkan-loader vulkan-extension-layer libGL ])}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
chromiumWaylandPkg =
|
|
||||||
let
|
|
||||||
name = "chromium-wayland";
|
|
||||||
desktop = pkgs.makeDesktopItem {
|
|
||||||
inherit name;
|
|
||||||
exec = name;
|
|
||||||
icon = "chromium-browser";
|
|
||||||
desktopName = "Chromium Wayland";
|
|
||||||
genericName = "Web Browser";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
pkgs.stdenv.mkDerivation {
|
|
||||||
name = name;
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
||||||
phases = [ "installPhase" "fixupPhase" ];
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
ln -s ${chromiumWayland}/bin/${name} $out/bin
|
|
||||||
ln -s ${desktop}/share $out/share
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
colorSchemeLight = {
|
colorSchemeLight = {
|
||||||
primary = {
|
primary = {
|
||||||
normal = {
|
normal = {
|
||||||
@ -348,7 +262,6 @@ in
|
|||||||
homeDirectory = nixosConfig.users.users.patriot.home;
|
homeDirectory = nixosConfig.users.users.patriot.home;
|
||||||
packages = with pkgs;
|
packages = with pkgs;
|
||||||
[
|
[
|
||||||
libnotify-latest
|
|
||||||
# Font stuff
|
# Font stuff
|
||||||
fontPackage
|
fontPackage
|
||||||
noto-fonts-cjk
|
noto-fonts-cjk
|
||||||
@ -356,9 +269,9 @@ in
|
|||||||
dejavu_fonts
|
dejavu_fonts
|
||||||
(nerdfonts.override { fonts = [ "Iosevka" ]; })
|
(nerdfonts.override { fonts = [ "Iosevka" ]; })
|
||||||
# Programs
|
# Programs
|
||||||
discord-canary-system
|
# discord-canary-system
|
||||||
# element-desktop
|
# element-desktop
|
||||||
gh
|
# gh
|
||||||
vulkan-tools
|
vulkan-tools
|
||||||
audacity
|
audacity
|
||||||
krita
|
krita
|
||||||
@ -368,8 +281,6 @@ in
|
|||||||
gnome3.gnome-boxes
|
gnome3.gnome-boxes
|
||||||
wine-staging
|
wine-staging
|
||||||
cachix
|
cachix
|
||||||
chromiumWaylandPkg
|
|
||||||
vscodiumWaylandPkg
|
|
||||||
appimage-run
|
appimage-run
|
||||||
bitwarden
|
bitwarden
|
||||||
pfetch
|
pfetch
|
||||||
@ -511,6 +422,7 @@ in
|
|||||||
};
|
};
|
||||||
chromium = {
|
chromium = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = pkgs.chromiumWayland;
|
||||||
extensions = [
|
extensions = [
|
||||||
"gcbommkclmclpchllfjekcdonpmejbdp" # https everywhere
|
"gcbommkclmclpchllfjekcdonpmejbdp" # https everywhere
|
||||||
"cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock
|
"cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock
|
||||||
@ -667,6 +579,7 @@ in
|
|||||||
};
|
};
|
||||||
vscode = {
|
vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = pkgs.vscodeWayland;
|
||||||
extensions =
|
extensions =
|
||||||
let
|
let
|
||||||
mkExt = n: v: p: s: { name = n; version = v; publisher = p; sha256 = s; };
|
mkExt = n: v: p: s: { name = n; version = v; publisher = p; sha256 = s; };
|
||||||
|
Loading…
Reference in New Issue
Block a user