GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Symbolbestellung für Unity Launcher automatisieren?

Ich habe ein Installationsskript geschrieben, das meinen Installationsvorgang automatisiert. Danach möchte ich, dass die Symbole zum Unity Launcher neu angeordnet/hinzugefügt/entfernt werden.

Verwenden von dconf watch / Ich kann die Ausgabe sehen, wenn ich die Symbole neu anordne. Gibt es eine Kommandozeilen-Möglichkeit, dies zu tun – möglicherweise mit gsettings ?

Akzeptierte Antwort:

Einführung

Das folgende einfache Skript erlaubt es, eine Datei als Argument zu nehmen und stellt den Launcher so ein, dass alle Verknüpfungen zu Programmen in der Datei erscheinen (eine pro Zeile).

Die Grundidee ist, dass die Launcher-Icons tatsächlich Links zu .desktop sind Dateien (wo auch immer sie erscheinen mögen) , und die kanonische Methode zum Festlegen der Launcher-Elemente besteht darin, den folgenden Befehl auszuführen:

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

Dies kann mühsam werden, wenn Sie viele Elemente hinzufügen möchten, und das Zitieren kann zu einer Qual werden. Man kann immer ein gewünschtes Programm öffnen und mit der rechten Maustaste auf das Symbol klicken, um die Option „Auf Launcher sperren“ aufzurufen, aber das ist auch nicht praktisch, wenn man es mit einer großen Menge von Objekten zu tun hat.

Der hier verfolgte Ansatz besteht darin, einfach eine Datei mit 1 Mal pro Zeile zu lesen, den Befehlstext aufzubauen und ihn auszuführen. Dies unterscheidet sich nicht vom Ausführen des gsettings set Befehl oben, außer dass die harte Arbeit für Sie erledigt wird.

Verwendung:

Um das Skript auszuführen, speichern Sie es in einer Datei und machen Sie es mit chmod +x /path/to/script ausführbar und ausführen als

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

Die Eingabedatei sollte den vollständigen Pfad zu den Elementen enthalten, die Sie dem Launcher hinzufügen möchten, z. B. /usr/share/applications/firefox.desktop , aber es ist nicht notwendig , eine Zeile mit firefox.desktop ist auch ok.

Demo

Vor dem Ausführen des Skripts

Nach dem Ausführen des Skripts

Beachten Sie, dass die Reihenfolge genau dieselbe ist wie die Einträge in der Eingabedatei

Skriptquelle

#!/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)

Ubuntu
  1. Wie stelle ich den Launcher so ein, dass er immer in Unity 2d angezeigt wird?

  2. Ubuntu 16.04 Launcher Symbolgröße Gsettings Befehlszeile?

  3. Unity Launcher verwendet generisches Symbol für Firefox in Ubuntu 12.04?

  4. Ubuntu 16.04 Eclipse Launcher Icon Probleme?

  5. Wie aktualisiere ich das Anwendungsmenü des Launcher-Symbols in Ubuntu 12.04?

Ubuntu / Unity Skript an Launcher anhängen?

Launcher Symbol ohne Symbol duplizieren?

Warum gibt es zwei Symbole im Unity Launcher für Nautilus?

Wie stoppe ich Partitionssymbole im Unity Launcher?

Tor-Browser erscheint als Firefox im Unity Launcher?

Ubuntu / Unity-Skript zum Anhängen an Launcher