Как я могу синхронизировать мой корневой gedit с предпочтениями моего пользователя gedit?

Когда я открываю файл с root gedit, я хотел бы иметь ту же настройку, что и мой обычный gedit. Итак, тема, предпочтения и дополнения.

Могу ли я установить некоторые символические ссылки в нужном месте, чтобы добиться этого?

4
задан 4 January 2012 в 06:54

3 ответа

Иметь sudo наследуйте свою учетную запись пользователя gedit настройки

sgedit 80 column right slider.gif

В этом примере пользовательские настройки для имени шрифта, размера шрифта, позиций табуляции, преобразовывают вкладки в пробелы, выделение на 80 столбцов, и панель ползунка миниатюры правой стороны была наследована sudo.

С постоянным клиентом sudo -H gedit Вы не можете сделать, ни сохранить эти параметры конфигурации. Со сценарием ниже sgedit настройки наследованы от Вашей учетной записи пользователя.

Этот сценарий также обращается"gksu плохо и не установленный по умолчанию" и"pkexec твердо установить" проблемы.


Фон

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

  • Назовите использование sgedit filename1 filename2...
  • Получает gedit настройки пользователя для позиций табуляции, шрифтов, перенеситесь строка и т.д.
  • Поднимает до sudo -H сохранить принадлежность файла при получении корневых полномочий.
  • Пароль запросов, если последний sudo испытал таймаут.
  • Получает gedit настройки sudo
  • Сравнивает различия между пользователем и sudo gedit настройки
  • Выполнения gsettings set на различиях только (уменьшает 174 set команды к дюжине или меньше. В следующий раз это выполняется, возможно, только одно или два изменения, но часто времена ни один.
  • Вызовы gedit как фоновая задача, таким образом, что терминальная подсказка сразу вновь появляется.

Сценарий Bash sgedit

#!/bin/bash

# NAME: sgedit
# PATH: /mnt/e/bin
# DESC: Run gedit as sudo using $USER preferences
# DATE: June 17, 2018.

# Must not prefix with sudo when calling script
if [[ $(id -u) == 0 ]]; then
    zenity --error --text "You cannot call this script using sudo. Aborting."
    exit 99
fi

# Get user preferences before elevating to sudo
gsettings list-recursively | grep -i gedit | grep -v history | \
    grep -v docinfo | \
    grep -v virtual-root | grep -v state.window > /tmp/gedit.gsettings

sudoFunc () {

    # Must be running as sudo
    if [[ $(id -u) != 0 ]]; then
        zenity --error --text "Sudo password authentication failed. Aborting."
        exit 99
    fi

    # Get sudo's gedit preferences
    gsettings list-recursively | grep -i gedit | grep -v history | \
        grep -v docinfo | \
        grep -v virtual-root | grep -v state.window > /tmp/gedit.gsettings.root
    diff /tmp/gedit.gsettings.root /tmp/gedit.gsettings | grep '>' > /tmp/gedit.gsettings.diff
    sed -i 's/>/gsettings set/g; s/uint32 //g' /tmp/gedit.gsettings.diff
    chmod +x /tmp/gedit.gsettings.diff
    bash -x /tmp/gedit.gsettings.diff  # Display override setting to terminal
#    nohup gedit $@ &>/dev/null &
    nohup gedit -g 1300x840+1+1220 $@ &>/dev/null &
#              Set the X geometry window size (WIDTHxHEIGHT+X+Y).

}

FUNC=$(declare -f sudoFunc)
sudo -H bash -c "$FUNC; sudoFunc $*;"

exit 0

Обслуживание

Скопируйте сценарий удара выше в новый названный файл sgedit. Я рекомендую поместить его в Ваш $HOME/bin каталог, т.е. /home/YOURNAME/bin. Вам, вероятно, придется создать каталог сначала.

Mark файл как исполняемое использование:

chmod a+x ~/sgedit

Примечание: ~ ярлык для /home/YOURNAME.

0
ответ дан 4 January 2012 в 06:54

Я думаю, что это совершенно невозможно, потому что gedit управляет своими настройками через gconf и для их синхронизации потребуется gnome-settings-deamon, работающий для root.

0
ответ дан 4 January 2012 в 06:54

Обычно вы не синхронизируете обычные настройки gedit с настройками пользователя root gedit.

Root имеет свои собственные настройки, а пользователь компьютера имеет свои собственные настройки. Два не одинаковы. Это по замыслу.

Когда вы работаете как пользователь root, вы используете профиль пользователя root, а когда вы работаете как вы, вы используете свой личный профиль. У каждого есть свои права доступа и владельца, привязанные к этой конкретной учетной записи. Они не предназначены для того же.

0
ответ дан 4 January 2012 в 06:54

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

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