मैं अपनी लॉगिन स्क्रीन से पहले शुरू होने वाली स्क्रिप्ट को कैसे चला सकता हूं?


17

मैं अपनी टच स्क्रीन को कैलिब्रेट कर रहा था, और देखा कि चारों ओर सबसे अच्छा उपकरण xinput_calibrator था। इसलिए मैंने इसका इस्तेमाल किया। इसके दो विकल्प हैं (जिनमें से एक काम नहीं किया था), इसलिए मैं दूसरे के लिए यहां हूं। यह कहता है कि मुझे इस कमांड को "अपने X सत्र से शुरू होने वाली स्क्रिप्ट में निष्पादित करना चाहिए":

xinput set-int-prop "3M 3M USB Touchscreen - EX II" "Evdev Axis Calibration" 32 14410 2146 14574 2115

तो मैंने कोशिश की ~/.xinitrc, ~/.xsessionऔर ~/.xsessionrc, जिनमें से सभी मौजूद नहीं थे। इसलिए मैंने उन्हें बनाया और सटीक सामग्री यह कमांड थी। पहली दो फ़ाइलों ने मेरे लॉगिन को विफल कर दिया (मैं लॉगिन करने के बाद, मैं लॉगिन स्क्रीन पर वापस आता हूं)।

अंतिम फ़ाइल के साथ, अंशांकन कार्यात्मक था, लेकिन केवल लॉग इन करने के बाद ...

लॉगिन डायलॉग दिखाने से पहले मुझे उस कमांड को चलाने की आवश्यकता है । मैंने /etc/X11/xinit/xinitrcबिना किसी परिणाम के (कुछ भी नहीं बदला) के साथ इस कमांड को जोड़ने के बारे में सोचा । इसके अलावा, मैंने इसे /etc/X11/Xsession.d/40x11-common_xsessionrc(कुछ फाइलों का निरीक्षण करने के बाद) के अंत में जोड़ने की कोशिश की , लेकिन परिणाम बिल्कुल वैसा ही था जैसा इसे जोड़ना था ~/.xsessionrc

लॉगिन स्क्रीन शो से पहले मैं इसे कैसे चला सकता हूं (यह विंडो मैनेजर के शुरू होने से पहले या एक्स सेशन शुरू होने से पहले है)?

(मैं कुबंटु को डिफ़ॉल्ट विंडो मैनेजर के साथ चला रहा हूं, अगर यह मायने रखता है)

अद्यतन के रूप में मैं कुबंटू का उपयोग कर रहा हूं, मेरा प्रदर्शन प्रबंधक केडीएम है। जैसा कि स्वीकृत उत्तर बताता है, मैंने फ़ाइल को संपादित किया /etc/kde4/kdm/Xsetup, और जैसा कि यहां बताया गया है मैंने कमांड को कमांड से पहले जोड़ा है जो कि डिफ़ॉल्ट रूप से है। और यह एक आकर्षण की तरह काम करता है :)


4
आप किस लॉगिन मैनेजर का उपयोग कर रहे हैं? Gdm3 के लिए आप संभवतः उपयोग कर सकते हैं /etc/gdm3/Init/displayया /etc/gdm3/Init/Default- manpages.debian.net/cgi-bin/…
Ulrich Dangel

अरे, अच्छा सामान। मैंने यहाँ एक प्रश्न पोस्ट किया है [ unix.stackexchange.com/questions/172007/… जो इस प्रश्नोत्तर के संभावित डुप्लिकेट के रूप में चिह्नित किया गया है। हालाँकि, दोस्तों, मुझे यकीन नहीं है कि यह एक क्लोन है। Pl मेरे सवाल को भी देखें और मेरी मदद करें :)
kaiwan

जवाबों:


13

आपके द्वारा लॉग इन करने के बाद आपने जिन फ़ाइलों को बदलने का प्रयास किया है वे सभी पढ़ी जाती हैं। इसके अलावा, ~/.xinitrcऔर ~/.xsessionएक सत्र में चलने वाली कमांड्स का पूरा सेट है; ~/.xinitrcयदि आप चलाते हैं xinitया startxकिसी पाठ मोड प्रॉम्प्ट ~/.xsessionसे पढ़े जाते हैं , और यदि आप "कस्टम सत्र" (नाम भिन्न हो सकते हैं) को ग्राफ़िकल लॉगिन प्रॉम्प्ट से पढ़ते हैं।

आपको अपने डिस्प्ले मैनेजर को कॉन्फ़िगर करने की आवश्यकता है , जो प्रोग्राम लॉगिन प्रॉम्प्ट दिखाता है। केडीएम के लिए, केडीई डिस्प्ले मैनेजर, /etc/kde4/kdm/Xsetup(या /etc/kde3/kdm/Xsetupपुराने संस्करणों के लिए) के लिए अपनी कमांड जोड़ें (यह डेबियन पर पथ है, मैंने सत्यापित नहीं किया है कि कुबंटु उसी पथ का उपयोग करता है)।

जीडीएम (सूक्ति प्रदर्शन प्रबंधक) के लिए, अपनी कमांड को इसमें जोड़ें /etc/gdm/Init/Default। एक्सडीएम (पारंपरिक एक्स डिस्प्ले मैनेजर) के लिए, अपनी कमांड को इसमें जोड़ें /etc/X11/xdm/Xsetup


स्पष्टीकरण के लिए धन्यवाद! मैंने कोशिश की कि आपने सफलता के बिना क्या सुझाव दिया। मैंने Xsetupफ़ाइल (उसी पथ में जिसका आपने उल्लेख किया है) स्थित है और कमांड जोड़ा। अंशांकन काम नहीं करता था, लेकिन मैंने यह सुनिश्चित किया कि रिबूट के बाद इसे जोड़कर echo "w" > /test.log, और /test.logइसे सत्यापित किया गया था। क्या यह संभव है कि xinputविशेष "संदर्भ" या कुछ और की आवश्यकता है ...?
jadkik94

वास्तव में, अंतिम टिप्पणी की उपेक्षा करें। मैंने xinputउस फ़ाइल पर कमांड को रीडायरेक्ट किया , और ऐसा लगता है कि मैंने डिवाइस के नाम के लिए एक स्थान जोड़ा था जिसने अंशांकन को काम नहीं किया। आप 100% सही थे :) फिर से धन्यवाद।
jadkik94

5
और बस जवाब पूरा करने के लिए - यह पता लगाने के लिए कि आपका डिस्प्ले मैनेजर क्या है (डेस्कटॉप वातावरण के साथ भ्रमित होने की नहीं) का उपयोग करें cat /etc/X11/default-display-manager:।
नक्स

किस बारे में xserverrc? और जो भीतर हैं /etc/X11/xinit/xserverrc?
CMCDragonkai 10

1
@CMCDragonkai यदि कोई प्रदर्शन प्रबंधक है, startxतो इसका उपयोग नहीं किया जाता है। उपयोगकर्ता द्वारा लॉग इन करने से पहले चलने पर डिस्प्ले मैनेजर इनिशियलाइज़ेशन स्क्रिप्ट यहाँ प्रासंगिक नहीं होगी।
गिल्स एसओ- बुराई को रोकना '

4

मेरा सुझाव है कि आप अपनी स्वयं की कॉन्फिग फ़ाइल बनाएं, एक सरल उदाहरण:

/usr/lib/X11/xorg.conf.d/20-calibration.conf

Filecontent:

Section "InputClass"
         Identifier "Calibration"
         MatchProduct "3M 3M USB Touchscreen - EX II"
         Option "Calibration" "14410 2146 14574 2115"
EndSection

यह ट्रिक काम आना चाहिए।


-1

आप /etc/rc.local की कोशिश कर सकते हैं?


4
मैं चिंतित था कि स्क्रिप्ट एक्स शुरू होने से पहले भी चलेगी (जैसा कि मैंने इसे समझा), जो उस स्क्रिप्ट को बेकार कर देगा ... यह कब चलता है?
jadkik94

3
@ jadkik94 आप सही हैं कि यह काम नहीं करेगा क्योंकि r.local के पास x सत्र तक पहुंच नहीं है।
उलरिच डेंगल

-1

जब आपके पास OpenSUSE है तो आप अपनी स्क्रिप्ट को /etc/init.d पर कॉपी कर सकते हैं और insserv स्क्रिप्ट नाम चला सकते हैं। insserv एक स्क्रिप्ट को सक्षम करता है: http://man-wiki.net/index.php/8:insserv


2
यह शायद xinputजरूरत के रूप में काम नहीं करेगा शायद X जो उपलब्ध नहीं है / init स्क्रिप्ट में आरंभिक नहीं है
उलरिच डेंगल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.