Krishnan Shankar
unread,Apr 2, 2017, 12:48:02 PM4/2/17You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Hi All,
I was trying to build a VIM like shortcuts in windows. For example,
IF i press CAPSLOCK & h: It should "{Left}" move one to left. If CAPSLOCK &
b: It should "{Ctrl Down}{Left}{Ctrl Up}" move one word left etc.
I was successful in sending the key event. I used libraries like,
1. pynput
2. keyboard
for the same.
But i was unable to supress the Initial key event (ex: Caplock & h)
I tried using the keyboard to listen for key press events and supress them
as below.
>>>>>
import keyboard
def move_one_left():
"""
Wrapper for CAPS LOCK + b. The function sends LEFT ARROW Event
:return:
"""
keyboard.send(75)
def move_one_word_left():
"""
Wrapper for CAPS LOCK + b. The function sends LEFT ARROW Event
:return:
"""
keyboard.send('ctrl+left')
def main():
"""
This is the main loop which reads the key pressed.
According to the hotkey registered the function hooked is called.
The corresponding function will be the wrapped combination send back.
For example: CAPS + b is wrapped to Moving to left.
The main loop exits when Ctrl + c is done. So that is not registered.
:return:
"""
try:
# Start of the main loop
# Registering the hotkeys
# CAPS LOCK + H
keyboard.add_hotkey('caps lock+h', move_one_left, suppress=True)
# CAPS LOCK + B
keyboard.add_hotkey('caps lock+b', move_one_word_left,
suppress=True)
while True:
# Read the key pressed
print (keyboard.read_key())
except KeyboardInterrupt:
print("User has exited the program")
if __name__ == "__main__":
main()
<<<<<
This is working for sending the event for key press but the initial
keypress is also being send. The supress=True is not working.
Am I doing something wrong or is there any better way to supress the
initial key event and send another key event in place of that.
Regards,
Krishnan