विभिन्न इनपुट विधियों को समझना और स्थापित करना


21

मैं ट्रिंकल GNU / Linux 7.0 LTS का उपयोग GNOME 3 फ्लैशबैक पर्यावरण के साथ करता हूं ।

मैंने तीन अलग-अलग इनपुट विधियों के बारे में सुना। ibus, ximऔर uim। और ऐसा लगता ibusहै कि यह मेरे सिस्टम पर पहले से इंस्टॉल है।

$ cat trisquel_7.0_i686.iso.manifest | grep ibus
gir1.2-ibus-1.0 1.5.5-1ubuntu3
ibus 1.5.5-1ubuntu3
ibus-gtk:i386 1.5.5-1ubuntu3
ibus-m17n 1.3.4-3ubuntu1
ibus-table 1.5.0.is.1.5.0.20130419-2
libibus-1.0-5:i386 1.5.5-1ubuntu3
libusb-0.1-4:i386 2:0.1.12-23.3ubuntu1
libusb-1.0-0:i386 2:1.0.17-1ubuntu2
libusbmuxd2 1.0.8-2ubuntu1
libustr-1.0-1:i386 1.0.4-3ubuntu2

जबकि सामना करना पड़ रहा इस समस्या मैं स्थापित करने के बारे में पता चला uimऔर साथ की स्थापना GTK_IM_MODULE="uim"पर ~/.profile। हाल ही में मैंने रेखा को हटाया uimऔर हटा दिया । लेकिन इस बग को दूर करने के लिए , मैं अब इससे छुटकारा पाने की योजना बना रहा हूं ।GTK_IM_MODULE="uim"~/.profileibus

किसी भी अतिरिक्त इनपुट-विधि को स्थापित किए बिना, (Trisquel के ताज़ा-स्थापित कहें), echo $GTK_IM_MODULEआउटपुट करता है xim, इसलिए मैं भ्रमित हूँ क्योंकि डिफ़ॉल्ट इनपुट-विधि पर विचार करना है ibus, फिर क्यों $GTK_IM_MODULEकह रहा है xim?

क्या मैं भी कर सकता हूँ apt-get remove ibus? या मुझे uimपहले स्थापित करना चाहिए और फिर निकालना चाहिए ibus? इसके अलावा, मैं जानना चाहता हूं कि वर्तमान में कौन सा इनपुट तरीका काम कर रहा है ibusया xim? और इनपुट विधि सेट करने का सही तरीका क्या है (यानी यह GTK_IM_MODULE="uim"है ~/.profile)?

इसके अलावा, मुझे एक gsettings योजना मिली:

$ gsettings get org.gnome.desktop.interface gtk-im-module
'gtk-im-context-simple'

संक्षेप में / मोटे तौर पर मुझे अलग-अलग इनपुट विधि को स्थापित / हटाने और स्थापित करने में समझने के लिए मदद चाहिए:

  • मुझे कैसे पता चलेगा कि वर्तमान में कौन सी इनपुट-विधि सक्रिय है?
  • मैं अलग-अलग इनपुट-विधि कैसे स्थापित और सेट अप कर सकता हूं? (क्या मुझे दूसरा हटाना चाहिए?)

जवाबों:


45

पूरे X11 इनपुट स्टैक एक गड़बड़ है। सबसे पहले, आपको किसी विशेष इनपुट मेथड फ्रेमवर्क की जरूरत नहीं है, यदि आप अपने XKB कीबोर्ड लेआउट द्वारा परिभाषित लैटिन अक्षरों या मल्टी-कैरेक्टर कम्पोज़ सीक्वेंस को टाइप कर रहे हैं। सख्ती से बोलना, किसी भी बहु-कुंजी अनुक्रम, जैसे कि डेड-की, को बहुत ही सरल इनपुट विधि की आवश्यकता होती है। लेकिन वे libx11 / XKB द्वारा प्रदान किए जाते हैं और बिना किसी अतिरिक्त IM फ्रेमवर्क के काम करते हैं। तो यह ibus, uim, fcitx या जो भी इनपुट विधि आपके पास है अगर आपको चीनी या जापानी जैसी भाषाओं को लिखने की आवश्यकता नहीं है, तो सभी की स्थापना रद्द करना पूरी तरह से ठीक है।

जैसा कि आपने पहले ही कहा, ग्नोम ने आईबस को डिफ़ॉल्ट इनपुट विधि बनाया, एक निर्णय जो हर कोई खुश नहीं था। ऐसे कई लोग हैं जो कई कारणों से ibus पर fcitx (जो कि ज्यादातर KDE वितरण के लिए डिफ़ॉल्ट लगते हैं) पसंद करते हैं: यह उचित भाषा समर्थन (ज्यादातर जापानी बनाम सरलीकृत बनाम पारंपरिक चीनी) या प्रदर्शन के मुद्दे हैं। चूँकि मैं किसी भी पूर्वी भाषा को नहीं बोलता जिसके लिए एक विशेष IM फ्रेमवर्क की आवश्यकता है, मैं वास्तव में उस बहस में कुछ नहीं जोड़ सकता। लेकिन अगर आप fcitx बनाम ibus के बारे में अधिक जानकारी में रुचि रखते हैं, तो आप इसे थोड़ा दिनांकित (2012) पढ़ना चाह सकते हैं, लेकिन संभवतः अभी भी सटीक LWN लेख

हालाँकि, यह तथ्य कि ibus Gnome के लिए डिफ़ॉल्ट IM है, यह अनिवार्य नहीं बनाता है। आप किसी भी अन्य इनपुट विधि का उपयोग कर सकते हैं जिसे आप पसंद करते हैं या बिल्कुल भी नहीं। IM कॉन्फ़िगरेशन पर्यावरण चर के माध्यम से किया जाता है। लेकिन सिवाय इसके कि जब आप पूरी तरह से जीटीके + एप्लिकेशन (जिसका मुझे संदेह है) का उपयोग कर रहे हैं, तो आपको बस से अधिक सेट करना चाहिए GTK_IM_MODULE। इनपुट विधि सेट करने का उचित तरीका है:

export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export XMODIFIERS="@im=fcitx"

fcitx के मामले में या

export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="ibus"
export XMODIFIERS="@im=ibus"

ibus के मामले में। uim उसी तरह से काम करता है। यदि आप किसी इनपुट विधि को स्पष्ट रूप से अक्षम करना चाहते हैं, तो इन सेटिंग्स का उपयोग करें:

export GTK_IM_MODULE="gtk-im-context-simple"
export QT_IM_MODULE="simple"

एक खाली स्ट्रिंग भी काम करती है।

आप इन चरों को या तो सिस्टम-वाइड /etc/profile(या /etc/profile.dक्रमशः, अपने स्थानीय के अंदर या अंदर एक समर्पित फ़ाइल ) सेट कर सकते हैं ~/.xprofile। इसे सेट करना ~/.bashrcया ~/.profileयह सुनिश्चित नहीं करेगा कि जीडीएम, एसडीडीएम, केडीएम या लाइटडैम जैसे ग्राफ़िकल लॉगिन प्रबंधक का उपयोग करके आपके सिस्टम में लॉग इन करते समय लाइनों को निष्पादित किया जाएगा। यदि आप XDM, स्लिम या का उपयोग करके अपना X सत्र शुरू कर रहे हैं startx, तो आपको उन पंक्तियों को अंदर रखना होगा ~/.xinitrc

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

gsettings set org.gnome.settings-daemon.plugins.keyboard active false

या पूरी तरह से ibus की स्थापना रद्द करें।

अब XIM का क्या? XIM एक बहुत ही अप्रचलित इनपुट विधि प्रोटोकॉल है जो केवल ibus और fcitx दोनों ही विरासत समर्थन कारणों से लागू होता है। कोई वास्तविक कारण नहीं है कि आप उन दोनों में से किसी पर भी आजकल XIM का उपयोग क्यों करना चाहेंगे। केवल एक ही कारण जिसे आप सेट करना चाहते हैं GTK_IM_MODULE="xim"वह है GTK की हार्डकोड की गई ComposeKey सेटिंग को ओवरराइड करना

आपके अन्य प्रश्न का उत्तर देने के लिए: मुझे नहीं लगता है कि वास्तव में यह पता लगाने का एक तरीका है कि पर्यावरण चर को देखने या यह जानने के लिए कि कौन सा आईएम आपके सिस्टम पर स्थापित है, को छोड़कर किस समय इनपुट विधि सक्रिय है। यदि GTK_IM_MODULEसेट नहीं किया गया है, तो GTK कॉन्फ़िगरेशन के आधार पर एक अंतर्निहित IM का चयन करता है /etc/gtk-2.0/gtk.immodules। जीटीके 3.0 दिखता है /usr/lib/gtk-3.0/3.0.0/immodules.cacheजिसके द्वारा उत्पन्न होता है gtk-query-immodules-3.0

जिस कारण GTK_IM_MODULEसे सेट किया गया है ximवह शायद कहीं आवारा चर परिभाषा में है /etc/profile, /etc/profile.d/*या आपके स्थानीय या वैश्विक शेल आरसी फ़ाइलों में से किसी अन्य में है। यदि आप ऐसा करने की आवश्यकता महसूस करते हैं, तो इस वैरिएबल को अप्राप्त या ओवरराइड करने के लिए स्वतंत्र महसूस करें।

हालाँकि, इस गनोम बग रिपोर्ट टिप्पणी के अनुसार, मुझे लगता है कि डीबीस-सक्रिय अनुप्रयोगों के लिए gsettingsनिर्धारित मूल्य को ओवरराइड करने के माध्यम से कॉन्फ़िगर किया गया मान है GTK_IM_MODULE। तो कम से कम आपके Gnome अनुप्रयोगों का उपयोग संभवत: gtk-im-context-simpleउस समय हो रहा है, जिसका प्रभावी रूप से मानक व्यवहार (यानी कोई ibus या कोई अन्य समर्पित IM) नहीं है।


महान व्याख्या और पृष्ठभूमि। अब अगर केवल gsettingsजब भी मैं कुछ भी xD करने की कोशिश मुझ पर SEGFAULT नहीं था (यहां तक कि --version segfaults !!)
sqweek

इसलिए मेरे पास मेरे उबुन्टु 18.04 पर ibus और xim है। अगर मैं CJK भाषाओं में लिखने का कोई इरादा नहीं है, तो क्या मैं उन दोनों को सुरक्षित रूप से हटा सकता हूं?
सनकैचर

हां, लेकिन मैं XIM को अनइंस्टॉल नहीं करूंगा जब तक जरूरत न हो। यह बहुत दिनांकित है, लेकिन कभी-कभी अन्य कार्यक्षमता के लिए आधार के रूप में उपयोग किया जाता है। इसलिए जब तक आपको वास्तव में कुछ केबी की जरूरत नहीं होगी, मैं इसे अनइंस्टॉल नहीं करूंगा।
जेनेक बेवेन्डोर्फ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.