如何编写脚本从亮模式更改为暗模式?在 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
,这些工具的输出是不可读的: