CentOS 7에서 처음 로그인하기 전에 로그인 화면의 키보드 레이아웃을 설정하는 방법은 무엇입니까?

CentOS 7에서 처음 로그인하기 전에 로그인 화면의 키보드 레이아웃을 설정하는 방법은 무엇입니까?

추가해서 깨달았어요

setxkbmap xxx

X 서버에서 키보드 레이아웃을 변경할 수 있습니다. 로그아웃/재시작 후에도 유지되지 않으므로 $HOME/.profile아래와 같이 로그인 시 사용할 수 있도록 이 줄을 추가할 수 있습니다.이 문제설명하다.

그러나 이렇게 하면 로그인할 때까지 키보드 레이아웃을 계속 사용할 수 없습니다. 이 단계에서 사용하려면 어떻게 해야 할까요? Centos7에서 GDM을 사용하고 있습니다.

내가 시도한 것:

  1. 새 키보드 레이아웃을 정의하고 이름을 으로 지정한 symmetri다음 아래에 배치합니다 /usr/share/X11/xkb/symbols/. 테스트를 위해 다운로드할 수 있습니다.여기.참고: 가상 콘솔의 레이아웃이 아닌 X11 서버의 레이아웃만 정의했습니다.어쩌면 그래서 내가 그것을 나열할 수 없고 locatectl list-keymaps, loadkeys만질 수도 없습니다 /etc/vconsole.conf.

  2. setxkbmap symmetri그걸 써. 변경사항이 적용되었습니다. /etc/profile.d/symmetri.sh그것을 사용하려면 사용자 프로필에 넣으십시오 .

  3. 로그아웃하고 로그인하려고 하면 작동이 중지되고 QWERTY라고 표시됩니다.

  4. QWERTY를 사용하여 로그인한 다음 성공적인 로그인 후에 스크립트를 가져오기 때문에 지금은 Symmetri를 사용하고 있습니다.

  5. 터미널을 열고 usby 로 다시 전환했습니다 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 />.

참고: iso639IdISO 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.xml6. and를 사용하여 동일한 작업을 수행할 수 있지만 base.lst제가 먼저 수행했지만 작동하지 않았습니다.

7. 키보드 레이아웃 설정:

setxkbmap symmetri

또는 변형을 설정하려면 다음을 사용하세요.

setxkbmap symmetri -variant non-prog 

localectllist-x11-keymap-layouts및 을 사용할 수 있지만 list-x11-keymap-variants변형을 설정하는 데만 사용할 수는 없습니다 setxkbmap.

이제 이 설정으로재부팅 후 및 처음 로그인 전, 새로운 키보드 레이아웃(하지만 이 변형은 계속 유지되지 않습니다! 필요한 것은 기본 레이아웃뿐입니다!) 그러나 성공적으로 로그인하면 데스크톱 관리자가 인계받게 되며 $HOME/.bashrc/ $HOME/.profile(단일 사용자용) / /etc/profile.d/xxx.sh/ (모든 사용자용) 파일 /etc/profile에서 새 키보드 레이아웃을 구성 하지 않은 경우아니요새로운 키보드 레이아웃을 얻으려면 로그아웃했다가 다시 로그인하세요! ! ! ! 따라서 이러한 변경 사항은오직첫 번째 성공적인 로그인 전에 지속하려면... 또는 프로필 스크립트를 사용하여 X 서버에 다음을 알려야 합니다 .bashrc. "로그인 전뿐만 아니라 로그인 후에도 모든 사용자가 이 기능을 사용할 수 있기를 바랍니다!" 로그아웃하고 사용자를 변경하더라도 레이아웃은 변경된 레이아웃으로 유지됩니다 qwerty(us).

정말 답답하네요... 더 쉬운 방법이 있을 텐데 찾을 수가 없네요.

참고자료: (반드시 읽어야 함)

  1. http://people.uleth.ca/~daniel.odonnell/Blog/custom-keyboard-in-linuxx11

관련 정보