Gnome / unity में setxkbmap के साथ कीबोर्ड लेआउट विकल्पों को स्थायी रूप से सेट करें


28

उबंटू 13.10 1 (और शायद अपस्ट्रीम सूक्ति) ने बहुत कष्टप्रद बग पेश किया : कीबोर्ड लेआउट स्विच शॉर्टकट दबाने से फोकस कुछ सिस्टम विंडो पर चला जाता है, फिर वापस खिड़की पर जहां शॉर्टकट दबाया गया था। कुछ अनुप्रयोगों में फ़ोकस बदलने के लिए कुछ क्रियाएं होती हैं, उदाहरण के लिए ट्विटर (ब्राउज़र में) फ़ोकस खोने पर उत्तर पाठ इनपुट फ़ील्ड को बंद कर देता है, इसलिए ubuntu का मूल कीबोर्ड स्विचर मेरे लिए उपयुक्त नहीं है, जब तक कि तय नहीं हो जाता।

X में अंतर्निहित स्विचिंग तंत्र है, और यह बहुत बेहतर है, इसके अलावा इसमें फोकस स्विचिंग शामिल नहीं है, यह तुरंत स्विच करता है (सूक्ति स्विचर कभी-कभी लैग भी होता है)।

मैं xkbmap विकल्प कैसे सेट कर सकता हूं ताकि रिबूट के बाद सेटिंग्स बनी रहें और Gnome द्वारा रीसेट नहीं किया जाएगा?

मैंने क्या कोशिश की है:

सबसे पहले, बस setxkbmap निष्पादित कर रहा है:

setxkbmap -layout "us,ru"
setxkbmap -option "grp:caps_toggle,grp_led:scroll,compose:ralt"

लेकिन यह केवल काम करता है:

  1. वर्तमान सत्र के लिए
  2. जब तक गनोम इसे अधिलेखित कर देगा (उदाहरण के लिए gconf के org.gnome.desktop.input-sourcesट्रिगर्स रीसेट में कुछ को छूना )।

दूसरा, Xorg कॉन्फिग में xkb विकल्प जोड़ना:

एक अन्य विकल्प यह है कि xorg config में निम्नलिखित जोड़ें:

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "us,ru"
        Option "XkbModel" "pc105"
        Option "XkbVariant" "pc105"
        Option "XkbOptions" "grp:rctrl_toggle,grp_led:scroll"
EndSection

Xorg समझता है कि स्टार्टअप के दौरान:

[    33.791] (**) Option "xkb_rules" "evdev"
[    33.791] (**) Option "xkb_model" "pc105"
[    33.791] (**) Option "xkb_layout" "us,ru"
[    33.791] (**) Option "xkb_variant" "pc105"
[    33.791] (**) Option "xkb_options" "grp:rctrl_toggle,grp_led:scroll"

लेकिन स्विचिंग कॉन्फ़िगरेशन अभी भी बाद में रीसेट करता है, संभावना है कि सूक्ति द्वारा।

तीसरा, gconf

यहाँ छवि विवरण दर्ज करें

मेरे पास है xkb-optionsऔर sourcesसेट है org.gnome.desktop.input-sources, लेकिन Gnome अभी भी एकल अंग्रेजी लेआउट के लिए xkb सेट करता है:

$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc105
layout:     us
options:    grp_led:scroll
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete+ledscroll(group_lock)
symbols:    pc+us+inet(evdev)
geometry:   pc(pc105)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete+ledscroll(group_lock)"    };
    xkb_symbols   { include "pc+us+inet(evdev)" };
    xkb_geometry  { include "pc(pc105)" };
};

चौथा, gconf में एक और विकल्प

यहाँ छवि विवरण दर्ज करें

सेट करना org.gnome.settings-daemon.peripherals.keyboardभी मेरे काम नहीं आता। कुछ नहीं बदलता है।

अद्यतन 1 : हटाने की सिफारिश करने पर चर्चा है/usr/lib/gnome-settings-daemon-3.0/libkeyboard.so । कम से कम यह xkbmap (यानी लॉक स्क्रीन के बाद) के कुछ रीसेट को ठीक करता है।

1 मैं 14.04 का उपयोग करता हूं, लेकिन फ़ोकस खोने की समस्या अभी भी ठीक नहीं हुई है। ( अपरोक्ष सूक्ति में अपुष्ट रिपोर्ट )


क्या आपने सूक्ति में लेआउट को सही ढंग से सेट करने की कोशिश की है और फिर दोनों setxkbmapकमांड को अपने साथ जोड़ रहे हैं ~/.profile? इस तरह, वे हर बार जब आप लॉग इन करते हैं और Gnome में समान सेटिंग्स होते हैं, तो इसे चलाया जाएगा, इसे रीसेट करने पर कुछ भी नहीं बदलना चाहिए।
टेराडॉन

1
@terdon यह स्क्रीन लॉक होने के बाद भी रीसेट करता है। और यह "हमें-केवल, कोई स्विच नहीं" स्थिति में सेट करता है, न कि परिभाषित सेटिंग्स में org.gnome.desktop.input-sources
Kolen

अजीब। क्या आप सुनिश्चित हैं कि आप सूक्ति का उपयोग कर रहे हैं और एकता का नहीं? क्या आपने इसके बजाय सामान्य जीयूआई के माध्यम से सेटिंग्स को बदलने की कोशिश की है dconf-editor?
टेराडॉन

@terdon हाँ, यह एकता है, लेकिन यह सूक्ति के सामान की तरह खो देता है, जैसे सूक्ति-सेटिंग्स-डेमन, जो कीमैप को फिर से सेट करता है।
Kolen

तो, क्या आपने एकता GUI से सही सेटिंग्स सेट करने की कोशिश की है?
टेराडॉन

जवाबों:


19

X में gnome रीसेट कीबोर्ड सेटिंग को रोकने के लिए मैं इस कमांड का उपयोग करता हूं:

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

यह मेरे लिए काम करता है।


4
मैंने Ubuntu 14.04 पर यह कोशिश की और यह कुछ भी नहीं करता है। क्या आपके पास कोई स्पष्टीकरण है: यह कैसे काम करने वाला है?
निकोलाई लेसचोव

2
14.04 में मेरे लिए काम करता है
ndemou

2
16.04 में मेरे लिए काम करता है, बाकी सब कोशिश करने के बाद।
लियोनार्डो कास्त्रो

1
एकमात्र विधि मुझे 17.04 में काम करते हुए मिली।
Cnly

1
ध्यान रखें कि उबंटू ने वास्तव में समय की अवधि के लिए एक एकता-सेटिंग्स-डेमॉन बनाया था, लेकिन अब जब वे फिर से गनोम वापस जा रहे हैं तो यह काम कर सकता है।
ड्रैगन 788

6

मैं आप की तरह इस पर पागल हो रहा है, लेकिन Ubuntu 14.04 (LTS), Xubuntu, xfce 4.12 और xkbd (xfce उपहारों से) के साथ। कीबोर्ड लेआउट को बदलने के लिए Ctrl + Space ने काम किया, लेकिन Alt + Shift ने नहीं किया (केवल-संशोधक कुंजी)।

अंत में चीजों को बनाने में कामयाब रहे-

1. Run ibus-setup (Keyboard Input Methods application).
2. Goto Advanced tab.
3. Check 'Use system keyboard layout'.
4. Click 'Close'

5. Run xfce4-keyboard-settings (Keyboard application).
6. Goto Layout tab.
7. Uncheck 'Use system defaults'
8. Select 'Keyboard model' (typically 'Generic 105-key (Intl) PC' will do)
9. Set 'Change layout option' to your required switching keys combination (typically Alt+Shift will do).
10. Add languages to 'Keyboard layout'.
11. Click 'Close'.
12. Restart the computer

हो गया! कीबोर्ड लेआउट को बदलने के लिए Alt + Shift का उपयोग करें।


1
आप xfce4-keyboard-settingsविशेष रूप से सूक्ति / एकता के साथ मदद मांगने वाले प्रश्न में उपयोग करने की सलाह क्यों देते हैं ?
निकोलाई लेसचोव

2

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

  1. स्क्रीन को लॉक करना बंद करें, शायद इसमें ग्रीटिंग स्क्रीन भी शामिल है जो समान कार्य करता है
  2. विभिन्न बिजली प्रबंधन उपकरणों का उपयोग करें
  3. Im-स्विचिंग के लिए ibus का उपयोग करना बंद करें (शायद FCITX?)
  4. यहाँ वर्णित के रूप में स्क्रीन अनलॉक घटनाओं के लिए एक हुक बनाएँ ।

इस और संबंधित घटनाओं की एक दिलचस्प चर्चा है जो ubuntu-dev मेलिंग सूची पर पाई जा सकती है: https://lists.ubuntu.com/archives/ubuntu-devel/2013-Nvent/037768.html


1

Ubuntu बग ट्रैकर में उपयोगकर्ता wof द्वारा वर्कआउट , Ubuntu 14.10 के लिए gxkb का उपयोग करते हुए :

https://bugs.launchpad.net/gnome-settings-daemon/+bug/1244090/comments/39

इस वर्कअब ubuntu 14.10 के लिए काम किया:

  • सेटिंग्स में-> पाठ प्रविष्टि सभी इनपुट स्रोतों को हटा दें, केवल अंग्रेजी छोड़ दें
  • gxkb (लेआउट स्विचर) स्थापित करें: sudo apt-get install gxkb
  • gnome-tweak-tool के माध्यम से स्टार्टअप एप्लिकेशन में gxkb जोड़ें
  • ~ / .config / gxkb में सेटअप gxkb हॉटकीज़ (डिफ़ॉल्ट alt_shift है, लेकिन 14.10 में यह काम नहीं करता है। ctrl_shift ठीक काम करता है)

gxkb का नया संस्करण ubuntu के लिए एपिंडिलेटर है। ppa के माध्यम से स्थापित किया जा सकता है: zen-root / gxkb- स्थिर


(अभी तक इसकी कोशिश नहीं की गई है)
16

E: पैकेज gxkb को खोजने में असमर्थ
e18r

0

सबसे पहले, बस setxkbmap निष्पादित कर रहा है:

setxkbmap -ऑलआउट "us, ru" setxkbmap -option "grp: caps_toggle, grp_led: स्क्रॉल, रचना: ralt"

लेकिन यह केवल काम करता है:

For current session
Until Gnome will overwrite it (for example touching something in gconf's org.gnome.desktop.input-sources triggers reset).

अच्छी तरह से जहाँ तक Gnome "रीसेटिंग" यह मुझे पता नहीं है। मुझे पता है कि आप हर रिबूट को कैसे प्राप्त कर सकते हैं हालांकि मुझे अपने लॉजिटेक माउस के लिए ठीक उसी प्रकार का काम करना था। इसमें कई बटन हैं जिन्हें मैं एक निश्चित तरीके से रीमेक करना चाहता था और मुझे उस सेट को फिर से शुरू करना था।

तो आप इसके लिए क्या करते हैं, यह एक टेक्स्ट फाइल है। फिर उस पाठ फ़ाइल प्रकार में:

#!/bin/bash

और ठीक नीचे जो आपकी आज्ञा में है। उदाहरण के लिए मेरा माउस इस तरह दिखता है:

#!/bin/bash
xinput set-button-map "Logitech USB-PS/2 Optical Mouse" 1 2 3 4 5 8 9 6 7 10 11 12 13 14 15 16

इसके बाद आप इसे सहेजेंगे कि आप जो भी नाम चाहते हैं और इसे अपने होम डायरेक्टरी जैसे किसी स्थान पर ले जाएं। उसे वहाँ "हमेशा" रहना है।

फिर बस अपने स्टार्टअप एप्लिकेशन को खोलें और फ़ाइल को अपने स्टार्टअप में जोड़ें और फिर आपको इसके बारे में चिंता न करें केवल सत्र के लिए स्थायी होना चाहिए। आपके कंप्यूटर को रिबूट करना ठीक होगा क्योंकि आपकी सेटिंग्स आपके द्वारा जोड़ी गई फ़ाइल के माध्यम से वापस आ जाएगी।

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