Когда я открываю файл с root gedit, я хотел бы иметь ту же настройку, что и мой обычный gedit. Итак, тема, предпочтения и дополнения.
Могу ли я установить некоторые символические ссылки в нужном месте, чтобы добиться этого?
sudo
наследуйте свою учетную запись пользователя gedit
настройкиВ этом примере пользовательские настройки для имени шрифта, размера шрифта, позиций табуляции, преобразовывают вкладки в пробелы, выделение на 80 столбцов, и панель ползунка миниатюры правой стороны была наследована sudo
.
С постоянным клиентом sudo -H gedit
Вы не можете сделать, ни сохранить эти параметры конфигурации. Со сценарием ниже sgedit
настройки наследованы от Вашей учетной записи пользователя.
Этот сценарий также обращается"gksu
плохо и не установленный по умолчанию" и"pkexec
твердо установить" проблемы.
Я ворчался той же проблемой в течение многих лет. Проект этих выходных состоял в том, чтобы записать sgedit
сценарий:
sgedit filename1 filename2...
sudo -H
сохранить принадлежность файла при получении корневых полномочий. gsettings set
на различиях только (уменьшает 174 set
команды к дюжине или меньше. В следующий раз это выполняется, возможно, только одно или два изменения, но часто времена ни один.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
.
Я думаю, что это совершенно невозможно, потому что gedit управляет своими настройками через gconf и для их синхронизации потребуется gnome-settings-deamon, работающий для root.
Обычно вы не синхронизируете обычные настройки gedit с настройками пользователя root gedit.
Root имеет свои собственные настройки, а пользователь компьютера имеет свои собственные настройки. Два не одинаковы. Это по замыслу.
Когда вы работаете как пользователь root, вы используете профиль пользователя root, а когда вы работаете как вы, вы используете свой личный профиль. У каждого есть свои права доступа и владельца, привязанные к этой конкретной учетной записи. Они не предназначены для того же.