Как заставить код Pynput работать под Wayland (и Windows тоже)?Python

Программы на Python
Ответить
Anonymous
 Как заставить код Pynput работать под Wayland (и Windows тоже)?

Сообщение Anonymous »

У меня есть простой пример программы, которая работает в Windows и внутри PyCharm (в Linux, на дисплее Wayland):

Код: Выделить всё

from pynput import keyboard
from queue import Queue

kbd_q = Queue(maxsize=1)

def on_activate_s():
kbd_q.put("Hotkey s")

listener = keyboard.GlobalHotKeys({
's': on_activate_s,
})
listener.start()

while True:
key = kbd_q.get()
if key:
print(key)
Он не получает никаких событий клавиатуры при работе в терминале под Wayland (Linux). Вот ограничения Pynput в Linux. Я хочу управлять своей программой с помощью горячих клавиш (нажатие нескольких клавиш одновременно), поэтому я хотел бы использовать клавиатуру Pynput или даже клавиатуру pypi. Но если я правильно понимаю, Wayland намеренно предотвращает прямой доступ к клавиатуре.
Как я могу заставить свой код работать под Linux и Windows с минимальным обходным путем?
Мои идеи:
  • Запускать от имени пользователя root — не очень хорошо. Моя программа будет создавать файлы, что может быть неудобно из-за неправильных прав доступа к файлам и большего количества разрешений, чем это необходимо. Кроме того, при работе с sudo он не может обнаружить X-сервер.
  • превратите мое приложение в X-клиент. Возможно ли это без значительных накладных расходов? Как это повлияет на переносимость на Windows? Имеет ли смысл быстро превратить это в приложение pyQT?
Есть ли простое решение для этой проблемы?

Подробнее здесь: https://stackoverflow.com/questions/712 ... indows-too
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»