我正在尝试重新映射我right alt的行为,right ctrl以便我可以用右手拇指按下ctrl按钮。这是 Ubuntu 12.04。
我在我的主文件夹中创建了文件 .Xmodmap ,内容如下:
clear control
clear mod1
!keycode 64 = Alt_L Meta_L
keycode 108 = Alt_R Meta_R
add control = Control_L Control_R Alt_R
add mod1 = Alt_L Meta_L
Run Code Online (Sandbox Code Playgroud)
你可能猜到了,我的左 alt 键的键码是 64,我的left alt键的键码是 108。
这实际上是有效的,因为我的右 alt 键的行为就像我按下ctrl键一样。
但是我的左键alt现在不再做任何事情,这意味着我没有alt剩下的键了。鉴于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), …Run Code Online (Sandbox Code Playgroud) 我必须对主目录中的 xmodmap 进行一些更改。当我执行xmodmap ./.Xmodmap一切都按预期工作时。但我不知道如何永久应用它。我尝试将其添加到.xinitrc此处其他问题中建议的名为liek的文件中,但它不起作用。
我的系统是全新安装的 13.04 64 位。
我正在使用 Ubuntu 14.04。
我有一个自定义的 Xmodmap 键盘布局。但是,当我在暂停后恢复时,布局消失了。
我已经尝试了这个问题的答案中提到的所有内容: 如何在登录时设置 Xmodmap?
使用 .xinitrc 或在启动应用程序中添加命令都不起作用。好吧,它们在通常重新启动后确实可以工作,但在挂起之后就不行了。
有没有一个文件,无论是重启还是从挂起恢复,登录后总是执行?
我正在使用新键盘,并尝试将其设置为模仿笔记本电脑上的键盘。我在 Ubuntu 14.04 上使用 xmodmap,但无法让它工作。我像这样清除了修饰键:
xmodmap -e "clear mod1"
xmodmap -e "clear mod4"
xmodmap -e "clear Control"
Run Code Online (Sandbox Code Playgroud)
这工作正常,之后修饰符不做任何事情。之后,我尝试将 Alt_R 键分配为超级键,如下所示:
xmodmap -e "add mod1 = Alt_R"
Run Code Online (Sandbox Code Playgroud)
但是,alt 按钮会恢复为 alt 按钮的行为,而不是像 super 一样的行为,并在点击它时调出 Unity 搜索。有没有让修饰符与 xmodmap 一起工作的技巧?
此外,即使在清除控制后,使用“xmodmap -e”清除控制”,我仍然可以使用 ctrl。
我使用的键盘是 das 键盘的终极版,如果这很重要的话。
编辑:我在使用 xev 并试图解决问题时做出的一个认识:当我运行类似“xmodmap -e”keycode 133 = Alt_L”(keycode 133 通常是超级),然后启动 xev 时,当我查看它显示的输出:
KeyRelease event, serial 37, synthetic NO, window 0x2000001,
root 0x9e, subw 0x0, time 179020, (-382,66), root:(406,118),
state 0x40, keycode 133 (keysym 0xffe9, Alt_L), same_screen YES,
XKeysymToKeycode returns …Run Code Online (Sandbox Code Playgroud) 所以前几天我看到了这个问题。用户的K密钥已损坏,他们想将其映射到 Right- Shift。一个很好的答案出现了,我想我会测试它是否有效。我跑了:
xmodmap -e "keycode 62 = k"
Run Code Online (Sandbox Code Playgroud)
我这样做是基于我从不将 Right-Shift用于任何事情的理解。事实证明我完全错了。我整天都在使用它。
我一直在填写文档,破坏命令,甚至几乎删除了错误的东西(使用 Right- Shift+ Delete)。这是情绪的过山车,但现在我希望它消失。对不起宇宙。
我知道我可以重新启动甚至只是重新启动 X,但我有很多事情正在运行和工作要做。我可以删除xmodmap已经创建的映射,以便 Right-Shift就是 Right-Shift吗?
在这种情况下,它只是一个单一的映射(因此 Etcher Sketch 方法对我有用)但假设我有其他要保留的映射。
我是一个 vim 用户,我Esc经常使用,所以我映射Caps Lock到Esc.
我目前在我的~/.profile:
# remap Esc to Caps Lock
xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'
Run Code Online (Sandbox Code Playgroud)
问题是每次我挂起计算机甚至锁定屏幕时, 的映射Caps Lock都会恢复为默认值。
我的问题是,我应该把这条线放在哪里,以便即使在暂停和锁定屏幕(等)之后重映射仍然存在。
有趣的是,事实证明这几乎是不可能的。重新映射 Alt 键以充当另一个 Ctrl 键不是解决方案,因为您失去了 Alt 键功能(其中一些是必不可少的,例如Alt+Tab)。
那么如何获得类似于 MacOS 的行为,其中 cmd 键用于键盘快捷键(也用于在窗口之间切换cmd+Tab)?
我知道在将Ctrl+TabAlt 键重新映射为 Ctrl 键后,我可以指定在窗口之间切换。但是后来我失去了Ctrl+Tab某些应用程序中的真正功能,这些功能也很重要,例如在 Chrome 中切换标签页。基本上我的 Ctrl 和 Alt 键将成为同一个键,并且这两个修饰键不可能有两组不同的快捷键。
对我来说一个好的解决方案可能是Alt+C, Alt+V, Alt+X, etc.在窗口管理级别捕获并将 a 发送Ctrl+C or Ctrl+V or Ctrl+X etc.到聚焦窗口的方法。在 Windows 上,这可以通过 AutoHotKey 实现。在 Linux 上,我听说过一个名为 AutoKey 的应用程序,但与 AutoHotKey 不同的是,您必须使用 GUI 来设置快捷方式。由于我将手动编写几乎所有 Alt 组合,因此我不希望 GUI 应用程序这样做。我应该能够通过编写文本文件来配置它。
是否可以使用 Gnome 或 Xmonad 实现这一目标?
在 Ubuntu 12.10 中,我的 .Xmodmap 设置在插入/拔出无线键盘/鼠标组合后丢失(重置)。您知道如何防止或覆盖这种行为吗?
在升级到 Ubuntu 13.10 之前,我使用了两种键盘布局 - GR 和 DE。我能够在一个 .xmodmap 中设置两者,这意味着我能够配置 GR 和 DE。现在,当我创建一个 .xmodmap 时,它只包含我当前使用的布局,但我想要两个布局都在。我怎样才能做到这一点?
我使用的是美国国际用“的AltGr死键”布局和选项开关Alt和Win按键。不错,但我的AltGr不起作用。我要使用的AltGr密钥具有密钥代码 134(使用 xev 发现)。所以我创建了一个 .Xmodmap 文件:
keycode 134 = ISO_Level3_Shift Multi_key ISO_Level3_Shift Multi_key
Run Code Online (Sandbox Code Playgroud)
比我执行“xmodmap .Xmodmap”。当我现在展示我的修饰符时,我得到:
> xmodmap
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x85), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x40), Super_R (0x6c), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), ISO_Level3_Shift (0x86), Mode_switch (0xcb)
Run Code Online (Sandbox Code Playgroud)
但是...按下AltGr(代码为 134=0x86 的键)+q不会给出预期的结果 - 这将是“a-umlaut”。这应该!xmodmap …