추가해서 깨달았어요
setxkbmap xxx
X 서버에서 키보드 레이아웃을 변경할 수 있습니다. 로그아웃/재시작 후에도 유지되지 않으므로 $HOME/.profile
아래와 같이 로그인 시 사용할 수 있도록 이 줄을 추가할 수 있습니다.이 문제설명하다.
그러나 이렇게 하면 로그인할 때까지 키보드 레이아웃을 계속 사용할 수 없습니다. 이 단계에서 사용하려면 어떻게 해야 할까요? Centos7에서 GDM을 사용하고 있습니다.
내가 시도한 것:
새 키보드 레이아웃을 정의하고 이름을 으로 지정한
symmetri
다음 아래에 배치합니다/usr/share/X11/xkb/symbols/
. 테스트를 위해 다운로드할 수 있습니다.여기.참고: 가상 콘솔의 레이아웃이 아닌 X11 서버의 레이아웃만 정의했습니다.어쩌면 그래서 내가 그것을 나열할 수 없고locatectl list-keymaps
,loadkeys
만질 수도 없습니다/etc/vconsole.conf
.setxkbmap symmetri
그걸 써. 변경사항이 적용되었습니다./etc/profile.d/symmetri.sh
그것을 사용하려면 사용자 프로필에 넣으십시오 .로그아웃하고 로그인하려고 하면 작동이 중지되고 QWERTY라고 표시됩니다.
QWERTY를 사용하여 로그인한 다음 성공적인 로그인 후에 스크립트를 가져오기 때문에 지금은 Symmetri를 사용하고 있습니다.
터미널을 열고
us
by 로 다시 전환했습니다setxkbmap us
.
그런 다음,
localectl set-x11-keymap symmetri
이번에는 레이아웃이 바뀌지 않았습니다. localectl set-keymap symmetri
어느 것도 아니다.
답변1
당신은 그것을 사용할 수 있습니다
localectl set-x11-keymap ***
이는 콘솔과 데스크탑에 영구적으로 적용되며, 자세한 구성은 매뉴얼 페이지에서 확인할 수 있습니다.https://www.unix.com/man-page/centos/1/LOCALECTL/
답변2
@terdon 귀하의 솔루션이 작동하지 않았지만 도와주셔서 감사합니다. 처음에는 그것이 Gnome과 관련이 있는지 의심했지만 X11일 뿐이라는 것이 밝혀졌습니다. @TimBrandrick, 귀하의 솔루션은 대부분의 경우 작동하지만 제 경우에는 키보드 레이아웃을 추가하기 전이 아닙니다. .../X11/xkb/rules/evdev.xml
( .../X11/xkb/rules/evdev.lst
일부 소스에 따르면 lst
파일이 컴파일된 버전이기 xml
때문에 모든 프로세스가 이 파일은 xml
파일을 읽기만 하므로 xml
실제로는 더 많은 정보가 포함되어 있지만 lst
이해 lst
하기 더 쉬운 두 파일을 모두 추가했습니다.
그래서 제가 하는 일은 다음과 같습니다.
1. 을 엽니다 .../X11/xkb/rules/evdev.xml
.
(배포판마다 다르기 때문에 초기 부분은 생략했습니다. CentOS 7에서는 under 이고 Ubuntu <= 8.08에서는 .1 Strange/usr/share/
미만입니다 .)/etc/
2. 하위 노드 끝에 <layoutList>
다음 섹션을 추가합니다 .
(필요에 따라 수정하세요. 이것은 단지 템플릿일 뿐입니다)
<layout>
<configItem>
<name>symmetri</name>
<shortDescription>symmetri</shortDescription>
<description>Symmetri (CN, EN and ES)</description>
<languageList>
<iso639Id>us</iso639Id>
</languageList>
</configItem>
<variantList>
<variant>
<configItem>
<name>non-prog</name>
<shortDescription>non-prog</shortDescription>
<description>Symmetri for non-programmer (CN, EN and ES)</description>
<languageList>
<iso639Id>us</iso639Id>
</languageList>
</configItem>
</variant>
</variantList>
</layout>
키보드 레이아웃에 변형이 없으면 <variantList>
섹션이 자동으로 닫힐 수 있습니다. 예: <variantList />
.
참고: iso639Id
ISO 639-1 또는 639-2 표준과 호환되는 값이 있어야 합니다. 1 전체 표는 참고문헌 1에도 나와 있습니다. 또한 로케일과 일치해야 합니다. English(U.S)
시스템 언어로 설정되어 있으므로 us
여기에 입력합니다.
3. 저장하고 엽니다 .../X11/xkb/rules/evdev.lst
.
4. 끝에 ! layout
레이아웃 이름을 추가합니다 . 좋다:
symmetri Symmetri layout (CN, EN and ES)
5. 키보드 레이아웃에 변형이 있는 경우 ! variant
끝에도 추가하세요.
non-prog symmetri: non-programmer
변형 이름은 xml 파일의 위 정보와 일치해야 합니다. (시험해보면 localectl list-x11-keymap-variants
알겠지만오직XML을 읽는 대신 이 파일을 읽는 것은 버그/버그입니다. )
base.xml
6. and를 사용하여 동일한 작업을 수행할 수 있지만 base.lst
제가 먼저 수행했지만 작동하지 않았습니다.
7. 키보드 레이아웃 설정:
setxkbmap symmetri
또는 변형을 설정하려면 다음을 사용하세요.
setxkbmap symmetri -variant non-prog
localectl
list-x11-keymap-layouts
및 을 사용할 수 있지만 list-x11-keymap-variants
변형을 설정하는 데만 사용할 수는 없습니다 setxkbmap
.
이제 이 설정으로재부팅 후 및 처음 로그인 전, 새로운 키보드 레이아웃(하지만 이 변형은 계속 유지되지 않습니다! 필요한 것은 기본 레이아웃뿐입니다!) 그러나 성공적으로 로그인하면 데스크톱 관리자가 인계받게 되며 $HOME/.bashrc
/ $HOME/.profile
(단일 사용자용) / /etc/profile.d/xxx.sh
/ (모든 사용자용) 파일 /etc/profile
에서 새 키보드 레이아웃을 구성 하지 않은 경우아니요새로운 키보드 레이아웃을 얻으려면 로그아웃했다가 다시 로그인하세요! ! ! ! 따라서 이러한 변경 사항은오직첫 번째 성공적인 로그인 전에 지속하려면... 또는 프로필 스크립트를 사용하여 X 서버에 다음을 알려야 합니다 .bashrc
. "로그인 전뿐만 아니라 로그인 후에도 모든 사용자가 이 기능을 사용할 수 있기를 바랍니다!" 로그아웃하고 사용자를 변경하더라도 레이아웃은 변경된 레이아웃으로 유지됩니다 qwerty(us)
.
정말 답답하네요... 더 쉬운 방법이 있을 텐데 찾을 수가 없네요.
참고자료: (반드시 읽어야 함)