การกำหนดแป้นพิมพ์ลัดที่เกี่ยวข้องกับปุ่ม Fn


17

ฉันกำลังคุ้นเคยกับการกดFn+ Leftเพื่อจำลองHomeที่สำคัญและFn+ สำหรับRightEnd

บนแป้นพิมพ์ที่มีอยู่จริงHomeและEndแป้นการใช้Fnแป้นพิมพ์ลัดเหล่านี้ไม่ทำงาน

ฉันจะแมปFnแป้นพิมพ์ลัดที่กำหนดเองบนUbuntu Linux ได้อย่างไร


1
ซ้ำเป็นไปได้ของปุ่มมัลติมีเดียผูก อาจไม่ซ้ำกันแน่นอนในคำอธิบายปัญหา แต่อาจแก้ไขได้ด้วยกระบวนการพื้นฐานเดียวกัน
Daniel Andersson

มีใครใช้แล็ปท็อปที่ทันสมัย ​​(2018) เช่น HP Specter x360 (แม้ว่าจะมีปุ่ม PgUp แยกต่างหาก) และ Dell XPS ทราบหรือไม่ว่ามีการตรวจพบปุ่มฟังก์ชั่นเหมือนกับปุ่มอื่น ๆ หรือไม่
MycrofD

1
ฉันใช้ Lenovo Thinkpad X1 Carbon ด้วยFnที่สำคัญซึ่งเป็นที่ตรวจพบว่าเป็น keycode 151 xevโดย ในขณะที่FnถูกกดLeftและRightปุ่มจะไม่สร้างเหตุการณ์ Fn+F2ไม่สร้างเหตุการณ์ใด ๆ แต่ทำงานได้ตามที่คาดไว้ - ลดปริมาณ
Suor

คำตอบ:


16

ซึ่งแตกต่างจากตัวดัดแปลงเช่น Alt และ Ctrl การกดปุ่ม Fn จะไม่สื่อสารกับระบบปฏิบัติการ คีย์เพียงแค่ปรับเปลี่ยน scancodes ของคีย์อื่น ๆ ดังนั้นการกดFn+ Rightจะเลียนแบบปุ่มวางแม้ว่ามันอาจจะไม่มีอยู่จริง แต่พวกมันก็แยกไม่ออกจากระบบปฏิบัติการ พฤติกรรมนี้ถูกควบคุมโดยอุปกรณ์อิเล็กทรอนิกส์ของแป้นพิมพ์เท่านั้นดังนั้นจึงไม่สามารถเปลี่ยนแปลงได้โดยไม่ต้องยุ่งกับวงจรหรือไมโครคอนโทรลเลอร์


2
มีระบบปฏิบัติการและคอมพิวเตอร์หนึ่งระบบซึ่งเป็นข้อยกเว้นสำหรับกฎนี้และนั่นคือแล็ปท็อป mac คุณสามารถแก้ไขรหัสนี้โดยใช้ Karabiner ได้จริง Thinkpads ยังส่งคีย์นี้ไปยังระบบปฏิบัติการ แต่ไม่ได้เป็นคีย์ตัวแก้ไขเช่นใน mac
วิลเลียม

2
นี่ไม่เป็นความจริง. xevแสดงการFnกดปุ่ม
Suor

1
ในเครื่อง Dell ที่ใช้ Debian 10 xevจะไม่แสดงอะไรเลยเมื่อกดปุ่ม Fn
ปิแอร์

12

ในระบบส่วนใหญ่มันเป็นไปไม่ได้ที่จะตรวจพบFnกุญแจ แต่คุณสามารถลองใช้:

$ xev | grep --line-buffered keysym

เพื่อค้นหาคีย์Fn-LeftและFn-Rightส่ง ( grepเพียงแค่ลดเสียงรบกวน)

หากคุณโชคดีปุ่มกดเหล่านั้นจะส่งการกดแป้นที่ไม่สำคัญไปยังเครื่องซึ่งคุณสามารถทำการแมปใหม่ได้

ตัวอย่างเช่นในระบบของฉันxevแสดงว่าFn-Leftปุ่มกดของฉันส่งXF86AudioPrevเหตุการณ์จริง:

state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES,

ฉันสามารถทำการแมปใหม่นี้เพื่อแปลเป็นHomeเหตุการณ์สำคัญได้อย่างง่ายดาย:

$ xmodmap -e 'keysym XF86AudioPrev = Home'

หวังว่าคุณจะสามารถทำเช่นเดียวกันกับ End, PageUp และ PageDown

น่าเสียดายที่หาก xev ไม่ได้รับสิ่งใดที่เป็นเอกลักษณ์เมื่อคุณกดFn-Leftคุณจะโชคไม่ดี

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


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

5

ฉันเปิดxevในสถานี ตรวจพบเมื่อกดShift, Ctrl, AltและWin( Super) แต่เมื่อผมกดFnคีย์มันไม่ได้ตรวจสอบได้

ดังนั้นซอฟต์แวร์ไม่มีส่วนเกี่ยวข้องกับFnกุญแจ มันขึ้นอยู่กับฮาร์ดแวร์ในการตัดสินใจว่าจะส่งคีย์ใดไปยังซอฟต์แวร์ (เช่นHomeหรือEndคีย์)

ดังนั้นแป้นพิมพ์ของคุณต้องมีเพื่อให้สามารถทำเช่นนี้ได้

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