
नमस्ते।
मैं लिनक्स के तहत चलने वाले कीबोर्ड लेआउट को स्वचालित रूप से स्विच करने के लिए एक प्रोग्राम का लेखक हूं। यह कार्यक्रम एक्सनूर या
एक्स न्यूरल स्विचर है ।
जब मैंने यह कार्यक्रम शुरू किया था, तब लिन्टू के लिए पुंटो स्वाइर को बदलने के लिए कुछ भी नहीं था। कृपया ध्यान दें, मैंने इसे खुद के लिए व्यक्तिगत रूप से लिखा था, सब कुछ लगभग हमेशा मेरे लिए काम करता है। मैंने इसे केवल सार्वजनिक डोमेन में रखा क्योंकि यह कार्यक्रम लोगों के लिए उपयोगी है।
आगे के लेखों में मैं मौजूदा (और मौजूदा) एनालॉग्स का विश्लेषण करूंगा, और समझाऊंगा कि वे वे सब क्यों हैं जिनका आप उपयोग नहीं कर सकते हैं, और एक अच्छा कार्यक्रम क्या है xneur।
मैं सप्ताह में एक घंटे के बल पर कार्यक्रम करता हूं, इसलिए धीमे विकास के लिए मुझे दोष देना बेवकूफी है। मैं प्रोग्रामिंग करके भी पैसा कमाता हूं, लेकिन लिनक्स से जुड़ा नहीं है।
पिछले 6 वर्षों में, मैंने समय-समय पर एक्सलिब और डे दोनों के विशिष्ट बगों पर ठोकर खाई, जिसके साथ मुझे आपसी समझ हासिल करनी थी।
अब मैं खाना पकाने वाले xneur के बारे में बात करना चाहता हूं, सेटिंग्स का वर्णन करता हूं और "छोटी फुटबॉल चालें" साझा करता हूं।
नंबर 0 पर लेखों का यह भाग सबसे सरल - विवरण के लिए समर्पित है। आपको आश्चर्य होगा कि पुन्नो कितना एक्सन कर सकते हैं।
उन लोगों के लिए जिन्होंने लंबे समय तक कोशिश की, लेकिन गुरु नहीं बने। मैं हमेशा बातचीत के लिए खुला हूं। यदि कुछ काम नहीं करता है, तो मुझे सभी आवश्यक जानकारी बताएं, और मैं आपकी समस्या को हल करने का प्रयास करूंगा।
एक्स न्यूरल स्विचर क्या है।
एक्स न्यूरल स्विचर - टाइप किए गए पाठ के आधार पर, स्वचालित रूप से कीबोर्ड लेआउट स्विच करने का कार्यक्रम। यानी टाइप करते समय, यदि यह आपके द्वारा अपेक्षित लेआउट में टाइप नहीं किया गया है, तो xneur स्वचालित रूप से (या अनुरोध पर) भाषा को वांछित में बदल देगा।
स्वचालित मोड में काम करते समय, xneur स्वचालित रूप से इनपुट पाठ का लेआउट निर्धारित करता है और आपके लिए भाषा बदलता है। इस मोड में, अपवाद अनुप्रयोगों को सेट करना संभव है, जिसमें मैनुअल द्वारा स्वचालित मोड को बदल दिया जाएगा।
मैनुअल मोड में काम करते समय, xneur सेट को ट्रैक नहीं करता है, लेकिन आपको स्वचालित रूप से अंतिम शब्द टाइप किए गए लेआउट (पॉज़ / ब्रेक बटन), अंतिम टाइप लाइन (Ctrl + ब्रेक कुंजी संयोजन), चयनित पाठ (Shift + ब्रेक संयोजन) और अन्य उपयोगी कार्यों को बदलने की अनुमति देता है।
उपरोक्त सभी कीबोर्ड शॉर्टकट स्वचालित मोड में काम करते हैं। यदि किसी कारण से आप पूर्व निर्धारित संयोजनों से संतुष्ट नहीं हैं, तो आप हमेशा उन्हें प्रोग्राम सेटिंग्स में बदल सकते हैं। कार्यक्रम आपको किसी भी एप्लिकेशन को लॉन्च करने के लिए अपने स्वयं के कीबोर्ड शॉर्टकट बनाने की अनुमति देता है।
वर्तमान में, यह कार्यक्रम अठारह भाषाओं का समर्थन करता है: अर्मेनियाई, बेलोरियन, चेक, जॉर्जियाई, जर्मन, ग्रीक, अंग्रेजी, एस्टोनियाई, फ्रेंच, कजाख, लिथुआनियाई, लातवियाई, पोलिश, मोलदावियन (रोमानियाई), रूसी, स्पेनिश, यूक्रेनी और उज़्बेक।
उपरोक्त भाषाओं के लिए, कार्यक्रम में हेयुरिस्टिक विश्लेषण एल्गोरिदम हैं, लेकिन, फिर भी, प्रोग्राम अन्य भाषाओं के साथ काम कर सकता है यदि इसके लिए एस्पेल या मायस्पेल शब्दकोशों हैं।
कार्यक्रम की मुख्य विशेषताएं।
- स्विचिंग। स्वचालित या मैनुअल लेआउट स्विचिंग। उसी समय, xneur आत्म-सीखने में सक्षम है, जो कभी-कभी कठिन शब्दों के लिए उपयोगी होता है जो कि शब्दकोश शब्दों या अनुमानी विश्लेषण के अंतर्गत नहीं आते हैं, उदाहरण के लिए, पैडोनकैफ़ स्लैंग या व्यक्तिगत रूप से आपके पसंदीदा शब्द विकृतियां।
- टाइपोग्राफी। Xneur पाठ को अधिक परिष्कृत रूप में बदलने में आपकी सहायता कर सकता है। उदाहरण के लिए, "ऐसे" एक शब्द को "ऐसे" में बदल दें, या कैप्स को बंद कर दें जो गलती से चालू हैं, या दो रिक्त स्थान को अल्पविराम से बदल दें, या ®, (tm) या © को सुंदर®, ™ या © में बदल दें।
- आप आवेदन की सभी प्रतियों के लिए एक लेआउट निर्दिष्ट कर सकते हैं, या प्रत्येक अपने स्वयं के उपयोग कर सकते हैं।
- मानक स्विचिंग क्रियाओं के लिए, आप अपने स्वयं के कीबोर्ड शॉर्टकट असाइन कर सकते हैं। इसके अलावा, आप अपनी स्क्रिप्ट या लॉन्च एप्लिकेशन के लिए कीबोर्ड शॉर्टकट असाइन कर सकते हैं।
- आप विशिष्ट लेआउट को सक्षम करने या उन्हें एक मंडली में स्विच करने के लिए अपना स्वयं का संयोजन प्रदान कर सकते हैं।
- यदि आप पूर्ण में शब्द टाइप करने के लिए बहुत आलसी हैं, तो आप स्वतः पूर्णता का उपयोग कर सकते हैं। Xneur अक्सर टाइप किए गए शब्दों को याद रखेगा और अधूरे शब्द को पूरा करेगा।
- आप स्वयं ऐसे एप्लिकेशन निर्दिष्ट कर सकते हैं जिसमें xneur स्वचालित, मैन्युअल मोड में काम करेगा, या बिल्कुल भी काम नहीं करेगा।
- यदि यह आपके लिए इतना सुविधाजनक है, तो आप कीस्ट्रोक्स या अन्य घटनाओं के साउंड डिज़ाइन को कॉन्फ़िगर कर सकते हैं, ऑन-स्क्रीन या स्विचिंग की पॉप-अप सूचना को प्रदर्शित कर सकते हैं।
- जब आपको अक्सर एक ही पाठ लिखना होता है, तो आप संक्षिप्त नाम प्रतिस्थापन का उपयोग करके देख सकते हैं। "पीआर" टाइप करके और अपने प्रमुख संयोजन को दबाकर, आप वार्ताकार को "हैलो" भेज देंगे। चीजें ठीक हैं :) ”। यह मूर्खतापूर्ण सवालों का जवाब देने के लिए बहुत आलसी है।
- Xneur के पास एक डायरी है। किसी भी समय, आप टाइप किए गए पाठ के लॉग को तारीख और उस एप्लिकेशन के द्वारा देख सकते हैं जिसमें वह टाइप किया गया था। हां, यह एक कीगलर विकल्प है। फिर मैं आपको बताऊंगा कि एक क्नलॉगर के रूप में xneur को कैसे कॉन्फ़िगर किया जाए।
- यदि आप अक्सर पूर्ण-स्क्रीन गेम खेलते हैं, तो आप सभी पूर्ण-स्क्रीन अनुप्रयोगों में xneur को अक्षम कर सकते हैं।
- खैर अब। सभी xneur सुविधाएँ अक्षम हैं! कुछ विकल्प पसंद नहीं है - बस इसे बंद करें।
इस प्रकार, यदि आप फाइन-ट्यूनिंग में महारत हासिल करते हैं, तो आप हमेशा अपनी पसंद के हिसाब से एक्सनूर पकाएंगे।
कार्यक्रम की स्थापना।
Xneur और gxneur के नवीनतम संस्करणों का स्रोत कोड xneur.ru/downloads पर उपलब्ध है
स्रोत से स्थापित करने के लिए आपको निम्नलिखित पैकेजों की आवश्यकता होगी (मैं उबंटू के लिए पैकेज स्थापित करने का एक तरीका देता हूं, लेकिन आप खुद समझ जाएंगे कि क्या स्थापित करना है):
sudo apt-get install build-essential automake1.9 libtool flex libx11-dev libgstreamer0.10-dev libopenal-dev libpcre3-dev libnotify-dev zlib1g-dev libaspell-dev libxosd-dev libenchant-dev
Gxneur (कॉन्फ़िगरेशन के लिए इंटरफ़ेस) का निर्माण करने के लिए, आपको अभी भी इन पैकेजों को स्थापित करने की आवश्यकता है:
sudo apt-get install libglade2-dev libgtk2.0-dev libgconf2-dev libappindicator-dev
इंस्टॉलेशन कमांड के एक मानक सेट (फिर से मैं उबंटू के लिए बोली) द्वारा किया जाता है।
./configure make sudo make install
इस तरह से स्थापित प्रोग्राम को अनइंस्टॉल करने के लिए, आप कमांड का उपयोग कर सकते हैं
sudo make uninstall
अब हम प्रोग्राम के लिए कॉन्फ़िगरेशन विकल्पों का विश्लेषण करेंगे, यदि आपके पास कोई पैकेज गायब है या आप उन्हें अक्षम करना चाहते हैं।
संदर्भ के लिए, आप उपयोग कर सकते हैं ।/configure --help।
- -साथ-ध्वनि [= ARG] ARG = [हाँ | नहीं | gstreamer | ओपनल | aplay] [डिफ़ॉल्ट = हाँ] के साथ कार्यक्रम का निर्माण। यानी ध्वनि डिजाइन के लिए चुनने के लिए आप निम्न इंजन का उपयोग कर सकते हैं: Gstreamer (डिफ़ॉल्ट), OpenAL, या aplay उपयोगिता।
- -साथ-डिबग प्रोग्राम को इंटरनल डिबग के साथ कंसोल में दिखाते हुए प्रोग्राम में मेमोरी लीक्स के स्थानों का निर्माण करें।
- - बिना चाबी के कार्यों के बिना एक कार्यक्रम का निर्माण (पैरानॉयड के लिए)
- -साथ-वर्तनी [= ARG] एंकांट डिक्शनरी इंजन (लिबरऑफिस, फ़ायरफ़ॉक्स, इत्यादि में प्रयुक्त) या एस्पेल, या कोई शब्दकोश समर्थन का उपयोग करके प्रोग्राम बनाएँ। (एआरजी = [हां | नहीं | एनकांस्टेंट | एस्पेल] [डिफ़ॉल्ट = हां]
- )
- --without-xosd xosd स्क्रीन सूचनाओं के समर्थन के बिना एक प्रोग्राम बनाएँ।
- --without-libnotify पॉप-अप मैसेज सपोर्ट के बिना प्रोग्राम बनाएं।
- --without- प्लगइन्स प्लगइन समर्थन के बिना एक कार्यक्रम बनाएँ।
लेकिन चूंकि मैं स्रोत से कार्यक्रम को संकलित करने के लिए बहुत आलसी हूं, इसलिए मेरे पास उबंटू उपयोगकर्ताओं के लिए दो पीपीए हैं।
sudo add-apt-repository ppa:andrew-crew-kuznetsov/xneur-stable
sudo add-apt-repository ppa:andrew-crew-kuznetsov/xneur-unstable
पहली रिपॉजिटरी में बेसिक रिलीज़ होती है, दूसरे में रोलिंग रिलीज़ (रात में बिल्ड) होती है।
कॉन्फ़िगरेशन मापदंडों का विवरण।
अब हम विश्लेषण करेंगे कि हमें xneur को किस तरह से ठीक करने की अनुमति मिलेगी, अर्थात् इसकी कॉन्फ़िगरेशन फ़ाइल।
हम विकल्पों के अनुसार इसका विश्लेषण करेंगे। मैं प्रत्येक विकल्प का एक संक्षिप्त विवरण दूंगा और समझाऊंगा कि किन मामलों में इसका उपयोग करना बेहतर है।
संस्करण 0.15.0कार्यक्रम के वर्तमान संस्करण का वर्णन करता है। अधिकांश भाग के लिए, यह कुछ भी प्रभावित नहीं करता है।
मैनुअलमोड नंमैनुअल मोड विकल्प। यदि हां में सेट किया गया है, तो संबंधित सेटिंग में निर्दिष्ट अनुप्रयोगों को छोड़कर हर जगह स्वचालित स्विचिंग अक्षम हो जाएगी।
लॉगलेवल ट्रेससंदेशों का स्तर जो xneur कंसोल में डंप करेगा।
त्रुटि केवल त्रुटियां हैं।
चेतावनी - पिछले एक, प्लस उन समस्याओं के बारे में चेतावनी देता है जो कार्यक्रम को प्रभावित नहीं करते हैं।
लॉग पिछले एक है, और थोड़ा अधिक है।
डिबग - पिछले, प्लस प्रोग्राम के डिबगिंग संदेश।
ट्रेस पिछले एक है, प्लस सब कुछ जो सामान्य रूप से एक्सनूर में होता है।
बहिष्कृत करनाविकल्प एकाधिक उपयोग की अनुमति देता है और लेआउट को इंगित करने के लिए कार्य करता है जिसके साथ और जिसके लिए स्विचिंग नहीं की जाएगी।
DefaultXkbGroup 0नए लॉन्च किए गए एप्लिकेशन के लिए डिफ़ॉल्ट लेआउट को परिभाषित करता है।
बहिष्कृत करें Rdesktopइस विकल्प के साथ आप पूरी तरह से आवेदन को प्रसंस्करण से बाहर कर सकते हैं। एकाधिक उपयोग की अनुमति है।
सेटऑटोऐप गेडिटयह विकल्प उन अनुप्रयोगों को परिभाषित करता है जिनमें मैन्युअल स्विच विकल्प की परवाह किए बिना स्वचालित स्विचिंग मोड को जबरन चालू किया जाएगा।
सेटमेनुअलऐप अंजुतायह विकल्प उन अनुप्रयोगों को परिभाषित करता है जिनमें मैन्युअल स्विचिंग मोड को मैनुअल मोड के विकल्प के बिना जबरन चालू किया जाएगा।
AddBind क्रिया कुंजीलेआउट या अन्य स्विच करने के लिए एक या किसी अन्य कार्रवाई के लिए एक कुंजी को परिभाषित करता है। क्रिया सूची आपकी कॉन्फ़िगरेशन फ़ाइल में है।
AddAction Control Alt f फ़ायरफ़ॉक्स ब्राउज़र फ़ायरफ़ॉक्सएक कस्टम क्रिया करने के लिए एक कुंजी परिभाषित करता है।
रिप्लेसमेंट इनब्रीगेशन इनी एंड्रे क्रू कूज़नेत्सोवसंक्षिप्तीकरण को बदलने के लिए संक्षिप्त सूची की सूची को परिभाषित करता है।
बदलेंयह निर्धारित करता है कि क्या संक्षिप्तीकरण की जगह वर्तमान लेआउट पर विचार किया जाना चाहिए। यदि हां पर सेट किया जाता है, तो प्रोग्राम "ytsuken" के साथ संक्षिप्त नाम "yts" और "qw" को बदल देगा।
PlaySounds नहींध्वनि चालू या बंद करना।
SoundVolumePercent 15सिस्टम वॉल्यूम स्तर के प्रतिशत के रूप में प्रोग्राम ध्वनियों का वॉल्यूम स्तर निर्धारित करता है।
AddSound AutomaticChangeWord सक्षम करें /usr/share/xneur/sounds/itemback.wavयह विकल्प बताता है कि किस क्रिया और किस ध्वनि का उपयोग करना है। क्रियाओं की एक सूची, जिस पर आप एक नोटिस लटका सकते हैं, आपकी कॉन्फ़िगरेशन फ़ाइल में उपलब्ध है।
शिक्षामित्र हांयह यहाँ सरल है। अपनी शब्दावली के लिए स्व-सीखने के कार्यक्रम को सक्षम करें या न करें।
लेआउटरैमरेमोडे हाँप्रत्येक विंडो के लिए लेआउट या सभी विंडो के लिए एक लेआउट याद रखें? यह आप पर निर्भर है।
LayoutRememberModeForApp शराबयह विकल्प xneur को सभी एप्लिकेशन विंडो के लिए एकल लेआउट के लिए बाध्य करता है। वाइन में हर जगह मेरा एक आम लेआउट है।
SaveSelectionMode हाँआपने xneur के साथ टेक्स्ट को चुना और बदल दिया है। यदि विकल्प सक्षम है, तो चयन परिवर्तन के बाद भी रहेगा, जिससे स्विचिंग संभव हो सकेगी।
RotateLayoutAfterChangeSelectedMode संनिर्धारित करें कि चयनित पाठ को सही किया गया है या नहीं, सिस्टम लेआउट को स्विच करने के लिए।
SendDelay 0इंटरसेप्टेड कीस्ट्रोक को एप्लिकेशन पर वापस भेजने से पहले की देरी।
लोगसेव हाँकीलॉगर चालू करें, अर्थात टाइप किए गए टेक्स्ट को किसी फ़ाइल में सहेजें।
LogSize 10000000हम लॉग फ़ाइल (बाइट्स में) का आकार निर्धारित करते हैं।
LogMail to_me@mail.ruयदि विकल्प परिभाषित किया गया है, तो टाइप किए गए पाठ का लॉग इस ईमेल पर भेजा जाएगा।
LogHostIP 127.0.0.1एक होस्ट जो ईमेल सेवाएं प्रदान करता है (भेजने के लिए मेल सर्वर, जिसे उपयोगकर्ता नाम और पासवर्ड की आवश्यकता नहीं है)। शायद संकेत आईपी नहीं है, लेकिन एक नाम है।
लॉगपॉर्ट 25मेल सर्वर पोर्ट।
CorrectIncidentalCaps हाँएक आकस्मिक कैप को ठीक करने का विकल्प।
CorrectTwoCapitalLetter हाँTWO अपरकेस अक्षरों को सही करने का विकल्प।
CorrectCapitalLetterAfterDot हाँएक अवधि या विस्मयादिबोधक बिंदु के बाद अपरकेस के लिए एक निचले अक्षर को ठीक करता है।
CorrectTwoSpaceWithCommaAndSpace हाँअल्पविराम के लिए एक डबल स्थान को ठीक करता है।
CorrectTwoMinusWithDash हांडैश पर एक डबल माइनस को ठीक करता है।
CorrectCWithCopyright हाँसही © को ©
CorrectTMWithTrademark हाँ™ पर सुधार (टीएम)।
CorrectRWithRegistered हाँसही करने के लिए ® से ®।
FlushBufferWhenPressEscape हाँयदि यह विकल्प सक्षम है, तो एस्केप प्रेस आंतरिक स्विचिंग बफर को रीसेट करेगा।
FlushBufferWhenPressEnter नहींयदि विकल्प सक्षम है, तो जब आप Enter दबाते हैं, तो आंतरिक स्विचिंग बफर रीसेट हो जाएगा।
DontProcessWhenPressEnter नहींयदि एंटर दबाया गया है, तो शब्द संसाधित नहीं होगा, जो तत्काल दूतों में सुविधाजनक है।
ShowOSD नहींऑन-स्क्रीन संदेश दिखाएं। वह पुराना हो।
FontOSD - * - * - * - * - * - 32 - * - * - * - * - * - * - * - uऑन-स्क्रीन संदेशों के लिए एक फ़ॉन्ट का चयन करें। वह पुराना हो।
AddOSD XneurStart सक्षम X न्यूरल स्विचर लॉन्च किया गयायह विकल्प बताता है कि किस क्रिया और किस स्क्रीन संदेश का उपयोग करना है। क्रियाओं की एक सूची, जिस पर आप एक नोटिस लटका सकते हैं, आपकी कॉन्फ़िगरेशन फ़ाइल में उपलब्ध है।
ShowPopup हाँपॉप-अप संदेश दिखाएं।
पॉपअपएक्सपायरटाइमआउट 1500पॉपअप संदेश प्रदर्शन अंतराल। इस कार्यान्वयन में, प्रदर्शन लाइब्रेरी काम नहीं करती है।
AddPopup XneurStart सक्षम X न्यूरल स्विचर लॉन्च किया गयायह विकल्प इंगित करता है कि कौन सी क्रिया और किस पॉप-अप संदेश का उपयोग करना है। क्रियाओं की एक सूची, जिस पर आप एक नोटिस लटका सकते हैं, आपकी कॉन्फ़िगरेशन फ़ाइल में उपलब्ध है।
चेकऑनप्रोसेस हाँएक शब्द मक्खी पर या Entrer दबाने के बाद देखें। मैं मक्खी पर प्राथमिकता देता हूं।
DisableCapsLock हाँकैप्स को बिल्कुल अक्षम करें।
CorrectSpaceWithPunctuation संविराम चिह्नों से पहले रिक्त स्थान निकालें।
स्वत: पूर्णता हाँशब्द पूर्णता चालू करें।
AddSpaceAfterAutocompletion नहींस्वत: पूर्णता के बाद एक स्थान जोड़ना।
स्वत: पूर्णताइन अनुप्रयोगों में स्वतः पूर्णता अक्षम कर दी जाएगी।
समस्या निवारणयदि बैकस्पेस दबाया गया है, तो ऑटो स्विचिंग को अक्षम करता है।
यययययययय यययययय ययययय ययययययय यययय यययययय यययय ययययययय ययययययययय यययययययययययय ययययय यययययय ययययययययययययययययदि बाएं तीर दबाया जाता है, तो ऑटो-स्विचिंग को अक्षम करता है।
समस्या निवारणयदि सही तीर दबाया जाता है, तो ऑटो-स्विचिंग को निष्क्रिय कर देता है।
समस्या निवारणयदि अप एरो दबाया गया है तो ऑटो-स्विचिंग को निष्क्रिय कर देता है।
समस्या निवारणयदि डाउन एरो दबाया गया है तो ऑटो-स्विचिंग को निष्क्रिय कर देता है।
समस्या निवारणयदि डिलीट को दबाया जाता है तो ऑटो-स्विचिंग को निष्क्रिय कर देता है।
समस्या निवारणयदि आप लेआउट स्विच करते हैं तो ऑटो-स्विचिंग को अक्षम कर देता है।
ट्रबलशूटफुलस्क्रीनयदि एप्लिकेशन पूर्ण-स्क्रीन मोड में है, तो ऑटो-स्विचिंग को अक्षम कर देता है।
संगतता। साथ ही हांअन्य अनुप्रयोगों में ऑटो-पूर्णता के साथ संगतता के लिए क्रच।
ट्रैकिंगइन्पुट हाँइस विकल्प को अक्षम करने से कीबोर्ड को बाधित करने से कार्यक्रम की पूर्ण विफलता हो जाएगी।
ट्रैकिंगमाउस हांइस विकल्प को अक्षम करने से माउस को इंटरसेप्ट करने से प्रोग्राम की पूर्ण विफलता हो जाएगी।
DontSendKeyRelease नहींKeyRelease कीबोर्ड ईवेंट न भेजें। एक बहुत ही विशिष्ट बात, विकल्प के मूल्य को बदलना बेहतर नहीं है।
आगे क्या है?
भविष्य में मैं इस बारे में बात करने की योजना बना रहा हूं:
- एल्गोरिदम xneur।
- एक कार्यसमूह के एक उदाहरण के साथ, एक keylogger के रूप में Xneur।
- अच्छी तरह से और अन्य xlib के बारे में दिलचस्प, लिनक्स के तहत कार्यक्रम और वह सब।
अगले भाग
एक्स न्यूरल स्विचर - कुकबुक (भाग 1)। अग्रदूत और एनालॉग्स
एक्स न्यूरल स्विचर - कुकबुक (भाग 2)। एल्गोरिदम