ฉันจะเปลี่ยนเค้าโครงแป้นพิมพ์จากบรรทัดคำสั่งได้อย่างไร ตัวอย่างเช่นฉันต้องการเปลี่ยนจากภาษาอังกฤษเป็นภาษาฮิบรู ฉันสามารถทำได้จาก lightdm ด้วยไอคอนเล็ก ๆ ที่มุมของหน้าจอของฉัน
ฉันจะเปลี่ยนเค้าโครงแป้นพิมพ์จากบรรทัดคำสั่งได้อย่างไร ตัวอย่างเช่นฉันต้องการเปลี่ยนจากภาษาอังกฤษเป็นภาษาฮิบรู ฉันสามารถทำได้จาก lightdm ด้วยไอคอนเล็ก ๆ ที่มุมของหน้าจอของฉัน
คำตอบ:
จากสถานี
ภาษาอังกฤษเป็นภาษาฮิบรูและในทางกลับกันด้วยAlt+Shift
setxkbmap -option grp:alt_shift_toggle us,il
คุณสามารถดูนามแฝงโลแคลทั้งหมดได้ด้วยคำสั่งนี้
cat /etc/locale.alias
ข้อมูลเพิ่มเติมเกี่ยวกับ setxkbmap ในคู่มือ
man setxkbmap
คุณสามารถค้นหาคีย์แมปที่แตกต่างกันทั้งหมดในตำแหน่งที่ตั้งต่อไปนี้:
/usr/share/keymaps/i386/
/usr/share/kbd/keymaps/i386/
/usr/share/X11/xkb/symbols/
หากต้องการเปลี่ยนเค้าโครงแป้นพิมพ์ (เช่นเป็นภาษาสเปน) ในบรรทัดคำสั่ง Linux ให้พิมพ์คำสั่งต่อไปนี้:
loadkeys es
สำหรับ X:
setxkbmap es
ในการเปลี่ยนแปลงระบบให้กว้างนี้โดยสมมติว่าคุณใช้ Ubuntu คุณสามารถใช้สิ่งต่อไปนี้:
sudo dpkg-reconfigure console-setup
/usr/share/X11/xkb/symbols/
และsetxkbmap es
สิ่งนี้ทำงานได้ดีกว่าจากนั้น setxkbmap ด้วยตัวบ่งชี้เค้าโครงแป้นพิมพ์ Gnome / Unity
gsettings set org.gnome.desktop.input-sources current 0
0 คือดัชนีโครงร่าง (0 ค่าเริ่มต้นหรือเค้าโครงด้านบน) การจัดทำดัชนีเริ่มต้นจาก 0
สำหรับการใช้งานง่ายสร้างนามแฝง
dconf-editor
/org/gnome/desktop/
พวกเขาอาจเปลี่ยนชื่อได้
setxkbmap us,il -option "lv3:ralt_alt,grp:alt_shift_toggle"
คำสั่งนี้ช่วยให้คุณสามารถสลับไปมาระหว่างภาษาอังกฤษและภาษาฮิบรูเพียงผ่านโดยright alt+ shiftและช่วยเหลือคุณจากการ+left altshift
ดูเหมือนจะไม่มีเครื่องมือ CLI มาตรฐาน แต่xkb-switchเป็นเครื่องมือโอเพนซอร์ซขนาดเล็กสำหรับทำงาน เพิ่งทดสอบกับ Ubuntu 16.04.4 LTS และทำงานได้อย่างไม่มีที่ติ
$ xkb-switch # display current group
ua
$ xkb-switch -l # list groups
us
ua
$ xkb-switch -s us # switch to a named group
$
สิ่งนี้ดูดีกว่าโซลูชันอื่น ๆ เนื่องจากsetxkbmap <name>
ทำลายตัวเลือกทั้งหมดและsetxkbmap -layout <name>
ในขณะที่รักษาตัวเลือกไว้มันยังคงล้มเหลวในการเปลี่ยนตัวบ่งชี้แถบงานหรือgrp_led
หากตั้งค่าไว้
หากการ~/.config/kxkbrc
ใช้งานของคุณLayoutLoopCount
(เช่นถูกตั้งค่าให้น้อยกว่าจำนวนเลย์เอาต์ทั้งหมดที่แสดงในLayoutList
) เช่นนี้:
LayoutList=us,ua,th,de
LayoutLoopCount=2
Options=grp_led:scroll,grp:rwin_switch,compose:menu,lv3:ralt_switch,
nbsp:level2,grp:rctrl_toggle,misc:typo
จากนั้นxkb-switch
จะอนุญาตให้คุณสลับระหว่างโครงร่างในกลุ่มปัจจุบันเท่านั้น
ฉันสังเกตเห็นความคิดเห็นของคุณ:
ก่อนที่สกรีนเซฟเวอร์จะเปิดขึ้นฉันต้องการเปลี่ยนเป็นภาษาอังกฤษเพื่อให้สามารถพิมพ์รหัสผ่านของฉันได้ง่ายเมื่อฉันกลับเข้ามา
นี่คือเป้าหมายของฉันได้อย่างแม่นยำดังนั้นนี่คือคำตอบ:
ต้องการทำเช่นนั้นคุณจะต้องตัดมันลงไปใน hooking สคริปต์เพื่อdbus-monitor
ชอบกล่าวถึงที่นี่
การใช้gsettingsใน 18.04+ กับ Gnome คุณสามารถเพิ่มรูปแบบแป้นพิมพ์และสลับไปมาระหว่างบรรทัดคำสั่งหรือจากตัวสลับเค้าโครงแป้นพิมพ์บนเดสก์ท็อป
1. นำเสนอเค้าโครงแป้นพิมพ์และตัวเลือก:
$ gsettings list-recursively org.gnome.desktop.input-sources
org.gnome.desktop.input-sources show-all-sources false
org.gnome.desktop.input-sources xkb-options ['terminate:ctrl_alt_bksp']
org.gnome.desktop.input-sources per-window false
org.gnome.desktop.input-sources current uint32 1
org.gnome.desktop.input-sources mru-sources @a(ss) []
org.gnome.desktop.input-sources sources [('xkb', 'es'), ('xkb', 'no')]
2. การเพิ่มรูปแบบแป้นพิมพ์:
$ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'no'),('xkb','gr')]"
$ gsettings get org.gnome.desktop.input-sources sources
[('xkb', 'es'), ('xkb', 'no'), ('xkb', 'gr')]
3. การเปลี่ยนรูปแบบแป้นพิมพ์ปัจจุบันจากบรรทัดคำสั่ง:
$ gsettings set org.gnome.desktop.input-sources current 1
เนื่องจากเรามี 3 ภาษาที่แตกต่างกันเรามีสามตัวเลือกตั้งแต่ 0 ถึง 2 โดยมี 1 เป็นภาษาสเปน 2 เป็นนอร์เวย์และ 3 เป็นภาษากรีก ดังนั้นการตั้งค่าปัจจุบันที่ 1 ข้างต้นทำให้นอร์เวย์เป็นรูปแบบแป้นพิมพ์ปัจจุบัน
4. ใช้รูปแบบแป้นพิมพ์ที่เป็นไปได้ทั้งหมด:
cat //usr/share/X11/xkb/rules/base.lst
5. การเปลี่ยนเค้าโครงแป้นพิมพ์ด้วยแป้นพิมพ์ลัด:
แป้นพิมพ์ลัดได้รับการกำหนดค่าล่วงหน้าสำหรับการเปลี่ยนเค้าโครงแป้นพิมพ์ ทางลัดปัจจุบัน:
$ gsettings get org.gnome.desktop.wm.keybindings switch-input-source
['<Super>space']
สามารถตั้งค่าทางลัดใหม่โดยใช้ชุด gsetting แต่ระวังไม่ให้ใช้ทางลัดที่ใช้งานอยู่แล้ว ในการแสดงรายการทางลัดทั้งหมดที่ใช้งาน:
$ gsettings list-recursively org.gnome.desktop.wm.keybindings
org.gnome.desktop.wm.keybindings cycle-windows-backward ['<Shift><Alt>Escape']
org.gnome.desktop.wm.keybindings minimize ['<Super>h']
org.gnome.desktop.wm.keybindings move-to-workspace-7 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-8 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-9 @as []
org.gnome.desktop.wm.keybindings move-to-monitor-left ['<Super><Shift>Left']
...
สำหรับ Ubuntu 18.04 + Gnome คำตอบอื่น ๆ ใช้ไม่ได้สำหรับฉัน แต่สิ่งนี้ทำได้:
gdbus call --session --dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
"imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"
อาร์กิวเมนต์ใน "inputSources [0]" เป็นดัชนีของเค้าโครงแป้นพิมพ์เช่นเดียวกับโซลูชัน gsettings
พบว่ามันอยู่บนลินุกซ์ StackExchange
แค่อยากรู้อยากเห็นทำไมคุณจะทำอย่างนั้น? ทำไมคุณถึงเปิดเทอร์มินัลและพวกเขาพิมพ์คำสั่งเพื่อสลับเค้าโครงแป้นพิมพ์ของคุณเมื่อคุณสามารถทำได้โดยใช้แป้นพิมพ์ลัดง่ายๆ! สมมติว่าคุณใช้ Ubuntu มันจะเป็นWindows
+Space