Certaines de mes touches du clavier ont disparu, j'essaie donc de programmer les autres touches qui fonctionnent encore pour appuyer sur les touches endommagées lorsque je les appuie deux fois. Est-ce possible? Y at-il un programme qui peut m'aider à faire cela?
Je veux remapper la clé J donner 'm' quand j'appuie deux fois dessus.
NB: Mon ordinateur portable est un MacBook Pro 13 "Unibody Mi 2012
SAUF SI vous utilisez wayland (Ubuntu 17.10, testé sur Ubuntu Budgie 18.04, mais Ubuntu Gnome Le 18.04 devrait également convenir), l’extrait ci-dessous vous aidera.
Une boîte apparaît
Tapez votre "alias" (par exemple, jj pour m), le résultat indique (m) et le texte sera immédiatement inséré à la position du curseur (ou, si vous préférez, après avoir appuyé sur Ctrl).
Ce script fournit une solution unique pour définir des aliasses pour un caractère, une chaîne ou même des lignes complètes, il suffit de définir le "alias" dans les lignes:
replacements = [
["jj", "m"],
["aa", "q"],
["zz", "e"],
["mb", "monkey eats banana"],
]
Dans ce dernier cas, taper "mb" collera "le singe mange la banane":
Vous devez satisfaire quelques dépendances:
pyautogui:
pip3 install pyautogui
pyperclip:
Sudo apt install python3-pyperclip xsel xclip
python3-xlib
Sudo apt install python3-xlib
Déconnexion et retour dans.
Copiez le script ci-dessous dans un fichier vide, enregistrez-le sous le nom replace_keys.py
#!/usr/bin/env python3
import gi
gi.require_version("Gtk", "3.0")
gi.require_version("Wnck", "3.0")
from gi.repository import Gtk, Gdk, Wnck
import subprocess
import pyperclip
import pyautogui
import time
"""
depends on
- pyautogui:
pip3 install pyautogui
- pyperclip:
Sudo apt install python3-pyperclip xsel xclip
"""
act_on_firstmatch = False
replacements = [
["jj", "m"],
["aa", "q"],
["zz", "e"],
["mb", "monkey eats banana"],
]
class KeyWin(Gtk.Window):
def __init__(self):
self.screendata = Wnck.Screen.get_default()
self.screendata.force_update()
self.curr_subject = self.screendata.get_active_window().get_xid()
self.currmatch = ""
Gtk.Window.__init__(self)
maingrid = Gtk.Grid()
self.add(maingrid)
self.set_decorated(False)
self.set_position(Gtk.WindowPosition.CENTER)
self.connect("key-release-event", self.check_key)
self.keyentry = Gtk.Entry()
self.keyentry.connect("changed", self.update_current)
self.label = Gtk.Label("")
self.label.set_width_chars(10)
maingrid.attach(self.keyentry, 0, 0, 1, 1)
maingrid.attach(self.label, 1, 0, 1, 1)
self.show_all()
self.connect("destroy", Gtk.main_quit)
Gtk.main()
def update_current(self, widget):
curr = self.keyentry.get_text()
self.currmatch = ""
for s in replacements:
if curr == s[0]:
self.currmatch = s[1]
if act_on_firstmatch:
self.replace()
self.label.set_width_chars(len(self.currmatch) + 4)
self.label.set_text(self.currmatch)
def replace(self, *args):
pyperclip.copy(self.currmatch)
subprocess.call(["wmctrl", "-ia", str(self.curr_subject)])
Gtk.main_quit()
def check_key(self, button, val):
typed = Gdk.keyval_name(val.keyval)
if typed == "Control_L":
self.replace()
KeyWin()
time.sleep(0.05)
pyautogui.hotkey('ctrl', 'v')
Configurez vos aliasses (GARDEZ L’INDENTATION!) Dans la section:
replacements = [
["jj", "m"],
["aa", "q"],
["zz", "e"],
["mb", "monkey eats banana"],
]
Si tu veux, change
act_on_firstmatch = False
dans
act_on_firstmatch = True
si vous aimez insérer immédiatement sans tapoter Ctrl
Mettre en place une touche de raccourci avec Ctrl en tant que modificateur . j'ai utilisé Ctrl + J dans mon test pour exécuter le script par la commande:
python3 /path/to/replace_keys.py
Et tu as fini!
J'ai deux machines qui ont ce problème de clés usées/cassées. J'ai trouvé deux solutions:
Dépensez dix dollars pour un clavier USB WiFi (Logitech en a un bon). Généralement, le BIOS le verra et le récupérera avant le système d'exploitation.
Chargez un logiciel de contrôle à distance (RealVNC est gratuit pour les petites installations et traverse différents systèmes d’exploitation)
Les deux fonctionnent en fonction de l'accès requis.
Bien que la réponse de @jacobvlijm soit plus spécifique, une autre solution consiste à utiliser un programme tel que AutoKey . Automatiser votre bureau en générant des entrées au clavier et à la souris à partir de phrases de déclenchement et de touches de raccourci permet de nombreuses tâches.
En particulier, vous pouvez définir une phrase pour chacune des clés brisées et la faire déclencher par une phrase de déclenchement qui consiste en une combinaison de pressions de touches qui ne risquent pas de se produire lors de la frappe. Ces expressions peuvent être définies pour se déclencher immédiatement à partir d'un mot.
Il existe également une option qui réintègre le texte du déclencheur si vous appuyez immédiatement sur la touche de retour arrière si vous avez besoin des caractères du déclencheur tels quels.
Tout cela peut être configuré à l'aide de l'interface graphique AutoKey sans nécessiter de codage.
Pour les exigences plus complexes, AutoKey peut exécuter des scripts complets Python déclenchés par des phrases ou des touches de raccourci uniquement limitées par l'imagination et la connaissance de Python de l'utilisateur.