GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo actualizar el menú de la aplicación del icono del lanzador en Ubuntu 12.04?

Después de modificar un archivo de escritorio en /usr/share/applications , necesito actualizar el menú de la aplicación del ícono del iniciador para que aparezca mi modificación.
En aras de la claridad, el menú que debe modificarse es el que aparece al hacer clic con el botón derecho cuando el puntero está en un ícono de el iniciador (la gran barra llena de íconos en el lado izquierdo de la pantalla).

La mejor respuesta sería una línea de comando simple.

No estoy usando ubuntu-2d y no quiero cerrar sesión/iniciar sesión.

Soy consciente de alguna solución parcial:

  • unity --replace recarga todo (decoración de la ventana, área de notificación, …)
  • killall ubuntu-2d-launcher es solo ubuntu-2d, pero si existe un comando similar de una línea para Unity, sería una buena solución.
  • cerrar la sesión y luego volver a iniciarla también funciona, pero no puedo permitirme perder toda mi sesión solo para actualizar el menú.
  • en ubuntu 14.04 no tengo este problema:cualquier cambio realizado en los archivos "*.desktop" parece repetirse en vivo.

Alguna sugerencia ? ¿Hay alguna manera gracias a ccsm?

Respuesta aceptada:

La forma más elegante es “reiniciar” el ícono; para eliminar el ícono de su posición en el lanzador y reemplazarlo en la misma posición. El siguiente script hace el trabajo. Está en python2, ya que 12.04 no viene con python3 por defecto. Sin embargo, también se puede usar en python3, solo cambie el shebang en ese caso. El script también puede ser útil (también en versiones posteriores de Ubuntu) para aplicar inmediatamente un icono modificado, por ejemplo.

Simplemente puede usarlo llamando al script, con el archivo de escritorio editado como argumento (ver más abajo).

Nota :en 12.04, si un icono actualizado representa un corriendo aplicación, la aplicación en cuestión se bloqueará, como se describe en esta pregunta, así que si la usa, asegúrese de que la aplicación no se esté ejecutando. En 14.04, el icono simplemente no se actualizará en caso de que se esté ejecutando una aplicación.

El guión

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

Cómo usarlo

  • Copie el script anterior en un archivo vacío y guárdelo como refresh.py
  • Por conveniencia, hazlo ejecutable
  • Actualice el icono con el comando:

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

Si realmente quieres hacerlo suave

  • Haga que el script sea ejecutable, elimine el .py extensión, guárdelo en ~/bin . Después de cerrar sesión/iniciar sesión, puede ejecutarlo con el comando:

    refresh firefox.desktop (as an example)
    

Ubuntu
  1. Agregar menú de aplicaciones en Ubuntu 20.04 GNOME Desktop

  2. Cómo crear un lanzador de aplicaciones integrado para un archivo Appimage en Ubuntu

  3. ¿Cómo ocultar el menú Grub en Ubuntu 14.04?

  4. ¿Cómo cambiar el tamaño del icono del escritorio en Ubuntu 16.10?

  5. ¿Problemas con el icono del iniciador de Ubuntu 16.04 Eclipse?

Cómo resolver:No hay icono de Dropbox en Ubuntu 14.10 y 14.04

Cómo instalar ReactJS en Ubuntu 21.04

¿Cómo cambiar el kernel en el arranque?

¿Cómo agregar una aplicación al menú de aplicaciones de inicio?

¿Icono sin icono duplicado del lanzador?

Cómo instalar el tema de iconos de Papirus en Ubuntu 22.04