首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何实现光和暗模式之间的自动切换?

如何实现光和暗模式之间的自动切换?
EN

Unix & Linux用户
提问于 2020-11-18 21:15:52
回答 1查看 887关注 0票数 2

我是Linux的用户。我经常希望我在Linux中拥有的一个特性是能够根据一天中的时间在光和暗模式之间切换,就像在macOS和移动设备中一样。

我已经为从光模式到黑暗模式的转换设置了以下脚本:

代码语言:javascript
运行
复制
#!/bin/bash
notify-send "Switching to dark mode"
gsettings set org.cinnamon.desktop.wm.preferences theme Mint-Y-Dark
gsettings set org.cinnamon.desktop.interface gtk-theme Mint-Y-Dark
gsettings set org.cinnamon.theme name Mint-Y-Dark

我还有另一个相反的方向

代码语言:javascript
运行
复制
#!/bin/bash
gsettings set org.cinnamon.desktop.wm.preferences theme Mint-Y
gsettings set org.cinnamon.desktop.interface gtk-theme Mint-Y
gsettings set org.cinnamon.theme name Mint-Y

目前,当我想在这两个主题之间切换时,我会手动运行这些。

大多数程序都尊重整个操作系统的主题,这意味着这种方法运行得非常好!然而,我想用这种方法解决三个问题:

  1. 根据一天中的时间自动切换光/暗模式(如在macOS中)。我试过使用cronanacron,但它们在这方面效果不佳。当我的电脑关机一段时间后,我希望它意识到切换的时间已经过去,并执行模式切换(如在macOS和各种移动设备中);
  2. 我希望我的终端(GNOME终端,肉桂默认)从轻主题切换到黑暗主题(反之亦然);以及
  3. 我希望我的文本编辑器(Emacs)加载一个轻/暗的主题。

即使只是(1)工作也会很好!

EN

回答 1

Unix & Linux用户

发布于 2020-11-19 16:05:12

最好有一个脚本与您的所有命令,以强制光或黑暗模式。下面是一个示例:

代码语言:javascript
运行
复制
#!/bin/bash

function set_light_mode () {
    echo "setting light mode"
}

function set_dark_mode () {
    echo "setting dark mode"
}

case "$1" in
    light)
        set_light_mode
        ;;
    dark)
        set_dark_mode
        ;;
    *)
        light_time="0800"
        dark_time="1700"
        d="$(date +"%H%M")"

        if [ "$d" -ge "$light_time" ] && [ "$d" -lt "$dark_time" ]; then
            set_light_mode
        else
            set_dark_mode
        fi
        ;;
esac

现在你可以:

  • 只要你想用一个命令,随时执行它。要么提供第一个参数,darklight来设置您的X,而不考虑时间。或者不提供任何论据,目前的时间将决定。
  • 在crontab中添加两个条目,用于上述时间(没有参数)或任何时间。当您的笔记本电脑打开,他们将强制X设置取决于当前时间。
  • 添加一个命令来执行脚本(没有参数)到您最喜欢的DE的“自动启动应用程序”中,使用像这样的GUI,这个过程对于Xfce、Kde、Gnome等等都是类似的,它们都遵循一些标准的规格说明。您也可以通过控制台完成此操作。

注意:我们不检查X是否运行在上面,我想您的命令不需要这个(除了我认为在sush的情况下可能会失败的send-notify )。

您可以在上面的函数中找到并添加更多的命令,以切换DE或某些程序的主题、模式等,通过控制台可以完成的任何操作都有详细的文档记录。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/620351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档