Я хочу связать ярлык, чтобы изменить мои соляризованные цветовые схемы (темные и светлые). Для этого мне нужно знать команду для терминала, чтобы изменить его цветовую схему, но я не нашел такой, и мне нужно время от времени переходить в меню настроек и переключать предустановленные схемы. Есть ли способ сделать такой тип переключателя для цветовых схем терминала?
Терминал XFCE4 хранит пользовательские настройки в $XDG_CONFIG_HOME/xfce4/terminal/terminalrc
(обычно, ~/.config/xfce4/terminal/terminalrc
- не мог бы существовать, если Вы не изменили предпочтений). Я нашел, что Терминал XFCE4 наблюдает этот файл и перезагружает настройки, когда он изменяется, таким образом, можно записать в этот файл для изменения настроек.
Однако нет никакого однократного въезда, который можно отредактировать для изменения цветов. Различные палитры являются на самом деле рядом настроек. Например:
$ cat /usr/share/xfce4/terminal/colorschemes/solarized-dark.theme
[Scheme]
Name=Solarized (dark)
Name[bg]=Златисто (тъмно)
Name[fr]=Solarisé (foncé)
Name[nl]=Overbelicht (donker)
Name[th]=ในแสงแดด (มืด)
Name[uk]=Золотистий (темний)
ColorForeground=#839496
ColorBackground=#002b36
ColorCursor=#93a1a1
TabActivityColor=#dc322f
ColorPalette=#073642;#dc322f;#859900;#b58900;#268bd2;#d33682;#2aa198;#eee8d5;#002b36;#cb4b16;#586e75;#657b83;#839496;#6c71c4;#93a1a1;#fdf6e3
ColorBold=#93a1a1
ColorBoldUseDefault=FALSE
И terminalrc
будет похож:
$ cat .config/xfce4/terminal/terminalrc
[Configuration]
ColorForeground=#839496
FontName=Ubuntu Mono 12
ColorBackground=#002b36
ColorCursor=#93a1a1
ColorBold=#93a1a1
ColorBoldUseDefault=FALSE
ColorPalette=#073642;#dc322f;#859900;#b58900;#268bd2;#d33682;#2aa198;#eee8d5;#002b36;#cb4b16;#586e75;#657b83;#839496;#6c71c4;#93a1a1;#fdf6e3
TabActivityColor=#dc322f
TabActivityColor=#dc322f
Как видно, нет никакого способа легко определить, из какой палитры цвета прибыли.
Сценарии это не кажется безопасным, но здесь является неэффективной попыткой:
#! /bin/bash
if ! [[ -f /usr/share/xfce4/terminal/colorschemes/$1.theme ]]
then
echo "No such colorscheme: $1"
exit 1
fi
cd ~/.config/xfce4/terminal
# strip settings from any themes
grep -Fxvf <(cat /usr/share/xfce4/terminal/colorschemes/*.theme) terminalrc > .terminalrc.tmp
grep -v -e Name -e Scheme "/usr/share/xfce4/terminal/colorschemes/$1.theme" >> .terminalrc.tmp
cp terminalrc terminalrc.bak
mv .terminalrc.tmp terminalrc
Копия это к где-нибудь в Вашем PATH
(например, ~/bin/xfce-color-switch
). Затем:
$ xfce4-color-switch dark-pastels
$ xfce4-color-switch solarized
No such colorscheme: solarized
$ xfce4-color-switch solarized-dark
необходимо будет помнить названия системы цветов этого, но я включу инструкции, как добавить заполнение клавишей Tab, после того как я понимаю их.
Лучший подход был бы: создайте свою собственную цветовую схему и позвольте себе выбирать один через многих.
, Чтобы сделать это, создайте каталог:
mkdir -p ~/.local/share/xfce4/terminal/colorschemes
И файлы места как эта внутренняя часть:
[Scheme]
Name=my good profile
ColorForeground=#4ccd4ccd4ccd
ColorBackground=#f851f465ebe7
TabActivityColor=#d8d8a9a97f7f
ColorCursor=#f0f0b6b66666
ColorSelection=#16163b3b5959
ColorPalette=rgb(0,0,0);rgb(170,0,0);rgb(0,170,0);rgb(170,85,0);rgb(0,0,170);rgb(170,0,170);rgb(0,138,138);rgb(170,170,170);rgb(85,85,85);rgb(255,85,85);rgb(85,255,85);rgb(196,160,0);rgb(85,85,255);rgb(255,85,255);rgb(68,204,204);rgb(255,255,255)
, Если у Вас есть уже настроенный terminalrc файл в Вашем ~/.config/xfce4/terminal
каталог, можно просто скопировать соответствующие строки.
После выполнения так, Ваша новая цветовая схема появляется в основном списке. Таким образом, у Вас могут, например, быть и пользовательская белая цветная тема и пользовательский черный цвет.
grep -zP
команда работала бы в этом конкретном случае (файл, состоящий точно из двух строк), это будет в целом полагать, что любой обычный разделенный от новой строки файл одна строка, таким образом, любой дамп целое содержание файла (если будет соответствие где-нибудь), или ничто; обычно это не то, для чего люди используютgrep
. – Marc van Leeuwen 11 December 2016 в 06:33