Eu acho que isso é completamente impossível porque o gedit gerencia suas configurações através do gconf e para sincronizá-las, é necessário um gnome-settings-deamon executando o root.
Quando eu abro um arquivo com o root gedit eu gostaria de ter a mesma configuração do meu gedit normal. Então, tema, preferências e addons.
Posso configurar alguns links sym no lugar certo para conseguir isso?
Eu acho que isso é completamente impossível porque o gedit gerencia suas configurações através do gconf e para sincronizá-las, é necessário um gnome-settings-deamon executando o root.
Você normalmente não sincronizaria as configurações normais do gedit com as configurações do usuário root gedit.
A raiz possui suas próprias configurações e o usuário do computador tem suas próprias configurações. Os dois não são o mesmo. Isso é por design.
Quando você está operando como root, está usando o perfil do usuário raiz e, quando está operando como você, está usando seu perfil pessoal. Cada um tem suas próprias permissões e propriedade, vinculadas a essa conta específica. Eles não pretendem ser o mesmo.
sudo
herda sua conta de usuário gedit
configurações Nesteexemplo,asconfiguraçõesdousuárioparanomedafonte,tamanhodafonte,tabulações,conversãodetabulaçõesemespaços,destaquedacoluna80ebarradeslizantedaminiaturadoladodireitoforamherdadasporsudo
.
Comsudo-Hgedit
regular,vocênãopodesalvarnemsalvaressasconfigurações.Comoscriptabaixodesgedit
,asconfiguraçõessãoherdadasdasuacontadeusuário.
Estescripttambémcorrigeosproblemas" gksu
é ruim e não é instalado por padrão" e " pkexec
é difícil de configurar".
Eu tenho sido incomodado pelo mesmo problema há anos. O projeto deste fim de semana foi escrever o script sgedit
:
sgedit filename1 filename2...
sudo -H
para preservar a propriedade de arquivos enquanto obtém poderes de root. gsettings set
apenas nas diferenças (reduz 174% de comandosset
para uma dúzia ou menos. Na próxima vez, talvez seja executada apenas uma ou duas alterações, mas muitas vezes nenhuma. 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
Copie o script acima para um novo arquivo chamado sgedit
. Eu recomendo colocá-lo em seu diretório $HOME/bin
, ou seja, /home/YOURNAME/bin
. Você pode ter que criar o diretório primeiro.
Marque o arquivo como executável usando:
chmod a+x ~/sgedit
Observe que ~
é um atalho para /home/YOURNAME
.