ปุ่มซุปเปอร์ซ้าย / ขวาแตกต่าง


10

เมื่อฉันกดปุ่มซ้ายSupergnome shell จะปรากฏขึ้นและเมื่อฉันกดปุ่มขวาSuperมันจะไม่ทำงาน ยิ่งไปกว่านั้นการกดปุ่มขวาSuper+ Tจะเปิดเทอร์มินัลพร้อมกัน แต่เมื่อใช้ซูเปอร์ซ้ายฉันต้องกดTสองครั้งเมื่อฉันกดTเพียงครั้งเดียวมันคล้ายกับการกดเพียงครั้งเดียวTโดยไม่ต้องกดค้างSuperไว้ จุดสุดท้ายนี้ยังเกิดขึ้นกับทางลัดอื่น ๆ ที่ฉันกำหนด (เช่นSuper+ L, Super+ E) แต่ไม่ได้อยู่กับ+SuperUp/Down/Left/Right

สิ่งที่ฉันต้องการคือการกดปุ่มใดปุ่มหนึ่งSuperเพื่อรับ gnome shell และใช้Superคีย์ใดปุ่มหนึ่งร่วมกับTเปิดเทอร์มินัลทันที (และคล้ายกับทางลัดอื่น ๆ ) ฉันใช้ Ubuntu 12.04 LTS และ gnome 3 shell


ในSettings Manager -> Keyboard, มีตัวเลือกexo-open --launch TerminalEmulatorอย่างไร? ถ้าเป็นเช่นนั้นมันจะพูดว่าอะไรในคอลัมน์ที่สองทางลัด?
DaimyoKirby

1) คุณหมายถึงส่วน Keyboard ภายใต้การตั้งค่าระบบหรือไม่ ถ้าฉันหามันไม่พบ 2) ถ้าคุณหมายถึง compiz settings-manager ฉันไม่สามารถหามันได้ ไม่ว่าฉันจะลองใช้คำสั่งของคุณในเทอร์มินัลและมีข้อความระบุว่าไม่ได้ติดตั้ง exo-open ดังนั้นฉันจึงสงสัยอย่างมากว่าตัวเลือกจะอยู่ที่นั่น มี x-terminal-emulatorแต่ขั้วเปิดทางลัดที่กำหนดเองกับคำสั่ง นั่นคือสิ่งที่ฉันใช้เนื่องจากเทอร์มินัลเรียกใช้เริ่มต้นดูเหมือนจะไม่ทำงาน
Erik

คำตอบ:


4

โซลูชัน xmodmap

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

พิมพ์แผนที่ปรับปรุงปัจจุบัน
เรียก

xmodmap

นี่ควรจะพิมพ์แผนที่ปรับปรุงปัจจุบันซึ่งน่าจะเป็นแบบนี้

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock      
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

บรรทัดสำคัญคือmod4บรรทัดบรรทัดนี้แสดงรหัสคีย์ที่แมปกับสัญลักษณ์คีย์ Super_L และ Super_R

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

xmodmap -pke > ~/.xmodmap.orig

ตอนนี้ถ้ามีอะไรผิดพลาดคุณก็สามารถพิมพ์

xmodmap ~/.xmodmap.orig

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

ตรวจสอบการแมปกุญแจในปัจจุบันสำหรับ Super กุญแจ
สมมติว่าSuperกุญแจมีรหัสคีย์ที่ต่อเนื่องกัน (0x85 และ 0x86 ในกรณีนี้) เราสามารถตรวจสอบการแมปปัจจุบันโดยการเรียกใช้

xmodmap -pke | grep -wA1 $((0x85))

แน่นอนว่าคุณควรเปลี่ยน 0x85 ด้วยรหัสคีย์ที่คุณมีจากแผนที่ตัวปรับแต่ง สิ่งนี้ควรให้คุณ

keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_R NoSymbol Super_R

(การ$((0x85))แปลงเลขฐานสิบหกเป็นทศนิยม)

คัดลอกพฤติกรรมของด้านซ้าย Super ไปทางขวา Super
อย่างที่คุณเห็นจากขั้นตอนก่อนหน้าSuperคีย์ด้านขวามีรหัสคีย์ 134 แต่เราต้องการให้พฤติกรรมของSuperปุ่มซ้ายซึ่งมีรหัส 133 ซึ่งเราสามารถทำได้โดยทำการแมปรหัสโดยใช้

xmodmap -e "keycode 134 = Super_L NoSymbol Super_L"

ตรวจสอบว่ามันใช้งานได้
หรือไม่ถ้าคุณทำตอนนี้

xmodmap -pke | grep -wA1 $((0x85))

คุณควรเห็น

keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_L NoSymbol Super_L

หมายความว่าตอนนี้ปุ่มทั้งสองมีพฤติกรรมเหมือนกัน นอกจากนี้แผนที่ตัวดัดแปลงควรมีการเปลี่ยนแปลงในบรรทัดด้วยmod4เราสามารถตรวจสอบสิ่งนี้โดยการเรียกใช้

xmodmap | grep 'mod4'

ซึ่งควรให้

mod4        Super_L (0x85),  Super_L (0x86),  Super_L (0xce),  Hyper_L (0xcf)

และแน่นอนว่าทางลัดที่คุณกล่าวถึงควรใช้งานได้เช่นกัน!

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

echo 'keycode 134 = Super_L NoSymbol Super_L' >> ~/.xmodmaprc

~/.xmodmaprcในการจัดเก็บคีย์การแมปของคุณเองในแฟ้ม วิ่ง

echo 'xmodmap ~/.xmodmaprc' >> ~/.xsessionrc

เพื่อให้แน่ใจว่าแผนที่คีย์ที่กำหนดเองจะถูกดำเนินการเมื่อตัวจัดการหน้าต่างของคุณโหลด


1
ก่อนอื่นขอขอบคุณสำหรับคำตอบของคุณฉันทำทุกอย่างเพื่อทำแผนที่แบบถาวร ผลลัพธ์ในเทอร์มินัลเป็นอย่างที่กล่าวไว้อย่างไรก็ตามปัญหาของฉันยังคงเหมือนเดิม: left super แสดงเชลล์ gnome และอันที่ถูกต้องไม่ และคล้ายกับทางลัดด้วยซูเปอร์ซ้ายคุณจะต้องกด t สองครั้งเพื่อเปิดเทอร์มินัลและด้วยซูเปอร์ด้านขวาหนึ่งครั้งก็เพียงพอแล้ว
Erik

1
อืมฉันก็ยังไม่เข้าใจ: PI เดาทางลัดเหล่านี้ถูกจัดการในระดับที่สูงขึ้น
แกร์ฮาร์ดเบอร์เกอร์

1
อาฉันพบรายงานข้อผิดพลาดผู้คนจำนวนมากมีปัญหาเดียวกันอย่างเห็นได้ชัด :) bugzilla.gnome.org/show_bug.cgi?id=659899
Gerhard Burger
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.