Chromium: Difference between revisions

From NixOS Wiki
Sdht0 (talk | contribs)
Remove outdated code about googletalk and flash
Klinger (talk | contribs)
mNo edit summary
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Enable GPU accelerated video decoding (VA-API) ==  
== Installation ==
=== NixOS ===
Add {{nixos:package|chromium}} to {{NixOS Manual|name=systemPackages|anchor=#sec-package-management}}.


VA-API is enabled by default now in Chromium. Check chrome://gpu if it is working and if VA is detected. You may need to enable Hardware-accelerated video decode in chrome://flags.
== Accelerated video playback ==


Make sure the required VA-API drivers are installed: [[Accelerated Video Playback]]
Make sure [[Accelerated Video Playback]] is setup on the system properly. Check {{ic|chrome://gpu}} to see if Chromium has enabled hardware acceleration.


Make sure your driver works by running: <code>nix-shell -p libva-utils --run vainfo</code>
If accelerated video playback is not working, check relevant flags at {{ic|chrome://flags}}, or enable them using the cli:
 
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
== Gnome Shell extensions ==
{
 
  environment.systemPackages = with pkgs; [
Gnome Shell extensions can be enabled with <code>enableGnomeExtensions = true</code>. It is a mozilla plugin, therefore it does not work currently with Chromium.
    (chromium.override {
      commandLineArgs = [
        "--enable-features=VaapiVideoDecodeLinuxGL"
        "--ignore-gpu-blocklist"
        "--enable-zero-copy"
      ];
    })
  ];
}
</nowiki>}}


== Enabling native Wayland support ==
== Enabling native Wayland support ==


Since Nixos 22.05 you can turn on native wayland support in all chrome and most electron apps by setting an environment variable: <code>environment.sessionVariables.NIXOS_OZONE_WL = "1"</code> ([https://nixos.org/manual/nixos/unstable/release-notes.html#sec-release-22.05-notable-changes see notable changes])
You can turn on native Wayland support in all chrome and most electron apps by setting an environment variable: <code>environment.sessionVariables.NIXOS_OZONE_WL = "1"</code>.
 
In earlier versions you can enable wayland support by setting the appropriate command-line flags:
 
<syntaxhighlight lang="nix">
nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
</syntaxhighlight>
 
== Overriding Chromium ==
 
Note: This section was never properly tested. Please update it accordingly if you notice issues with the examples and feel free to extend it.
 
To create a customized Chromium the following approach can be used:
<pre>
chromium.mkDerivation (base: { name = "my-chromium"; gnFlags = { test_flag = 42; }; })
</pre>


It should also be possible to override a Chromium attribute using <pre>chromium.browser.overrideAttrs ...</pre>.
== Enabling DRM (Widevine support) ==
By default, {{nixos:package|chromium}} does not support playing DRM protected media. However, there is a build time flag to include the unfree Widevine blob from nixpkgs:
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
  environment.systemPackages = with pkgs; [
    (chromium.override { enableWideVine = true; })
  ];
}
</nowiki>}}


[[Category:Configuration]]
[[Category:Applications]]
[[Category:Applications]]

Latest revision as of 18:53, 10 May 2024

Installation

NixOS

Add chromium to systemPackages.

Accelerated video playback

Make sure Accelerated Video Playback is setup on the system properly. Check chrome://gpu to see if Chromium has enabled hardware acceleration.

If accelerated video playback is not working, check relevant flags at chrome://flags, or enable them using the cli:

/etc/nixos/configuration.nix
{
  environment.systemPackages = with pkgs; [
    (chromium.override {
      commandLineArgs = [
        "--enable-features=VaapiVideoDecodeLinuxGL"
        "--ignore-gpu-blocklist"
        "--enable-zero-copy"
      ];
    })
  ];
}

Enabling native Wayland support

You can turn on native Wayland support in all chrome and most electron apps by setting an environment variable: environment.sessionVariables.NIXOS_OZONE_WL = "1".

Enabling DRM (Widevine support)

By default, chromium does not support playing DRM protected media. However, there is a build time flag to include the unfree Widevine blob from nixpkgs:

/etc/nixos/configuration.nix
{
  environment.systemPackages = with pkgs; [
    (chromium.override { enableWideVine = true; })
  ];
}