Saya ingin mengetik A dengan titik ( Ä
/ ä
) sebagai penjilidan kunci satu tingkat di keyboard Macbook Air 2013-mid Ubuntu 16.04, keluaran darisetxkbmap -query
rules: evdev
model: pc105
layout: us,us
variant: dvorak,
options: ctrl:nocaps
Secara default, tidak ada AltGrdi keyboard, hanya dua Alt. Perintah ini membuat alt kanan Anda sebagai tombol penulisan ( AltGr) tetapi mempertahankan konfigurasi keyboard kustom Anda sendiri dll. Memiliki Capslock sebagai CTRL oleh caps:ctrl_modifier
, lihat di sini
gsettings set org.gnome.desktop.input-sources xkb-options \
"$(gsettings get org.gnome.desktop.input-sources xkb-options \
| sed "s/]/, 'compose:ralt']/")"
Akan sangat bagus untuk memiliki xmodmap
solusi independen jika ini akan diubah karena akan didepresiasi.
Pendekatan pengikat kunci dua tingkat
Kami hanya dapat melakukan pendekatan pengikatan dua level dengan Dvorak International dengan deadkey.
- Jawaban SeverusTux adalah perintah dua tingkat sebagai AltGr- Shift- Q+ A, yang hanya berfungsi di
us-drovak, international with deadkeys
. - SeverusTux. Ctrl+ Shift+ u+ e4+ Enterberfungsi dan memberi Anda
ä
. Bagaimana Anda bisa memetakan ini ke pengikat kunci satu tingkat Alt- a?
Saya lakukan di mana Anda melihat bahwa GUI melakukan perubahan di tempat lain. Saya benar-benar ingin tahu di mana
masi@masi:~$ cat /usr/share/X11/locale/en_US.UTF-8/Compose > /home/masi/Desktop/test1
% I make here a change in the GUI as proposed by Severus: compose key = right Alt
masi@masi:~$ cat /usr/share/X11/locale/en_US.UTF-8/Compose > /home/masi/Desktop/test2
masi@masi:~$ diff /home/masi/Desktop/test1 /home/masi/Desktop/test2
[ no output ]
Ini menunjukkan bahwa xserver tidak memperbarui dengan cepat. Anda harus mengubah keyboard Anda ke sesuatu yang lain dan kembali lagi, untuk perubahan itu.
Pendekatan Penjilidan Kunci Satu Tingkat
Saya ingin perintah satu tingkat sebagai AltGr- Auntuk ä
dan AltGr- Shift- Auntuk Ä
dalam bahasa Inggris (US-dvorak). Saya lakukan xev -e keyboard
dan tekanAltGr
[ignore the beginning; press AltGr]
KeyPress event, serial 28, synthetic NO, window 0x4400001,
root 0xd6, subw 0x0, time 13661220, (186,522), root:(186,574),
state 0x0, keycode 108 (keysym 0xffea, Alt_R), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x4400001,
root 0xd6, subw 0x0, time 13661284, (186,522), root:(186,574),
state 0x8, keycode 108 (keysym 0xffea, Alt_R), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Anda bisa mendapatkan semua sakelar yang memungkinkan dengan more /usr/share/X11/xkb/rules/xorg.lst | grep lv3
tetapi kami hanya tertariklv3:ralt_switch
lv3:switch Right Ctrl
lv3:menu_switch Menu
lv3:win_switch Any Win key
lv3:lwin_switch Left Win
lv3:rwin_switch Right Win
lv3:alt_switch Any Alt key
lv3:lalt_switch Left Alt
lv3:ralt_switch Right Alt
lv3:ralt_switch_multikey Right Alt, Shift+Right Alt key is Compose
lv3:ralt_alt Right Alt key never chooses 3rd level
lv3:enter_switch Enter on keypad
lv3:caps_switch Caps Lock
lv3:bksl_switch Backslash
lv3:lsgt_switch <Less/Greater>
lv3:caps_switch_latch Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
lv3:bksl_switch_latch Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
lv3:lsgt_switch_latch <Less/Greater> chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser
Layout keyboard saya diuji tetapi bahasa Inggris utamanya (US-dvorak)
Solusi akhir [Sneetsher]
Saya menetapkan A dengan titik-titik dalam bahasa Inggris (dvorak) oleh AltGr- a. Gabungkan perubahan di /usr/share/X11/xkb/symbols/us
; sekarang Jerman-Dvorak karena berfungsi sangat baik untuk bahasa Skandinavia juga (dari sini )
// based on a keyboard map from an 'xkb/symbols/dk' file
// Added A with dots and O with dots for AltGr-A and AltGr-O, respectively. Sneether and Masi, 17-June-2016.
partial alphanumeric_keys
xkb_symbols "dvorak" {
name[Group1]= "English (Dvorak)";
key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
key <AE03> { [ 3, numbersign ] };
key <AE04> { [ 4, dollar ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
key <AE07> { [ 7, ampersand ] };
key <AE08> { [ 8, asterisk ] };
key <AE09> { [ 9, parenleft, dead_grave] };
key <AE10> { [ 0, parenright ] };
key <AE11> { [ bracketleft, braceleft ] };
key <AE12> { [ bracketright, braceright, dead_tilde] };
key <AD01> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
key <AD04> { [ p, P ] };
key <AD05> { [ y, Y ] };
key <AD06> { [ f, F ] };
key <AD07> { [ g, G ] };
key <AD08> { [ c, C ] };
key <AD09> { [ r, R ] };
key <AD10> { [ l, L ] };
key <AD11> { [ slash, question ] };
key <AD12> { [ equal, plus ] };
key <AC01> {[ a, A, adiaeresis, Adiaeresis ] };
key <AC02> {[ o, O, odiaeresis, Odiaeresis ] };
key <AC03> { [ e, E, ediaeresis, Ediaeresis ] };
key <AC04> { [ u, U, udiaeresis, Udiaeresis ] };
key <AC05> { [ i, I ] };
key <AC06> { [ d, D ] };
key <AC07> { [ h, H ] };
key <AC08> { [ t, T ] };
key <AC09> { [ n, N ] };
key <AC10> { [ s, S, ssharp ] };
key <AC11> { [ minus, underscore ] };
key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
key <AB02> { [ q, Q ] };
key <AB03> { [ j, J ] };
key <AB04> { [ k, K ] };
key <AB05> { [ x, X ] };
key <AB06> { [ b, B ] };
key <AB07> { [ m, M ] };
key <AB08> { [ w, W ] };
key <AB09> { [ v, V ] };
key <AB10> { [ z, Z ] };
key <BKSL> { [ backslash, bar ] };
include "level3(ralt_switch)"
};
Atau gunakan skrip yang masih buggy
# restore your current keyboard settings
sudo apt-get install --reinstall xkb-data
gsettings set org.gnome.desktop.input-sources xkb-options "['compose:ralt', 'caps:ctrl_modifier']"
sudo sed -i.bak 's/[[ \t]*a,[ \t]*A[ \t]*]/[ a, A, adiaeresis, Adiaeresis ]/g;' /usr/share/X11/xkb/symbols/us;
sudo sed -i.bak 's/[[ \t]*o,[ \t]*O[ \t]*]/[ o, O, odiaeresis, Odiaeresis ]/g;' /usr/share/X11/xkb/symbols/us;
# German-Dvorak feels better
#sudo sed -i.bak 's/[[ \t]*e,[ \t]*E[ \t]*]/[ e, E, ediaeresis, Ediaeresis ]/g;' /usr/share/X11/xkb/symbols/us;
#sudo sed -i.bak 's/[[ \t]*u,[ \t]*U[ \t]*]/[ u, U, udiaeresis, Udiaeresis ]/g;' /usr/share/X11/xkb/symbols/us;
#sudo sed -i.bak 's/[[ \t]*s,[ \t]*S[ \t]*]/[ s, S, ssharp ]/g;' /usr/share/X11/xkb/symbols/us;
# add include "level3(ralt_switch)" to the end of the environment
# https://unix.stackexchange.com/a/290407/16920
# https://unix.stackexchange.com/q/290405/16920
pos=( $( sed -n -f - /usr/share/X11/xkb/symbols/us <<END_SED
/xkb_symbols "dvorak" {/,/^};/{
/xkb_symbols "dvorak" {/=
/^};/=
}
END_SED
) )
sudo sed -i.bak "${pos[1]}i\ include \"level3(ralt_switch)\"" /usr/share/X11/xkb/symbols/us
sudo dpkg-reconfigure xkb-data
# Change your keyboard. Change Back. Should work. But some bug. I cannot get the script works stably.
Bug
- Masalah TODO dengan memuat ulang keyboard kembali ke xserver https://unix.stackexchange.com/q/290449/16920 Perubahan manual tidak selalu berhasil.
- Komplikasi: Xserver tidak memuat kunci-kunci itu dengan cepat dan bahkan tidak dalam semua kasus setelah restart / logout.
Sistem: Ubuntu 16.04
Kernel Linux: 4.4 - 4.6
Model keyboard: pc105
Layout keyboard untuk pendekatan dua tingkat keybinding: US-dvorak international dengan deadkeys
Layout keyboard untuk pendekatan one-level keybinding: Bahasa Inggris (Dvorak) = US-dvorak , tetapi juga bahasa Inggris (Dvorak Klasik)
ctrl+shift+u
lalu ketike4
dan tekan enter. Jika ini berhasil maka Anda dapat mencoba lebih lanjut untuk mendapatkan kunci sederhana untuk itu.Jawaban:
Untuk mengetikkan ä, unicode adalah U00E4
Untuk mengetik Ä, unicode adalah U00C4
Jika Anda ingin unicodes karakter lain, Anda bisa mendapatkannya
gucharmap
Untuk memasukkannya secara manual, tekan ctrl+ shift+ udan diikuti oleh 00e4 dan tekan Enter, ini harus ketik ä
Tetapi ada cara yang lebih baik untuk melakukan ini menggunakan Compose Keys .
Jika Anda ingin mengatur Anda Right alt sebagai kunci penulisan menggunakan baris perintah: jalankan saja ini:
Jika Anda ingin mengatur suing GUI:
Aktifkan kunci penulisan dengan masuk ke Pengaturan Sistem -> Keyboard -> Mengetik -> Alt Kanan . (Anda dapat memilih kunci yang berbeda jika diinginkan)
Itu saja !!
Sekarang buka editor teks favorit Anda dan lakukan ini:
Tekan dan lepaskan Right Altdiikuti dengan "diikuti oleh a. sekarang Anda akan melihat ä .
Hal yang sama dapat dilakukan untuk Ä , Tekan dan lepaskan Right Altdiikuti dengan "diikuti olehA
CATATAN: Anda mungkin perlu menekan Shift+ 'untuk mendapatkan"
TIP:
Jika Anda ingin melihat semua pintasan serupa, lihat file ini: /usr/share/X11/locale/en_US.UTF-8/Compose
sumber
sed
, itu info tambahan seperti yang dikatakan @BharadwajRaju, Anda bisa melihatnya jika Anda ingin tombol pintas untuk beberapa simbol khusus lainnya. Itu adalah daftar besar semua pintasan seperti ituBahasa Inggris (Dvorak, internasional dengan kunci mati) -
dvorak-intl
berfungsi dengan baik!Saya bisa mengetik
Ä
menggunakan ShiftAltGrqdengan pengaturan default. Lihat file di/usr/share/X11/xkb/symbols/us
manaq
kunci tersebut dinyatakan sebagaidan dengan
level3(ralt_switch)
di bagian bawah untuk menggunakan Right Alt/ AltGrsebagai level 3 bergeser sedemikian rupaq
←qQ
←Shiftqä
←AltGrqÄ
←ShiftAltGrqVisualisasi
dvorak-intl
hanya mendefinisikan 4 level, saya menggambar semua 8 level sebagai XKB mendukung sehingga Anda bisa mendapatkan gambaran umum.<AB02>
kunci itu setara.Pengaturan
ä
&Ä
pada tingkat 3 & 4a
kunci pada Bahasa Inggris (Dvorak) -dvorak
tata letakPlus
ö
&Ö
dio
kunci. (Itu tidak muncul di tangkapan layar, seperti yang ditambahkan setelah tangkapan layar)Sama seperti
dvorak-intl
, kita dapat membuat pengaturan yang sama untukdvorak
.Hapus modifikasi sebelumnya
Pos pemeriksaan
Coba bahasa Inggris (Dvorak, internasional dengan kunci mati) -
dvorak-intl
AltGrqmencetak
ä
. Jika tidak berhasil maka akan ada masalah yang sama dengan pengaturan ini. Ada sesuatu yang mencegah Right Alt bekerja sebagai pergeseran level3.Verifikasi peta saat ini
dvorak
Verifikasi pemetaan Alt Kanan, seharusnya
Alt_R
Ubah
a
petaMengatur Alt Kanan sebagai pergeseran level3
Ada banyak kunci yang dapat digunakan sebagai ISO_Level3_Shift. Periksa opsi yang tersedia
Misalnya, jika Anda ingin menggunakan Caps Lock sebagai pergeseran level3, maka masukkan
include "level3(caps_switch)"
sebagai gantinyainclude "level3(ralt_switch)"
.Paksa ulang tata letak
Ubah ke tata letak lain lalu kembali.
Periksa titik
Verifikasi peta saat ini
dvorak
Verifikasi pemetaan Alt Kanan. Harus
ISO_Level3_Shift
Sekarang, itu seharusnya bekerja!
Perintah satu baris
sumber
sudo sed -i "${pos[1]}i\ include 'level3(ralt_switch)'" /usr/share/X11/xkb/symbols/us
membuat keyboard tidak dapat digunakan saat startup. Anda tidak dapat mengetik tombol apa pun di keyboard. Itu hanya menambahkan level3 pada lingkungan Dvorak akhir di garis 249. Apakah garis 249 posisi yang benar?${pos[1]}
mendefinisikan sebelumnya.