Некоторые мои клавиши на клавиатуре пошли, таким образом, я пытаюсь программировать другие ключи, которые все еще работают для нажатия поврежденных клавиш, когда я нажимаю их дважды. Это возможно? Есть ли какая-либо программа, которая может помочь мне в выполнении этого?
Я хочу повторно отобразить ключ J для предоставления 'm', когда я нажимаю его дважды.
NB: Мой ноутбук является MacBook Pro 13-дюймовая Цельная Середина 2012
У меня есть две машины с этой проблемой изношенных / сломанных ключей. Я нашел два решения:
Потратьте десять баксов на клавиатуру WiFi USB (у Logitech неплохое). Как правило, BIOS увидит его и получит его перед ОС.
Загрузка программного обеспечения для пульта дистанционного управления (RealVNC бесплатна для небольших установок и будет работать с разными ОС)
Обе функции работают в зависимости от необходимого доступа.
ЕСЛИ Вы не используете Уэйленд (Ubuntu 17.10, протестированная на Волнистом попугайчике Ubuntu 18.04, но Ubuntu Gnome 18.04 должен быть прекрасным также), отрывок ниже выручит Вас.
Поле появляется
Введите свой "псевдоним" (например, jj для m), шоу результата (m), и текст будет сразу вставлен в позиции курсора (или, если Вы предпочтете после ответвления Ctrl).
Этот сценарий предоставляет единое решение, чтобы установить псевдонимы для символа, строки или даже полных строк, просто установить "псевдоним" в строках:
replacements = [
["jj", "m"],
["aa", "q"],
["zz", "e"],
["mb", "monkey eats banana"],
]
В последнем случае, вводя "МБ" вставит "обезьяну, ест банан":
Необходимо удовлетворить несколько зависимостей:
pyautogui:
pip3 install pyautogui
pyperclip:
sudo apt install python3-pyperclip xsel xclip
python3-xlib
sudo apt install python3-xlib
Выйдите из системы и въезжайте задним ходом.
Скопируйте сценарий ниже в пустой файл, сохраните его как 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')
Настройте свои псевдонимы (СОХРАНИТЕ ДОБАВЛЕНИЕ ОТСТУПА!) в разделе:
replacements = [
["jj", "m"],
["aa", "q"],
["zz", "e"],
["mb", "monkey eats banana"],
]
Если Вы хотите, изменение
act_on_firstmatch = False
в
act_on_firstmatch = True
если Вам нравится вставлять сразу, не касаясь Ctrl
Настройте сочетание клавиш с Ctrl как модификатор. Я использовал Ctrl + J в моем тесте для запущения скрипта командой:
python3 /path/to/replace_keys.py
И Вы сделаны!
Хотя ответ @jacobvlijm более конкретен, другая альтернатива должна использовать программу как AutoKey. Это делает много вещей автоматизировать Ваш рабочий стол путем генерации клавиатуры, и мышь ввела от триггерных фраз и нажатий горячей клавиши.
В частности, можно определить фразу для каждого из поврежденных ключей и инициировать его триггерной фразой, которая является любой комбинацией рабочих нажатий клавиш вряд ли для появления в фактическом вводе. Эти фразы могут быть установлены сразу инициировать из слова.
Существует также опция, которая помещает триггерный текст, который Вы просто ввели назад при непосредственном нажатии клавиши Backspace, если Вам когда-либо нужны триггерные символы, как.
Все это может быть настроено с помощью графического интерфейса AutoKey без фактического требуемого кодирования.
Для более сложных требований AutoKey может запустить полные скрипты Python, инициированные фразами или горячими клавишами, которые только ограничены воображением пользователя и знанием Python.