我无法在 Ubuntu 13.04 中登录时运行 xmodmap。我四处搜索,包括在 askubuntu 中,我发现的所有答案都不起作用。
我的主文件夹中有一个名为 .Xmodmap 的文件,其中包含所需的映射。如果我手动运行它,它工作正常,所以那里没有错误。为了让它在启动时运行,我尝试过:
使用各种.xinitrc包含以下命令之一:
xmodmap .Xmodmapxmodmap ~/.Xmodmap /usr/bin/xmodmap /home/NAME/.Xmodmapif [ -s ~/.Xmodmap ]; thenxmodmap ~/.Xmodmapfi使用.Xresources而不是.xinitrc相同的变体。
将其设置为启动应用程序。
以上都不适用于 Ubuntu 13.04(64 位)。我还看到了一些关于全局更改键盘映射的想法,但其中大多数在 Ubuntu 13.04 中不适用(即,指定的位置不存在相应的文件),无论如何我都不想触及全局设置。
Dan*_*iel 95
Ubuntu 不再使用xmodmap,而是使用xkb(据我所知,这有助于每个窗口的键盘布局等)。
系统范围的地图文件位于
/usr/share/X11/xkb/symbols/
Run Code Online (Sandbox Code Playgroud)
地图似乎是分层加载的,以pc地图为根,以任何语言(例如en)作为根的子项。
在我的特殊情况下,我在键盘上将 Page Up 与 Home 和 Page Down 与 End 进行了物理交换,因此我对系统范围的pc地图进行了非常粗略的更改,如下所示:
key <HOME> { [ Prior ] };
key <PGUP> { [ Home ] };
key <END> { [ Next ] };
key <PGDN> { [ End ] };
Run Code Online (Sandbox Code Playgroud)
注意:要强制 Xorg 使用您的新键盘映射,您可能需要删除现有的预编译映射(*.xkm)
/var/lib/xkb/
Run Code Online (Sandbox Code Playgroud)
然后重启 Xorg。
上有各种资源xkb,但这一资源与 Ubuntu 相关。
ded*_*alu 18
对我来说,如果您想以系统设置中不可用的方式重新映射 1 或 2 个键,那么 xkb 配置就太复杂了。另外,解决方案应该保留在用户端,而不需要编辑“/usr/share/X11/xkb/symbols/”等。使用启动应用程序强制加载“xmodmap ~/.Xmodmap”仅在您挂起、更改用户之前有效或更改键盘布局。因此,正如 holocronweaver 所建议的,使用我找到的代码片段,我制作了一个在会话启动时加载的 python 脚本,在需要时重新加载“~/.Xmodmap”。
检查错误报告 #1243642(评论 #6),并在此处下载。
我在 Ubuntu 14.04 中遇到了这个问题,并在这里找到了解决方案。显然,Ubuntu 无法在登录后立即配置键盘,但要稍晚一些。所以如果你添加一个命令
sleep 4 && xmodmap ~/.Xmodmap &
Run Code Online (Sandbox Code Playgroud)
到~/.bash_profile那么它应该工作(它确实对我来说)。
编辑:这似乎只有在登录后才有效,在启动后无效。稍后我将不得不对此进行调查。
vim使用这是我的键映射启动脚本的变体。它可以在任何键盘上转换Caps Lock为Esc与vi,vim或一起使用gvim。
与q4w56的答案不同,这个答案没有使用任何无限while; do循环。否则,我的双核 CPU 的一个核心每 5 秒就会达到 42%,这会严重降低我的笔记本电池电量。
#!/usr/bin/env bash
sleep 4
xmodmap -e "clear Lock"
xmodmap -e "keysym Caps_Lock = Escape"
Run Code Online (Sandbox Code Playgroud)
将其另存为脚本。使用chmod +x. 将脚本名称和位置添加到Session and Startup ? Application Autostart(在 Xubuntu 中)。
此用户的键盘行为将通过重新启动和注销保持不变,但不会挂起。可以通过挂起实现持久化,但不幸的是只能在系统级别,而不是在用户级别。
我放弃了上述解决方案,转而支持此解决方案,该解决方案除了提供 上的Esc功能外CapsLock,还提供箭头键????和PgUpHomeEndPgDn通过CapsLock+的键HJKL,分别为CapsLock+ UIOP。
在当今的计算世界中,Caps Lock密钥几乎没有什么用处。一般来说,由于网络礼仪以及演示和内容的分离,人们应该避免使用全部大写。此外,在编辑文本时意外按下键并不总是立即被注意到,但总是会导致相当烦人的行为。一起禁用密钥并将其重新用作易于访问的密钥会导致使用双赢。Caps LockvimvimCaps LockEscvim
@Daniel 的回答为我指出了正确的方法,但我想扩展一下。
适用于 Linux Mint 17.2 和 Ubuntu 16.04。
我尝试了所有我能想到的继续使用的方法xmodmap,但是当系统进入睡眠模式时它们都失败了。同样的情况甚至适用于在 *settings-daemon(对我来说是 xfce4)运行晚于脚本的情况下使用的启动应用程序setxkbmap脚本 --- 并且顺序不会真正受到影响。
我最终想出的有以下成分:
1) 编写一个最小的键盘映射文件/usr/share/X11/xkb/symbols。让我们调用该文件mylayout它可以很简单
xkb_symbols "basic" {
name[Group1] = "My Layout";
include "us"
key <AE03> { [ 3, numbersign, sterling, sterling] };
include "level3(ralt_switch)"
}
Run Code Online (Sandbox Code Playgroud)
basic只是一个名字,我们稍后再见面。name[Group1]看起来只是一个名字,但以后不会起任何作用。include "us"包括普通的美国键盘。实际上us是同一目录中的另一个文件。这是我们正在调整的键盘布局。根据需要选择不同的一个。注意:没有分号来结束这一行。key线是键盘的一种适配,更多可以遵循。可以<AE03>在 下的文件中找到/usr/share/X11/xkb/keycodes。使用该xev程序找出“3”键的键码为 12,并且在键码文件中Xfree86它映射到<AE03>.include指令来激活另一个键盘选项,在这种情况下,我希望将正确的 Alt 键作为 3 级换档键,即可以访问sterling我上面定义的符号的键。level3只是同一文件夹中的一个文件名及其ralt_switch一部分。环顾四周并选择您需要包含的内容。2)我没有将其mylayout放入系统文件夹中。相反,我只创建了从系统文件夹到我喜欢的文件夹的软链接,以便立即看到这不是库存软件。
3)此外,我没有修复,evdev.xml再次防止更新麻烦。但这对于在键盘配置编辑器中找到 mylayout 是必要的(对于 xfce4 来说是xfce4-keyboard-settings)。相反,我使用xfce4-settings-editor并更改keyboard-layout->XkbLayout为mylayout(文件名)和(XkbVariant见basic上文)。之后,mylayout/basic也会显示在键盘设置编辑器中。似乎只需要输入evdev.xml即可选择布局。
这样,键盘设置现在可以在睡眠模式下保存并重新启动。
更多背景信息可以在这里找到:http ://www.charvolant.org/~doug/xkb/html/node5.html 。
解决睡眠模式问题的另一种方法(我自己没有尝试过)可以在这里找到: https: //www.vinc17.net/unix/xkb.en.html。
更新:在使用 Mint 18.3 的同时,我更改了 xfce4-settings-editor 中的设置,如上所述。
更新:在 18.04 中,gdm3 作为显示管理器,XFCE4 作为窗口管理器,看起来好像 ~/.Xmodmap 被再次读取,并且设置似乎在挂起后仍然存在。(我很少使用暂停,而且我永远不确定笔记本电脑实际上处于哪种模式。)
| 归档时间: |
|
| 查看次数: |
70233 次 |
| 最近记录: |