如何通过命令行将 gnome-terminal 配色方案设置为“Solarized Dark”?

Men*_*hak 5 command-line gnome-terminal 17.04

在 Ubuntu 17.04 中,gnome-terminal 使用“来自系统主题的颜色”

在此处输入图片说明

我正在寻找一种 bash/脚本方式来修改它,我想让 gnome-terminal 使用 Solarized 主题。这意味着,取消选中“使用系统中的颜色”并从内置方案中选择 Solarized Dark。

在此处输入图片说明

我能够列出可以获取/设置的可能键:

UUID=$(gsettings get org.gnome.Terminal.ProfilesList default | tr -d \')
gsettings list-keys org.gnome.Terminal.Legacy.Profile:/$UUID/
Run Code Online (Sandbox Code Playgroud)

这是我得到的列表,但我不知道要设置其中的哪一个来获得 Solarized Dark。

audible-bell
cursor-shape
scroll-on-keystroke
cursor-colors-set
cjk-utf8-ambiguous-width
default-size-rows
encoding
use-theme-colors
custom-command
visible-name
login-shell
exit-action
use-system-font
rewrap-on-resize
backspace-binding
foreground-color
bold-color-same-as-fg
background-transparency-percent
cursor-blink-mode
default-show-menubar
default-size-columns
background-color
palette
cursor-foreground-color
allow-bold
use-theme-transparency
highlight-foreground-color
font
delete-binding
scrollback-unlimited
use-transparent-background
cursor-background-color
highlight-background-color
scroll-on-output
scrollbar-policy
use-custom-command
bold-color
highlight-colors-set
scrollback-lines
word-char-exceptions
Run Code Online (Sandbox Code Playgroud)

我尝试将其设置为 true/false,但没有任何区别

gsettings set org.gnome.Terminal.Legacy.Profile:/$UUID/ use-theme-colors false
Run Code Online (Sandbox Code Playgroud)

Ali*_*deh 3

gsettings另外,我在或中找不到类似 Solarized Dark 的东西dconf

方法一

但根据这个答案,我们可以找到 Solarized Dark RGB参数,并将gnome-terminal颜色设置为该参数。

您可以通过以下方式执行此操作dconf-cli

sudo apt install dconf-cli
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令找到您的个人资料 ID:

dconf list /org/gnome/terminal/legacy/profiles:/
Run Code Online (Sandbox Code Playgroud)

可以是这样的:

:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/
Run Code Online (Sandbox Code Playgroud)

并在 gnome-terminal 上设置此值以制作您想要的主题。

dconf write /org/gnome/terminal/legacy/profiles:/<profile id>use-theme-colors "false"
dconf write /org/gnome/terminal/legacy/profiles:/<profile id>background-color "'rgb(0,43,54)'"
dconf write /org/gnome/terminal/legacy/profiles:/<profile id>foreground-color "'rgb(131,148,150)'"
Run Code Online (Sandbox Code Playgroud)

例如:

dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/use-theme-colors "false"
dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/background-color "'rgb(0,43,54)'"
dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/foreground-color "'rgb(131,148,150)'"
Run Code Online (Sandbox Code Playgroud)

方法2

您也可以通过以下方式执行此操作gsettings

gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ use-theme-colors false    
gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ background-color 'rgb(0,43,54)'
gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ foreground-color 'rgb(131,148,150)'
Run Code Online (Sandbox Code Playgroud)

b1dcc9dd-5262-4d8d-a863-c897e6d979b9是我的个人资料 ID,您可以使用以下命令找到您的个人资料 ID:

gsettings get org.gnome.Terminal.ProfilesList default
Run Code Online (Sandbox Code Playgroud)