kayla: seed chrome's GTK theme via initial_preferences next to the binary
This commit is contained in:
parent
9f4650b798
commit
744a2c2ed4
1 changed files with 22 additions and 6 deletions
|
|
@ -3,6 +3,27 @@
|
||||||
# FredOS-Gaming/FredOS-Macbook and stay off here). Windows refugees get a
|
# FredOS-Gaming/FredOS-Macbook and stay off here). Windows refugees get a
|
||||||
# taskbar, a start menu and a settings app that look like what they left.
|
# taskbar, a start menu and a settings app that look like what they left.
|
||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
# Under KDE, Chrome's GetDefaultSystemTheme() (ui/linux/linux_ui_factory.cc)
|
||||||
|
# hardcodes SystemTheme::kQt for every KDE* desktop — it reads only the
|
||||||
|
# detected desktop environment. No policy and no command-line switch changes
|
||||||
|
# that default (--ui-toolkit picks which backend gets built, not the pref),
|
||||||
|
# so the profile pref is the only lever.
|
||||||
|
#
|
||||||
|
# Chrome seeds a new profile from `initial_preferences`, which it looks for
|
||||||
|
# in DIR_EXE — the directory holding the binary (first_run_internal_linux.cc)
|
||||||
|
# — so it has to be baked into the package, not dropped in /etc. Everything
|
||||||
|
# outside the "distribution" key is copied into the profile on first run.
|
||||||
|
#
|
||||||
|
# system_theme: 0 = Classic, 1 = GTK, 2 = Qt (ui/color/system_theme.h).
|
||||||
|
chromeGtkDefault = pkgs.google-chrome.overrideAttrs (old: {
|
||||||
|
postInstall = (old.postInstall or "") + ''
|
||||||
|
cp ${pkgs.writeText "chrome-initial-preferences" (builtins.toJSON {
|
||||||
|
extensions.theme.system_theme = 1;
|
||||||
|
})} $out/share/google/chrome/initial_preferences
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
in
|
||||||
{
|
{
|
||||||
config = lib.mkIf (config.networking.hostName == "FredOS-Kayla") {
|
config = lib.mkIf (config.networking.hostName == "FredOS-Kayla") {
|
||||||
services.displayManager.sddm = {
|
services.displayManager.sddm = {
|
||||||
|
|
@ -59,12 +80,7 @@
|
||||||
stylix.targets.chromium.enable = false;
|
stylix.targets.chromium.enable = false;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# Chrome picks its toolkit from the desktop environment, and under KDE
|
chromeGtkDefault
|
||||||
# that's the Qt backend (hence the libqt{5,6}_shim.so it ships) — which
|
|
||||||
# is what's drawing the odd decorations. --ui-toolkit overrides that
|
|
||||||
# detection, so it uses GTK, i.e. the adw-gtk3 theme stylix already
|
|
||||||
# writes. No manual trip through Settings → Appearance.
|
|
||||||
(google-chrome.override { commandLineArgs = "--ui-toolkit=gtk"; })
|
|
||||||
spotify
|
spotify
|
||||||
vesktop
|
vesktop
|
||||||
faugus-launcher
|
faugus-launcher
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue