【问题标题】:Override prefers-color-scheme in Electron覆盖电子中的首选颜色方案
【发布时间】:2020-01-08 01:14:40
【问题描述】:

我有一个使用 CSS prefers-color-scheme 实现暗模式的 Electron 应用程序。这在 Windows 和 Mac 上运行良好,但在 Linux 上却不行(可能是因为 Chromium 没有查询桌面主题的方法)。

我想提供一个选项来覆盖 Chromium 自动为 prefers-color-scheme 找到的值。有没有办法使用 Electron API 做到这一点?

【问题讨论】:

    标签: css electron chromium


    【解决方案1】:

    有一个API!您可以nativeTheme.themeSourcesystemlightdark

    比如在我的background.ts中,添加这段代码:

    import { /* existing stuff */, nativeTheme } from "electron";
    
    nativeTheme.themeSource = 'light';
    

    【讨论】:

    • 我从来没有让它工作,它是在 Linux 之外未定义还是什么?
    • 问你怎么做会不会太麻烦? if (app) app.on('ready', function() { nativeTheme = electron.nativeTheme; nativeTheme.themeSource = 'dark'; }); 在 Windows 上总是为我撞到树上。 (nativeTheme 未定义。)
    • 我几乎做了同样的事情,但把它放在顶层。我假设您正在使用 Typescript(如果不是,您现在应该修复它!) - 您是否收到 electron.nativeTheme 的类型错误?可能值得在新问题中发布更多代码。
    • 好建议:stackoverflow.com/questions/59633484/… 如果您想尝试一下。不,我是一只老狗,Typescript 是一个新把戏 :) 坦率地说,直到 node 出现大约 10 年后,我才认为 Javascript 是一种时尚。 PS,感谢您添加代码示例:)
    猜你喜欢
    • 1970-01-01
    • 2011-01-27
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 2014-08-02
    相关资源
    最近更新 更多