我刚刚在MacBook Pro我的键盘出现了问题。
当我按下位于制表符正上方的键(应该是 ` 和 ~)时,我得到的却是 < 和 >。我的键盘上的所有其他键盘均正常工作。
我尝试了以下布局,这是不使用和使用 Shift 键时显示的布局:
- 英语(美国)
- 打印 < 和 >
- 英语(美国,其他国际英语)
- 打印 \ 和 |
- 英语(美国国际带死键)
- 打印 \ 和 |` 和 ~
- 英语(麦金塔)
- 打印 § 和 ±
有人知道如何获取密钥以正确显示 ` 和 ~
编辑:localectl 和 setxkbmap 的输出
$ localectl
System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: us
$ setxkbmap -print
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+inet(evdev)" };
xkb_geometry { include "pc(pc105)" };
};
答案1
这可能是一个已知的错误(红帽,Ubuntu,问库本图)。解决这些错误的方法是:
echo 0 > /sys/module/hid_apple/parameters/iso_layout
尝试运行该命令进行测试(您可能需要用以下命令包装它以sudo sh -c "echo..."
将其作为 root 运行)。如果此操作可以解决问题,请将其放入rc.local
脚本(或 systemd 等效程序)中,使其在启动时运行,从而使其永久生效。
如果可行,它应该会影响 X 和控制台环境中的按键。下面的 XKB 解决方案只会影响 X。
您也可以在 XKB 中修复此问题。在 Debian/Ubuntu(可能还有其他系统)上,XKB 选项apple:badmap
和apple:goodmap
存在以自动交换这些键定义。这些可以设置为在系统范围内生效,也可以在每个用户级别与您的 DE 的键盘设置实用程序/etc/default/keyboard
一起使用。setxkbmap
这些答案(unix系统,问库本图) 建议更改系统文件(/usr/share/X11/xkb/symbols/pc
或/usr/share/X11/xkb/symbols/us
)来改变mac
变体。
建议的更改将允许使用以下命令加载正确的键setxkbmap -layout us -variant mac
:
orig:
xkb_symbols "mac" {
include "us(basic)"
name[Group1]= "English (Macintosh)";
key.type[group1]="FOUR_LEVEL";
// Slightly improvised from http://homepage.mac.com/thgewecke/kblayout.jpg
key <LSGT> { [ section, plusminus, section, plusminus ] };
key <TLDE> { [ grave, asciitilde, dead_grave, dead_horn ] };
fix: swap key definitions:
key <TLDE> { [ section, plusminus, section, plusminus ] };
key <LSGT> { [ grave, asciitilde, dead_grave, dead_horn ] };
(在我的 Arch 系统上,这是在/usr/share/X11/xkb/symbols/us
;如果您的系统中存在它,它可能看起来有所不同/usr/share/X11xkb/symbols/pc
,但交换键名称应该是相同的。)
如果您的系统升级了 XKB 符号数据库,您的更改可能会被覆盖,您需要再次应用此更改。请参阅我对另一个 XKB 问题的回答寻找一种将这种改变作为用户定制的方法。
您可能需要其他步骤禁用 GNOME 的键盘设置(或说服他们使用您选择的设置)。