Comments (8)
Right now it does require a keyboard to work on Linux, because we write the events to the device file. If there's no keyboard the OS won't have created any device files for it.
But I agree this is a pointless limitation. The library should create a fake event device in case no hardware is found. Maybe following http://unix.stackexchange.com/a/14882/52837 if it can be done with no binaries or external libs.
from keyboard.
I think I found an alternative, but it requires X to be installed. Are you running any graphical interface, or just a headless TTY?
from keyboard.
Wow, you're fast :) I'm actually running X so that is no problem.
from keyboard.
Great. The alternative would require playing with drivers and um put, which is painful and would introduce potential segfaults.
I'll get back to you when I have some X code implemented to simulate keyboard and mouse events.
from keyboard.
Ok, I think it's working now. When no devices are detected on Linux it creates a fake device using the uinput
driver (included in most kernels, and does not even require X). It worked well on my raspberry pi, allowing to simulate keyboard events through SSH.
Note this library does not have support for changing devices, unfortunately. So there must be no keyboards connected when the library call is made for it to create the uinput device. If this is troublesome for you please let me know and I'll bump the priority of this feature.
Please let me know if it's working for you.
from keyboard.
The library got more popular and I'm trying to clean up the issues list. I think the problem has been solved, so I'm closing this issue. If you still need anything feel free to comment and/or reopen it, though.
from keyboard.
Thanks!!!
from keyboard.
@nickehallgren
One solution is to try sshkeyboard
It works in headless devices / servers which do not have keyboard attached, and it does not require X to be installed.
It allows you to react to user input even through SSH, but it cannot mock user input like keyboard
does it.
from keyboard.
Related Issues (20)
- Sometimes the keys are not pressed
- Using exit(0) inside on_press_key() lambda doesn't exit the program
- Keys like "D" Counting as other keys HOT 1
- keyboard.suppress blocks keyboard.is_pressing
- TOO MANY dependencies HOT 3
- suppress=True breaks shift-click selection in Notepad, Explorer
- suppress=True breaks Windows Start Menu HOT 3
- Key name '~' in not mapped to any known key
- 'right alt' and 'left alt' parsable hotkeys behaves the same as the 'alt' parsable hotkey on Windows
- suppress=True doesn't work with read_hotkey and on_release_key HOT 1
- How to stop `Keyboard.hook` hooking `keyboard.send` or `keyboard.write`?
- Alt Down not detected with Streamdeck
- Returns upper and lower cases on Windows but only lower cases on Linux
- An OSError when the device is unplugged on RaspberrypiOS HOT 2
- Suddenly not working in mac os
- Periodicaly produce a TypeError: object of type 'NoneType' has no len()
- Cannot hold a key
- 'LMB + Ctrl' mulfunctions when `suppress = True`
- German and English Keyboard. Mixed letters (Z<-->Y)
- audio being muted when pressing "D" with this module HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from keyboard.