Dans Gnome-Classic (metacity) le 14.04,
Si possible, comment ajouter la clé du menu Application?
Pour ajouter une clé pour faire apparaître le menu de l'application, quelle est la commande pour le faire?
Contrairement à https://askubuntu.com/a/133915/1471 , il n'y a pas de clé pour le menu Applications dans mon cas.
Mon 14.04 est livré avec compiz + unit, puis j'installe metacity + gnomeclassic. Partagent-ils les mêmes paramètres de clavier? Est-ce la raison pour laquelle je n'ai pas de clé pour le menu Application?
Merci!
Avec une solution de contournement sale, cela peut être fait assez bien. En utilisant xdotool
, vous pouvez le faire déplacer la souris à la position du menu Applications, l'ouvrir et revenir automatiquement à sa position d'origine.
Puisque tout se passe très rapidement et la souris est ramenée à sa position d'origine, vous ne le remarquerez pas.
Le script suppose que votre menu Applications se trouve dans le coin supérieur gauche, comme dans l'image ci-dessus. Si ce n'est pas le cas, les coordonnées dans cmd1
doivent être modifiés.
#!/usr/bin/env python3
import subprocess
import time
cursordata = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split()
loc = [d.split(":")[1] for d in cursordata[:2]]
cmd1 = "xdotool mousemove 10 5"; cmd2 = "xdotool click 1"; cmd3 = "xdotool mousemove "+(" ").join(loc)
for cmd in [cmd1, cmd2, cmd3]:
subprocess.Popen(["/bin/bash", "-c", cmd])
time.sleep(0.05)
En détail:
récupérer la position actuelle de la souris:
cursordata = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split()
Analyser la sortie (x/y) en coordonnées:
loc = [d.split(":")[1] for d in cursordata[:2]]
Exécutez les commandes [cmd1, cmd2, cmd3]
à par la suite:
for cmd in [cmd1, cmd2, cmd3]:
subprocess.Popen(["/bin/bash", "-c", cmd])
time.sleep(0.05)
Installez xdotool
:
Sudo apt-get install xdotool
Collez le script dans un fichier vide, enregistrez-le sous open_appmenu.py
Testez-le avec la commande:
python3 /path/to/open_appmenu.py
Si tout fonctionne bien, ajoutez-le à une touche de raccourci: choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez la commande:
python3 /path/to/open_appmenu.py
Une fois que vous avez ouvert le menu Applications, vous pouvez simplement passer à l'élément suivant avec les touches fléchées.
Ci-dessous une version du script qui peut être utilisée de manière flexible, pour cliquer sur l'écran sur la position any, à modifier facilement. Le script peut être exécuté avec deux options:
to set (souvenez-vous) de l'emplacement actuel de la souris:
run_click -set
pour cliquer sur la dernière position mémorisée:
run_click -run
Si aucune position n'a été définie, un message de zénité apparaît, vous invitant à définir une position:
Le script crée un fichier caché; ~/.run_click
où il stocke les dernières coordonnées mémorisées.
Comme test, j'ai mis les deux commandes sous les combinaisons de touches: Ctrl+Alt+R, et Ctrl+Alt+A, ce qui permet de changer facilement la position du clic sur place.
comme dans le premier script, installez xdotool
:
Sudo apt-get install xdotool
copiez le script ci-dessous dans un fichier vide, enregistrez-le sous run_click
(sans extension) dans ~/bin
(créez le répertoire si nécessaire) et rendez le script exécutable.
~/bin
, courir source ~/.profile
.run_click -set
, puis run_click -run
pour voir si tout fonctionne comme prévu.#!/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()))