मैं Alt और Windows कुंजियों को xmodmap के साथ कैसे स्वैप करूं?


9

मेरे पास एक मैक कीबोर्ड है जहां एक नियमित पीसी कीबोर्ड की तुलना में Alt / Win (यानी ऑप्शन / कमांड) कुंजियां उलटी हैं, और मैं उन्हें स्वैप करना चाहूंगा। मेरे पास अभी तक xmodmap के साथ कोई भाग्य नहीं है। मानक विन्यास इस प्रकार है:

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)

वर्तमान में, बाईं / दाईं ओर की चाबियाँ कीकोड 64 और 108 हैं, जबकि बाईं / दाईं खिड़कियों की चाबियाँ 133 और 134 हैं।

मैं किसी भी मदद की सराहना करता हूं!


मेरे लिए, यह Alt और Win दोनों जोड़ियों को स्वैप करता है setxkbmap -device 8 dvorak -option altwin:swap_alt_win,ctrl:nocaps:। मैं केवल सही ऑल्ट और विन अदला-बदली चाहता हूं। यह बाईं स्वैप को "रद्द" नहीं करता है setxkbmap -device 8 dvorak -option altwin:swap_lalt_lwin,altwin:swap_alt_win,ctrl:nocaps:। के altwin:swap_ralt_rwinअनुसार स्पष्ट रूप से कोई विकल्प नहीं है man xkeyboard-config
पीटर बेसिक

जवाबों:


11

यह मेरा Xmodmaprc है:

! Exchange left Alt and left Win
remove mod1 = Alt_L
remove mod4 = Super_L
add mod1 = Super_L
add mod4 = Alt_L
! Exchange tilde and lesser/greater
keycode  94 = grave asciitilde dead_grave dead_tilde grave asciitilde
keycode  49 = less greater less greater bar brokenbar bar brokenbar
! Steve, your keyboard sucks

आपको xmodmap .Xmodmaprc पर कॉल करने के लिए अपने .xsession या .xinitrc को संशोधित करना होगा


7

मैंने क्रिस्तोफे के उत्तर को मिलाकर उबंटू 13.04 में इसे हासिल किया (जिसने मेरी मदद की, लेकिन संशोधक के लिए काम नहीं किया और मुझे मृत कुंजी होने के लिए कब्र और टिल्ड की आवश्यकता नहीं है), सेटक्सकैम्प के बारे में एक और उत्तर , सेटिंग्स में विभिन्न विकल्पों के साथ खेल रहा है- कीबोर्ड-लेआउट-विकल्प (यहां तक ​​कि स्रोत कोड को देखते हुए ) और कमांड का उपयोग करके वर्तमान कॉन्फ़िगरेशन का निरीक्षण setxkbmap -queryकरना (जो आपको भी चलना चाहिए, अपने विशिष्ट कीबोर्ड मॉडल और लेआउट कोड की जांच करने के लिए क्योंकि वे भिन्न हो सकते हैं)।

मेरे पास एक स्क्रिप्ट है जिसे मैं ऐप्पल कीबोर्ड पर स्विच करने के लिए कहता हूं ( altwin:swap_lalt_lwinAlt और सुपर संशोधक कुंजियों को स्वैप करने के लिए महत्वपूर्ण विकल्प ):

# clear all options
setxkbmap -model "pc105" -layout "hr,us" -option ""  

# set the Apple keyboard
setxkbmap -rules "evdev" -model "pc105" -layout "hr,us" -option "terminate:ctrl_alt_bksp,lv3:rwin_switch,grp:shifts_toggle,caps:ctrl_modifier,altwin:swap_lalt_lwin"

# swap the grave-tilde with less-greater key
#  - variant without dead keys
xmodmap -e "keycode  94 = grave asciitilde"
xmodmap -e "keycode  49 = less greater less greater bar brokenbar bar brokenbar"

और एक और जिसे मैं एक सामान्य कीबोर्ड पर वापस आने पर कॉल करता हूं:

# clear settings
setxkbmap -model "pc105" -layout "hr,us" -option ""

# pc keyobard
setxkbmap -rules "evdev" -model "pc105" -layout "hr,us" -option "terminate:ctrl_alt_bksp,lv3:rwin_switch,grp:shifts_toggle,caps:ctrl_modifier"

ध्यान दें कि मैंने सेटिंग्स जोड़ी हैं

terminate:ctrl_alt_bksp,lv3:rwin_switch,grp:shifts_toggle,caps:ctrl_modifier

ctrl + alt + backspace सूक्ति सत्र समाप्ति को सक्षम करने के लिए, सही जीत कुंजी का उपयोग करके स्तर 3 कुंजी पहुंच, दोनों शिफ्ट कुंजी दबाकर लेआउट शिफ्टिंग और मेरे कैप्स लॉक को अतिरिक्त Ctrl (क्रमशः) में बदल दिया। आप उनमें से कुछ या सभी को बाहर करना चाह सकते हैं।

आप ऑटोकेय का उपयोग कॉल को कुछ कीबोर्ड शॉर्टकट से बांधने के लिए कर सकते हैं , या इसे अपने फोन से कॉल कर सकते हैं .profileया .bashrcयदि आप हर समय ऐप्पल कीबोर्ड का उपयोग करते हैं।


1
ढेर सारा ब्ला ब्ला। यदि आप बाईं ओर की ऊँचाई और सुपर की की अदला-बदली करना चाहते हैं , तो इस कमांड का उपयोग करें: setxkbmap -option altwin:swap_lalt_lwinऔर यदि आप बाएँ और दाएँ दोनों प्रकार की और सुपर कीज़ को स्विच करना चाहते हैं, तो इस कमांड का उपयोग करें setxkbmap -option altwin:swap_alt_win:।
इरिक

अच्छा उत्तर। लेकिन मैं ठीक वैसा ही कैसे करूं, जैसे सही जीत और सही ऊंचाई (AltGr)? मुझे हाल ही में एक गेंडा मिला है, जहां AltGr के बजाय सही जीत स्पेसबार के बगल में है, जैसा कि मुझे इस्तेमाल किया जाता है
citor

6

मैंने पाया कि उबंटू 16.04 पर जो कि एक्सबीएक्स और गनोम का उपयोग करता है, जब आपको ऊपर क्रिस्टोफर डिवाइन के उत्तर के उत्तर की तुलना में कुछ अतिरिक्त चरणों की आवश्यकता होती है, यदि आप ऑल्ट और सुपर की के लिए शॉर्ट कट व्यवहार को बनाए रखना चाहते हैं। यह सबसे आसान उपाय था जो मैंने पाया।

अपने कीकोड नंबर पाने के लिए, कमांड लाइन पर $ xev और उन कुंजियों को टाइप करें जिनके लिए आप नंबर प्राप्त करना चाहते हैं। उस पर अधिक जानकारी के लिए इस पोस्ट को देखें: xev और xmodmap उपयोग

ऐसा करने से मुझे Super_Lपता चलता है : कीकोड 133 Alt_Lमें कीकोड 64 है

तो विंडोज उर्फ ​​कमांड (मैक पर) उर्फ ​​सुपर कुंजी को स्वैप करने के लिए बाएं Alt कुंजी के साथ मैं करता हूं:

remove mod1 = Alt_L
remove mod4 = Super_L
keycode 133 = Alt_L
keycode 64 = Super_L
add mod1 = Alt_L  
add mod4 = Super_L

अंतिम दो पंक्तियाँ Alt1 और Super_L के लिए key1 में mod1 और mod4 को वापस जोड़ देती हैं, जैसा कि उन्हें हटा दिया गया था। यदि ऐसा नहीं किया जाता है, तो मैं सुपर कुंजी (खोज) से जुड़े शॉर्टकट को ढीला करता हूं और यह विंडोज़ के बीच स्विच करने के लिए alt + टैब कॉम्बो को भी तोड़ता है।

आप इन आदेशों को .xmodmap जैसी फ़ाइल में जोड़ सकते हैं और फिर $ xmodmap .xmodmapउन्हें चलाएंगे।

वैकल्पिक रूप से, आप इन क्रमिक रूप से कमांड लाइन पर चला सकते हैं जैसे: $ xmodmap -e <expression here>

यदि आप डिफ़ॉल्ट कुंजी मैपिंग पर लौटना चाहते हैं, तो आप उपरोक्त कोड में संख्याओं को उल्टा कर सकते हैं, जैसे:

remove mod1 = Alt_L
remove mod4 = Super_L
keycode 64 = Alt_L
keycode 133 = Super_L
add mod1 = Alt_L  
add mod4 = Super_L

या उबंटू में मैं बस चलाता हूं: $ setxkbmap


intellij के अंदर एक मुद्दा था जहाँ Alt कुंजी को कोई पहचान नहीं है जब बस mod1 और mod4 के साथ कुंजी स्वैप करना है। लेकिन यह कीकोड काम को खूबसूरती से इंटेलीज में रीसेट करता है। महान नौकरी
जिमुबाओ

2

आप hid_appleकेवल अपने ऐप्पल कीबोर्ड को संशोधित करने के लिए कर्नेल मॉड्यूल विकल्प भी सेट कर सकते हैं लेकिन सामान्य पीसी कीबोर्ड नहीं। Xkbmap या Xmodmapr का उपयोग करने की आवश्यकता नहीं है। बस /etc/modules.d/hid_apple.confसामग्री के साथ फ़ाइल बनाएँ

options hid_apple iso_layout=0 fnmode=2 swap_opt_cmd=1

fnmode=2F1...F12प्रेस करने के लिए आवश्यकता के बिना फ़ंक्शन कुंजियों को मैप करता है Fn। यदि आप मीडिया कुंजियों को पसंद करते हैं तो इसे स्वीकार करें। अधिक के लिए आर्क विकी देखें ।

स्थायी रूप से उबंटू पर :

echo options hid_apple iso_layout=0 fnmode=2 swap_opt_cmd=1 | sudo tee -a /etc/modprobe.d/hid_apple.conf
sudo update-initramfs -u -k all

0

मैं वायलैंड में काम नहीं करने के कारण भविष्य में xmodmap का उपयोग करने के खिलाफ सिफारिश करूंगा, लेकिन यह कि setxkbmap या xkbcomp आगे जाने के लिए सबसे अच्छा तरीका होगा और मेरी परियोजना Kinto इसका उपयोग करती है।

किंटो आपको इच्छित कुंजियों को स्वैप कर देगा, लेकिन यह भी सुन लेगा कि आप किस ऐप का उपयोग कर रहे हैं, ताकि आप टर्मिनल ऐप के लिए सही कीमैप रख सकें, ताकि यह मैक पर होने के साथ आपके अनुभव से मेल खाता हो।

यहां प्रासंगिक लिंक दिए गए हैं, लेकिन मैं इसमें दिल भी शामिल करूंगा कि किंटो क्या करता है - माइनस कस्टम कीमैप और वैकल्पिक कीमैप की क्षमता, इसलिए आपको पता है कि किंटो वास्तव में क्या करता है।

https://github.com/rbreaves/kinto

https://medium.com/@benreaves/kinto-a-mac-inspired-keyboard-mapping-for-linux-58f731817c0

https://gist.github.com/rbreaves/f4cf8a991eaeea893999964f5e83eebb

सामग्री देते हैं

# permanent apple keyboard keyswap
echo "options hid_apple swap_opt_cmd=1" | sudo tee -a /etc/modprobe.d/hid_apple.conf
update-initramfs -u -k all

# Temporary & instant apple keyboard keyswap
echo '1' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd

# Windows and Mac keyboards - GUI (Physical Alt is Ctrl, Physical Super is Alt, Physical Ctrl is Super)
setxkbmap -option;setxkbmap -option altwin:ctrl_alt_win

# Windows and Mac keyboards - Terminal Apps (Physical Alt is Super, Physical Super is Alt, Physical Ctrl is Ctrl)
setxkbmap -option;setxkbmap -option altwin:swap_alt_win

#
# If you want a systemd service and bash script to help toggle between
# GUI and Terminal applications then look at project Kinto.
# https://github.com/rbreaves/kinto
#
# Note: The above may not work for Chromebooks running Linux, please look
# at project Kinto for that.
#
# If anyone would like to contribute to the project then please do!
#
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.