xkeysnail 是 mooz 大佬许久之前用python开发的一款软件 mooz/xkeysnail, 不过已经好久没有维护了, 我目前使用的是基于 Lenbok/xkeysnail , 的分支进行了两个小修改的版本 nlfiasel/xkeysnail , 优化了分应用设定的 multipurpose 的逻辑, 并添加了超时后按键取消的功能
自己用了一段时间了感觉挺好用, 分应用设定的 multipurpose 是 Lenbok 在原版的基础上添加的功能, 不过在实际使用中有一点问题, 我改了一下, 作者目前开了个新分支还在测试
目前是,可以対任意应用分别地定义按键映射, 比如说某个键在某些应用里是多功能的修饰键, 但是全局并不是, 估计功能上大致应该与 Karabiner Karabiner 这个软件十分接近了(因为没用过…不过应该是大部份的键位映射场景都已经覆盖到了)
附上我目前的键位映射文件, 安利给大家: 在这里
以及试用 ox-hugo 写的博客回忆的安装和设置: 在这里
PS: 对延迟要求高的按键不要轻易采用 xkeysnail 处理…比如我全局设置中的 enter, 建议注释掉
8 个赞
PSPS: mooz/xkeysnail 一周前合并了一年来攒下的pr…
其中也包含了一个多修饰键没法一块按的修复(比如virt-manager ctrl+alt释放? 看意思大概是这个意思…)
同时,经过几个月的使用…空格的按下当ctrl使,十分方便,安利给各位
xkeysnail 是不是可以比较好的区分不同的设备进行不同的配置?
全局emacs映射,确实很方便。
最近遇到的问题就是,在vnc里面开启的远程桌面上无法开启,xinput能输出vnc virtual keyboard,但是没有对应的device
应该是能的…Lenbok有好几个pr是干的这个事…只不过我只用一个设备…
@nlfiasel 看了你的那个wmctrl 设置,推荐 jumpapp
年轻人真能折腾,这个不知道你感不感兴趣:
以前用EXWM,窗口排布可以用winner切换,现在被迫用openbox,想实现一个类似的功能,
这里有个参考脚本
要和窗口管理器深度整合估计要这个
在你的github提issue了,主意不好你随便处理哈
窗口管理器我用的一个Kwin脚本 在这里 …感觉还挺好使得
1 个赞
看起来不错啊,我还在用 i3,不知道这个稳定吗?之前试过 kde 的另一个这样的脚本,感觉并不稳定。
大多数时候好使…就是改了桌面相关的系统设置(比如增加虚拟桌面)之后要手动去设置里把这个脚本开关一下…我一直在用,木有什么问题
像 i3 的话就是接显示器什么的,还要自己用 arandr 之类的调整很麻烦,感觉 kde 在这方面会好一些。这样听起来好像差不多。。
单纯添加或者去除显示器是没问题的…我这两个是正常使…
拔掉显示器之后按快捷键重新自动布局就行…我设置的mod+r
嗯 插拔确实不好使…
aeghn
15
如果是固定的显示器和固定的摆放位置的话可以写脚本啊。
我目前是这样的,有一个笔记本和一个显示器,如果连接它们时,我会把笔记本竖着固定起来(贫穷使我我这样)看 PDF 之类的。
有两个 i3 的配置文件,一个用于笔记本屏幕,一个用于加显示器的。区别主要是一些绑定按键的区别和工作区的分配。
写的脚本思路大概是这样的:
- 判断显示器数量(
xrandr | grep " connected " | wc -l
)
- 如果是一个屏幕
xrandr --output eDP-1 --mode 1920x1080 --pos 0x0 --rotate normal
xrandr -auto
ln -sf "$I3_CONFIG_1" $HOME/.config/i3/config
如果是两个屏幕
xrandr --output eDP-1 --mode 1600x900 --pos 0x0 --rotate left --output HDMI-2 --mode 1920x1080 --pos 1000x0
ln -sf "$I3_CONFIG_2" $HOME/.config/i3/config
- 重启 i3 (i3-msg restart)
- 重新设置壁纸
像 eDP-1 之类的好像在不同的显示器上是不同的,包括插不同的线也是。所以这个脚本只能用于一台设备啊。
aeghn
17
我这 eDP-1 一直是笔记本屏幕啊,我现在就一个外置显示器,所以需求很简单,如果我设备变多的话,我肯定会考虑在扩充一下脚本的。
1 . 如果用的显示器比较固定,包括摆放位置固定,造成混乱的只有连接线、接口:
1.1 显示屏不一样大,xrandr
的结果有:
eDP-1 connected primary 900x1600+0+0 left (normal left inverted right x axis y axis) 344mm x 193mm
最后的这个实际尺寸可以拿来做做文章。
1.2 其他情况就找 EDID 来识别设备。
2 . 用的显示设备经常不同,摆放位置也不一样的话,我没考虑过,感觉无论用什么桌面/系统都得手动调一下吧。
@nlfiasel 请教下你是怎么设置开机自动启动的,我按照你推荐的这个方法操作,没法成功。 查看状态是报错退出。
手动执行的时候,是可以正常工作的。
系统: Arch Linux + KDE
● xkeysnail.service - xkeysnail
Loaded: loaded (/home/aqua/.config/systemd/user/xkeysnail.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Wed 2020-10-28 20:51:50 CST; 625ms ago
Process: 4391 ExecStartPre=/usr/bin/xhost +SI:localuser:root (code=exited, status=0/SUCCESS)
Process: 4392 ExecStart=/usr/bin/xkeysnail -q ~/.config/xkeysnail/config.py (code=exited, status=1/FAILURE)
Main PID: 4392 (code=exited, status=1/FAILURE)
多谢。这个方法之前都试过了。还是没有用。
@Claude-Ray 今天重启后,发现用你的方法竟然成功了。