Как изменить настройки профиля gnome-терминала с помощью dconf или gsettings?

16

После обновления с Ubuntu 14.10 до 15.10 кажется, что изменение gnome-terminalнастроек gconftool-2больше не поддерживается. Я думаю, что эта проблема связана с миграцией Gconf к GSettings .

Теперь я хотел бы изменить некоторые из моих старых скриптов (поскольку они не работают в Ubuntu 15.10) для работы с dconf / gesettingsвместо gconftool-2.

Как пример, на Ubuntu 14.10 ( gnome-terminal версия 3.6.2) я мог установить количество столбцов в Defaultпрофиле, используя:

$ gconftool-2 --set /apps/gnome-terminal/profiles/Default/default_size_columns \
            --type=int 140
$ gconftool-2 --set /apps/gnome-terminal/profiles/Default/use_custom_default_size \
            --type=bool true

Теперь в Ubuntu 15.10 набираем:

$ dconf list /org/gnome/terminal/legacy/

дает

profiles:/
schema-version

в то время как

$ gsettings list-relocatable-schemas | grep Terminal

дает

org.gnome.Terminal.SettingsList
org.gnome.Terminal.Legacy.Profile
org.gnome.Terminal.Legacy.Keybindings

Приведенный выше вывод меня смущает:

Все еще в Ubuntu 15.10 (с использованием gnome-terminalверсии 3.16.2), если я запускаю:

$ gsettings list-keys org.gnome.Terminal.Legacy.Profile:/ | grep default

Я получил:

default-size-rows
default-show-menubar
default-size-columns

поэтому есть default-size-columnsключ, который может (?) соответствовать default_size_columnsключу в Ubuntu 14.10, но нет use-custom-default-sizeключа, соответствующего use_custom_default_sizeключу в Ubuntu 14.10. Это также смущает меня.

Также, если я попробую запустить:

$ gsettings set org.gnome.Terminal.Legacy.Profile:/ default-size-columns 150

и открыть новый gnome-terminalпараметр, default-size-columnsкажется, не имеет никакого эффекта, так как терминал все еще открывается с 80 столбцами ..

Хокон Хагланд
источник
Пожалуйста, сначала обновитесь до 15.10, так как 14.10 и 15.04 уже достигли конца срока службы.
Byte Commander
@ByteCommander Сейчас я обновился до 15.10, и вопрос остаётся тем же с 15.10, что и за 15.04. Я также нашел решение, которое я хотел бы опубликовать. Как можно вновь открыть этот вопрос, чтобы я мог опубликовать решение?
Håkon Hægland

Ответы:

19

Синтаксис, который будет использоваться с gsettingsкомандой, описан в разделе Часто задаваемые вопросы по терминалу GNOME. .

Для начала вам нужно узнать идентификатор профиля, который вы хотите изменить. Например, идентификатор gnome-terminalпрофиля по умолчанию может быть получен из схемы org.gnome.Terminal.ProfilesList.

Затем измените нужные ключи пути /org/gnome/terminal/legacy/profiles:/:UUID/схемы org.gnome.Terminal.Legacy.Profile:для этого профиля.

Обратите внимание на двоеточия в указанном выше пути. Это не будет работать, если они опущены.

Вот скрипт, который использует выше, чтобы установить default-size-columnsпрофиль по умолчанию:

profile=$(gsettings get org.gnome.Terminal.ProfilesList default)
profile=${profile:1:-1} # remove leading and trailing single quotes
gsettings set "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/" default-size-columns 150
Хокон Хагланд
источник
1
Круто, что ты сам нашел решение. Не забудьте принять свой ответ.
Byte Commander
1
На самом деле, вы можете указать номер профиля вместо его идентификатора, поэтому команда будет просто:gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:0/ default-size-columns 150
Анатолий
1
Или даже короче:gsettings set org.gnome.Terminal.Legacy.Profile:/:0/ default-size-columns 150
Анатолий
Ваш ответ спас мой день! Как вы узнали синтаксис "org.gnome.Terminal.Legacy.Profile: / org / gnome / Terminal / legacy / profile: /: ... /"? Вы нашли это в документации? Я застрял в том, что я не понял, что за «Профилем» следует «/ org / gnome / ...».
Яобин