{ pkgs, config, ... }: let chromium_extension = [ "nngceckbapebfimnlniiiahkandclblb" # Bitwarden "lhobafahddgcelffkeicbaginigeejlf" # Allow Cors "dnhpnfgdlenaccegplpojghhmaamnnfp" # Augmented Steam "mdjildafknihdffpkfmmpnpoiajfjnjd" # Consent-O-Matic "eimadpbcbfnmbkopoojfekhnkhdbieeh" # Dark Reader "mnjggcdmjocbbbhaepdhchncahnbgone" # Sponsor Block "epocinhmkcnjfjobnglchpbncndobblj" # Mastodon Gaze "blipmdconlkpinefehnmjammfjpmpbjk" # Lighthouse "ggijpepdpiehgbiknmfpfbhcalffjlbj" # Open in mpv "cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock Origin "gbmdgpbipfallnflgajpaliibnhdgobh" # JSON Viewer "nhdogjmejiglipccpnnnanhbledajbpd" # Vue Devtools "blipmdconlkpinefehnmjammfjpmpbjk" # Lighthouse "fmkadmapgofadopljbjfkapdkoienihi" # React Devtools "bmnlcjabgnpnenekpadlanbbkooimhnj" # Honey "kbfnbcaeplbcioakkpcpgfkobkghlhen" # Grammarly ]; isEnabled = if (config.machine.isGraphical && !config.machine.isGeneric) then true else false; dictionaries = with pkgs.hunspellDictsChromium; [ en_US de_DE ]; commandLineArgs = [ "--enable-wayland-ime" "--ignore-gpu-blocklist" "--enable-gpu-rasterization" "--enable-zero-copy" "--disable-features=UseChromeOSDirectVideoDecoder" "--enable-features=WaylandWindowDecorations,VaapiVideoDecoder,VaapiVideoEncoder,VaapiVideoDecodeLinuxGL,WebRTCPipeWireCapturer" ]; extensions = map (eid: { id = eid; }) chromium_extension; in { programs.chromium = { inherit dictionaries commandLineArgs extensions; enable = isEnabled; }; programs.google-chrome = { inherit commandLineArgs; enable = isEnabled; }; }