You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Key-Echo is an Emacs plugin that uses XRecord technology to listen to system key events. It can listen to some special single key events, such as when the user only presses the Shift key without pressing other letter keys, it sends a signal to Emacs to execute some Elisp code, such as switching input methods.
Installation
Install Emacs 28 or above
Install Python dependencies:
Linux:
X: pip3 install epc sexpdata six pynput
pgtk: pip3 install epc sexpdata six python-libinput libevdev
Windows: pip3 install epc sexpdata six pynput pygetwindow
macOS: pip3 install epc sexpdata six pynput pyobjc
Use git clone to download this repository, and replace the load-path path in the configuration below
Add the following code to your configuration file ~/.emacs:
After adding the above settings, you can freely switch the input method by pressing Shift.
Options
key-echo-keyboard-quit-key: We cannot implement the Ctrl + g function by calling the keyboard-quit function, so the default setting for key-echo-keyboard-quit-key is Key.alt_r to achieve the function of sending the Ctrl + g key to Emacs when the user presses the right Alt key, to achieve the goal of quickly pressing Ctrl + g.
Python 3.13 Compatibility
Python 3.13 causes the pynput project to raise a TypeError: '_thread._ThreadHandle' object is not callable error.
The pynput master branch hasn't fixed this issue yet. You can install the fix patch using the following method: