Datos personales

lunes, 18 de julio de 2011

GConf: Instalación de accesos directos a nivel de sistema

Si queremos instalar de forma obligatoria un acceso directo a una carpeta compartida a todos los usuarios que inicien sesión en el sistema, podemos crear el siguiente fichero /tmp/share.xml:


 <gconfentryfile>
  <entrylist base="/desktop/gnome/connected_servers/ubuntu">
    <entry>
      <key>display_name</key>
      <value>
        <string>Recurso compartido</string>
      </value>
    </entry>
    <entry>
      <key>icon</key>
      <value>
        <string>gnome-fs-ssh</string>
      </value>
    </entry>
    <entry>
      <key>uri</key>
      <value>
        <string>ssh://192.168.0.254/tmp</string>
      </value>
    </entry>
  </entrylist>
</gconfentryfile>



y usar la utilidad gconftool-2 de esta forma:


$ gconftool-2 --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory/   --load /tmp/share.xml


También se puede usar la base de datos por defecto (defaults), en lugar de la obligatoria (mandatory):


$ gconftool-2; --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults/ --load /tmp/share.xml


NOTA: Esta forma de invocar el comando asume que el demonio gconfd está ejecutándose. Si no es el caso, hay que usar la opción --direct para acceder directamente a los ficheros.

Para ejecutar estos comandos de forma remota y no interactiva, puede ser un incordio que los datos de conexión estén en un fichero XML. Para sortear ese problema se pueden cargar claves de esta forma:


$ gconftool-2 \
--config-source xml:readwrite:/etc/gconf/gconf.xml.defaults/ \
--type string \
--set /desktop/gnome/connected_servers/ubuntu/display_name "Recurso compartido" \
--type string --set /desktop/gnome/connected_servers/ubuntu/icon "gnome-fs-ssh" \
--type string \
--set /desktop/gnome/connected_servers/ubuntu/uri "ssh://192.168.1.254/tmp"