【问题标题】:Karabiner for Linux? [closed]用于 Linux 的 Karabiner? [关闭]
【发布时间】:2017-05-12 21:37:36
【问题描述】:

背景:在过去五年左右的时间里,在典型 PC 上使用 Gnu/Linux 多年后,我一直在使用 Mac 硬件(大部分是高端 MacBook Pro 笔记本电脑)和软件符合人体工学键盘的硬件。更重要的是,作为 Emacs 的重度用户,切换到 Mac 是痛苦的,Apple 标准的短键盘既令人抓狂又不可避免。我通过使用Karabiner 工具进行了两个小但非常重要的更改来防止RSI 发作:1)更改大写锁定键以在单独按下时生成菜单(f13)键,并在与另一个键按下时更改控制键修改键码; 2)以类似的方式更改返回键,单独按下时返回,当与另一个键按下时,控制键修改了键码。对 Apple 最近在硬件和软件方面的决定感到失望,我现在回到 Gnu/Linux(如果重要的话是 Ubuntu),但仍坚持使用 Mac 笔记本电脑。

问题:由于 Karabiner 是一个仅适用于 OS X 的工具,没有现成的 Gnu/Linux 对应工具,看来我必须编写和/或修改一些代码来实现大写锁定和返回键Karabiner 启用的双重功能行为。 Karabiner 作者writes 认为 xbindkeys 和 rbindkeys 会重新映射键,但乍一看它们似乎无法处理双重功能行为。现在我正在努力移植 Karabiner 或完全创建一个新工具。毫无疑问,可能还有其他方法。所以我的问题是:你会建议什么编程建议来解决这个问题?尤其是可以在数小时、数天或数周而不是数月内开发的产品。

注意事项

1) 有不同的方法涉及行为更改,例如交换控制键和命令键。许多人都以不同程度的满意进行了尝试。恕我直言,Karabiner 的双重功能方法是最有效的,因为它在键盘主行上提供控制键对称性,并且适用于所有应用程序!

2) 也可能建议使用不同的硬件。我尝试过戴尔、惠普、联想、宏碁系统并查看了更多。没有一款能与 Apple 高端产品的综合功率、尺寸、手感和风格相媲美,尽管价格较高。例如,Dell Precision 7510 体积庞大,触控板感觉像砂纸; Lenovo X1(一个非常好的系统)没有 Thunderbolt 端口;等等

3) 由于笔记本电脑的要求,外接键盘也不适合;飞机或火车上没有外接键盘。

【问题讨论】:

  • fork xbindkeys 并实现这个额外的功能。
  • 分叉 xbindkeys 很有意义。不错。
  • 你看过 xmodmap 吗?
  • 双功能键可以使用xcape

标签: linux macos emacs keyboard karabiner


【解决方案1】:

您可以使用 Interception ToolsWaylanTTYX11 上实现此目的,它们直接对话与 libevdevlibevdev

Wayland、TTY 或 X11

安装拦截工具和插件,例如caps2escinterception-k2k。然后你需要配置拦截来使用这个插件。对于caps2esc,您可以使用以下/etc/udevmon.yaml 文件:

- JOB: "intercept -g $DEVNODE | caps2esc | uinput -d $DEVNODE"
  DEVICE:
    EVENTS:
      EV_KEY: [KEY_CAPSLOCK, KEY_ESC]

然后以root身份运行它:

nice -n -20 /usr/bin/udevmon -c /etc/udevmon.yaml

你应该确保它starts on login。对于systemd,您可以使用以下服务:

[Unit]
Description=udevmon

[Service]
ExecStart=/usr/bin/nice -n -20 /usr/bin/udevmon -c /etc/udevmon.yaml

[Install]
WantedBy=multi-user.target

仅限 X11

作为替代方案或在没有 udev 的旧系统上,您可以使用 setxkbmapxcape

首先将Caps Lock 更改为Ctrl 修饰符:

setxkbmap -option caps:ctrl_modifier

然后将Caps Lock设置为Menu键,当按下时间小于超时(默认为500毫秒):

xcape -e 'Caps_Lock=Menu'

xcape 作为守护进程运行,因此您需要确保它starts on loginsetxkbmap 仅设置当前 X 会话的键盘布局,您可以在 xinitrcxprofileX 配置上 set it permanently文件


P.S.对于那些想要使用外部键盘的人,开源(软件和硬件)Ultimate Hacking Keyboard (UHK) 允许使用此功能。

【讨论】:

    猜你喜欢
    • 2020-11-07
    • 2014-12-17
    • 2010-09-06
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 2015-05-31
    相关资源
    最近更新 更多