feat(work-pc): setup Wayland with NVIDIA's GBM backend
This commit is contained in:
parent
94936f5d01
commit
594e74dd43
|
@ -13,7 +13,7 @@
|
||||||
services.xserver.displayManager.gdm.enable = true;
|
services.xserver.displayManager.gdm.enable = true;
|
||||||
services.xserver.displayManager.gdm.wayland = true;
|
services.xserver.displayManager.gdm.wayland = true;
|
||||||
services.xserver.displayManager.gdm.nvidiaWayland = true;
|
services.xserver.displayManager.gdm.nvidiaWayland = true;
|
||||||
services.xserver.displayManager.defaultSession = "gnome-xorg";
|
# services.xserver.displayManager.defaultSession = "gnome-xorg";
|
||||||
services.xserver.desktopManager.gnome.enable = true;
|
services.xserver.desktopManager.gnome.enable = true;
|
||||||
services.xserver.desktopManager.gnome.extraGSettingsOverrides = ''
|
services.xserver.desktopManager.gnome.extraGSettingsOverrides = ''
|
||||||
[org/gnome/desktop/input-sources]
|
[org/gnome/desktop/input-sources]
|
||||||
|
|
26
flake.nix
26
flake.nix
|
@ -49,6 +49,31 @@
|
||||||
, nvim-ts-context-commentstring }@inputs:
|
, nvim-ts-context-commentstring }@inputs:
|
||||||
let
|
let
|
||||||
overlays = {
|
overlays = {
|
||||||
|
# newer packages that support NVIDIA's GBM Wayland backend
|
||||||
|
wayland = self: super: {
|
||||||
|
egl-wayland = super.egl-wayland.overrideAttrs (old: rec {
|
||||||
|
pname = "egl-wayland";
|
||||||
|
version = "1.1.9-master";
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
src = self.fetchFromGitHub {
|
||||||
|
owner = "Nvidia";
|
||||||
|
repo = "egl-wayland";
|
||||||
|
rev = "daab8546eca8428543a4d958a2c53fc747f70672";
|
||||||
|
sha256 = "IrLeqBW74mzo2OOd5GzUPDcqaxrsoJABwYyuKTGtPsw=";
|
||||||
|
};
|
||||||
|
buildInputs = old.buildInputs ++ [ self.wayland-protocols ];
|
||||||
|
});
|
||||||
|
xwayland = super.xwayland.overrideAttrs (old: rec {
|
||||||
|
version = "21.1.3";
|
||||||
|
src = self.fetchFromGitLab {
|
||||||
|
domain = "gitlab.freedesktop.org";
|
||||||
|
owner = "xorg";
|
||||||
|
repo = "xserver";
|
||||||
|
rev = "xwayland-21.1.3";
|
||||||
|
sha256 = "VnFzKyxg/6gVBg+bHTwDbUwCQHWt04gmiaAFLSwg7XA=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
neovim = self: super:
|
neovim = self: super:
|
||||||
with super.pkgs.vimUtils; {
|
with super.pkgs.vimUtils; {
|
||||||
neovim-nightly = neovim.packages.${self.system}.neovim;
|
neovim-nightly = neovim.packages.${self.system}.neovim;
|
||||||
|
@ -87,6 +112,7 @@
|
||||||
modules = [ nixosModules.flakeDefaults ];
|
modules = [ nixosModules.flakeDefaults ];
|
||||||
overlays = [
|
overlays = [
|
||||||
nur.overlay
|
nur.overlay
|
||||||
|
overlays.wayland
|
||||||
overlays.neovim
|
overlays.neovim
|
||||||
overlays.deconz
|
overlays.deconz
|
||||||
overlays.pop-shell
|
overlays.pop-shell
|
||||||
|
|
|
@ -15,4 +15,12 @@
|
||||||
extraPackages = with pkgs; [ libvdpau-va-gl vaapiVdpau ];
|
extraPackages = with pkgs; [ libvdpau-va-gl vaapiVdpau ];
|
||||||
extraPackages32 = with pkgs.pkgsi686Linux; [ libvdpau-va-gl vaapiVdpau ];
|
extraPackages32 = with pkgs.pkgsi686Linux; [ libvdpau-va-gl vaapiVdpau ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# NVIDIA GBM setup
|
||||||
|
environment.variables = {
|
||||||
|
GBM_BACKENDS_PATH = "/run/opengl-driver/lib/gbm";
|
||||||
|
GBM_BACKEND = "nvidia-drm";
|
||||||
|
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||||
|
OCL_ICD_VENDORS = "/run/opengl-driver/etc/OpenCL/vendors";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,10 @@ in {
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = with pkgs;
|
package = with pkgs;
|
||||||
wrapFirefox firefox-unwrapped { cfg.enableFXCastBridge = true; };
|
wrapFirefox firefox-unwrapped {
|
||||||
|
forceWayland = true;
|
||||||
|
cfg.enableFXCastBridge = true;
|
||||||
|
};
|
||||||
profiles = {
|
profiles = {
|
||||||
private = {
|
private = {
|
||||||
id = 0;
|
id = 0;
|
||||||
|
|
Loading…
Reference in a new issue