इस प्रोजेक्ट के बारे में

DesktopPanel एक डेस्कटॉप कंट्रोल पैनल है जो आधिकारिक RPi टच स्क्रीन वाले Raspberry Pi के लिए बनाया गया है। यह लेखक की SmartBedroomPanel परियोजना का पुनर्गठित उत्तराधिकारी है और Docker इमेज (mrtux/desktop-panel) के रूप में वितरित किया जाता है। सेटअप नोट्स में बैकलाइट नियंत्रण शामिल है: एक udev नियम बैकलाइट brightness और bl_power sysfs प्रविष्टियों तक गैर-root लेखन पहुँच देता है। यदि कोई ज्ञात बोर्ड नहीं पहचाना जाता है, तो बैकलाइट sysfs वातावरण एक अस्थायी निर्देशिका में नकली बनाया जाता है, जो विकास के लिए उपयोगी है। Docker के साथ चलाने के लिए उन्नत पहुँच आवश्यक है क्योंकि एप्लिकेशन कई सिस्टम संसाधनों को छूता है। कंटेनर /app/configuration पर रीड-ओनली माउंट की गई कॉन्फ़िगरेशन निर्देशिका की अपेक्षा करता है जिसमें desktop-panel-config.json और issuelist.json हों, साथ ही /app/screenshots पर एक वैकल्पिक लेखन-योग्य स्क्रीनशॉट निर्देशिका हो। उदाहरण कमांड --privileged, --restart always, एक TZ पर्यावरण चर, और bind mounts का उपयोग करता है; कॉन्फ़िगरेशन माउंट अभी भी ऐप को JSON फ़ाइल परिवर्तनों पर प्रतिक्रिया देने की अनुमति देता है। एकीकरण मुख्य रूप से संदेश-आधारित है। AMQP पर, पहुँच और क्रेडेंशियल amqp.host, amqp.user और amqp.passwd से सेट किए जाते हैं। यदि amqp.declare true है तो संसाधन पैनल द्वारा घोषित किए जाते हैं, अन्यथा सेटअप बाहरी होता है। पैनल amqp.command_channel (डिफ़ॉल्ट command.DesktopPanel) पर कमांड सुनता है। कमांड JSON ऑब्जेक्ट होते हैं जिनमें एक कमांड पहचानकर्ता और एक arguments ऑब्जेक्ट होता है; वर्तमान कार्यान्वयन केवल-अनुरोध है और इसमें कोई सामान्य RPC प्रतिक्रिया तंत्र नहीं है। ज्ञात कमांड में screenshot (स्क्रीनशॉट निर्देशिका में एक छवि संग्रहीत करता है) और show page शामिल हैं, जो page तर्क में नामित पृष्ठ पर स्विच करता है और go_back_if_current को नेविगेशन स्टैक पॉप करने तथा clickjacking रोकने के लिए block_input का समर्थन करता है। एक syslog चैनल System पृष्ठ पर महत्वपूर्ण syslog संदेश प्रदर्शित कर सकता है। संदेश amqp.syslog_channel में नामित कतार से उपभोग किए जाते हैं (कोई डिफ़ॉल्ट नहीं; अक्षम करने के लिए छोड़ दें)। उन्हें syslog-ng के AMQP गंतव्य से आना चाहिए, जिसमें सभी जानकारी AMQP संदेश प्रॉपर्टी हेडर (DATE, FACILITY, HOST/HOST_FROM, MESSAGE, PRIORITY, PROGRAM) में हो और बॉडी खाली हो। केवल error गंभीरता और उससे ऊपर अर्थपूर्ण हैं; syslog-ng फ़िल्टर या RabbitMQ बाइंडिंग को केवल उन गंभीरताओं को रूट करना चाहिए। README एक समर्पित टिकाऊ कतार (जैसे syslog.DesktopPanel) की सिफारिश करता है जो syslog-ng टॉपिक एक्सचेंज से बंधी हो, जब कतार बाहरी रूप से प्रबंधित हो तो amqp.declare को false पर सेट करें, और एक कॉन्फ़िगरेशन JSON स्निपेट देता है। जब System पृष्ठ सक्रिय नहीं होते समय कोई नया संदेश आता है, तो System टैब बटन crit/critical/alert/emerg/panic के लिए लाल और error/err के लिए पीला चमकता है; पृष्ठ खोलने पर अधिसूचना साफ़ हो जाती है। MQTT पर, यदि mqtt.presence-topic कॉन्फ़िगर किया गया है, तो उपस्थिति स्थिति कच्चे स्थिति पाठ के रूप में प्रकाशित की जाती है। परियोजना Streamline Icons Pack से मुफ़्त आइकन का उपयोग करती है और MIT के अंतर्गत लाइसेंस प्राप्त है (© 2021 Stefan Haun और योगदानकर्ता)। स्थिर विश्लेषण के लिए एक CodeQL वर्कफ़्लो शामिल है।