¿Cómo puedo abrir un menú con una tecla de acceso directo si no existe ninguna tecla de acceso directo para el menú?

¿Cómo puedo abrir un menú con una tecla de acceso directo si no existe ninguna tecla de acceso directo para el menú?

¿Existe un método abreviado de teclado para abrir/desplegar el menú/indicador de sonido, para, por ejemplo, ver la canción que se está reproduciendo actualmente? Si no, ¿cómo podría configurar uno?

Respuesta1

Con el siguiente script debajo de una tecla de acceso directo, puede hacercualquierelemento del menú desplegable, si no existe ningún acceso directo para él, incluido el menú de sonido:

ingrese la descripción de la imagen aquí

En realidad, es más o menos la misma respuesta que la publicada.aquí, pero la pregunta es diferente. Sin embargo, me tomé la libertad de ampliar un poco (el título de) su pregunta para cubrir posibles preguntas similares en el futuro.

Que hace

El script simula un movimiento del mouse hacia el menú o ícono, hace clic y luego regresa el mouse a donde estaba. Todo esto sucede en una fracción de segundo, por lo que no lo notarás en absoluto.

Se puede utilizar de forma flexible, para hacer clic en la pantalla encualquierposición, para cambiar fácilmente. Se ejecuta con dos opciones:

  1. acolocar(recuerde) la ubicación actual del mouse:

    run_click -set
    
  2. para hacer clic en la última posición recordada:

    run_click -run
    

Si no se estableció ninguna posición, aparece un mensaje de zenity que invita a establecer una posición.

El script crea un archivo oculto; ~/.run_clickdonde almacena las últimas coordenadas recordadas.

Cómo utilizar

  1. Instalarxdotool

    sudo apt-get install xdotool
    
  2. Copie el siguiente script en un archivo vacío y guárdelo como open_menu(sin extensión) en formato ~/bin. Cree el directorio si es necesario yhacer que el script sea ejecutable.

  3. Si acaba de crear ~/bin, ejecute source ~/.profile.
  4. Pruebe ambos comandos, primero open_menu -sety luego open_menu -runpara ver si todo funciona como se esperaba.
  5. Ahora creadosatajos: uno para hacer que el script recuerde la posición de su elemento de menú, el segundo para abrir el menú. elija: Configuración del sistema > "Teclado" > "Atajos" > "Atajos personalizados". Haga clic en "+" y agregue los comandos a dos combinaciones de teclas de acceso directo diferentes:

    open_menu -set
    

    y

    open_menu -run
    

Ahora coloque el mouse sobre el ícono del menú de sonido y presione la primera tecla de acceso directo. A partir de ese momento, puede abrir el menú con la segunda tecla de acceso directo.

La secuencia de comandos

#!/usr/bin/env python3
import subprocess
import time
import sys
import os

option = sys.argv[1]
datafile = os.path.join(os.environ["HOME"], ".run_click")

def get_mousepos():
    cursordata = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split()
    return [d.split(":")[1] for d in cursordata[:2]]

if option == "-run":
    try:
        data = open(datafile).read()
        coords = (" ").join([l for l in data.splitlines()])
    except FileNotFoundError:
        message = "Please run the command: 'run_click -set' first, to set the click position"
        subprocess.Popen(["zenity", "--info", "--text", message])
    else:
        cmd1 = "xdotool mousemove "+coords; cmd2 = "xdotool click 1"; cmd3 = "xdotool mousemove "+(" ").join(get_mousepos())
        for cmd in [cmd1, cmd2, cmd3]:
            subprocess.Popen(["/bin/bash", "-c", cmd])
            time.sleep(0.05)
elif option == "-set":
    open(datafile, "wt").write(("\n").join(get_mousepos()))

Respuesta2

No hay un acceso directo específico para abrir el indicador de sonido, pero puede presionar Alt+F10 para enfocar el indicador de menú y traducirlo al indicador de sonido.

información relacionada