Como posso sincronizar meu gedit root com as preferências do meu usuário gedit?

4

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?

    
por winchendonsprings 04.01.2012 / 03:54

3 respostas

1

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.

    
por jPlatte 31.03.2012 / 12:08
0

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.

    
por JBA2337 28.10.2012 / 11:24
0

sudo herda sua conta de usuário gedit configurações

Nesteexemplo,asconfiguraçõesdousuárioparanomedafonte,tamanhodafonte,tabulações,conversãodetabulaçõesemespaços,destaquedacoluna80ebarradeslizantedaminiaturadoladodireitoforamherdadasporsudo.

Comsudo-Hgeditregular,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".

Antecedentes

Eu tenho sido incomodado pelo mesmo problema há anos. O projeto deste fim de semana foi escrever o script sgedit :

  • Chamar usando sgedit filename1 filename2...
  • Obtém as configurações de gedit do usuário para paradas de tabulação, fontes, quebra de linha, etc.
  • Aumenta para sudo -H para preservar a propriedade de arquivos enquanto obtém poderes de root.
  • Solicita senha se o último sudo tiver expirado.
  • Obtém as configurações de gedit do sudo
  • Compara as diferenças entre as configurações do usuário e do sudo gedit
  • Executa 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.
  • Chama o gedit como uma tarefa em segundo plano para que o prompt do terminal reapareça imediatamente.

Script de 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

Serviço de limpeza

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 .

    
por WinEunuuchs2Unix 17.06.2018 / 19:42

Tags