在 Fedora 22 下更改 Apple 键盘上的特定键

在 Fedora 22 下更改 Apple 键盘上的特定键

我正在尝试更改运行 Fedora 22 的 USB Apple 键盘上的一些特定键。

花了三天时间寻找答案并尝试不同的解决方案,我最终使用了xmodmap但仍然无法让一切正常工作。

我的具体问题是:

  • 交换Alt 左键键与另类右
  • 交换向左Ctrl键与左命令钥匙

到目前为止,这是我最后尝试的:

我复制了我的xmodmap文件:

xmodmap -pke ~/.xmodmap

然后我找出了我尝试切换的按键的按键代码西夫这给了我 Alt Left 和 Alt Right:

KeyPress event, serial 36, synthetic NO, window 0x3400001,
root 0xd7, subw 0x0, time 7033878, (38,-14), root:(38,23),
state 0x10, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False

KeyPress event, serial 36, synthetic NO, window 0x3400001,
root 0xd7, subw 0x0, time 7035742, (38,-14), root:(38,23),
state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
XKeysymToKeycode returns keycode: 92
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False

所以Alt 左键关键是使用键码 64,以及另类右键,其名称为ISO_Level3_Shift,正在使用键码 108

关于网络上的其他来源,我创建了一个包含以下内容的新 xmodmap 文件:

keycode 64 = Alt_L
keycode 108 = ISO_Level3_Shift
remove Mod1 = Alt_L
remove Mod4 = ISO_Level3_Shift
add Mod1 = ISO_Level3_Shift
add Mod4 = Alt_L

然后我尝试运行这个新配置:

xmodmap -v .mymodmap

并得到这个错误:

! .mymodmap:
! 1:  keycode 64 = Alt_L
    keycode 0x40 = Alt_L
! 2:  keycode 108 = ISO_Level3_Shift
    keycode 0x6c = ISO_Level3_Shift
! 3:  remove Mod1 = Alt_L
! Keysym Alt_L (0xffe9) corresponds to keycode(s) 0x40 0xcc
    remove mod1 =  0x40 0xcc
! 4:  remove Mod4 = ISO_Level3_Shift
! Keysym ISO_Level3_Shift (0xfe03) corresponds to keycode(s) 0x5c 0x6c 0x9a
    remove mod4 =  0x5c 0x6c 0x9a
! 5:  add Mod1 = ISO_Level3_Shift
    add mod1 = ISO_Level3_Shift
! 6:  add Mod4 = Alt_L
    add mod4 = Alt_L
!
! executing work queue
!
    keycode 0x40 = Alt_L
    keycode 0x6c = ISO_Level3_Shift
    remove mod1 =  0x40 0xcc
    remove mod4 =  0x5c 0x6c 0x9a
    add mod1 = ISO_Level3_Shift
    add mod4 = Alt_L
X Error of failed request:  BadValue (integer parameter out of range for operation)
Major opcode of failed request:  118 (X_SetModifierMapping)
Value in failed request:  0x17
Serial number of failed request:  15
Current serial number in output stream:  15

尽管我正在寻找解决方案,但这让我感到困惑。

有谁知道如何更改新 Apple 键盘上的特定按键的线索或信息来源吗?


编辑:

到目前为止,在尝试了几种配置之后,我最终得到了最接近的方法,如下所示:

clear mod1
clear mod5
keycode 64 = ISO_Level3_Shift Mode_switch ISO_Level3_Shift Mode_switch
keycode 92 = Alt_L Meta_L Alt_L Meta_L
keycode 108 = Alt_L Meta_L Alt_L Meta_L
add mod1 = ISO_Level3_Shift Mode_switch
add mod5 = Alt_L Meta_L

关键代码92108似乎与我在中看到的键相同西夫输出。

这是我的xmodmap输出我的改变:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):
shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb) 

这是我的xmodmap输出我的改变:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        ISO_Level3_Shift (0x40),  Mode_switch (0xcb)
mod2        Num_Lock (0x4d)
mod3
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        Alt_L (0x5c),  Alt_L (0x6c),  Alt_L (0xcc),  Meta_L (0xcd)

应用这些更改后,我的权利替代键似乎像我的左 Alt 键一样工作(例如,在某些应用程序中切换菜单),但左 Alt 键没有执行任何操作。

也许,为了具体化我的意图:

出于编程目的,我需要切换两个 Alt 键,因为我希望办公室的 Apple 键盘能够像家里的键盘(我使用 Macbook)一样工作。

我非常习惯书写特殊符号,例如波形符 ~ 和管道 |依此类推,用我的左 Alt 键(用左手拇指触发左 Alt 键)。

我也需要切换左键命令左Ctrl因为这些也在我家里的 Macbook 上打开。

当然,我可以在工作中习惯这些切换键,但这每天都让我烦恼,因为当我在流程中而不考虑正确的键时,我按下了错误的组合键。

那么,有人可以帮我吗?

答案1

到目前为止,我已经有了关于切换的部分解决方案控制键指令在左侧。

这很愚蠢简单,但对于我的目的来说还可以:

我用Gnome 调整工具更改这些键的行为。在我的语言中,有一个选项叫做输入在这个选项下有从顶部开始的第五点“ctrl键的位置”,我将其更改为“交换左超级键和左ctrl键”。

其他译本中应该也有类似的内容。

到目前为止,我现在可以使用左键命令某些标准快捷键的键(cmd + c 用于复制,等等)。但与我家里 Macbook 上的键盘不同,我无法使用cmd + 选项卡。因此我需要使用Ctrl + 选项卡或者alt + 选项卡。但没关系,这是你可以习惯的事情。

但不幸的是我仍然没有找到交换两者的选项替代键。

相关内容