如何配置 KDE 以便在 3 种键盘布局之间方便地切换?

如何配置 KDE 以便在 3 种键盘布局之间方便地切换?

我使用三种语言写作,在翻译某些文本时,我必须在特定时刻在两种语言之间频繁切换。

例如,15 分钟内我必须每 30 秒在 1 和 2 之间切换一次。接下来的 15 分钟内,我必须在 1 和 3 之间切换。最后,在 2 和 3 之间切换。

当前的“循环”逻辑并不方便,因为我必须考虑当前和所需的布局。

也许像 Caps+1、Caps+2、Caps+3 这样的键可以,但我无法通过这种方式配置 KDE。

我是否遗漏了什么?

答案1

您的用例很奇怪,以至于没有人费心构建界面或配置来满足您的需求。但是,您可以通过为以下程序设置三个不同的全局快捷键来实现某些功能:

#!/usr/bin/env perl
use 5.010; use strict; use warnings FATAL=>'all';
use Getopt::Long qw(GetOptions); use autodie qw(:all);
use Pod::Usage qw(pod2usage);

GetOptions(
    'layout=s@' => \my @layouts,
    'help|?'    => \my $help,
    'man'       => \my $man,
) or pod2usage(2);
pod2usage(1) if $help;
pod2usage(-verbose => 2) if $man;
pod2usage unless 2 == @layouts;

my $xkb_identifier = qr'[\w_:()]+';
my ($current_layout)
= qx'setxkbmap -print'
=~ /xkb_symbols   { include "$xkb_identifier[+]($xkb_identifier)/ms;

die "Layout '$current_layout' is active, but can only switch from: @layouts\n"
    unless $current_layout ~~ @layouts;

system 'setxkbmap', grep $current_layout ne $_, @layouts;

__END__

=head1 NAME

switchxkbmap - switch between two layouts

=head1 SYNOPSIS

    switchxkbmap -l xkb_identifier -l xkb_identifier
    switchxkbmap -l hr -l fr
    switchxkbmap -l 'de(nodeadkeys)' -l 'ru(phonetic)'

=head2 Options

    --layout, -l    (mandatory, twice) xkb identifier of a layout
    --help          brief help message
    --man           full documentation

=head1 OPTIONS

All options can be abbreviated, see L<Getopt::Long/Case and abbreviations>.

=over

=item --layout

Mandatory, option must be given twice. The value is an xkb identifier such as
C<hr> or C<de(nodeadkeys)>.

=item --help

Print a brief help message and exits.

=item --man

Prints the manual page and exits.

=back

=head1 DESCRIPTION

C<switchxkbmap> switches between exactly two layouts given as command-line
arguments. For example, to switch between Croatian and French, run

    switchxkbmap -l hr -l fr

If Croatian is currently active, French will be activated and vice versa.

Or to switch between German and Russian with specific variants:

    switchxkbmap --layout='de(nodeadkeys)' --layout='ru(phonetic)'

The program will abort if the current active layout does not match one
of the given layouts because it would not know to which one to switch to.

The exact names of layouts and variants can be found out by running the KDE3
Control Centre module C<kcmshell keyboard_layout> or by inspecting the files
under F</usr/share/X11/xkb/symbols>.

=head1 AUTHOR

C<[email protected]>

=head1 LICENCE

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicence, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

This permission notice shall be included in all copies or substantial portions
of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

答案2

KDE 拥有一切设置。是的,它甚至还针对您的情况提供了特殊设置。

键盘KDE 控制模块 ⇨ 布局。检查备用布局. 制作 1 种语言空闲的,其他 2 种语言... 不多余。现在 Alt+Shift 上就有了这两种语言,如果您需要访问另一种语言,请右键单击系统托盘中的键盘布局图标,选择该语言,它将替换其中一种。所以现在 Alt+Shift 上就有了语言 1 和语言 3。

相关内容