GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come aggiornare il menu dell'applicazione dell'icona di avvio in Ubuntu 12.04?

Dopo aver modificato un file desktop in /usr/share/applications , ho bisogno di aggiornare il menu dell'applicazione dell'icona di avvio in modo che la mia modifica venga visualizzata.
Per motivi di chiarezza, il menu che dovrebbe essere modificato è quello che appare con un clic destro quando il puntatore si trova su un'icona di il launcher (la grande barra piena di icone sul lato sinistro dello schermo).

La migliore risposta sarebbe una semplice riga di comando.

Non sto usando Ubuntu-2d e non voglio effettuare il logout/login.

Sono a conoscenza di una soluzione parziale:

  • unity --replace ricarica tutto (decorazione finestra, area notifiche, …)
  • killall ubuntu-2d-launcher è solo ubuntu-2d, ma se esiste un comando simile a una riga per l'unità, sarebbe una buona soluzione.
  • Anche il logout e il successivo accesso funzionano, ma non posso permettermi di perdere tutta la mia sessione solo per aggiornare il menu.
  • su Ubuntu 14.04 non ho questo problema:tutte le modifiche apportate ai file "*.desktop" sembrano essere ripetute dal vivo.

Eventuali suggerimenti ? C'è un modo grazie a ccsm?

Risposta accettata:

Il modo più elegante è “riavviare” l'icona; per rimuovere l'icona dalla sua posizione nel programma di avvio e riposizionarla nella stessa posizione. Lo script seguente fa il lavoro. È in python2, poiché 12.04 non viene fornito con python3 per impostazione predefinita. Tuttavia, può essere utilizzato anche in python3, cambia solo lo shebang in quel caso. Lo script può anche essere utile (anche su versioni successive di Ubuntu) per applicare immediatamente un'icona modificata, ad esempio.

Puoi semplicemente usarlo chiamando lo script, con il file desktop modificato come argomento (vedi più avanti).

Nota :in 12.04, se un'icona aggiornata rappresenta un in esecuzione applicazione, l'applicazione in questione si arresterà in modo anomalo, come descritto in questa domanda, quindi se la usi, assicurati che l'applicazione non sia in esecuzione. In 14.04, l'icona semplicemente non si aggiornerà in caso di applicazione in esecuzione.

Il copione

#!/usr/bin/env python

import subprocess
import time
import sys

desktopfile = sys.argv[-1]

def read_currentlauncher():
    # reads the current launcher contents
    get_launcheritems = subprocess.Popen([
        "gsettings", "get", "com.canonical.Unity.Launcher", "favorites"
        ], stdout=subprocess.PIPE)
    return get_launcheritems.communicate()[0].decode("utf-8")

def set_launcher(llist):
    # sets a defined unity launcher list
    current_launcher = str(llist).replace(", ", ",")
    subprocess.Popen([
        "gsettings", "set", "com.canonical.Unity.Launcher", "favorites",
        current_launcher,
        ])

def refresh_icon(desktopfile):
    current_launcher = read_currentlauncher()
    current_launcher_temp = eval(current_launcher)
    item = [item for item in current_launcher_temp if desktopfile in item][0]
    index = current_launcher_temp.index(item)
    current_launcher_temp.pop(index)
    set_launcher(current_launcher_temp)
    time.sleep(2)
    set_launcher(current_launcher)

refresh_icon(desktopfile)

Come usarlo

  • Copia lo script sopra in un file vuoto e salvalo come refresh.py
  • Per motivi di comodità, rendilo eseguibile
  • Aggiorna l'icona con il comando:

    /path/to/script/refresh.py name_of_edited_desktopfile (e.g. 'firefox.desktop')
    

Se vuoi davvero renderlo fluido

  • Rendi eseguibile lo script, rimuovi il .py estensione, salvala in ~/bin . Dopo il logout/in, puoi eseguirlo con il comando:

    refresh firefox.desktop (as an example)
    

Ubuntu
  1. Aggiungi il menu dell'applicazione su Ubuntu 20.04 GNOME Desktop

  2. Come creare un lanciatore di applicazioni integrato per un file Appimage in Ubuntu

  3. Come nascondere il menu Grub in Ubuntu 14.04?

  4. Come modificare la dimensione dell'icona del desktop in Ubuntu 16.10?

  5. Ubuntu 16.04 Problemi con l'icona di avvio di Eclipse?

Come risolvere:nessuna icona Dropbox in Ubuntu 14.10 e 14.04

Come installare ReactJS su Ubuntu 21.04

Come cambiare il kernel all'avvio?

Come aggiungere un'applicazione al menu dell'applicazione di avvio?

Icona di avvio duplicata senza icone?

Come installare il tema dell'icona Papirus su Ubuntu 22.04