কী সংমিশ্রনের জন্য xmodmap - Fn আচরণটি কীভাবে টগল করবেন?


9

ইউএসবি-র মাধ্যমে লজিটেক কে 290 কিবোর্ডের সাথে, এফ-কিগুলি ডিফল্টরূপে অ্যাক্সেসযোগ্য নয় এবং Fnসেগুলি ব্যবহারের আগে আমাকে চাপতে হবে , যা সত্যই ব্যবহারযোগ্য নয়।

Fnএকা কী কোনো ঘটনা গুলি নেই xev

টিপলে F1ছাড়া Fnদুই মূল ঘটনা, keycode 50 (আগুন Shift_L) এবং keycode 133 ( Super_L) এবং প্রদর্শন একটি বার্তা, "টাচপ্যাডের অক্ষম" আমার কুবুন্টু উপর (প্রতি কী জন্য একই বার্তা F1মাধ্যমে F4)

বেশিরভাগ মিডিয়া কী কাজ করে, আমি বরং সরাসরি এফ। কি ব্যবহার করতে পারি। Fnআচরণটি টগল করার কোনও উপায় কি আপনি জানেন ?

আমি F1ছাড়াই যখন টিপব তার ফলাফল এখানে Fn:

KeyPress event, serial 40, synthetic NO, window 0x1a00001,
    root 0x2c6, subw 0x0, time 64638420, (-352,274), root:(1462,621),
    state 0x10, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 40, synthetic NO, window 0x1a00001,
    root 0x2c6, subw 0x0, time 64638420, (-352,274), root:(1462,621),
    state 0x11, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

FocusOut event, serial 40, synthetic NO, window 0x1a00001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 40, synthetic NO, window 0x1a00001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 40, synthetic NO, window 0x0,
    keys:  4294967238 0   0   0   0   0   4   0   0   0   0   0   0   0   0   0   
           32  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

KeyRelease event, serial 40, synthetic NO, window 0x1a00001,
    root 0x2c6, subw 0x0, time 64638436, (-352,274), root:(1462,621),
    state 0x51, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x1a00001,
    root 0x2c6, subw 0x0, time 64638436, (-352,274), root:(1462,621),
    state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

MappingNotify event, serial 40, synthetic NO, window 0x0,
    request MappingPointer, first_keycode 0, count 0

এবং F2(এখনও নেই Fn) এর জন্য:

KeyPress event, serial 40, synthetic NO, window 0x1a00001,
    root 0x2c6, subw 0x0, time 64782724, (-202,438), root:(1491,799),
    state 0x10, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 40, synthetic NO, window 0x1a00001,
    root 0x2c6, subw 0x0, time 64782724, (-202,438), root:(1491,799),
    state 0x18, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

FocusOut event, serial 40, synthetic NO, window 0x1a00001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 40, synthetic NO, window 0x1a00001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 40, synthetic NO, window 0x0,
    keys:  4294967238 0   0   0   0   0   0   0   1   0   0   0   0   0   0   0   
           32  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

KeyRelease event, serial 40, synthetic NO, window 0x1a00001,
    root 0x2c6, subw 0x0, time 64782780, (-202,438), root:(1491,799),
    state 0x58, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x1a00001,
    root 0x2c6, subw 0x0, time 64782780, (-202,438), root:(1491,799),
    state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

F1সঙ্গে Fnপ্রত্যাশিত ফলাফলের দেয়:

KeyPress event, serial 40, synthetic NO, window 0x1a00001,
    root 0x2c6, subw 0x0, time 64820204, (-856,-213), root:(1097,247),
    state 0x10, keycode 67 (keysym 0xffbe, F1), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x1a00001,
    root 0x2c6, subw 0x0, time 64820284, (-856,-213), root:(1097,247),
    state 0x10, keycode 67 (keysym 0xffbe, F1), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

2
সাধারণত <kbd> Fn </kbd> কীবোর্ডের হার্ডওয়্যার স্তরে কাজ করে। আশা রাখি, keycodes , যেমন keysyms বিরোধিতা এর এফ কী এখনো ভিন্ন যখন এটি চাপা হয় না। আপনি কি দয়া করে xevআরও একবার চালনা করতে পারেন এবং দুটি পৃথক এফ-কীগুলির আউটপুট আটকান?
9000

আমি একই সমস্যা :( জুড়ে করেছি এই উত্তরটি (। Askubuntu.com/a/285604/121193 ) উপযোগী হতে পারে, কিন্তু এটা কিছু জন্য চমৎকার ... সহজ হবে।
অ্যাশ

1
দুঃখের বিষয়, সোলার কেবল ওয়্যারলেস ইমিটারের জন্য কাজ করে, তারযুক্ত ছাড়া :(
ব্যবহারকারী 55574

আমি BIOS সেটিংস দেখে শুরু করব। কেউ কেউ এফএন কী অদলবদলের জন্য যেমন এফ-কী-দ্বারা-ডিফল্টটিকে অনুমতি দেয় ..
জোনাস বার্লিন

সত্যিই বাজে যে এফ 1 কী-কোড 50 পুনরায় ব্যবহার করে, তাই 50 টি যা করে তা আপনি কেবল পরিবর্তন করতে পারবেন না:: পি
জোনাস বার্লিন

উত্তর:


1

আমি Fn+Fxএবং Fxযেখানে এক্স এর মাঝে কীকোডগুলি অদলবদল করে একই ফলাফল পেয়েছি 1,2,...12

  1. xmodmap -pkeবর্তমান কীকোড এবং কিসিম্বলগুলির একটি তালিকা পেতে ব্যবহার করুন ।
  2. তারপর চালানো xevএবং প্রেস F1মাধ্যমে F12তার keycode এর নোট রাখা।
  3. তারপরে আপনার ~/.Xmodmapফাইলে অদলবদল করুন।

যেমন আমার সিস্টেমে (1) এর ফলাফল:

keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1
keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2
keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3
keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4
...

keycode 121 = XF86AudioMute NoSymbol XF86AudioMute
keycode 122 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume
keycode 123 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume
keycode 198 = XF86AudioMicMute NoSymbol XF86AudioMicMute
..

তারপরে আমি এটিকে পরিবর্তন করেছিলাম ~/.Xmodmap:

keycode 121 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1
keycode 122 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2
keycode 123 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3
keycode 198 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4
...


keycode 67 = XF86AudioMute NoSymbol XF86AudioMute
keycode 68 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume
keycode 69 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume
keycode 70 = XF86AudioMicMute NoSymbol XF86AudioMicMute
...

তারপরে রান প্রভাবিত করতে xmodmap ~/.Xmodmap


0

xevডেস্কটপ পরিবেশ দ্বারা ক্যাপচার করা ইভেন্টগুলি প্রদর্শন করতে পারে না। কীগুলি পরীক্ষা করার আরও ভাল উপায় হ'ল showkeyকমান্ডটি ব্যবহার করা (লিনাক্স কনসোলে, এক্স 11-এর অভ্যন্তরে নয়)। আমি অনুমান করছি যে ওএস আসলে একটি শিফট + সুপার + কিছু-কী সংমিশ্রণ গ্রহণ করছে।

যদিও আপনি সম্ভবত এফ-কি-এর সংমিশ্রণে পুনর্নির্মাণ করতে পারতেন, তবে এটি সম্ভবত ঝামেলা হতে পারে: আপনাকে শিফট কীটি "মুক্তি" দিতে হবে (কারণ কীবোর্ডটি এটি চাপ দেওয়ার অনুকরণ করে), এবং শিফট + এফ 1 তৈরি করা আরও জটিল হবে , যেহেতু এটির আগে যদি শিফ্ট কীটি ধরে রাখা হত তবে এটি ট্র্যাকিংয়ের প্রয়োজন।

এই সমস্যাটি ল্যাপটপগুলিতে খুব সাধারণ, যার মধ্যে প্রায়শই টোগল মাল্টিমিডিয়া হটকিগুলি বা তার বিআইওএস / ফার্মওয়্যারের কোনও বিকল্প থাকে। তবে যেমন আপনি উল্লেখ করেছেন যে এটি বাহ্যিক কীবোর্ডের একটি নির্দিষ্ট মডেলের বিষয়ে, অনলাইনে সন্ধান করে আমি এই প্রকল্পটি পেয়েছি:

https://github.com/milgner/k290-fnkeyctl

প্রকল্পের বিবরণে বলা হয়েছে যে এটি "লজিটেক কে 290 কীবোর্ডগুলিতে ফাংশন কীগুলি পুনরায় কনফিগার করে", তাই এটি চেষ্টা করে দেখার মতো হতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.