Score:2

ปุ่มลัดที่กำหนดเองของ Ubuntu 20.04 เพื่อเปลี่ยนรูปแบบแป้นพิมพ์

ธง ph

ฉันกำลังพยายามเปลี่ยนพฤติกรรมของ Ubuntu 20.04 ด้วยวิธีต่อไปนี้: ฉันต้องการ Alt ซ้าย เพื่อเปลี่ยนเค้าโครงแป้นพิมพ์เป็นภาษาอังกฤษและ Alt ขวา เพื่อเปลี่ยนเป็นภาษารัสเซีย ฉันยังต้องการที่จะเก็บทั้งหมดของฉัน Alt+smth ปุ่มลัด

สิ่งที่ฉันคิดออก:

  • ปุ่มลัดที่กำหนดเอง: การตั้งค่า Ubuntu หรือ Tweak Tools ไม่สามารถทำในสิ่งที่ฉันต้องการได้ ฉันสามารถใช้ xbindkeys ที่จะผูก Alt_L และ Alt_R ไปยังคำสั่งเชลล์ใด ๆ แต่มันหยุดทำงาน Alt+smth ปุ่มลัดแม้ว่าฉันจะใช้ ปล่อย ตัวแก้ไข (เช่น Alt_L + รีลีส). ฉันยังไม่รู้วิธีแมปอะไร Alt โดยไม่แตกหัก Alt+smth.
  • เมื่อพูดถึงคำสั่งเชลล์ สิ่งที่ดีที่สุดที่ฉันสามารถทำได้เพื่อเปลี่ยนรูปแบบแป้นพิมพ์ด้วยคำสั่งเชลล์คือ setxkbmap เรา หรือ setxkbmap รู. มันใช้งานได้ แต่อูบุนตูไม่เห็นสิ่งนี้: เมื่อฉันกดปุ่ม เปลี่ยนภาษา ปุ่มลัดเค้าโครงแป้นพิมพ์เปลี่ยนในถาดอูบุนตู แต่เค้าโครงจริงอยู่เสมอ เรา. อีกด้วย setxkbmap เรา ไม่ได้เปลี่ยนเลย์เอาต์ที่เลือกในปัจจุบัน แต่จะจำกัดรายการของเลย์เอาต์ที่มีอยู่ให้เหลือเพียง เรา แทน เรา ru ซึ่งเป็นวิธีแก้ปัญหา แต่ฉันสามารถอยู่กับสิ่งที่ฉันเดาได้

ดังนั้นคำถามคือฉันจะผูกมัดได้อย่างไร Alt ซ้าย เพื่อสลับเค้าโครงของสหรัฐอเมริกาและ Alt ขวา เพื่อสลับเค้าโครง RU ในขณะที่เก็บทั้งหมดไว้ Alt+smth ปุ่มลัด?

Sadaharu Wakisaka avatar
pl flag
ยินดีต้อนรับสู่ AskUbuntu ในขณะที่ `Alt_L + key` เชื่อมโยงกับบางสิ่ง (น่าจะเป็นเช่นนั้น); จะน่ารำคาญถ้าคุณสามารถกำหนดคีย์นั้นได้ สิ่งที่ง่ายถ้าคุณพยายามตั้งค่าปุ่มลัดใน `การตั้งค่าระบบ > แป้นพิมพ์ > ทางลัด ` อาจเป็นไปได้ว่า ' สลับไปยังแหล่งถัดไป ' ถูกตั้งค่าเป็น ' super + space ' ลองเปลี่ยนเป็นคีย์ผสมที่คุณชื่นชอบ
Artem Shalagin avatar
ph flag
@guiverc ขอบคุณสำหรับคำชี้แจง ฉันหมายถึง ubuntu 20.04 แก้ไขคำถาม
Artem Shalagin avatar
ph flag
@SadaharuWakisaka ขอบคุณสำหรับคำตอบของคุณ ประเด็นคือฉันเคยใช้การตั้งค่านี้บน Mac มาก่อน และฉันได้พัฒนาหน่วยความจำของกล้ามเนื้อเพื่อกด alt ซ้ายหรือขวาด้วยนิ้วหัวแม่มือของฉันเพื่อสลับเป็นภาษาที่ฉันจะพิมพ์ก่อนที่จะเริ่มพิมพ์ ดังนั้นมันจะไม่น่ารำคาญสำหรับฉันหากตั้งค่าปุ่มลัดทั้ง `Alt` และ `Alt + key` นอกจากนี้ฉันต้องการผูกคีย์กับ _select_ เลย์เอาต์เฉพาะแทนที่จะเป็น _switch_ เลย์เอาต์ คุณรู้หรือไม่ว่าสิ่งนี้เป็นไปได้?
vanadium avatar
cn flag
แรงบันดาลใจบางส่วนที่นี่: https://unix.stackexchange.com/questions/316998/how-to-change-keyboard-layout-in-gnome-3-from-command-line
Score:3
ธง ph

ฉันพบวิธีการใช้ความคิดเห็นของ @vanadium และ เครื่องมือ dconf.

การเปลี่ยนภาษาจากเทอร์มินัลโดยใช้ เปลือกคำพังเพย's อีวาล:

โทร gdbus --session --dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--เมธอด org.gnome.Shell.Eval \
"imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"

เปลี่ยนดัชนีของ แหล่งอินพุต สำหรับภาษาต่างๆ

ในการตั้งค่าปุ่มลัดที่คุณต้องการ เครื่องมือ dconf. นำทางไปยัง /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/. คุณไม่สามารถเพิ่มโฟลเดอร์ย่อยใหม่ได้อย่างสะดวกสบาย dconf-บรรณาธิการ อินเทอร์เฟซไปที่ การตั้งค่า -> แป้นพิมพ์ลัดเลื่อนลงไปที่ ทางลัดที่กำหนดเอง และเพิ่มใหม่ กำหนดเอง0 โฟลเดอร์ย่อยควรปรากฏใน เครื่องมือ dconfอินเทอร์เฟซของ ตั้งคำสั่งด้านบนเป็นคำสั่ง และ Alt_L หรือ Alt_R เป็นการผูกมัด

Score:0
ธง cn

ฉันไม่สามารถกำหนดปุ่มลัดที่ต้องการได้ Alt_L / Alt_r และรักษาอื่นๆ Alt+smth ปุ่มลัดใช้งานได้ แต่ฉันสามารถใช้งานฟังก์ชันที่ร้องขอได้โดยใช้คีย์ที่ขัดแย้งกันน้อยลง i3wmดังนั้นคำตอบของฉันอาจมีประโยชน์บางส่วน

ฉันเพิ่มบรรทัดต่อไปนี้ใน .config/i3/config:

bindcode Mod4+57 exec "setxkbmap -layout us,ru"
bindcode Mod4+58 exec "setxkbmap -layout ru,us"

ตอนนี้ windows_key + น ( มีรหัส 57) และ windows_key + ม ( มีรหัส 58) เปลี่ยนเค้าโครงเป็นภาษาอังกฤษและรัสเซียตามลำดับ

โปรดทราบว่าจำเป็นต้องใช้ รหัสผูก ร่วมกับรหัสแทน ไบน์ซิม พร้อมสัญลักษณ์ใน การกำหนดค่าเพราะมิฉะนั้นปุ่มลัดจะไม่ทำงานในรูปแบบภาษารัสเซีย

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา