यो कागजात अंग्रेजीमा पढ्नुहोस्
एक्जिक्युटेबल (Executable): bikram-calendar
यो विक्रम संवतको लागि बनाइएको एउटा डेस्कटप विजेट र पात्रो एप्लिकेसन हो, जुन आधुनिक Qt 6 फ्रेमवर्कमा आधारित छ। यसले प्रभावकारी प्रणाली कार्यहरूका लागि नेटिभ C++ ब्याकइन्ड प्रयोग गर्दछ।
-
डेस्कटप विजेट र पात्रो: यसले सधैं-अन रहने एउटा सुविधाजनक डेस्कटप विजेट प्रदान गर्दछ। विजेटमा क्लिक गर्दा सम्पूर्ण विशेषताहरू भएको पात्रो खुल्छ।
-
मिति गणना र पञ्चाङ्ग विवरण:
- पात्रोले मिति गणनाका लागि हाइब्रिड प्रणाली प्रयोग गर्दछ:
- पूर्व-गणना गरिएको डाटा (Pre-computed Data): २००० वैशाख देखि २०८९ चैत्र सम्मको ९०-वर्षे अवधिका लागि, पात्रोले उच्च शुद्धताका लागि पूर्व-गणना गरिएको डाटा प्रयोग गर्दछ। यो अवधिभन्दा बाहिरको मिति हेर्दा एपमा एउटा सानो सूचना देखा पर्दछ।
- एल्गोरिदमिक गणना (Algorithmic Calculation): अन्य मितिहरूका लागि, यसले परम्परागत सूर्य सिद्धान्तको गणना तर्कको आधारमा स्वचालित रूपमा गणना गर्दछ।
- दैनिक पञ्चाङ्ग जानकारी:
- पात्रोको मुख्य दृश्यले हरेक दिनको तिथि देखाउँछ।
- कुनै निश्चित दिनमा क्लिक गर्दा तिथि, नक्षत्र, योग, र करण सहितको विस्तृत विवरणहरू देखिन्छ। यसले सूर्य र चन्द्रमाको स्थिति जस्ता डिबग जानकारी पनि देखाउँछ।
शुद्धता सम्बन्धी अस्वीकरण: सूर्य सिद्धान्त एक दृश्यात्मक पात्रो (observational calendar) भएकोले, गणना गरिएका समयहरू अन्य स्रोतहरूको तुलनामा मिनेटदेखि घण्टासम्म फरक हुन सक्छन्। शुद्धताका लागि हरसम्भव प्रयास गरिए पनि, डाटामा गल्तीहरू हुन सक्छन्। आधिकारिक वा धार्मिक कार्यहरूका लागि, कृपया सधैं नेपाल पञ्चाङ्ग निर्णायक समिति द्वारा स्वीकृत पात्रोलाई आधार मान्नुहोस्।
- पात्रोले मिति गणनाका लागि हाइब्रिड प्रणाली प्रयोग गर्दछ:
-
अनुकूलन र थिमहरू (Customization & Themes):
- पात्रोमा Light र Dark थिमहरू बीच टगल गर्न सजिलो स्विच समावेश छ। तपाईंको रोजाइ अर्को पटकका लागि सुरक्षित रहन्छ।
- फन्ट साइज र रङहरू कन्फिगर गर्न विजेटमा राइट-क्लिक गरी कन्टेक्स्ट मेनु खोल्नुहोस्।
-
अवस्थाको निरन्तरता (State Persistence):
- एप्लिकेसनले विजेट र पात्रो विन्डोको स्थान याद राख्छ र अर्को पटक खोल्दा त्यसलाई पुनर्स्थापित गर्दछ।
- पात्रो विन्डोको साइज पनि स्वचालित रूपमा सुरक्षित र पुनर्स्थापित हुन्छ।
- (अपवादका लागि तलको Wayland सीमितताहरू हेर्नुहोस्)।
-
प्रणालीसँग एकीकरण (System Integration):
- यसले प्रिन्टिङ, अटोस्टार्ट व्यवस्थापन, र उपयोगी टूलटिप्स देखाउने जस्ता प्रणाली कार्यहरू ह्यान्डल गर्न आन्तरिक Qt C++ ब्याकइन्ड प्रयोग गर्दछ।
- फ्रेमवर्क: पूर्ण रूपमा Qt 6 फ्रेमवर्कमा निर्मित।
- आवश्यक संस्करण: Qt 6.0 वा सोभन्दा माथि आवश्यक छ। यो संस्करण Qt 6.8.0 र Qt 6.9 मा राम्रोसँग परीक्षण गरिएको छ।
- पुरानो संस्करण सपोर्ट: कृपया ध्यान दिनुहोस् कि Qt 5 समर्थित छैन।
Wayland डिस्प्ले सर्भर प्रोटोकलको सुरक्षा डिजाइनका कारण, केही विशेषताहरू फरक तरिकाले काम गर्छन्:
-
विन्डोको स्थान: एप्लिकेसनले Wayland मा विन्डोको tọa độ (coordinates) प्राप्त गर्न सक्दैन, त्यसैले यसले विजेट वा पात्रो विन्डोको स्थान सुरक्षित वा पुनर्स्थापित गर्न सक्दैन। यद्यपि, विन्डोको साइज सही रूपमा सुरक्षित र पुनर्स्थापित हुन्छ।
-
विजेट क्लिक कार्य: Wayland मा, चल्न मिल्ने विजेटमा क्लिक गर्दा कम्पोजिटरले त्यसलाई "drag/move" कार्यको रूपमा लिन्छ, जसले गर्दा एप्लिकेसनले क्लिक दर्ता गर्न पाउँदैन।
- समाधान: Wayland मा पात्रो खोल्न, कृपया विजेटमा राइट-क्लिक गर्नुहोस् र कन्टेक्स्ट मेनुबाट "Open Calendar" बटन चयन गर्नुहोस्।
यो गाइडले लोकप्रिय लिनक्स डिस्ट्रिब्युसनहरूमा प्रोजेक्ट कम्पाइल गर्ने निर्देशनहरू प्रदान गर्दछ।
तपाईंले पहिले आफ्नो अपरेटिङ सिस्टमका लागि आवश्यक बिल्ड टुल्स र लाइब्रेरीहरू स्थापना गर्नुपर्छ।
डिपेन्डेन्सीहरू बारे नोट:
- बिल्ड-टाइम डिपेन्डेन्सीहरू (Build-time dependencies) स्रोत कोडबाट सफ्टवेयर कम्पाइल गर्न आवश्यक छन्। यी प्याकेजहरूमा रनटाइम डिपेन्डेन्सीहरू पनि समावेश हुन्छन्।
- रनटाइम डिपेन्डेन्सीहरू (Runtime dependencies) पहिले नै कम्पाइल गरिएको बाइनरी चलाउनका लागि मात्र आवश्यक छन्। यदि तपाईंले स्रोतबाट कम्पाइल नगरी सिधै बाइनरी डाउनलोड गर्नुभएको छ भने मात्र यिनीहरूलाई स्थापना गर्नुहोस्।
पहिले आफ्नो प्याकेज सूची अपडेट गर्नुहोस्, त्यसपछि आवश्यक बिल्ड टुल्स र Qt 6 डेभलपमेन्ट प्याकेजहरू स्थापना गर्नुहोस्।
बिल्ड-टाइम डिपेन्डेन्सीहरू स्थापना गर्नुहोस्:
sudo apt update
sudo apt install build-essential \
qt6-base-dev \
qt6-dev-tools \
qt6-declarative-dev \
qt6-declarative-dev-tools \
qt6-tools-dev \
qt6-tools-dev-tools \
qt6-shadertools-dev \
libqt6printsupport6 \
qml6-module-qtquick-controls \
qml6-module-qtquick-controls2 \
qml6-module-qtquick-layouts \
qml6-module-qtquick-window \
qml6-module-qtcoreरनटाइम डिपेन्डेन्सीहरू स्थापना गर्नुहोस्:
sudo apt update
sudo apt install libqt6core6 \
libqt6gui6 \
libqt6qml6 \
libqt6quick6 \
libqt6printsupport6 \
qml6-module-qtquick-controls \
qml6-module-qtquick-controls2 \
qml6-module-qtquick-layouts \
qml6-module-qtquick-windowआफ्नो सिस्टम अप-टु-डेट छ भनी सुनिश्चित गर्नुहोस्। base-devel समूह (यदि पहिले नै छैन भने) र आवश्यक Qt 6 प्याकेजहरू स्थापना गर्नुहोस्।
बिल्ड-टाइम डिपेन्डेन्सीहरू स्थापना गर्नुहोस्:
# प्याकेज डाटाबेस सिङ्क्रोनाइज र सिस्टम अपडेट गर्नुहोस्
sudo pacman -Syu
# आवश्यक प्याकेजहरू स्थापना गर्नुहोस्
sudo pacman -S base-devel qt6-base qt6-declarative qt6-shadertools qt6-toolsरनटाइम डिपेन्डेन्सीहरू स्थापना गर्नुहोस्:
sudo pacman -S qt6-base qt6-declarativeडिपेन्डेन्सीहरू स्थापना भएपछि, तपाईं निम्न विधिहरू मध्ये कुनै एक प्रयोग गरेर प्रोजेक्ट कम्पाइल गर्न सक्नुहुन्छ।
यो प्रोजेक्ट निर्माण गर्ने सबैभन्दा सीधा तरिका हो।
- Qt Creator मा
.proफाइल खोल्नुहोस्। - यदि सोधियो भने प्रोजेक्ट किट कन्फिगर गर्नुहोस्।
- Build बटन (वा
Ctrl+Bथिच्नुहोस्) र त्यसपछि Run बटन (वाCtrl+Rथिच्नुहोस्) मा क्लिक गर्नुहोस्।
- प्रोजेक्टको रूट डाइरेक्टरीमा जानुहोस्।
- एउटा
buildडाइरेक्टरी बनाउनुहोस् र त्यसमा प्रवेश गर्नुहोस्:mkdir build && cd build
qmake6प्रयोग गरेर Makefile उत्पन्न गर्नुहोस्।# नोट: केही पुराना प्रणालीहरूमा, 'qmake6' को सट्टा 'qmake' प्रयोग गर्नुपर्ने हुन सक्छ। qmake6 ..- स्रोत कोड कम्पाइल गर्नुहोस्:
make
- कम्पाइल गरिएको एक्जिक्युटेबल
buildडाइरेक्टरीमा फेला पर्नेछ।
- प्रोजेक्टको रूट डाइरेक्टरीमा जानुहोस्।
- एउटा
buildडाइरेक्टरी बनाउनुहोस् र त्यसमा प्रवेश गर्नुहोस्:mkdir build && cd build
- CMake मार्फत बिल्ड फाइलहरू उत्पन्न गर्नुहोस्:
cmake ..
- स्रोत कोड कम्पाइल गर्नुहोस्:
make
- कम्पाइल गरिएको एक्जिक्युटेबल
buildडाइरेक्टरीमा फेला पर्नेछ।
योगदान हरु लाई स्वागत छ! यदि तपाईंसँग कुनै सुझाव छ वा कुनै बग रिपोर्ट गर्न चाहनुहुन्छ भने, कृपया एउटा मुद्दा (issue) खोल्न नहिचकिचाउनुहोस्।
यदि तपाईं कोडमा योगदान गर्न चाहनुहुन्छ भने, कृपया यी चरणहरू पालना गर्नुहोस्:
-
रिपोजिटरी Fork गर्नुहोस्।
-
एउटा नयाँ शाखा (branch) बनाउनुहोस् (
git checkout -b feature/your-feature-name)। -
आफ्नो परिवर्तनहरू गर्नुहोस् र तिनीहरूलाई commit गर्नुहोस् (
git commit -m 'Add some feature')। -
शाखामा Push गर्नुहोस् (
git push origin feature/your-feature-name)। -
एउटा Pull Request खोल्नुहोस्।
यो परियोजना GNU General Public License v3.0 वा पछि अन्तर्गत इजाजतपत्र प्राप्त छ। थप विवरणहरूको लागि LICENSE फाइल हेर्नुहोस्।