如何编写脚本来更改 gnome-terminal 中的配色方案?

如何编写脚本来更改 gnome-terminal 中的配色方案?

如何编写脚本从亮模式更改为暗模式?在 GUI 中我这样做: 首选项>配置文件>未命名>颜色>内置方案(这里我选择黑白或黑底白字

据我所知,没有配置文件。我使用 Ubuntu 22.04LTS 桌面,/org文件系统中没有。我如何自动化更改配色方案的过程,使用dconf或类似工具编写整个过程的脚本?目标是通过 cron 运行脚本,从白底黑字黑底白字下午 2 点,反之亦然,早上 7 点。

我已经知道如何使用gnome-terminal保存在配置文件中的所需设置来启动,例如gnome-terminal --profile=dark。这不是我想要实现的,因为我希望已经打开的窗口更改配色方案。

答案1

请使用命令

dconf dump /org/gnome/terminal/legacy/profiles:/

并找到具有的相关“个人资料 ID” visible-name='Unnamed'

使用命令dconf write key_path new_value,您可以更改以下键的值:

/org/gnome/terminal/legacy/profiles:/<profile_id>/background-color
/org/gnome/terminal/legacy/profiles:/<profile_id>/foreground-color

例如更改为深色主题:

dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/background-color "'#000000'"
dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/foreground-color "'#ffffff'"

:b1dcc9dd-5262-4d8d-a863-c897e6d979b9你的个人资料 ID 在哪里?

答案2

我需要一个交互式解决方案来处理那些设置前景色而不检查背景色的流行工具。

此功能是我的 Bash 配置文件的一部分。它允许我使用命令colors light和在配色方案之间切换colors dark

function colors() {
    local black="'#000000'"
    local white="'#ffffff'"
    local background_color
    local foreground_color
    local default_profile="/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9"

    case $@ in
        "dark")
            background_color="$black"
            foreground_color="$white"
            ;;
        "light")
            background_color="$white"
            foreground_color="$black"
            ;;
        *)
            echo "Choose 'dark' or 'light'" >&2
            return 1
            ;;
    esac

    dconf write "$default_profile/background-color" "$background_color"
    dconf write "$default_profile/foreground-color" "$foreground_color"
}

在帮助输出中使用深灰色或深蓝色文本,这在深色背景上是无法阅读的。

通过colors light,我可以读取这些工具的输出:

在白色背景上可以看到深色的前景色。

使用时colors dark,这些工具的输出是不可读的:

深色前景色在黑色背景上不可见。

相关内容