कस्टम कीबोर्ड लेआउट स्टैंडबाय या रिबूट के बाद डिफ़ॉल्ट पर रीसेट है


11

मैंने अपने लिए एक कीबोर्ड लेआउट डिज़ाइन किया है, जब मैं चलाता हूं तो xmodmapयह ठीक काम करता है, लेकिन स्टैंडबाय या रिबूट के बाद, लेआउट वापस क्ववर्टी में बदल जाता है।

मैं इसे डिफ़ॉल्ट के रूप में कैसे सेट कर सकता हूं? मेरा OS XFCE4 के साथ डेबियन व्हीज़ी है।


मैं एक ही समस्या है, xfce4 के साथ डेबियन जेसी।
जॉन लॉरेंस एस्पेन

जवाबों:


6

रैम के लिए निलंबित करने के बाद इस आर्कलिनक्स फोरम थ्रेड एक्समॉडमैप रीसेट को देखें । थ्रेड में कई उदाहरण हैं जो आपको आरंभ करेंगे और आपको दिखाएंगे कि हुक कैसे सेट करें जो पावर मैनेजमेंट सबसिस्टम के माध्यम से ट्रिगर हो जाएगा जो आपके xmodmapसेटअप को सस्पेंड से बाहर आने पर हर बार चलाएगा ।

निम्न स्क्रिप्ट की तरह कुछ, सहेजा गया /etc/pm/sleep.d/11suspend( अपने वास्तविक उपयोगकर्ता नाम meमें बदलें /bin/su - me):

#!/bin/bash
case $1 in
    hibernate)
        echo "Hey guy, we are going to suspend to disk!"
        ;;
    suspend)
        echo "Oh, this time we're doing a suspend to RAM. Cool!"
        ;;
    thaw|resume)
        echo "oh, suspend is over, we are in $1 phase..."
            # Set Display #
    DISPLAY=:0.0 ; export DISPLAY
    /bin/su - me -c "sleep 3; /usr/bin/xmodmap /home/me/.xmodmaprc" &
        ;;
    *)  echo "somebody is calling me totally wrong."
        ;;
esac

3

प्रेमलीला नोट: आपको अप्रचलित xmodmapकमांड का उपयोग नहीं करना चाहिए , लेकिन XKB ( xkbcomp)।

फिर आप अपनी ~/.xsessionस्क्रिप्ट से सेटिंग बदल सकते हैं । व्यक्तिगत रूप से मेरे पास है:

setxkbmap -types local -print | \
  sed -e '/xkb_symbols/s/"[[:space:]]/+local&/' > $HOME/.xkb/keymap/custom
xkbcomp -w0 -I$HOME/.xkb -R$HOME/.xkb keymap/custom $DISPLAY

मेरी ~/.xsessionफ़ाइल में, और मेरी XKB सेटिंग्स को ~/.xkb/symbols/localऔर ~/.xkb/types/localफ़ाइलों में डाल दिया गया है। यह प्रत्येक X लॉगिन के बाद सेटिंग्स को बदल देगा।

दुर्भाग्य से ये सेटिंग्स निलंबित / फिर से शुरू होने के बाद खो जाती हैं । वर्कअराउंड है: उन्हें सहेजें और /etc/pm/sleep.dनिर्देशिका में स्क्रिप्ट के साथ pm-utils के माध्यम से उन्हें पुनर्स्थापित करें ; आप को आवश्यकता हो सकती

xhost +si:localuser:root

आपकी ~/.xsessionस्क्रिप्ट में रूट के बाद से आपकी xauth जानकारी नहीं है। मैंने एक उदाहरण दिया है (XKB के लिए): https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=633849#92


~/.xsessionयहाँ फिर से शुरू करने के बाद नहीं बुलाया जा रहा है। तुम जानते हो क्यों?
बोरालियोबो

@brauliobo ~/.xsessionको फिर से शुरू करने के बाद कभी भी निष्पादित नहीं किया जाता है, बस जब X सत्र शुरू होता है। आपको xhost +si:localuser:rootइस समय केवल करने की आवश्यकता है ।
vinc17

इस सूचना के लिए अत्यधिक धन्यवाद। मुझे नहीं पता था कि xmodmapकस्टम कीमैप को लोड करने की तुलना में एक नया तरीका था । यह बहुत बेहतर काम करता है। मेरे मामले में (XUbuntu 18.04) यह भी निलंबित / फिर से शुरू करने के लिए जीवित लगता है।
टोबिया
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.