如何配置 KDE 以方便地在 3 種鍵盤佈局之間切換?

如何配置 KDE 以方便地在 3 種鍵盤佈局之間切換?

我用三種語言寫作,在翻譯一些文本時,我必須在特定時刻頻繁地在其中兩種語言之間切換。

例如,在 15 分鐘內,我必須每 30 秒在 1 和 2 之間切換。在接下來的 15 分鐘裡,我必須在 1 和 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 獲得這2 種語言,如果您需要訪問另一種語言,請右鍵單擊系統托盤中的「鍵盤佈局」圖標,選擇該語言,它會替換這2 種語言中的一種。

相關內容