Shr*_*rat 10 openbox linux-mint xmodmap xkb
我正在运行 Linux Mint 13 的笔记本电脑上设置 openbox。我希望我的 Caps Lock 键充当额外的控制键。我将所需的设置放在我的~/.Xmodmap文件中并通过运行进行检查
xmodmap ~/.Xmodmap
Run Code Online (Sandbox Code Playgroud)
它工作正常。
但是,当我重新登录到我的 openbox 会话时,这些关键更改不存在。运行上面的xmodmap命令让它再次工作,但我希望它在启动时自动发生。
有趣的是,我zenity在我的~/.config/openbox/autostart文件中添加了如下测试命令
zenity --info --text=Hello
Run Code Online (Sandbox Code Playgroud)
这会生成一个小的对话窗口,并且仅在该对话框关闭后才退出。
现在,当我重新登录到我的 openbox 会话时,Caps Lock 充当 Ctrl 键,直到zenity 对话框关闭。关闭该对话框后,Caps Lock 将返回其默认行为。
我在谷歌上没有找到任何关于这个的东西,所以我在这里寻求帮助。你们对可能出现的问题有什么想法吗?
我一直在试图解决这个问题,在我的实验中,我将我的/usr/bin/xmodmap文件复制到/usr/bin/xmodmap_并用/usr/bin/xmodmap以下 bash 脚本替换了该文件
#!/bin/bash
{
echo '-------'
date
echo xmodmap "$@"
} >> ~/xmodmap-calls
exec /usr/bin/xmodmap_ "$@"
Run Code Online (Sandbox Code Playgroud)
因此,每次系统上运行任何该死的脚本时xmodmap,我都会了解它。
有了这个,我重新登录,我只在我的~/xmodmap-calls文件中找到一个条目,这是运行 my 的条目~/.Xmodmap,这是预期的。所以,我认为这不是xmodmap覆盖我的更改。
接下来,通过一些谷歌搜索向我介绍了该setxkbmap命令,它显然也可以做同样的事情。我也替换了那个可执行文件,类似于上面的 xmodmap。我得到了罪魁祸首的命令!
setxkbmap -option terminate:ctrl_alt_bksp
Run Code Online (Sandbox Code Playgroud)
我完全不知道那是做什么的,但是在运行后xmodmap ~/.Xmodmap(正确应用了我的设置),如果我运行上面的命令,我的更改将被重置!编辑:这真的很有趣。只是一个setxkbmap没有任何参数的命令,很高兴地通过xmodmap ~/.Xmodmap命令覆盖了我的更改。
现在我有两件事要弄清楚,这setxkbmap是从哪里运行的,为什么以及如何解决这个问题。我仍在调查,但可以认真使用一些帮助:)
见鬼去吧xmodmap。我不知道是从哪里setxkbmap调用的,但我想出了一种使用setxkbmap命令使我的 Caps Lock 表现为 Ctrl 的方法。
setxkbmap -option ctrl:nocaps
Run Code Online (Sandbox Code Playgroud)
就在开始 openbox 之前。作品精彩。大写锁定键仍然充当 ctrl 键。xmodmap永远不会运行。
我会在这里保留这个问题,以便知道这些事情的人可以提供一些见解。另外,对于在我之后面临这种情况的人:)
这是我的内容.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 &
Run Code Online (Sandbox Code Playgroud)
据我所知,这与键盘没有任何关系。此外,这是启动我的会话的脚本:(由 lightdm 运行)
#!/bin/bash
setxkbmap -option ctrl:nocaps
exec openbox-session
Run Code Online (Sandbox Code Playgroud)
在不知道您的自动启动脚本的情况下,我敢打赌您没有使用正确的语法,没有使用与符号(&)在后台运行命令。
尝试编辑您的.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 ) &
Run Code Online (Sandbox Code Playgroud)
如果有疑问,请查看 openbox wiki,看看所有示例&在每个条目后的内容如何。
http://openbox.org/wiki/Help:自动启动
| 归档时间: |
|
| 查看次数: |
2274 次 |
| 最近记录: |