我想了解从 Mac OSX 到最终应用程序的按键映射。这些推断的每个点的映射、配置和诊断工具是什么?所提供的逐步推理是否需要修改、添加或减少?
我知道这似乎涵盖了很多领域,但任何见解都会有所帮助。谢谢
键的一般推理路径
- 物理按键 -> OSX USB HID 驱动程序 -> OSX 可管理按键代码
- OSX GUI 控制台 -> Terminal.app -> ssh 到 Linux -> Linux 终端会话
- Linux 终端会话 -> 终端会话中的 Emacs -> Emacs 绑定
- OSX GUI 控制台 -> X-Quartz -> Emacs
据我目前了解,映射序列如下:
键盘 -> OSX
- OSX USB HID 驱动程序与 iokit 守护程序的键盘输入接口
Apple 提供了一个 shell 实用程序来重新映射 USB HID 代码(适用于 10.12):
hidutil 属性 — 设置 '{“UserKeyMapping”:[{HIDKeyboardModifierMappingSrc:0xHIDSRC,“HIDKeyboardModifierMappingDst”:0xHIDDST,...}。
Apple 提供了一种使用 Objective-C 的编程方法。两种方法都使用“密钥表用法”中的 HID 键盘用法 ID 作为距基地址 0x700000000 的偏移量。看https://developer.apple.com/library/archive/technotes/tn2450/_index.html。这个 0x700000000 基址索引了 USB 联盟文档中的表(https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf)。
卡拉宾元件是一个应用程序,可以通过它自己的替换 iokit 守护进程来获取关键事件并修改它们。
Apple 是否提供显示 HID BT 按键的开发工具?
OSX -> GUI 控制台会话
系统偏好设置 -> 键盘 -> 键盘将 F1、F2、...Fn 设置为标准功能键或特定于 Mac OSX 的特殊功能键。
系统偏好设置->键盘->设置组合键操作的快捷方式
系统偏好设置->键盘->输入源
该链中的链接之一是一个名为“键盘布局”的文件,它将输入(键码)转换为输出(字符)。 MacOS 使用这些文件可以在同一物理键盘上键入不同的语言:只需激活不同的键盘布局即可。 尤克里里允许修改此布局。 Backspace、Tab、光标击键等命令仅部分受键盘布局文件影响,因此要控制它们的输出,您需要采用不同的方法。我还认为有一些 XML 文件可以根据一些 Schemata 在这里手动修改?
OSX 应用程序
终端程序首选项->配置文件->键盘可以更改按键的 ANSI ASCII“转义码”。这些转义码符合___标准吗?
终端程序Preferences->Profiles->Advanced 允许选择终端作为“xterm-256color”,....这影响映射如何?
终端程序首选项 -> 配置文件 -> 高级 -> 输入允许进一步修改复选框:删除发送 Ctrl-H,使用 Ctrl-V 转义非 ASCII 输入,将换行符粘贴为回车符。
与 Linux 操作系统的 ssh 会话 10. ANSI ASCII 字节流根据 $TERM 使用 terminfo 和 termcap 进行解释。细节?
showkey -a、infocmp -CL 提供详细信息
stty,这怎么适合?
这里有其他映射或诊断工具吗?
与 Linux 操作系统和 Emacs 的 ssh 会话 14. Emacs使用Mx描述绑定来显示按键绑定
- Emacs 使用 (global-set-key) 和 (define-key) 来更改键绑定。
与 Emacs 的 X 会话
- X-Quartz 与 Mac OSX 接口,将键绑定映射到应用程序。
- xmodmap 和 xkb 可用于更改这些绑定。
- 这里有其他映射或诊断工具吗?