Как создать новый профиль для терминала Gnome через командную строку?

Запустите echo pidgin-data install | dpkg --set-selections (замените pidgin-data на имя удерживаемого пакета) - это изменит статус пакета на install, а не на hold.

1
задан 11 December 2013 в 19:07

3 ответа

Вы не можете создать новый профиль, но вы можете сбросить текущую конфигурацию, используя gconftool-2, изменить его и загрузить.

gconftool-2 --dump '/apps/gnome-terminal' > gnome-terminal-conf.xml
## Modify the file here.
gconftool-2 --load gnome-terminal-conf.xml

Помните, что он возвращает только значения, отличные от значений по умолчанию (или какой gconf обнаруживает как нестандартный), поэтому полученный файл не может быть завершен.

8
ответ дан 25 May 2018 в 00:19
Простой. Используйте

File-> Новый профиль на вашем терминале.

Подробнее см. Здесь

Ссылки:

https: / /help.gnome.org/users/gnome-terminal/stable/pref-profiles.html.en
2
ответ дан 25 May 2018 в 00:19

Для терминала GNOME> = 3.8 для создания / редактирования / чтения профилей через cli вы можете использовать либо dconf-cli, либо gsettings. Мой выбор dconf-cli.

Каталог dconf терминала GNOME - /org/gnome/terminal/legacy/profiles:. Все операции происходят в этом каталоге. Я храню его в $dconfdir, который показан в приведенных ниже сценариях.

Создайте новый профиль

Минимальные шаги:

Создайте UUID для профиля, запустив команду uuidgen. Добавьте ее к list: dconf write "$dconfdir/list" "[..., 'UUID']" Установите visible-name: dconf write "$dconfdir/:UUID"/visible-name "'NAME'"

. После этого, даже если многие настройки не установлены, в настройках графического интерфейса терминала появится новый профиль, чтобы вы могли редактировать настройки через графический интерфейс.

Рабочий скрипт:

#!/bin/bash
dconfdir=/org/gnome/terminal/legacy/profiles:

create_new_profile() {
    local profile_ids=($(dconf list $dconfdir/ | grep ^: |\
                        sed 's/\///g' | sed 's/://g'))
    local profile_name="$1"
    local profile_ids_old="$(dconf read "$dconfdir"/list | tr -d "]")"
    local profile_id="$(uuidgen)"

    [ -z "$profile_ids_old" ] && local lb="["  # if there's no `list` key
    [ ${#profile_ids[@]} -gt 0 ] && local delimiter=,  # if the list is empty
    dconf write $dconfdir/list \
        "${profile_ids_old}${delimiter} '$profile_id']"
    dconf write "$dconfdir/:$profile_id"/visible-name "'$profile_name'"
    echo $profile_id
}

# Create profile
id=$(create_new_profile TEST)

Будьте осторожны с кавычками вокруг значения, которое вы пишете. Как сказано в руководстве,

Каталог dconf терминала GNOME - /org/gnome/terminal/legacy/profiles:. Все операции происходят в этом каталоге. Я храню его в $dconfdir, который показан в сценариях ниже.

При настройке ключа вам также нужно указать VALUE. Формат значения представляет собой формат сериализованного GVariant, так, например, строка должна содержать явные кавычки: "'foo'". Этот формат также используется при печати значений.

dconf write /org/gnome/terminal/legacy/profiles:/:UUID/KEY "'NAME'"

Вы можете установить дополнительные параметры профиля через cli, если хотите. Выполнить

Дублировать профиль

для установки. Вы можете использовать dconf-editor для проверки доступных параметров. Перейдите к пути, например /org/gnome/terminal/legacy/profiles:/:9ca4ab84-42f2-4acf-8aa9-50e6351b209a/. Лучше проверить старый профиль с множеством опций.

Вы можете dconf dump установить старый профиль и load на существующий. Чтобы дублировать профиль, вам нужно создать новый, используя приведенные выше шаги, и скопировать старый профиль, чтобы переопределить его. Не забудьте переименовать его после переопределения.

# ... codes from last script

duplicate_profile() {
    local from_profile_id="$1"; shift
    local to_profile_name="$1"; shift
    local profile_ids=($(dconf list $dconfdir/ | grep ^: |\
                        sed 's/\///g' | sed 's/://g'))

    # If UUID doesn't exist, abort
    in_array "$from_profile_id" "${profile_ids[@]}" || return 1
    # Create a new profile
    local id=$(create_new_profile "$to_profile_name")
    # Copy an old profile and write it to the new
    dconf dump "$dconfdir/:$from_profile_id/" \
        | dconf load "$dconfdir/:$id/"
    # Rename
    dconf write "$dconfdir/:$id"/visible-name "'$to_profile_name'"
}

# Create a profile from an existing one
duplicate_profile $id TEST1

Рабочий скрипт:

get_profile_uuid() {
    # Print the UUID linked to the profile name sent in parameter
    local profile_ids=($(dconf list $dconfdir/ | grep ^: |\
                        sed 's/\///g' | sed 's/://g'))
    local profile_name="$1"
    for i in ${!profile_ids[*]}; do
        if [[ "$(dconf read $dconfdir/:${profile_ids[i]}/visible-name)" == \
            "'$profile_name'" ]]; then
            echo "${profile_ids[i]}"
            return 0
        fi
    done
}

id=$(get_profile_uuid Default)

Установить профиль по умолчанию

Получить UUID профиля по его имени:

[ f5]

Ссылка

Anthony25 / gnome-terminal-colors-solarized. Я выясняю свой путь, читая множество кодов отсюда. Действительно полезно. Справочное руководство dconf
2
ответ дан 25 May 2018 в 00:19

Другие вопросы по тегам:

Похожие вопросы: