如何在不旋转所有选项的情况下选择键盘布局

如何在不旋转所有选项的情况下选择键盘布局

我是 Linux 新手,从 Mint 开始。我使用三种键盘布局(英语、俄语、法语),但只有其中两种是日常使用的。在 Windows 中,我使用CapsLock在两种主要布局(英语和俄语)之间切换,并使用Ctrl+Shift旋转所有三种布局。是否可以在 Cinnamon 中实现相同的功能?我

答案1

切换键盘布局

如图所示,您可以在键盘设置中创建自定义键盘快捷键。您为快捷方式命名并指向您要创建的脚本。您将为其分配大写字母键。

为了在两者之间旋转,您可以创建如下脚本:

#!/bin/sh
# This shell script is PUBLIC DOMAIN. You may do whatever you want with it.

TOGGLE=$HOME/.toggle

if [ ! -e $TOGGLE ]; then
    touch $TOGGLE
    setxkbmap en
    rm $TOGGLE
    setxkbmap ru
fi

(不要忘记chmod +x脚本使其可执行)

为了在三个命令之间轮换,有人在 Stackoverflow回答了这个问题。

这是用于在三种或更多语言之间切换的 bash 脚本:

# Script that rotates between English, Russian, French, and Finnish keyboards

# Name of the state file
state_file=$HOME/.keyboard_state

# Ensure that the state file exists; initialize it with 0 if necessary.
[ -f "$state_file" ] || printf '0\n' > "$state_file"

# Read the next keyboard to use
read state < "$state_file"

# Set the keyboard using the current state
case $state in
    0) setxkbmap en ;;
    1) setxkbmap ru ;;
    2) setxkbmap fr ;;
    3) setxkbmap fi ;;
esac

# Increment the current state.
# Could also use state=$(( (state + 1) % 4 ))
state=$((state + 1))
[ "$state" -eq 4 ] && state=0

# Update the state file for the next time the script runs.
printf '%s\n' "$state" > "$state_file"

相关内容