Ubuntu จัดเก็บการกำหนดค่าแป้นพิมพ์ลัดไว้ที่ไหน


34

มีสถานที่ใน "Ubuntu" ที่จัดเก็บรายการทั้งหมดของคีย์ / ชุด / ทางลัดใดถูกผูกไว้กับอะไร

แป้นพิมพ์และเมาส์ลัดของ Unity คืออะไร แสดงรายการทางลัด "Unity" บางส่วนไปที่ Dash, Launcher และอื่น ๆ และวิธีการแสดงรายการคำสั่งผสม Keybindings ที่ใช้งานอยู่? แสดงวิธีการแสดงรายการการรวมคอมโพสิต แต่ฉันกำลังมองหามากกว่านั้น (ไม่เพียงไม่กี่ keybindings จำกัด เฉพาะ Unity หรือ Compiz) แม้ว่ามันจะเป็นการเริ่มต้น

มีรายการส่วนกลางของการเชื่อมโยงคีย์ / คีย์ผสม / แป้นพิมพ์ลัดที่ใช้งานอยู่ซึ่งถูกจัดเก็บไว้ใน Ubuntu หรือมีวิธีรวบรวมและบันทึกรายการเหล่านั้นหรือไม่ สิ่งหนึ่งที่ใช้กับ Ubuntu และสิ่งต่าง ๆ ที่ใช้งานอยู่ (Unity, Compiz, ทางลัดไปยังโปรแกรม ฯลฯ )

แน่นอนว่าอูบุนตูต้องเก็บสิ่งนี้ไว้ที่ใด ๆ เพื่อให้ปุ่มกดบนแป้นพิมพ์ถูกนำไปรวมกับสิ่งที่เชื่อมโยงอยู่ด้วย? หากไม่มีสถานที่ดังกล่าวใน Ubuntu ให้โพสต์เพื่อเป็นคำตอบดังนั้นผู้ใช้ในอนาคตการค้นหานั้นจึงจะรู้


1
ตกลงฉันได้ตั้งชื่อใหม่ว่าให้ซ้ำกันน้อยลง y
Jorge Castro

คำตอบสองข้อที่ทำให้เกิดเหตุการณ์ที่ขัดแย้งกันสองเหตุการณ์ Lakritsbollar กล่าวว่าโปรแกรมจัดการหน้าต่างได้รับการควบคุมก่อนจากนั้นส่งต่อไปยังแอพพลิเคชัน ทางไหน
James

สามารถหาทางลัดเพิ่มเติมได้ที่detector-pro.com/2008/07/ubuntu-tweak-keyboard-shortcuts.html
James

คำตอบ:


10

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

คุณสามารถตรวจสอบได้ด้วยตัวเองด้วยวิธีดังต่อไปนี้:

  1. เริ่มเทอร์มินัล
  2. เริ่มxev | grep KeyPressตัวแสดงเหตุการณ์ X
  3. กดAltโปรดทราบว่าxevแสดงว่ามีเหตุการณ์สำคัญในหน้าต่างเทอร์มินัล
  4. กดCtrlอีกครั้งโปรดทราบว่าxevได้รับเหตุการณ์ จดบันทึกว่าหน้าจอเทอร์มินัลเป็นอย่างไรในตอนนี้
  5. กดLeft arrowเพื่อไปยังพื้นที่ทำงานอื่น (ฉันสมมติว่าคุณมีปุ่มลัดเป็นตัวจัดการหน้าต่าง)
  6. กดที่จะกลับไปที่คุณกำลังทำงานอยู่Right arrow xevโปรดทราบว่ามันไม่เคยได้รับเหตุการณ์สำคัญใด ๆ สำหรับคุณสลับพื้นที่ทำงานผ่านปุ่มลูกศรซ้ายและขวา - ผลลัพธ์นั้นเหมือนกับในขั้นตอนที่ 4

ดังนั้นคุณจะเห็นว่าตัวจัดการหน้าต่างในทางปฏิบัติได้รับเหตุการณ์สำคัญทั้งหมดและหากไม่ต้องการดักจับมันมันจะส่งผ่านมันไปยังแอปพลิเคชัน แอปพลิเคชันจะทำเช่นเดียวกันกับวิดเจ็ตของตัวเอง (เช่นวิธีที่คุณสามารถกดได้Enterตลอดทั้งวันในเว็บเบราว์เซอร์ของคุณ แต่มันจะไม่ทำอะไรจนกว่าคุณจะวางเคอร์เซอร์ในแถบที่อยู่หรือฟิลด์ที่คุณสามารถป้อนข้อความ) .

ขึ้นอยู่กับแอพพลิเคชั่นที่จะตั้งค่าทางลัดของตัวเองและแอพพลิเคชั่นจะได้รับการกำหนดค่าแยกกัน

ใน KDE 3.x ถ้าฉันจำได้อย่างถูกต้องคุณสามารถตั้งค่าทางลัดเริ่มต้น (เช่นCtrl-sบันทึก) ใน KDE Control Center และจะใช้กับแอปพลิเคชันทั้งหมดที่เขียนด้วยชุดเครื่องมือ Qt แต่ฉันไม่รู้ว่ายังคงเป็นไปได้หรือไม่ ตั้งแต่เปลี่ยนเป็น KDE 4


มันไม่ใช่คำตอบ 100% แต่มันใกล้เคียง โดยทั่วไปจะไม่มีสถานที่กลางที่เก็บแป้นพิมพ์ลัด / ตัวจัดการหน้าต่างจะแตกเป็นครั้งแรกเมื่อกดปุ่มจากนั้นใช้งาน โฟกัสยังมีส่วนร่วม
James

20

ตั้งแต่ Ubuntu 17.10

บนเส้นทางนี้ :

dconf dump /org/gnome/desktop/wm/keybindings/
dconf dump /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/  # Custom

คุณยังสามารถใช้dconf-editor(GUI) หรือgsettings(CLI)

ตั้งแต่ Ubuntu 12.10-17.04

~/.config/dconf/user(ใน dconf-editor: org.gnome.settings-daemon.plugins.media-keys.custom-keybindings(ทางลัดที่กำหนดเอง)

~/.config/compiz-1/compizconfig

จนกระทั่ง Ubuntu 12.04

ทางลัดจะถูกวางแตกต่างกันไปขึ้นอยู่กับเดสก์ท็อปแม่มดที่คุณใช้ (คำพังเพย / เอกภาพ, kde, xfce, lxde, ฯลฯ )

สำหรับคำพังเพยพวกเขาอยู่ภายใต้
~/.gconf/desktop/gnome/keybindings(ทางลัดที่กำหนดเอง)


~/.gconf/apps/metacityและอยู่ภายใต้


11.10 ไม่ได้ใช้ GNOME หรือ Metacity
nfirvine

แต่เส้นทางสู่ทางลัดยังคงทำงานตามที่ฉันใช้
desgua

เมื่อดูกินอูบุนตูที่สวยงามสด 11.10 ติดตั้งบน macbook pro ตำแหน่งแรกไม่มีไฟล์ปุ่มลัด แต่ตำแหน่งที่สองมีสิ่งนี้:general/ global_keybindings/ window_keybindings/
Victor S

1
ตำแหน่งแรกใช้สำหรับทางลัดที่กำหนดเอง
desgua

1
@AnonymousPlatypus ดูที่นี่สำหรับgsettingsคำแนะนำ
wjandrea

4

ไม่ไม่มีที่เดียวที่เก็บปุ่มลัดทั้งหมด แอปพลิเคชันสามารถเลือกที่จะเก็บการกำหนดค่าของพวกเขาทุกที่ที่พวกเขาเลือก

ที่กล่าวมาส่วนใหญ่คุณจะดูสองระดับ: ระดับแอปพลิเคชัน (เช่น Ctrl-C เพื่อคัดลอกใน Firefox) และระดับตัวจัดการหน้าต่าง (เช่น Win + D เพื่อแสดงเดสก์ท็อป) Compiz ใช้ GConf ในการจัดเก็บการตั้งค่าของมัน

สำหรับแอปพลิเคชันคุณสามารถแบ่งพวกเขาโดยใช้ชุดเครื่องมือของพวกเขา แอพ GTK ก็ใช้ gconf ด้วยเช่นกัน

แน่นอนว่าอูบุนตูต้องเก็บสิ่งนี้ไว้ที่ใด ๆ เพื่อให้ปุ่มกดบนแป้นพิมพ์ถูกนำไปรวมกับสิ่งที่เชื่อมโยงอยู่ด้วย?

ไม่มาก แอปพลิเคชั่นเพ่งความสนใจจะได้รับการเตะครั้งแรกที่เหตุการณ์แป้นพิมพ์ X แต่ถ้ามันไม่เป็นเช่นนั้นมันจะทำให้แอปพลิเคชันอื่น ๆ เพิ่มขึ้นนั่นคือตัวจัดการหน้าต่าง ดังนั้นคุณสามารถมีเกมที่รวบรวม Alt + F4 และไม่ปิดหน้าต่าง (แช่งคุณ Jamestown!) ฉันคิดว่าคุณคิดว่ามันจะไปที่เราเตอร์เหตุการณ์กลางแล้วจับคู่กับฐานข้อมูลบางส่วนและส่งไปยังปลายทาง มันเหมือนการดื่มขวดหนึ่งผ่านไปรอบ ๆ : ผ่านไปทำพิธีรับเครื่องดื่มถ้าคุณต้องการและผ่านส่วนที่เหลือหรือรับสิ่งทั้งปวงแล้วละโมบ

สภาพแวดล้อม Linux / FOSS (คุณอาจสังเกตเห็น) เป็นประชาธิปไตยที่ค่อนข้างดีและการให้แอปพลิเคชันทั้งหมดเห็นด้วยกับที่เก็บการกำหนดค่าคีย์บอร์ดกลางเดียวเป็นสิ่งที่ไม่ควรทำ ประการหนึ่งคุณมีแอปพลิเคชั่นที่ไม่ได้ลบเลือนที่เขียนมานานแล้วและไม่รู้อะไรเลย

อัปเดต: ตามเอกสาร Xlib ในหัวข้อ :

เริ่มต้นด้วยหน้าต่างต้นฉบับเซิร์ฟเวอร์ X จะค้นหาลำดับชั้นของหน้าต่างจนกว่าจะพบหน้าต่างแรกที่ลูกค้าระบุว่ามีความสนใจในเหตุการณ์เหล่านี้ หากหนึ่งในหน้าต่างที่เข้ามามีชุดที่ห้ามเผยแพร่เพื่อห้ามการสร้างประเภทเหตุการณ์เหตุการณ์ประเภทนั้นจะถูกระงับ

นอกจากนี้

หากต้องการรับเหตุการณ์ KeyPress, KeyRelease, ButtonPress และ ButtonRelease ให้ตั้งค่า KeyPressMask, KeyReleaseMask, ButtonPressMask และบิต ButtonReleaseMask ในแอตทริบิวต์ event-mask ของหน้าต่าง

และคุณสามารถตั้งค่าแอตทริบิวต์ที่จะปิดการใช้งานการขยายพันธุ์

ปัญหาคือคุณไม่บอก X ซึ่งกุญแจที่จะฟังเพื่อให้คุณไม่สามารถบอกได้เบื้องต้นสิ่งที่ปุ่มฟังพลิเคชันสำหรับ (นับประสาสิ่งที่พวกเขาทำ) หรือจริงๆว่าพวกเขาตั้งใจที่จะเผยแพร่มันขึ้นถ้าพวกเขาอยู่ในความเป็นจริง ฟังมัน ดังนั้นการลงทะเบียนกลางเป็นไปไม่ได้ที่ระดับ X ดังนั้นคุณต้องทำในระดับเครื่องมือซึ่งเป็นไปไม่ได้ในทางปฏิบัติ : D


ฉันได้ข้อสรุปแบบเดียวกันมามากแล้วโฟกัสนั้นเป็นตัวกำหนดสิ่งที่จัดการกับอินพุต สามารถสังเกตได้โดยการเปิดหน้าต่างเบราว์เซอร์จากนั้นเปิดหน้าต่างเทอร์มินัลซึ่งตอนนี้กลายเป็นหน้าต่างที่ใช้งานอยู่ หากคุณถือเมาส์ไว้เหนือหน้าต่างเบราว์เซอร์ให้ใช้ล้อเลื่อนมันจะเลื่อนหน้าต่างเบราว์เซอร์แม้ว่าหน้าต่าง Terminal จะเป็นหน้าต่างที่ใช้งานอยู่
James

ฉันหวังว่าจะได้คำตอบที่ง่ายสำหรับคำถามของฉันหรืออย่างน้อยก็เป็นวิธีที่ง่ายในการรวบรวมและเขียนรายการทางลัด แต่ดูเหมือนจะเป็นไปไม่ได้เลยที่วิธีการกดปุ่มในที่สุดก็จะไปถึงที่ที่กำหนดไว้ แป้นพิมพ์ลัด / ปุ่มลัดดูเหมือนจะกระจายไปทั่วและการใช้แป้นพิมพ์เหล่านี้มีแนวโน้มที่จะขึ้นอยู่กับสิ่งที่ใช้งานอยู่และจุดโฟกัสปัจจุบัน
James

1
อย่างไรก็ตามฉันไม่ได้อยู่กับคุณในแอปพลิเคชันเพื่อรับเหตุการณ์สำคัญต่อหน้าผู้จัดการหน้าต่าง ฉันคิดว่า Window Manager มีการแตกครั้งแรกในเหตุการณ์แล้วแอปพลิเคชันที่ใช้งานอยู่
James

1

แอปพลิเคชันจัดเก็บทางลัดของตนเองอย่างอิสระดังนั้นจึงไม่มีตำแหน่งกลางที่จัดเก็บ

ฉันไม่เข้าใจกระบวนการทั้งหมดของแป้นพิมพ์แบบโต้ตอบ - ระบบปฏิบัติการ - เคอร์เนล - X11 - ตัวจัดการหน้าต่าง - สภาพแวดล้อมเดสก์ท็อป - แอปพลิเคชัน แต่ถ้าหน้าต่างบางอย่างเช่น Gedit มีโฟกัสของแป้นพิมพ์ อินพุตด้วยตัวเองและทำเช่นนั้น


-1

ใน 11.10 ภายใต้การกำหนดค่าระบบ -> แป้นพิมพ์ -> ทางลัดคุณจะได้รายการที่น่าสนใจ นั่นคือสิ่งที่คุณกำลังมองหา?


เขากำลังมองหาไฟล์ที่มีทางลัดทั้งหมดไม่ใช่แค่รายการไฟล์เหล่านั้น
Mark O'Sullivan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.