모든 옵션을 회전하지 않고 키보드 레이아웃을 선택하는 방법

모든 옵션을 회전하지 않고 키보드 레이아웃을 선택하는 방법

저는 Mint부터 시작하여 Linux를 처음 사용합니다. 저는 세 가지 키보드 레이아웃(영어, 러시아어, 프랑스어)을 사용하지만 그 중 두 가지만 매일 사용합니다. Windows에서는 +를 사용하여 CapsLock두 가지 기본 레이아웃(영어와 러시아어) 사이를 전환하고 세 가지 레이아웃을 모두 회전합니다. Cinnamon에서도 동일한 기능을 구현할 수 있나요? 나CtrlShift

답변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( 실행 가능하게 만드는 스크립트를 잊지 마세요 )

세 가지 명령 사이를 순환하려면 다음 중 하나를 수행하십시오.스택오버플로우에서질문에 대답했습니다.

다음은 세 개 이상의 언어 간 전환을 위한 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"

관련 정보