लॉगिन पर मेरा ~ / .Xmodmap फ़ाइल लोड क्यों नहीं होगा?


16

मैंने इस उत्तर के~/.Xmodmap अनुसार निम्न फ़ाइल बनाई ।

keysym Delete = Menu
keysym Menu = Delete

clear Lock
keycode 0x42 = Escape

दूसरे शब्दों में, स्वैप Deleteऔर Menu, और Caps Lockएक अतिरिक्त Escape

अगली बार जब मैंने लॉगिन किया, तो उबंटू ने मुझसे पूछा कि क्या मैं ~/.Xmodmapउम्मीद के मुताबिक लोड करना चाहता हूं । मैंने इसे लोड किया, लेकिन कुछ भी नहीं हुआ (या तो या बाद के लॉगिन पर)। यदि मैं मैन्युअल रूप से चलाता हूं xmodmap ~/.Xmodmap, तो यह अपेक्षित रूप से काम करता है।

मुझे पता है कि इसने 10.10 बीटा में जल्दी काम किया, लेकिन यह मेरे नए 10.10 इंस्टॉल पर विफल हो रहा है। मैंने 10.10 से पहले किसी भी चीज़ में कोशिश नहीं की है। कोई विचार?

संपादित करें: मैंने /etc/gdm/Xsessionयह सुनिश्चित करने के लिए कि ~/.Xmodmapकुछ लोड हो रहा है, और सब कुछ जादुई तरीके से काम करना शुरू कर दिया। मैंने कुछ इको को जोड़ने के अलावा कुछ भी नहीं बदला, और यह अभी भी काम कर रहा है कि मैंने अपने परिवर्तनों को वापस कर दिया और फिर से शुरू किया। सबसे अजीब बात मैंने कभी देखी।

मुझे एहसास हुआ कि एक्समॉडमैप का "रीमैप कैप्स लॉक टू एस्केप" भाग हमेशा काम कर रहा था। यह केवल डिलीट / मेनू स्वैप था जो विफल रहा। मैं इस प्रश्न को अभी के लिए खुला छोड़ देता हूँ जब किसी और को भी यही समस्या होती है, क्योंकि मैं वास्तव में नहीं जानता कि समस्या क्यों रुकी है।


मैं खुद इसी समस्या का सामना कर रहा हूं, मुझे पागल कर रहा है। यदि मैं कारण का पता लगाता हूं तो उत्तर देना सुनिश्चित करूंगा।
जॉर्ज इज़राइल Peña

जवाबों:


11

मुझे पता है कि यह मूर्खतापूर्ण है लेकिन एक समाधान के रूप में आप बस ऑटोस्टार्ट कर सकते हैं xmodmap ~/.Xmodmap

इसके अलावा, आप /etc/gdm/Xsessionलाइन के लिए जाँच कर सकते हैं usermodmap="$HOME/.Xmodmap"और अगर यह नहीं है तो फ़ाइल के अंत में इसे संलग्न करें। यदि आप सिस्टम के एकमात्र उपयोगकर्ता हैं तो बस अपने परिवर्तनों को डालें /etc/X11/Xmodmap


2
आप "ऑटोस्टार्ट" कमांड कैसे करते हैं?
मिगेल.martin

आटोस्टार्टिंग देखें । सबसे आसान शायद Settings->Session and Startupउन पंक्तियों के साथ एक प्रविष्टि या कुछ जोड़ना है ।
मतीन उल्हाक

या उदाहरण के लिए, इसे अपने शेल में जोड़ें, इसलिए यदि आप अक्सर शेल खोलते हैं तो यह इसे चलाएगा। पहली बात जब मैं Gnome में प्रवेश करता हूं तो ज्यादातर समय एक खोल खुला रहता है, इसलिए यह एक तरीका है जो काम करता है।
त्रसुक्र

3

पार्टी के लिए देर से, लेकिन इसने मुझे पागल कर दिया; और, मैं जैसा हूं, हठ करना कोई विकल्प नहीं था।

मूल रूप से यह वही है जो मैंने कोशिश की, (मेरे उपयोगकर्ता के रूप में, या यदि आवश्यक हो तो रूट)

  • ~ / .Xmodmap केवल
  • ~ / .xsession, ~ / .xsessionrc
  • ~ / .Gnomerc
  • ~ / .Xprofile
  • ~ / .Xinitrc
  • /etc/X11/Xsession.d/myscript
  • /usr/share/X11/xorg.conf.d/ ( फ़ाइलों को कॉन्फ़िगर करें, इसे स्पर्श न करें )

(वास्तव में, काम xmodmapकरने के लिए कमांड जोड़ना ~/.bashrc, लेकिन लॉगिन के बाद हर बार टर्मिनल शुरू करना होगा)

कुछ साल पहले (?), xkbकुंजी मैपिंग और कॉन्फ़िगरेशन (एक्स के साथ इंटरफेसिंग) से निपटने के लिए चुना गया था, लेकिन एक्स सत्र के प्रारंभ के दौरान अपने काम करने के xmodmapबाद, एक्स से संबंधित संबंधित परिवर्तनों का अनुरोध भी कर सकता xkbहै।

समस्या यह है कि ये xmodmap सेटिंग्स कब होनी चाहिए?
ऐसा लगता है कि उपरोक्त फ़ाइलों को प्रक्रिया में बहुत जल्दी संसाधित किया जाता है, और या तो एक्स xmodmap परिवर्तनों को स्वीकार करने के लिए तैयार नहीं था, या xkb उन्हें अधिलेखित कर देगा।

नोट: मैंने इन फाइलों में कुछ "ट्रैकिंग" जोड़ा है ताकि यह सुनिश्चित हो सके कि वे वास्तव में कुछ समय पर चल रहे थे!

एक समाधान जो काम करने लगता है

मैं .desktopशुरू में एक फ़ाइल जोड़ने के लिए उत्सुक नहीं था (एक सरल एक लाइन स्क्रिप्ट को पर्याप्त होना था), लेकिन वह काम करता है, इसलिए यहां यह है।
समाधान यह आता है कि लिनक्स में विशेष कीबोर्ड कुंजियों को फिर से कैसे बनाया जाए या स्वैप किया जाए? "समाधान 1"

मूल रूप से ~/.config/autostart/my-xmodmap.desktopफ़ाइल बनाएँ , और उसमें डालें:

[Desktop Entry]
Name=MyXmodmap
Exec=/usr/bin/xmodmap /home/me/.Xmodmap
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true

meअपने उपयोगकर्ता नाम के साथ बदलें (ध्यान दें कि मैंने कोशिश करने की जहमत नहीं उठाई ~/या इसके $HOMEस्थान पर समान रूप से अच्छी तरह से काम कर सकता है /home/me, और xmodmap का पूर्ण पथ आवश्यक नहीं है ...), और निष्पादन बिट जोड़ें

chmod +x ~/.config/autostart/my-xmodmap.desktop

Xmodmap कमांड को ~/.Xmodmapइस मामले में एक फ़ाइल में होना चाहिए (या -eविकल्प का उपयोग करें , या किसी अन्य फ़ाइल नाम का चयन करें!)। लॉग आउट करें और वापस अंदर जाएं।

ध्यान दें कि आप "स्टार्टअप एप्लिकेशन" से शुरुआती कार्यक्रम बना सकते हैं।

एक और उपाय xmodmap को भूलना और कॉन्फ़िगर करना सीखना होगा xkb!

संपादित करें (फिर से)

कभी-कभी, शायद लॉगऑन का 25%, xmodmapअभी भी काम नहीं कर रहा है - जबकि कमांड वास्तव में चलाया जाता है (एक ट्रैकर साबित होता है)। इस समय मेरे पास एकमात्र निष्कर्ष यह हो सकता है कि xkbप्रक्रिया लॉगऑन प्रक्रिया में देरी से चलती है, और हो सकता है xmodmapकि चलने के बाद समाप्त हो जाए । एक दौड़ की स्थिति की तरह दिखता है ... इसलिए, आखिरकार, मैंने ऑटोस्टार्ट डेस्कटॉप फ़ाइल execलाइन को बदल दिया

Exec=$HOME/bin/mystart &

(ध्यान दें &) mystartएक नई निर्देशिका में एक स्क्रिप्ट है जिसे binमैंने बनाया है

#!/bin/bash    
sleep 5
/usr/bin/xmodmap /home/me/.Xmodmap &
date >> /tmp/xmodmap-has-run

तथा

chmod u+x ~/bin/mystart

स्क्रिप्ट xmodmap चलाने के लिए 5 सेकंड पहले सोती है, और जब यह चलती है (फाइल में /tmp/xmodmap-has-run) तो ट्रैक करता है ।

उम्मीद है कि यह सब होगा!


मेरे लिए काम कर रहे
xkb पुष्टि का

2

यहाँ, शायद एक बेहतर जवाब है: http://cweiske.de/howto/xmodmap/ar01s06.html

आपके लिए काम करने के लिए आपको इसे थोड़ा मोड़ना पड़ सकता है लेकिन निर्देश सभी हैं।


1
यह निर्देश केडीई के लिए हैं, लेकिन अगर मैं गनोम समतुल्य ( /etc/gdm/Xsession) को देखता हूं , तो जोड़ने के लिए जो लिंक लिंक कहते हैं, वे पहले से ही इसमें हैं।
मैथ्यू

2

शायद आपकी ~/.Xmodmapफ़ाइल में कोई सिंटैक्स त्रुटि है ?

चलाने की कोशिश करें:

$ xmodmap ~/.Xmodmap

यदि कोई त्रुटि हो, तो उसमें आग लगानी चाहिए।


0

मुझे एक ही अजीब समस्या थी, अपने सत्र में प्रवेश करते समय अपने एक्समॉडमैप को शुरू करने की कोशिश करना (ubuntu 13.04)। मैंने अंत में इसे अपने होम फोल्डर में .xinitrc फ़ाइल के साथ काम किया, जहाँ मैंने अपना कमांड डाला, लेकिन इसके लिए पूर्ण पथ के साथ, यह है:

/ usr / bin / xmodmap /home/MYNAME/.Xmodmap

फिर मुझे रिबूट करना पड़ा (न कि केवल फिर से लिखना) ताकि इसे निष्पादित किया जा सके।


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