我正在运行Linux Mint 13的笔记本电脑上设置openbox。我希望将Caps Lock键用作附加控制键。我将所需的设置放入~/.Xmodmap
文件中,并通过运行对其进行了检查
xmodmap ~/.Xmodmap
它可以正常工作。
但是,当我重新登录openbox会话时,这些关键更改不存在。运行上面的xmodmap
命令会使它再次工作,但是我希望它在启动时自动发生。
有趣的是zenity
我在~/.config/openbox/autostart
文件中添加了以下测试命令
zenity --info --text=Hello
这将产生一个小的对话框窗口,并且仅在对话框关闭后退出。
现在,当我重新登录openbox会话时,Caps Lock充当Ctrl键,直到关闭zenity对话框。关闭该对话框后,Caps Lock将返回其默认行为。
我还没有在Google上找到任何相关内容,因此我在这里寻求帮助。你们对可能出什么问题有任何想法吗?
更新:
我一直试图找出答案,在实验中,我将/usr/bin/xmodmap
文件复制到/usr/bin/xmodmap_
并用/usr/bin/xmodmap
以下bash脚本替换了文件
#!/bin/bash
{
echo '-------'
date
echo xmodmap "$@"
} >> ~/xmodmap-calls
exec /usr/bin/xmodmap_ "$@"
因此,每当系统上任何该死的脚本运行时xmodmap
,我都会了解它。
这样,我重新登录,仅在~/xmodmap-calls
文件中找到一个条目,该条目是运行my的条目~/.Xmodmap
,这是预期的。因此,我认为不是xmodmap
覆盖我的更改。
接下来,使用一些谷歌搜索功能向我介绍了该setxkbmap
命令,该命令显然也可以执行相同的操作。我也替换了该可执行文件,类似于上面的xmodmap。我得到了罪魁祸首!
setxkbmap -option terminate:ctrl_alt_bksp
我完全不知道该怎么做,但是在运行xmodmap ~/.Xmodmap
(正确应用了我的设置)之后,如果运行上述命令,我的更改将被重置!编辑:这真是有趣。只是一个setxkbmap
没有任何参数的命令,会很高兴地用xmodmap ~/.Xmodmap
命令覆盖我的更改。
现在我有两件事要弄清楚,这setxkbmap
是从哪里运行的,为什么以及如何解决此问题。我仍在调查,但可以认真使用一些帮助:)
更新2
与地狱xmodmap
。我无法确定从何处setxkbmap
调用,但是我想出了一种使用setxkbmap
命令来使Caps Lock表现为Ctrl的方式。
setxkbmap -option ctrl:nocaps
就在启动openbox之前。作品辉煌。大写锁定键仍然充当ctrl键。xmodmap
永远不会运行。
我将在这里保留这个问题,以便知道这些事情的人可以提供一些见解。另外,对于那些在我之后面临这个问题的人:)
更新3
这是.config/openbox/autostart
pedrosaurio要求的my的内容。
#!/bin/bash
# Set the wallpaper.
feh --bg-scale /wall.png
# Set default brightness.
xbacklight -time 1 '=40'
# Compositing.
xcompmgr &
# The panel.
tint2 &
# Start a terminal too.
roxterm &
据我所知,这与键盘没有任何关系。另外,这是启动我的会话的脚本:(由lightdm运行)
#!/bin/bash
setxkbmap -option ctrl:nocaps
exec openbox-session
autostart
文件吗?