एक साधारण रीमैप के लिए setxkbmap का उपयोग करना (xmodmap के समान)


13

मैंने xmodmap के साथ कीबोर्ड को रीमैप करने के बाद कुछ समस्याओं का सामना किया है: आवेदन करने के बाद 2-20 मिनट के बाद सेटिंग्स अनियमित रूप से रीसेट हो जाती हैं। इसे गुगली किया, लेकिन कोई मदद नहीं की: कुछ उन्हें रीसेट करता है, लेकिन सभी उल्लेखों पर लागू होता है, जबकि मैं सामान्य रूप से 14.04 Ubuntu से एकता में हूं।

मैंने 'एक्सएक्सएक्स का उपयोग करें, एक्समॉडमैप भूल जाओ' जैसे वाक्यांशों को देखा, लेकिन अभी भी यह नहीं पता है कि ऐसा कैसे करना है। यह या तो वर्गीकृत या बहुत जटिल है, क्योंकि उस पर जानकारी की मात्रा xmodmap रास्ते के लिए की तुलना में काफी छोटी है।

यहाँ मेरे अनुकूलन की सूची है:

xmodmap -e "keycode 84 = Down"
xmodmap -e "keycode 79 = Home"
xmodmap -e "keycode 80 = Up"
xmodmap -e "keycode 83 = Left"
xmodmap -e "keycode 85 = Right"
xmodmap -e "keycode 87 = End"
xmodmap -e "keycode 90 = Insert"
xmodmap -e "keycode 91 = Delete"
xmodmap -e "keycode 89 = Next"
xmodmap -e "keycode 81 = Prior"

जहाँ कीकोड्स numpad पर संबंधित कुंजियाँ हैं, numlock के साथ = off (मूल रूप से, मैं KP_Del को Delete, KP_Home को होम आदि के साथ बदल रहा हूं - पूछें क्यों नहीं)

क्या कोई ऐसा तरीका खोजने में मदद कर सकता है जिससे xkb का उपयोग किया जा सके - कम से कम लाइनों में से एक? और अन्य के लिए कुंजियों के "नाम" कहां से खोजे जा सकते हैं ताकि मैं उदाहरण के लिए बाकी काम कर सकूं?


5
हां। ठीक वैसी ही समस्या थी। यहां देखें: rlog.rgtti.com/2014/05/01/… और askubuntu.com/questions/422650/… । यदि आप यह पता लगाने में सक्षम हैं कि xkbसिस्टम फ़ाइलों को पुनर्लेखन के बिना कैसे उपयोग किया जाए , तो यहां एक उत्तर लिखें ... आप बिलियन ऑफ अपवोट्स द्वारा पुरस्कृत होंगे।
रमनो

वाह - आखिरकार एक एक्सबीएक्स रीमैप गाइड जो चीजों को स्पष्ट करता है ... लेकिन मैं होम, डिलीट एंड अप-डाउन-एरो को फिर से भरने के बारे में एक चीज नहीं देख सकता। यह हमेशा कुछ ग्रीक या स्पेनिश अक्षरों के बारे में है। अब तक मैं दूसरे तरीके से चला गया - अपने Xmodmap सेटिंग्स (यहाँ से नुस्खा # 3 को ओवरराइड करने से सिस्टम को रोकने की कोशिश कर रहा हूँ: programmingiroiro.blogspot.com/2013/03/… )
Den Drobiazko

1
बुरा विचार - उसके बाद कोई लेआउट स्विचिंग उपलब्ध नहीं है (
डेन ड्रोबियाजो

जवाबों:


4

आप इसी तरह की समस्या पर मेरे उत्तर में देखे गए सामान्य विचार का पालन कर सकते हैं ; यदि आप अभी भी लेआउट स्विचिंग चाहते हैं (हालांकि अभी भी काफी टूटा हुआ है ) तो आपको एक नया लेआउट या संस्करण परिभाषित करना चाहिए ।

ध्यान दें कि एक कीपैड को संपादित करने के लिए कॉपी और संशोधित करने का खाका ढूंढना थोड़ा मुश्किल है। मेरे कीबोर्ड में, उदाहरण के लिए, ज्यामिति "pc105" है; इस में परिभाषित किया गया है /usr/share/X11/xkb/symbols/pc। यदि आप इसे देखते हैं, तो इसमें शामिल हैं :

[...]
key <SPCE> {        [        space          ]       };

include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
include "keypad(x11)"

key <BKSP> {        [ BackSpace, BackSpace  ]       };
[...]

कीपैड फ़ाइल में परिभाषित किया गया है /usr/share/X11/xkb/symbols/keypad

[...] 
default  partial hidden keypad_keys
xkb_symbols "x11" {
   include "keypad(operators)"

   key  <KP7> {        [  KP_Home,     KP_7    ]       };
   key  <KP8> {        [  KP_Up,       KP_8    ]       };
[...]

कुंजी प्रतीकों (कीमिस्ट्स) के नाम के लिए, देखने के लिए सबसे अच्छी जगह फ़ाइल में है /usr/include/X11/keysymdef.h; विकास पैकेजों को स्थापित करने के लिए आपको इसकी आवश्यकता हो सकती है (या इसे इंस्टाल करके स्थापित करें x11proto-core-dev):

[...]
/* Cursor control & motion */

#define XK_Home                          0xff50
#define XK_Left                          0xff51  /* Move left, left arrow */
#define XK_Up                            0xff52  /* Move up, up arrow */
[...]

चाबी का नाम वह है जिसे आपने एक बार "XK_" स्ट्रिंग से हटा दिया है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.