Ansible을 사용하여 Ubuntu에서 사용자 정의 키보드 레이아웃 추가
11808 단어 keyboardlayoutubuntuansible
키보드 레이아웃 설정을 자동화하는 것은 항상 번거로운 일처럼 보였기 때문에 지금까지 스스로 해보지 못했습니다.
Ubuntu에서 사용자 정의 키보드 레이아웃을 추가하는 방법은 무엇입니까?
다음이 필요합니다.
/usr/share/X11/xkb/symbols/
아래에 있는 기능적인 xkb 키보드 레이아웃/usr/share/X11/xkb/rules/
아래의 *.lst 파일 중 하나에 있는 항목이 모든 작업이 완료되면
sudo dpkg-reconfigure xkeyboard-data
명령을 실행하여 설치에서 구성된 키보드 레이아웃을 다시 로드해야 합니다. 이렇게 하면 데스크탑 환경 또는 창 관리자(Gnome, KDE, i3, XMonad 등)가 변경 사항을 선택하고 로그인 화면에서도 사용할 수 있도록 사용자 정의 키보드 레이아웃을 선택할 수 있습니다.XKB 레이아웃
내 레이아웃은 기본적으로 스웨덴어(å, ö, ä, é 및 매우 드물게 사용되는 ü)에서 사용되는 움라우트 및 기타 항목이 있는 일부 문자를 추가하여 표준 미국 Dvorak 레이아웃을 수정한 것입니다. altgr 키를 누른 상태에서
a
, o
, e
, u
, y
키를 각각 눌러 액세스합니다(즉, Dvorak 레이아웃을 모르는 사람들을 위해 키입니다. 일반적으로 a
, s
, d
, f
, t
문자가 있습니다.이렇게 생겼어요
// This is basically a US Dvorak with some (mostly) Swedish accented characters added
// å -> alt-gr a
// ä -> alt-gr e
// ö -> alt-gr o
// é -> alt-gr u
// ü -> alt-gr y
default partial alphanumeric_keys
xkb_symbols "dvorak" {
include "us(dvorak)"
include "level3(caps_switch)"
include "level3(ralt_switch)"
name[Group1] = "Swedish (Frost Dvorak)";
// Unmodified Shift AltGr Shift+AltGr
// // symbols row, left side
key <AD05> { [ y, Y, udiaeresis, Udiaeresis ] };
// home row, left side
key <AC01> { [ a, A, aring, Aring ] };
key <AC02> { [ o, O, odiaeresis, Odiaeresis ] };
key <AC03> { [ e, E, adiaeresis, Adiaeresis ] };
key <AC04> { [ u, U, eacute, Eacute ] };
};
*.lst 항목
일반적으로
evdev.extras.lst
파일이 있어야 하고 거기에 항목을 추가할 수 있어야 하지만 일부 버그로 인해 작동하지 않아 evdev.lst
파일에 추가해야 합니다.이 파일에
! layouts
섹션에 하나와 ! variants
섹션에 하나, 두 개의 다른 라인을 추가해야 합니다.! 레이아웃
frost Swedish (Frost Dvorak)
! 변종
dvorak frost: Swedish (Frost Dvorak)
*.xml 항목
XML 항목은 첫 번째 항목과 거의 동일한 정보를 제공하지만 형식은 다릅니다.
다음과 같이 보입니다.
<layout>
<configItem>
<name>frost</name>
<shortDescription>frost dvorak</shortDescription>
<description>Swedish</description>
<languageList>
<iso639Id>swe</iso639Id>
</languageList>
</configItem>
<variantList>
<variant>
<configItem>
<name>dvorak</name>
<description>Swedish (Frost Dvorak)</description>
</configItem>
</variant>
</variantList>
</layout>
동일한 버그 관련 내용이 여기에 있으므로
evdev.xml
파일에 추가해야 합니다.Ansible을 사용하여 이 모든 것을 자동화
요전에 설정 스크립트를 살펴보다가 이 모든 작업을 자동화하여 컴퓨터 설정에서 몇 가지 수동 단계를 더 제거할 수 있다는 것을 깨달았습니다. 나는 지난 1년 반 동안 업무용 컴퓨터에 약간의 운이 없었기 때문에 이 작업을 여러 번 해야 했습니다.
조금 파고들고 테스트한 후에
lineinfile
항목에 *.lst
모듈을 사용하고 XML 항목에 xml
모듈을 사용할 수 있다는 것을 알았습니다.뿐만 아니라 Ansible에
dpkg-reconfigure
명령을 자동으로 실행하도록 지시하고 키보드 레이아웃을 구성하도록 지시할 수 있으므로 메뉴를 샅샅이 뒤질 필요가 없습니다!다음은 작업별로 사용하는 플레이북 정의입니다.
키보드 레이아웃 파일 복사
- name: Copy keyboard layout file
become: yes
file:
src: frost.xkb
dest: /usr/share/X11/xkb/symbols/frost
owner: root
group: root
mode: '0644'
state: file
추가! evdev.lst에 대한 레이아웃 항목
- name: Add layout to evdev.lst
become: yes
lineinfile:
path: /usr/share/X11/xkb/rules/evdev.lst
insertafter: "! layout"
line: " frost Swedish (Frost Dvorak)"
추가! evdev.lst에 대한 변형 항목
- name: Add variant to evdev.lst
become: yes
lineinfile:
path: /usr/share/X11/xkb/rules/evdev.lst
insertafter: "! variant"
line: " dvorak frost: Swedish (Frost Dvorak)"
evdev.xml에 <layout> 항목 추가
- name: Add layout to evdev.xml
become: yes
xml:
path: /usr/share/X11/xkb/rules/evdev.xml
xpath: /xkbConfigRegistry/layoutList
backup: yes
input_type: xml
add_children:
- |
<layout>
<configItem>
<name>frost</name>
<shortDescription>frost dvorak</shortDescription>
<description>Swedish</description>
<languageList>
<iso639Id>swe</iso639Id>
</languageList>
</configItem>
<variantList>
<variant>
<configItem>
<name>dvorak</name>
<description>Swedish (Frost Dvorak)</description>
</configItem>
</variant>
</variantList>
</layout>
xkb-data 재구성
- name: Reconfigure xkb-data
become: yes
shell: dpkg-reconfigure xkb-data
그놈 키보드 레이아웃 설정
- name: Set keyboard layout
become: yes
become_user: frost
tags: dconf
dconf:
key: "/org/gnome/desktop/input-sources/sources"
value: "[('xkb', 'frost+dvorak'), ('xkb', 'dvorak')]"
state: present
모든 프로그램을 종료하지 않고 그놈 쉘을 다시 시작하십시오.
- name: Restart GNOME Shell
shell: busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")'
Happü 해킹!
Reference
이 문제에 관하여(Ansible을 사용하여 Ubuntu에서 사용자 정의 키보드 레이아웃 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/frost/add-a-custom-keyboard-layout-in-ubuntu-using-ansible-5235텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)