अजीब XDG उपयोगकर्ता बग को रीसेट करना


10

मुझे 12.04 एलटीएस के साथ एक अजीब समस्या है।

इसके बावजूद कि मैं ~/.config/user-dirs.dirsफ़ाइल के लिए क्या करूँ , जब भी मैं अगली बार फिर से लॉगिन करता हूँ, तो वह फ़ाइल केवल $ HOME पर सेट हो जाती है। Lightdm का उपयोग करके लॉगिन के दौरान कुछ ऐसा हो रहा है जो उस फ़ाइल की सामग्री को ओवरराइड करता है।

यदि मैं लॉगिन करता हूं और xdg-user-dirs-update --forceफिर फाइल की सामग्री ठीक है। लॉगआउट करने के बाद, फ़ाइल अभी भी ठीक है। यह तब होता है जब मैं फिर से lightdm का उपयोग करके लॉगिन करता हूं कि कुछ गलत हो जाता है।

यह काफी कष्टप्रद है।


आप किस डेस्कटॉप वातावरण का उपयोग कर रहे हैं? हाल ही में यहां एक बग भरा गया था: Bugs.launchpad.net/pcmanfm/+bug/1031463

मैं डिफ़ॉल्ट यूनिटी
sybreon

जवाबों:


2

वहाँ एक ऑटोस्टार्ट स्क्रिप्ट मौजूद है

/etc/xdg/autostart/user-dirs-update-gtk.desktop

जो प्रोग्राम को कॉल करता है xdg-user-dirs-gtk-update, जिसमें कोई manपृष्ठ या --helpस्पष्टीकरण नहीं है, लेकिन मुझे लगता है कि इसका कारण हो सकता है।

आप या तो इस स्क्रिप्ट को हटा सकते हैं (जो पैकेज से संबंधित प्रतीत होता है xdg-user-dirs-gtk, और इसे अपडेट किया गया है तो फिर से बनाया जा सकता है), या Hidden=trueऑटोस्टार्ट फ़ाइल में एक पंक्ति जोड़ें , जो इसे चलने से रोकना चाहिए (और आपसे पूछा जाना चाहिए कि क्या आप रखना चाहते हैं किसी भी भविष्य के अद्यतन के दौरान आपकी संशोधित प्रति)।


मैंने भी कुछ ऐसा ही किया, लेकिन XDG रीसेट को अधिलेखित करने के लिए /etc/X11/Xsession.d/ में एक स्क्रिप्ट बनाई।
4

Commentमेरी .desktopफ़ाइल का फ़ील्ड वर्तमान लोकेल से मेल करने के लिए सामान्य फ़ोल्डर नाम अपडेट करता है । लेकिन इसका कोई मतलब नहीं है कि मैं लोकेल के आधार पर अपना वास्तविक रास्ता क्यों बदलना चाहूंगा; मैं उन फ़ोल्डरों के लिए डिस्प्ले स्ट्रिंग स्विच करना देख सकता था, लेकिन फाइलसिस्टम पथ ही नहीं।
पालसिम्

0

आपकी समस्या को देखते हुए मुझे उबंटू सॉफ्टवेयर सेंटरxdg-user-dirs से स्थापित किया जा सकता है । यह निम्नलिखित सुविधा का दावा करता है:

यह प्रोग्राम एक कॉन्फ़िगरेशन फ़ाइल और डिफ़ॉल्ट निर्देशिकाओं का एक सेट पढ़ता है। यह तब उपयोगकर्ताओं के होम निर्देशिका में इन निर्देशिकाओं के स्थानीयकृत संस्करण बनाता है और $ (XDG_CONFIG_HOME) /user-dirs.dirs (XDG_CONFIG_HOME दोषों में ~ / .config) में एक कॉन्फिगर फाइल सेट करता है, जो इन निर्देशिकाओं को खोजने के लिए पढ़ सकते हैं।

पूर्ण प्रलेखन यहाँ पाया जा सकता है


यह समस्या का हल नहीं है क्योंकि ये फाइलें प्रत्येक लॉगिन के बाद किसी तरह 'रीसेट' हो जाती हैं।
sybreon

0

मैं निम्नलिखित बिंदुओं को जांचने का सुझाव देता हूं:

  • यह जाँचने का प्रयास करें कि XDG_CONFIG_HOMEक्या किसी भिन्न स्थान पर '~ / .config` के रूप में सेट है।
    • शेल स्तर पर
    • के जरिए grep XDG_CONFIG_HOME /etc/*profile /etc/*rc ~/.*rc ~/.*profile /etc/X11/Xsession /etc/X11/Xsession.d/*

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

जैसे

 cd ${HOME}
 function link() {
 local dir=$1
 shift 1
 [ -e ${dir} ] || mkdir -p ${dir}
 for name in $*
 do
 if [ -L ${name} ]
 then
 if [ "$(readlink ${name})" = "${dir}" ]
 then
 [ -e  "${dir}" ] || mkdir -p "${dir}"
 echo "${name} allready converted to ${dir}"
 else
 echo "${name} (link) converted to ${dir}"
 [ -e  "${dir}" ] || mkdir -p "${dir}"
 mv -av ${name}/* ${dir}/ 2>/dev/null    || true # can be emtpy
 mv -av ${name}/.??* ${dir}/ 2>/dev/null || true # can be emtpy
 rm -f ${name}
 ln -svf ${dir} ${name}
 fi
 else
 if [ -d ${name} ]
 then
 mv -av ${name}/* ${dir}/ 2>/dev/null    || true # can be emtpy
 mv -av ${name}/.??* ${dir}/ 2>/dev/null || true # can be emtpy
 rmdir ${name}
 ln -sv ${dir} ${name};
 echo "${name} (dir) converted to ${dir}"
 else
 ln -sv ${dir} ${name};
 echo "${name} linked to ${dir}"
 fi
 fi
 done

 }


 #     real                DE          EN
 link  ~/data/templates    Vorlagen    Templates
 link  ~/data/public       Öffentlich  Public
 link  ~/data/documents    Dokumente   Documents
 link  ~/data/music        Musik       Music
 link  ~/data/photo        Bilder      Pictures
 link  ~/data/video        Videos
 link  ~/data/privat       Privat

फिलहाल, मुझे /etc/X11/Xsession.d/ स्क्रिप्ट का उपयोग करके निर्देशिकाओं को बाध्य करने के लिए एक काम मिला है।
sybreon

0

यदि अद्यतन चालू होता है तो कस्टम dirs मौजूद नहीं है, तो प्रविष्टियाँ रीसेट हो जाएँगी। क्या यह संभव है कि लॉगिन प्रक्रिया में आपके होम डिर को देर तक माउंट नहीं किया गया है? हो सकता है कि आप डिफॉल्ट को सेट कर सकते हैं /etc/xdg/user-dirs.defaultsताकि यह वैसे ही पथों को फिर से लिखा जाए?


उपयोगकर्ता होम डायर एक ग्लस्टरफ़ेट्स माउंट है जो बूट के दौरान मुहिम की जाती है .. इसलिए, यह तब उपलब्ध होता है जब उपयोगकर्ता लॉग-इन करता है।
sybreon

0

परिवर्तन करने और फ़ाइल को सहेजने के बाद लेकिन वापस लॉग इन करने से पहले, निष्पादित करें

echo "enabled=false" > ~/.config/user-dirs.conf

यह उपयोगकर्ता-dirs बनाता है । मान लें कि किसी और रीसेट को रोकना चाहिए।

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