我的操作系统是 Arch Linux amd64,Gnome ENV。
我想在 Arch Linux中将Caps Lock密钥映射到Esc(escape)。我运行命令:
xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'
Run Code Online (Sandbox Code Playgroud)
它运行良好,但片刻之后,Caps Lock 键再次起作用。我必须再次运行命令。
我很确定这个解决方案可能在一年前运行良好。我的问题是什么?谁能帮我在 Arch Linux 操作系统中永远将 Caps Lock 键映射到 Escape 键?
我的键盘损坏了,总是按下键盘键 [é],它使我无法工作。在 Windows 上,我找到了禁用 [é] 按钮的软件sharpkey,但在 Ubuntu 上我找不到任何解决方案。在许多论坛上,他们谈论 Xmodmap,但我无法在终端上工作,因为 [é] 按钮经常被按下。请你能给我一个解决这个问题的方法。谢谢
一段时间以来,我一直对将键盘上的 Windows 键 (Super_L) 绑定到“复制和粘贴”很感兴趣,除了桌面和 MacBook 之间的便利性和一致性之外,没有其他原因。
在阅读了有关 xmodmap 并执行以下操作后,我以为我已经接近了:
$ # re-map Super_L to Mode_switch, the 3rd col in keymap table `xmodmap -pke`
$ xmodmap -e "keycode 133 = Mode_switch"
$ # map Mode_switch+c to copy
$ xmodmap -e "keycode 54 = c C XF86_Copy C"
$ # map Mode_switch+v to paste
$ xmodmap -e "keycode 55 = v V XF86_Paste V"
Run Code Online (Sandbox Code Playgroud)
不幸的是,XF86Copy 和 XF86Paste 似乎根本不起作用。它们列在/usr/include/X11/XF86keysym.h并xev显示键序列被 X 解释为 XF86Paste 和 XF86Copy,这些符号真的有效吗?他们是否必须有应用程序级别的支持?
我想在键盘上制作一个按钮来像单击鼠标一样,最好使用 xmodmap。我该怎么做?
运行 Ubuntu 10.10。
今天我发现了 Steven Losh 的这篇非常好的文章,他在其中介绍了一些提高工作效率的键盘映射。其中有左右shift键的动态映射。
想法
当 Shift_L 或 Shift_R 在没有附加键的情况下被按下时,它们分别映射到 '(' 和 ')',否则它们会照常运行。
问题
他在 OSX 下完成所有这些工作。我正在尝试在 Linux 下实现相同的目标。对此没有直接的方法,因为据我所知,您不能使用 xmodmap 单独为 Shift_L 配置一个键,而在用作修饰键时为 Shift 配置另一个键。
我在谷歌上搜索了一下,发现有人试图在 Windows 下做同样的事情,这显然可以使用 AutoHotKey,但我找不到任何适用于 Linux 的东西。
在Linux下有没有办法解决这个问题?
我尝试将很棒的 mod 键从 windows 键更改为 Pause、Scroll Lock 和 Escape。
对于所有键,我尝试更改rc.lua配置文件中的条目;我尝试使用 xmodmap 清除锁和add mod4 = ...
然而,似乎无论我做什么,键都会变得“粘”(有时以一种奇怪的不一致的方式),即如果我在计算机表现得好像它们被不断按下时我击中它们。
有没有合理的方法来改变这种行为?
我的 .bashrc 中有以下行
xmodmap -e "keycode 116 = slash"
Run Code Online (Sandbox Code Playgroud)
当我通过 SSH 连接到那台机器时,我得到
xmodmap: unable to open display ''
Run Code Online (Sandbox Code Playgroud)
不用说,我想要它离开那里。谁能告诉我如何清除此错误?
OpenSSH_4.7p1 Debian-8ubuntu1.2,OpenSSL 0.9.8g 2007 年 10 月 19 日
感谢您的帮助。
我想在每次登录时(或每次启动时,如果这不起作用)运行此命令: xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'
我尝试了很多东西。我把命令放在System > Preferences > Startup Applications. 我把它放在一个.sh文件中,标记它chmod +x并将该文件放在System > Preferences > Startup Applications. 我把脚本放在/etc/init.d. 我把命令放在~/.profile. 似乎没有任何效果。
最后,我把它放在我的~/.profile:
touch test1
xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'
touch test2
Run Code Online (Sandbox Code Playgroud)
test1 和 test2 都被创建,但键仍然没有重新映射。如果我只是复制/粘贴命令并手动运行它,它工作正常。但它不会在登录时运行。有任何想法吗?
或任何其他工具,但我更喜欢 xmodmap。我试过这个:
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
xmodmap -e "keycode 66 = Control_L"
Run Code Online (Sandbox Code Playgroud)
但两者似乎都不能完全奏效。这是按下大写锁定的事件日志:
KeyPress event, serial 28, synthetic NO, window 0x1a00001,
root 0x12d, subw 0x0, time 914826, (679,342), root:(680,362),
state 0x12, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
XKeysymToKeycode returns keycode: 37 // 37 is the control key code
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: …Run Code Online (Sandbox Code Playgroud) 我使用联想 ThinkPad (X220i),和所有 ThinkPad 用户一样,我在 BIOS 中交换了“控制”和“功能”。现在我买了一个联想的外置USB键盘,键盘布局与内置键盘类似,但不幸的是,“控制”和“功能”只在内置键盘上交换,而外置键盘没有。这可以以某种方式修复吗?也许使用setxkbmap或xmodmap?顺便说一句,我正在运行 Debian 9 (stretch)。如果这很重要。
xmodmap ×10
keyboard ×5
linux ×5
keymap ×2
ubuntu ×2
arch-linux ×1
awesome-wm ×1
boot ×1
capslock ×1
hotkeys ×1
login ×1
mouse ×1
setxkbmap ×1
ssh ×1
thinkpad ×1
ubuntu-10.10 ×1
ubuntu-12.04 ×1
xorg ×1