如何从命令行更改当前选定的键盘布局?

如何从命令行更改当前选定的键盘布局?

我有我的键盘布局(其中两个)并通过以下命令配置它们之间的切换:

setxkbmap -layout us,ru -option -option "grp:lctrl_lshift_toggle,ctrl:nocaps"

现在我想us使用一些命令行命令切换到布局。那可能吗?

答案1

你可以使用xkb-开关-n切换到下一个布局):

xkb-switch -n

或者xkblayout 状态set +1根据您的情况,需要环绕):

xkblayout-state set +1

xte来自x自动化模拟Control_L+Shift_L按键按下/释放:

xte 'keydown Control_L' 'keydown Shift_L' 'keyup Shift_L' 'keyup Control_L'

答案2

Stack Exchange 的搜索知识图谱找到此页面提到这个词。为了清楚起见,这是一个答案(与X11问题的标签,但它应该对某人有帮助)......

当仅限于虚拟控制台时

没有X。

知识图谱(1)

kbdmap, vidfont-- syscons 和 vt 的前端

...允许轻松设置可用的键盘映射...

确实,它很简单而且(对我来说,更改为英国键盘布局)有效。

使用 X 时

– 例如,使用基于 FreeBSD 的 TrueOS Desktop。

帖子 5在下面更改键盘布局? | FreeBSD 论坛(2015-08-03):

kbdmap用于控制台。setxkbmap是您想要的 X11 实用程序。 ……

例如,当更改为U联合王国:

$ kbdmap
kbdcontrol: getting keymap: Inappropriate ioctl for device
You are not on a virtual console - expect certain strange side-effects
lang_default = en
dialect = en_...UTF-8
lang_abk = en


keymap="uk.kbd"
$ 

答案3

根据键盘布局的发行版,命令是

loadkeys <path/to/file>

loadkey /lib/kbd/keymaps/i386/qwerty/pt_PT.map.gz

如果我没记错的话。如果您想将特定键分配给特定行为,还请检查加载键的联机帮助页。

答案4

看看这篇如何伪造的文章,标题为:更改各种发行版上的语言和键盘布局,用于更改不同发行版上的键盘布局的各种命令。

这些命令中的大多数都以 GUI 的形式出现,但如果您仔细观察,它们中的大多数也可以从命令行运行。例如,我正在使用 Fedora(基于 Red Hat 的发行版)。该命令system-config-keyboard在不带参数运行时会显示一个 GUI。

但如果我运行system-config-keyboard --help它也可以从命令行运行:

$ system-config-keyboard --help
Usage: system-config-keyboard [--help] [--noui] [--text] [<keyboardtype>]
       --help            Print out this message.
       --noui            Run in command line mode.
       --text            Run in text interface mode.

       <keyboardtype> options are: ar-azerty, ar-azerty-digits, ar-digits, ar-qwerty, ar-qwerty-digits, be-latin1, ben, ben-probhat, bg_bds-utf8, bg_pho-utf8, br-abnt2, cf, croat, cz-lat2, cz-us-qwertz, de, de-latin1, de-latin1-nodeadkeys, dev, dk, dk-latin1, dvorak, es, et, fi, fi-latin1, fr, fr-latin1, fr-latin9, fr-pc, fr_CH, fr_CH-latin1, gr, guj, gur, hu, hu101, ie, is-latin1, it, it-ibm, it2, jp106, ko, la-latin1, mk-utf, nl, no, pl2, pt-latin1, ro, ro-cedilla, ro-std, ro-std-cedilla, ru, sg, sg-latin1, sk-qwerty, slovene, sr-cy, sr-latin, sv-latin1, tj, tml-inscript, tml-uni, trq, ua-utf, uk, us, us-acentos

因此,要将键盘布局更改为俄语,我可以运行以下命令:

$ system-config-keyboard ru

相关内容