Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

能否为xmodmap提供一样的功能 #29

Open
kktt007 opened this issue Apr 30, 2021 · 5 comments
Open

能否为xmodmap提供一样的功能 #29

kktt007 opened this issue Apr 30, 2021 · 5 comments

Comments

@kktt007
Copy link

kktt007 commented Apr 30, 2021

目前已非常依赖此脚本的功能
但是在linux上xmod只能提供capslock配合hjkl等键使用。
此脚本有一个很好的特性 Ctrl, Alt Compatible ,不知是否可以用在xmodmap上,感谢提供脚本。

@miozus
Copy link
Contributor

miozus commented Aug 3, 2021

ummm,要不你开分支自己手写一个简单的

Capslock ,hjkl,uiop,swq?

提交分支,然后看其他 Linux 用户觉得好用,继续添砖加瓦。

感觉 Windows+虚拟机,或者直接 Mac 用户很多,两个平台都覆盖了, 纯 Linux (xmod)比较少。

@Vonng
Copy link
Owner

Vonng commented Aug 4, 2021

倒不是不想,主要是不会😂。一直是走ssh从mac用Linux的。
所以也确实没有这个需求和知识,抱歉了。
但如果您愿意尝试fork DIY一个,我会非常乐意参与测试与校对。

@kktt007
Copy link
Author

kktt007 commented Aug 4, 2021

"> 倒不是不想,主要是不会😂。一直是走ssh从mac用Linux的。

所以也确实没有这个需求和知识,抱歉了。
但如果您愿意尝试fork DIY一个,我会非常乐意参与测试与校对。
撤回让我来说,主要是真不会,-_-

虽说现在在Linux Kde桌面下,可以绑定快捷键,但是有个类似此项目的配置还是非常方便的(绑定单个按键同时,还支持组合键). 我想知道那些用vim和emacs之外的人都是如何在vscode,sublime这些编辑器上快速移动的(home,end,箭头这些肯定是低效的),

目前我感觉此项目是windows最高效的,所以寻求Linux上的应用,目前用的是xmodmap(https://tonsky.me/blog/cursor-keys/),但是他能绑定的是单个快捷键,组合键没有

@cantoraz
Copy link

cantoraz commented May 12, 2022

xmodmap映射一点简单的还可以,Linux上要完美配置是要编写一个XKB的键盘布局方案。可以参考现在提供的neo2和l3布局。
但是XKB文档很不完善,一些高级用法比较晦涩难懂。
而且不能实现单独按<CAPS>输出一个KeySym,作为修饰键与其它键组合一起按又输出另一个KeySym。这个功能可以由xcape实现。而映射为shell命令启动程序可以由xbindkeys+xdotool实现。

简单地说XKB,一般会用到ISO_Level3_Shift和ISO_Level5_Shift,可以分别定义修饰键Mod3和Mod5来实现。而Mod3和Mod5可以映射到<CAPS><RALT><COMP>。这样就会多出来3,4,5,6,7,8层,即6层布局,加上原来2层,共8层布局。
然而,GUI程序一般只识别通用的修饰键Shift、Ctrl、Alt、Super,额外映射的Mod3、Mod5并不能在这些程序中与其它键组合作快捷键。所以通常会映射为标点、符号、欧洲语言字母、控制字符。如何映射为一组控制序列,或者一个另一组快捷方式,我还不掌握(本人暂时没有这个需求)。
比如说我自己用的方案

XKB、xmodmap、xbindkeys、xdotool都有自身局限性,很难单独完全实现Karabiner,需要配合起来。但这样未免也搞得太复杂了。而且Linux用户和Win/Mac用户相比习惯差太多,内部Vim和Emacs用户的怪癖也不相同,映射会极具个性化。要搞一套方案价值不大,还是自己选择合适的工具吧。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants
@cantoraz @kktt007 @Vonng @miozus and others