2012-07-10 23 views
9

के लिए सुपर/विंडोज/मॉड 4 कुंजी बाइंडिंग कैसे सेट करें मैं कुंजी ("विंडोज़" कुंजी) को ग्रहण (3.7.2) में कुछ महत्वपूर्ण बाइंडिंग सेट करना चाहता हूं, लेकिन ऐसा लगता है कि यह नहीं चुन रहा है जब मैं इसे दबाता हूं तो उस संशोधक कुंजी को ऊपर रखें। क्यूं कर? मैं क्या कर सकता हूं ताकि यह पता लगा सके?ग्रहण

उत्तर

1

ग्रहण विंडोज कुंजी को हुक नहीं करता है। केवल एक चीज जो आप कर सकते हैं, विंडोज कुंजी को पुन: स्थापित करने के लिए एक उपकरण का उपयोग करना है, उदाहरण के लिए, CTRL + ALT + SHIFT (यदि आप इसका उपयोग नहीं करते हैं)। AutoHotkey जैसे टूल नौकरी कर सकते हैं।

फिर, जब भी आप खिड़कियां कुंजी दबाते हैं, यह के रूप में यदि आप दबाया CTRL + एएलटी + शिफ्ट, जिसे फिर आप अपने वांछित हॉटकी बाध्य करने के लिए उपयोग कर सकते हैं होगा।

1

आप "लिनक्स" अपने प्रश्न में टैग है, तो मैं तुम्हें लिनक्स और एक्स का उपयोग कर रहे मान लेंगे ...

तो, ग्रहण के साथ सुपर उपयोग करने के लिए, सबसे पहले आपको खोज के लिए है कि क्या आप है है एक सुपर, और यदि नहीं, तो एक बनाओ। Xmodmap के विषय पर आपको यह संभवतः अधिक आवश्यकता है।

ऐसा करने वाली पहली बात यह है कि क्या आपके पास पहले से ही एक सुपर संशोधक कुंजी है या नहीं। वर्तमान में आपके संशोधक क्या हैं यह देखने के लिए "xmodmap -pm" चलाएं। यहां एक सामान्य उत्पादन है:

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

shift  Shift_L (0x32), Shift_R (0x3e) 
lock  Caps_Lock (0x42) 
control  Control_L (0x25), Control_R (0x69) 
mod1  Alt_L (0x40), Alt_R (0x6c), 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) 

ऊपर उत्पादन में, चाबियों का एक गुच्छा पहले से ही सुपर, साथ (हेक्स) पर मैप किए जाते keycodes 0x85, 0x86, 0xce, और 0xcf। यह देखने के लिए कि क्या आपके कीबोर्ड पर कुछ भी उन चाबियों में से एक होता है (जो हमेशा मामला नहीं है), टर्मिनल में "xev" चलाएं और अपने माउस पॉइंटर को "xev" की ज्यादातर सफेद इनपुट विंडो में ले जाएं, और कोशिश करें अलग कुंजी विशिष्ट आउटपुट कुंजी के लिए इस तरह दिखता है (उदाहरणों को देखने के लिए नियंत्रण और शिफ्ट का प्रयास करें) - कुंजीकोड और कीबाइम नाम के साथ तीसरी पंक्ति पर विशेष ध्यान दें, यहां 64 और मेटा_एल।

यह देखने के लिए कि "वर्तमान" विंडोज़ कुंजी भी है, यह देखने के लिए कि वर्तमान में कौन सा कीकोड और मैपिंग है।

KeyPress event, serial 42, synthetic NO, window 0xe600003, 
    root 0x6b6, subw 0x0, time 2232472454, (-1,167), root:(871,683), 
    state 0x0, keycode 64 (keysym 0xffe7, Meta_L), same_screen YES, 
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False 

"कीकोड" भाग का पता लगाएं और 16 के आधार के लिए यह गुप्त आप Supers में से एक मारा गया है, अपने परिवर्तित कोड में से एक के अनुरूप होगा (उदाहरण में ऊपर, चार) हेक्स keycodes, और ऊपर दिखाए गए मेटा_एल के बजाय Super_L या Super_R दिखाएं।

आप सुपर को मैप किया किसी भी कुंजी है, तो नहीं है, या यह पता चला है कि उनमें से कोई भी अपने कीबोर्ड पर मौजूद हैं, तो xev का उपयोग कुंजी आप सुपर के लिए उपयोग करने के लिएचाहते हैं के लिए कीकोड खोजने के लिए (CapsLock हो सकता है कुछ लोगों के लिए एक अच्छा विकल्प बनें), फिर इसे सेट करने के लिए अपने डेस्कटॉप के यूआई में xmodmap या कुछ अन्य टूल का उपयोग करें। बाद के इस उत्तर के दायरे से बाहर है, लेकिन xmodmap के साथ, आप बस इसे इस के साथ अपने घर निर्देशिका में .Xmodmap नाम की एक फ़ाइल बना सकता है:

! note: replace the 0xff below with your *actual* Super_L key's keycode. 
! note: whether to use mod3 or mod4 depends on your environment. 
keycode 0xff = Super_L 
clear mod4 
add mod4 = Super_L 

"xmodmap ~/.Xmodmap के साथ परिणाम लागू करें "। कई एक्स स्टार्टअप स्वचालित रूप से आपके लिए इन्हें लागू करेंगे। यदि आप उबंटू एकता का उपयोग कर रहे हैं, तो डैश में स्टार्टअप एप्लिकेशन देखें और उसी आदेश के लिए एक जोड़ें। मुझे यकीन नहीं है कि संदर्भ में काम करता है, तो आप $ HOME कोशिश कर सकते हैं या बस अपनी होम निर्देशिका का उपयोग कर सकते हैं। यह ~/.config/autostart/xmodmap में एक फ़ाइल का उत्पादन समाप्त होता है।इस तरह डेस्कटॉप (erlkonig = मुझे, बजाय में अपने घर डाल):

$ cat ./.config/autostart/xmodmap.desktop 
[Desktop Entry] 
Type=Application 
Exec=/usr/bin/xmodmap /home/erlkonig/.Xmodmap 
Hidden=false 
NoDisplay=false 
X-GNOME-Autostart-enabled=true 
Name[en_US]=Xmodmap Keymap Settings 
Name=Xmodmap Keymap Settings 
Comment[en_US]=Set Keyboard Bindings 
Comment=Set Keyboard Bindings 

आप के साथ "xmodmap प्रतिमाह" या "xev" परिणामों की पुष्टि कर सकते हैं। यहां मेरे पर्यावरण के लिए एक अधिक जटिल सेटअप से पूर्व के लिए आउटपुट है (जो शायद आप जो चाहते हैं उससे मेल नहीं खाएंगे)।

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

shift  Shift_L (0x32), Shift_R (0x3e) 
lock  Caps_Lock (0x7f) 
control  Control_L (0x25) 
mod1  Meta_L (0x40), Meta_L (0xcd) 
mod2  Alt_L (0x6c), Alt_L (0xcc) 
mod3  Super_R (0x69), Super_L (0x85), Super_R (0x86), Super_L (0xce) 
mod4  Hyper_L (0x42), Hyper_L (0xcf) 
mod5  Num_Lock (0x4d) 

हाइपर कैप्सलॉक को प्रतिस्थापित करता है (जिसे मैंने कहीं और स्थानांतरित किया है); मैं खिड़की प्रबंधक कार्यों के लिए इसका उपयोग करता हूं, जैसे हाइपर-एफ को "फ्रंट" विंडो, हाइपर-आर का आकार बदलने के लिए,

xmodmap के साथ आप क्या कर सकते हैं इसके बारे में एक और यादृच्छिक (आईएसएच) उदाहरण के लिए, यहां एक कीमैप है जो मानचित्र जो भी कीकोड 78 मोड_स्विच के लिए है, और फिर आपको इसे ', ",', और ~ के साथ गठबंधन करने की इजाजत देता है जो आपके अगले स्वर को उनके समान समानतापूर्ण बनाता है। आप मोड_स्विच का उपयोग æ प्राप्त करने के लिए भी कर सकते हैं, घ ð प्राप्त करने के लिए,? पाने के लिए ¿, और कुछ अन्य।

! note: 78 is probably not the keycode most would want here; pick your own :-) 
keycode 78 = Mode_switch 
!      no mods shift   mode-switch shift+mode-switch 
keysym a   =   a A      ae AE 
keysym d   =   d D      thorn THORN 
keysym n   =   n N     ntilde Ntilde 
keysym o   =   o O     oslash Oslash 
keysym t   =   t T      eth ETH 
keysym s   =   s S     ssharp 
keysym 0   =   0 parenright   degree  
keysym 6   =   6 asciicircum dead_circumflex 
keysym 8   =   8 asterisk   multiply  
keysym apostrophe = apostrophe quotedbl   dead_acute dead_diaeresis 
keysym grave  =  grave asciitilde  dead_grave 
keysym comma  =  comma less   dead_cedilla guillemotleft 
keysym period  =  period greater   NoSymbol guillemotright 
keysym slash  =  slash question   NoSymbol questiondown 
keysym 1   =   1 exclam    NoSymbol exclamdown 
keysym equal  =  equal plus    notequal plusminus 

अधिक जानकारी के लिए "आदमी xmodmap" का उपयोग करें।

+1

जहाँ तक मैं कह सकता हूं, ग्रहण mod4 (या mod3) को प्रतीत नहीं होता है। इसलिए मॉड 4 को सुपर असाइन करना वास्तव में मदद नहीं करता है। – studgeek

+0

उह। बदकिस्मती से। यदि यह वास्तव में लिनक्स + एक्स 11 पर सच है, और यह ग्रहण द्वारा कुछ और नाम प्राप्त करने के लिए समाप्त नहीं होता है, लेकिन बस वहां नहीं है ... अच्छा, डर्न। ओह ठीक है, यह आधा जवाब है, एक्लिप्स टीम को मानक X11 संशोधक का समर्थन करने के लिए बाकी होने के साथ (यदि आप सही हैं और यह अभी तक नहीं है)। –

0

मुझे लगता है अपने मूल लक्ष्य में कुंजी बाइंडिंग बनाने के लिए है आपके मौजूदा नियंत्रण और alt बाइंडिंग के अलावा। तो, उदाहरण के लिए, विंडोज-एल नियंत्रण-एल, Alt-L या Shift-L से कुछ अलग है।

दुर्भाग्य से, ऐसा लगता है कि लिनक्स पर ग्रहण शिफ्ट, नियंत्रण और alt (जो xmodmap में mod1 है) से परे संशोधक का समर्थन नहीं करता है। तो आपके लिए विंडोज कुंजी को मैप करने के लिए कोई अतिरिक्त संशोधक नहीं है। तार्किक विकल्प mod4 होगा, लेकिन ऐसा लगता है कि SWT गैर-विंडोज प्लेटफॉर्म पर mod4 का समर्थन नहीं करता है।

https://bugs.eclipse.org/bugs/show_bug.cgi?id=55236 पर गैर-विंडोज़ मोड 4 समर्थन जोड़ने के लिए एक बग है। दुर्भाग्यवश यह कुछ समय के लिए "ठीक नहीं होगा" चिह्नित किया गया है। मैं वहां जा रहा हूं और इसके लिए मतदान कर रहा हूं और यदि आपके पास है तो इसे फिर से खोलने के लिए अतिरिक्त उपयोगकर्ता मामलों/कारणों को साझा करना।