Automatizar el orden de los íconos del iniciador de Unity

Automatizar el orden de los íconos del iniciador de Unity

He escrito un script de instalación que automatiza mi proceso de instalación. Luego me gustaría que reorganice/agregue/elimine los íconos en el iniciador de Unity.

Usando dconf watch /puedo ver el resultado mientras reordeno los íconos. ¿Existe una forma de línea de comando para hacer esto, posiblemente con gsettings?

Respuesta1

Introducción

El sencillo script que aparece a continuación permite tomar un archivo como argumento y configura el iniciador para que tenga los accesos directos a los programas que aparecen en el archivo (uno por línea).

La idea básica es que los íconos del iniciador son en realidad enlaces a .desktoparchivos (dondequiera que aparezcan), y el método canónico para configurar los elementos del iniciador es ejecutar el siguiente comando:

gsettings set com.canonical.Unity.Launcher favorites  "[ 'item1.desktop' , 'item2.desktop' , . . . 'item3.desktop;  ]"

Esto puede resultar tedioso si desea agregar muchos elementos y citar puede convertirse en una molestia. Siempre se puede abrir el programa deseado y hacer clic derecho en el ícono para invocar la opción "Bloquear en el iniciador", pero eso tampoco es práctico cuando se trata de una gran cantidad de elementos.

El enfoque adoptado aquí es simplemente leer un archivo, una vez por línea, crear el texto del comando y ejecutarlo. Esto no es diferente de ejecutar el gsettings setcomando anterior, excepto que el trabajo duro ya lo hace usted.

Uso:

Para ejecutar el script, guárdelo en un archivo, hágalo ejecutable chmod +x /path/to/scripty ejecútelo como

python /path/to/script /path/to/file

El archivo de entrada debe contener la ruta completa a los elementos que desea agregar al iniciador, como /usr/share/applications/firefox.desktop, pero no es necesario, una línea con firefox.desktoptambién está bien.

Manifestación

Antes de ejecutar el script

ingrese la descripción de la imagen aquí

Después de ejecutar el script

ingrese la descripción de la imagen aquí

Tenga en cuenta que el orden es exactamente el mismo que aparecen las entradas en el archivo de entrada.

Fuente del guión

#!/usr/bin/env python
# Author: Serg Kolo
# Date: April 22, 2016
# Purpose:  programmatically set Unity launcher items
# by reading a file
# Written for: http://askubuntu.com/q/760895/295286
# Tested on: Ubuntu 14.04 LTS
import sys
import subprocess

command="""gsettings set com.canonical.Unity.Launcher favorites """

def run_command(cmd):
    p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
    output = p.stdout.read().strip()
    return output  


items=""
with open(sys.argv[1]) as file:
  for line in file:
      temp = "'" + line.strip().split('/')[-1] + "'"
      items = ",".join([items,temp])

items = '"[ ' + items[1:] + ' ]"'

print run_command(command + " " + items)

información relacionada