我正在尝试在 Openbox DE 中通过键盘快捷键配置键盘布局切换。
$ cat /etc/default/keyboard
XKBLAYOUT="us,ua,ru"
XKBVARIANT=",winkeys,"
BACKSPACE="guess"
XKBMODEL="pc105"
XKBOPTIONS="grp:alt_shift_toggle,grp:win_space_toggle,grp_led:scroll"
$ cat /etc/bash.bashrc | grep kblayout
source /home/user/.kblayout.sh
$ cat /home/user/.kblayout.sh
#!/bin/bash
setxkbmap -layout us,ru,ua -option grp:lwin_space_toggle
$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from /usr/share/X11/xkb/rules/evdev:
rules: /usr/share/X11/xkb/rules/evdev
model: pc105
layout: us
options: grp:alt_shift_toggle,grp:lalt_lshift_toggle,grp:alt_shift_toggle,grp:win_space_toggle,grp_led:scroll,grp:alt_shift_toggle,grp_led:scroll
Trying to build keymap using the following components:
keycodes: evdev+aliases(qwerty)
types: complete
compat: complete+ledscroll(group_lock)
symbols: pc+us+inet(evdev)+group(win_space_toggle)+group(lalt_lshift_toggle)+group(alt_shift_toggle)
geometry: pc(pc105)
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete+ledscroll(group_lock)" };
xkb_symbols { include "pc+us+inet(evdev)+group(win_space_toggle)+group(lalt_lshift_toggle)+group(alt_shift_toggle)" };
xkb_geometry { include "pc(pc105)" };
};
$ cat .config/gxkb/gxkb.cfg
[xkb config]
group_policy=2
default_group=0
never_modify_config=false
model=pc105
layouts=us,ru,ua
variants=
toggle_option=grp:lwin_toggle,lv3:switch,terminate:ctrl_alt_bksp,grp_led:scroll
compose_key_position=
$ cat /etc/X11/xorg.conf
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "us,ru,ua"
Option "XkbModel" "pc105"
Option "XkbVariant" "pc105"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
EndSection
对于终端窗口输入,在我运行新的实例后,可以使用Win+Space和Alt+选项更改键盘布局。对于新的实例,它可以工作,但对于刚打开的终端中的 bash 则不行。或者任何在终端中也可以工作的东西。在当前终端会话中,在没有运行新的 bash 实例的情况下,我运行命令或使用该命令获取脚本。但在 Openbox GUI 应用程序中,这一切都不起作用。Shiftbash
bash
setxkbmap -layout ru
setxkbmap
我已经安装了tint2
面板,以便能够通过鼠标单击来切换键盘布局。
键盘快捷键IBus 偏好设置->键盘快捷键实际上并没有改变键盘布局。尝试了不同的按键组合:
相同的首选项在 iceWM 中可以正常工作,但在那里工作起来很奇怪(当我输入不同的非英语布局时,它经常输入英文字母而不是西里尔字母。它需要删除这些字母几次,直到字母变成西里尔字母)。我并不经常使用西里尔字母,我可以登录 Unity 进行正常的键盘布局切换,但我想弄清楚如何在 Openbox 中正确配置它。
答案1
Openbox 在 处查找用户定义的配置~/.config/openbox
。如果没有任何内容,则它会在 处查找默认配置文件:/etc/xdg/openbox/
。
创建一个新用户,然后在用户目录中复制默认配置文件,以便我们可以编辑它们:
mkdir ~/.config && cp -r /etc/xdg/openbox ~/.config
然后添加这一行:
setxkbmap -layout "us,ru" -option "grp:alt_shift_toggle" &
到
~/.config/openbox/autostart
现在您可以在注销并重新登录后使用Alt+更改布局。Shift