Skip to content

maliubiao/python_hotkeys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

##Linux下无视桌面环境的全局快捷键方案 ###配置文件为hotkey_config.py

import keyboard #示例 CONFIG = ( ((keyboard.LEFTCTRL, keyboard.LEFTALT, keyboard.NUM_0), 'echo hello 1'), ((keyboard.LEFTCTRL, keyboard.NUM_9), 'echo hello 2'), ((keyboard.LEFTCTRL, keyboard.M), 'echo hello 3') ) #输出调试信息 DUMP = False #后台执行 DAEMON = True #日志 LOG = "/tmp/hotkeys.log" #PID文件 PID = "/tmp/hotkeys.pid" #以某个用户执行命令 USER = "richard" 

###权限 需要root以读取键盘事件, 在hotkey_config.py里修改USER,这样在执行必要的操作后会降权, 如果不修改则命令以root方式执行,很危险.

###执行 先根据示例修改配置, 然后以root执行

python hotkey.py

###停止

kill -s SIGINT `cat /tmp/hotkeys.pid`

###响应规则

  1. 如果同时存在CTRL + M, CRTL, 则只响应CRTL
  2. 如果存在重复定义, 则只响应第一个
  3. 按下快捷键不放只响应一次
  4. 对桌面环境无干扰

###系统环境

  1. 只能在Linux上执行, 桌面环境不重要(没有也可以)
  2. 需要python支持select.epoll
  3. 如果在桌面环境下使用,需要确定~/.Xauthority是否存在,不存在会无法执行图形界面的程序
  4. 由于硬件相关, 程序会自动检测键盘(默认是监听所有键盘), 检测不到是有可能的.

###可用的键码 参考keyboard.py, 太长, 这里就不写了.

###欢迎fork, 欢迎反馈

About

Linux下无视桌面环境的的全局快捷键方案

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages