विषय पर बढ़ें

Dotfiles

OmarOS मुख्य रूप से तथाकथित dotfiles के माध्यम से कॉन्फ़िगर किया जाता है जो ~/.config में रहते हैं। वे आपके बदलावों के लिए आपकी फ़ाइलें माने जाते हैं। /usr/share/omaros में रहने वाली फ़ाइलें स्वयं OmarOS की हैं, और आपको उनसे छेड़छाड़ नहीं करनी चाहिए। अगर आपको /usr/share/omaros में कुछ बदलने की आवश्यकता है, तो आपको इसके बजाय ~/.config में मान को अधिलेखित करना चाहिए।

मुख्य कॉन्फ़िग को OmarOS मेनू (Super + Space) से सीधे संपादित किया जा सकता है, जैसे Setup > Monitors, Setup > Keybindings, Setup > Input, और Setup > Config > [file]। जब आप इसे इस तरह करते हैं, तो कॉन्फ़िग संपादन के बाद जिस किसी भी प्रक्रिया को रीस्टार्ट करने की आवश्यकता होती है, वह आपके संपादक छोड़ने के बाद स्वतः हो जाएगी (डिफ़ॉल्ट रूप से Neovim — :wq, याद रखें! — लेकिन आप इसे Setup > Defaults > Editor के माध्यम से बदल सकते हैं)।

यहाँ ~/.config की मुख्य फ़ाइलों की सूची और वे क्या नियंत्रित करती हैं दी गई है:

File Purpose
~/.config/hypr/hyprland.lua मुख्य Hyprland कॉन्फ़िग। OmarOS डिफ़ॉल्ट के साथ-साथ नीचे दी गई आपकी ओवरराइड फ़ाइलों को लोड करता है। Hyprland कॉन्फ़िग के बारे में अधिक जानें.
~/.config/hypr/bindings.lua आपकी स्वयं की कीबाइंडिंग और डिफ़ॉल्ट के ओवरराइड।
~/.config/hypr/monitors.lua आपके मॉनिटर, रिज़ॉल्यूशन और स्थिति को नियंत्रित करता है।
~/.config/hypr/input.lua आपके कीबोर्ड लेआउट, माउस और ट्रैकपैड सेटिंग को नियंत्रित करता है।
~/.config/hypr/looknfeel.lua अंतराल, बॉर्डर, एनिमेशन और लुक के शेष भाग को नियंत्रित करता है।
~/.config/hypr/autostart.lua सत्र के साथ शुरू की गई अतिरिक्त प्रक्रियाओं को नियंत्रित करता है।
~/.config/omaros/shell.json OmarOS शेल को नियंत्रित करता है: बार स्थिति, लेआउट और विजेट, साथ ही स्क्रीनसेवर, लॉक और निष्क्रिय समय।
~/.config/foot/foot.ini आपके टर्मिनल को नियंत्रित करता है (foot डिफ़ॉल्ट है)।
~/.XCompose आपकी त्वरित-पहुँच इमोजी और नाम/ईमेल ऑटोकंप्लीट को परिभाषित करता है। बदलाव करने के बाद omaros-restart-xcompose चलाना सुनिश्चित करें।

अगर आप अपने स्वयं के सेटअप को बदलने के लिए बहुत सारे बदलाव करते हैं, तो इन सभी dotfiles का बैकअप लेना एक अच्छा विचार है। Stow ऐसा करने का एक बेहतरीन तरीका है।

सत्र के साथ अपने स्वयं के ऐप शुरू करना

अगर आप चाहते हैं कि हर बार लॉग इन करने पर कुछ चले — सिंक डेमॉन, चैट ऐप, आपकी अपनी स्क्रिप्ट — तो इसे ~/.config/hypr/autostart.lua में रखें:

o.launch_on_start("my-service")

यह कमांड को सत्र के भाग के रूप में शुरू करता है, इसलिए जब आप फिर से लॉग आउट करते हैं तो यह ठीक से साफ़ हो जाता है।

सिस्टम इवेंट पर स्क्रिप्ट चलाना

OmarOS मुट्ठी भर क्षणों में हुक चलाता है, और आप अपनी स्वयं की स्क्रिप्ट उनसे लटका सकते हैं। वे ~/.config/omaros/hooks/<event>.d/ में रहते हैं, प्रति इवेंट एक डायरेक्टरी, और वहाँ हर निष्पादन योग्य फ़ाइल इवेंट होने पर चलती है:

Event When it runs
post-boot डेस्कटॉप शुरू होने के तुरंत बाद
post-update omaros update के अंत के करीब, पैकेज, प्रवासन और सेवा रीस्टार्ट के बाद, mise टूल अपडेट होने से पहले
pre-refresh-pacman omaros refresh pacman द्वारा पैकेज कॉन्फ़िग को फिर से सिंक करने के बाद, पैकेज अपडेट करने से पहले; चैनल स्विच इसे उसी रिफ़्रेश चरण के दौरान चलाता है
theme-set थीम बदलाव के बाद ($1 में थीम का नाम)
font-set फ़ॉन्ट बदलाव के बाद ($1 में फ़ॉन्ट का नाम)
battery-low जब बैटरी कम हो जाए ($1 में प्रतिशत)

pre-refresh-pacman हुक वह जगह है जहाँ कस्टम रिपॉज़िटरी या IgnorePkg पंक्तियाँ होनी चाहिए, क्योंकि यह पैकेज लेनदेन से पहले चलता है। दोनों अपडेट-संबंधी हुक OmarOS द्वारा अपने कैश किए गए sudo प्राधिकरण को साफ़ करने के बाद आपके उपयोगकर्ता के रूप में चलते हैं, इसलिए sudo का उपयोग करने वाले हुक को अपने स्वयं के प्राधिकरण की आवश्यकता होती है और वह आपका पासवर्ड माँग सकता है।

उनमें से प्रत्येक डायरेक्टरी में पहले से ही एक .sample फ़ाइल है जो हुक का आकार दिखाती है — इसे काम पर लगाने के लिए नाम से .sample हटा दें। कहीं और लिखी गई स्क्रिप्ट इंस्टॉल करने के लिए, omaros hook install post-boot ~/my-hook का उपयोग करें, जो इसे कॉपी करके निष्पादन योग्य बना देता है।

अपने स्वयं के मेनू आइटम जोड़ना

OmarOS मेनू (Super + Space) को ~/.config/omaros/extensions/omaros-menu.jsonc संपादित करके आपकी अपनी पंक्तियों के साथ बढ़ाया जा सकता है। प्रविष्टियाँ बिंदुयुक्त id द्वारा कुंजीबद्ध होती हैं, और id ही उन्हें ट्री में रखता है, इसलिए personal रूट मेनू पर दिखाई देता है और personal.notes उसके अंदर दिखाई देता है:

"personal": {"icon":"","label":"Personal"},
"personal.notes": {"icon":"󰎞","label":"Notes","action":"omaros-launch-editor ~/notes"},

मौजूदा id का पुनः उपयोग करें और आप नया जोड़ने के बजाय उस पंक्ति को ओवरराइड कर देंगे। फ़ाइल सभी उपलब्ध फ़ील्ड को टिप्पणियों के रूप में दस्तावेज़ित करके आती है।

अपने स्वयं के शेल निर्यात, फ़ंक्शन और उपनाम जोड़ना

OmarOS कई एर्गोनॉमिक उपनामों और सहायक फ़ंक्शन के साथ आता है, लेकिन अपने स्वयं के जोड़ना चाहना बहुत आम है। आपको उपनाम, फ़ंक्शन और निर्यात दोनों ~/.bashrc में जोड़ने चाहिए। यह फ़ाइल अपडेट पर अधिलेखित नहीं होगी। अगर आप OmarOS डिफ़ॉल्ट में से किसी को बदलना चाहते हैं, तो आप उन्हें यहाँ भी सुरक्षित रूप से जोड़ सकते हैं।

आंतरिक OmarOS फ़ाइलें बदलना

देखिए, यह आपका कंप्यूटर है। आप इसके साथ जो चाहें कर सकते हैं, लेकिन मैं /usr/share/omaros की फ़ाइलों में सीधे बदलाव करने के विरुद्ध सलाह दूँगा। वे OmarOS pacman पैकेज की हैं, इसलिए आपके बदलाव अगले अपडेट पर बस अधिलेखित हो जाएँगे। इसके बजाय ~/.config/* फ़ोल्डर में उन डिफ़ॉल्ट मानों को अधिलेखित करना बेहतर है जो आपको पसंद नहीं हैं।

आप इस तरह लगभग सब कुछ बदल सकते हैं, जैसे डिफ़ॉल्ट कीबाइंडिंग। बस ~/.config/hypr/bindings.lua संपादित करके, मान लीजिए, Obsidian को Joplin से बदलें (omaros-pkg-add joplin-bin से इंस्टॉल करें):

o.rebind("SUPER + SHIFT + O", "Joplin", "joplin-desktop")

o.rebind अपना प्रतिस्थापन जोड़ने से पहले मौजूदा बाइंडिंग हटा देता है। यह o.bind के समान तर्क लेता है, जिसमें लॉन्च हेल्पर और बाइंडिंग विकल्प शामिल हैं। बाइंडिंग जोड़ने के लिए o.bind का उपयोग करें, या बिना बदले हटाने के लिए hl.unbind का उपयोग करें।

अगर आप आंतरिक OmarOS फ़ाइलों पर हैकिंग करने पर ज़ोर देते हैं, तो Update > Channel > Dev के माध्यम से dev चैनल पर स्विच करें। यह OmarOS को ~/omaros में स्रोत कोड के git चेकआउट से जोड़ता है, जिसे आप अपने दिल की इच्छा अनुसार बदलने के लिए स्वतंत्र हैं। यहाँ आपको यह बताने वाला कोई नहीं है कि क्या करना है!

कोई भी बदलाव रीसेट करना

अगर आप कॉन्फ़िगरेशन की गड़बड़ कर देते हैं, तो आप उन्हें हमेशा OmarOS मेनू में Update > Config के माध्यम से डिफ़ॉल्ट पर वापस कर सकते हैं। या सब कुछ रीसेट करने के लिए omaros reinstall configs चलाकर।