GNU/Linux >> Znalost Linux >  >> Ubuntu

Automatizovat řazení ikon Unity Launcher?

Napsal jsem instalační skript, který automatizuje můj instalační proces. Poté bych chtěl, aby znovu uspořádal/přidal/odebral ikony do spouštěče jednoty.

Pomocí dconf watch / Když změním pořadí ikon, vidím výstup. Existuje způsob, jak to udělat z příkazového řádku – možná pomocí gsettings ?

Přijatá odpověď:

Úvod

Níže uvedený jednoduchý skript umožňuje vzít soubor jako argument a nastaví spouštěč tak, aby se v souboru objevili jakékoli zkratky programů (jedna na řádek).

Základní myšlenkou je, že spouštěcí ikony jsou ve skutečnosti odkazy na .desktop soubory (kdekoli se mohou objevit) a kanonickou metodou pro nastavení položek spouštěče je spuštění následujícího příkazu:

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

Pokud chcete přidat mnoho položek, může to být zdlouhavé a citování se může stát bolestí. Vždy lze otevřít požadovaný program a kliknutím pravým tlačítkem na ikonu vyvolat možnost „Uzamknout spouštěč“, ale to také není praktické, když pracujete s velkým množstvím položek.

Přístup, který se zde používá, je jednoduše přečíst soubor 1krát na řádek, vytvořit příkaz text a provést jej. To se neliší od spuštění gsettings set výše, kromě toho, že těžká práce je udělána za vás.

Použití:

Chcete-li skript spustit, uložte jej do souboru a udělejte jej spustitelný pomocí chmod +x /path/to/script a spustit jako

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

Vstupní soubor by měl obsahovat úplnou cestu k položkám, které chcete přidat do spouštěče, jako je /usr/share/applications/firefox.desktop , ale není to nutné, řádek s firefox.desktop je také v pořádku.

Ukázka

Před spuštěním skriptu

Po spuštění skriptu

Všimněte si, že pořadí je přesně stejné jako položky zobrazené ve vstupním souboru

Zdroj skriptu

#!/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. Unity Launcher používá obecnou ikonu pro Firefox v Ubuntu 12.04?

  2. Chybí krabice ikon Unity Launcher 14,04ls 64bit?

  3. Jak najít název souboru Png použitého na spouštěči plochy?

  1. Jak nastavit, aby se spouštěč vždy zobrazoval v Unity 2d?

  2. Přidružit klíčové slovo k aplikaci v Unity Launcher?

  3. Jak zajistit, aby byl Unity Launcher transparentní?

  1. Spustit skript Sh ze souboru *.desktop?

  2. Velikost ikony spouštěče Ubuntu 16.04 Gsettings Příkazový řádek?

  3. Unity Launcher a ikony Steam?