Openbox 覆盖 xmodmap 配置

Openbox 覆盖 xmodmap 配置

我正在运行 Linux Mint 13 的笔记本电脑上设置 openbox。我希望我的 Caps Lock 键充当附加控制键。我将所需的设置放入我的~/.Xmodmap文件中并通过运行进行检查

xmodmap ~/.Xmodmap

它工作正常。

但是,当我重新登录 openbox 会话时,这些关键更改不存在。运行上面的xmodmap命令可以让它再次工作,但我希望它在启动时自动发生。

有趣的是我在我的文件中添加了zenity如下测试命令~/.config/openbox/autostart

zenity --info --text=Hello

这会产生一个小对话框窗口,并且仅在对话框关闭后退出。

现在,当我重新登录 openbox 会话时,Caps Lock 充当 Ctrl 键,直到zenity 对话框关闭。该对话框关闭后,大写锁定键将恢复其默认行为。

我在谷歌上没有找到任何关于这方面的信息,所以我在这里寻求帮助。你们对可能出什么问题有什么想法吗?

更新:

我一直试图解决这个问题,在我的实验中,我将/usr/bin/xmodmap文件复制到并用以下 bash 脚本/usr/bin/xmodmap_替换该文件/usr/bin/xmodmap

#!/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 的要求。

#!/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

答案1

我遇到了类似的问题。原来是ibus引起的。我只是将其卸载,因为我不需要它的服务。

我通过使用脚本替换 setxkbmap 的技巧找到了罪魁祸首,但是我还添加了ps -AF --forest识别 setxkbmap 的调用者的功能。

答案2

在不知道您的自动启动脚本的情况下,我敢打赌您没有使用正确的语法,没有使用与符号(&)在后台运行命令。

尝试编辑您的.config/openbox/autostart文件,使其看起来像这样:

# Run the system-wide support stuff
#. $GLOBALAUTOSTART
# Programs to launch at startup
# Programs that will run after Openbox has started
(sleep 1 && xmodmap ~/.Xmodmap ) &

如果有疑问,请查看 openbox wiki,看看所有示例&在每个条目后的内容如何。

http://openbox.org/wiki/Help:自动启动

相关内容