एक्स न्यूरल स्विचर - कुकबुक

नमस्ते।

मैं लिनक्स के तहत चलने वाले कीबोर्ड लेआउट को स्वचालित रूप से स्विच करने के लिए एक प्रोग्राम का लेखक हूं। यह कार्यक्रम एक्सनूर या एक्स न्यूरल स्विचर है

जब मैंने यह कार्यक्रम शुरू किया था, तब लिन्टू के लिए पुंटो स्वाइर को बदलने के लिए कुछ भी नहीं था। कृपया ध्यान दें, मैंने इसे खुद के लिए व्यक्तिगत रूप से लिखा था, सब कुछ लगभग हमेशा मेरे लिए काम करता है। मैंने इसे केवल सार्वजनिक डोमेन में रखा क्योंकि यह कार्यक्रम लोगों के लिए उपयोगी है।

आगे के लेखों में मैं मौजूदा (और मौजूदा) एनालॉग्स का विश्लेषण करूंगा, और समझाऊंगा कि वे वे सब क्यों हैं जिनका आप उपयोग नहीं कर सकते हैं, और एक अच्छा कार्यक्रम क्या है xneur।

मैं सप्ताह में एक घंटे के बल पर कार्यक्रम करता हूं, इसलिए धीमे विकास के लिए मुझे दोष देना बेवकूफी है। मैं प्रोग्रामिंग करके भी पैसा कमाता हूं, लेकिन लिनक्स से जुड़ा नहीं है।

पिछले 6 वर्षों में, मैंने समय-समय पर एक्सलिब और डे दोनों के विशिष्ट बगों पर ठोकर खाई, जिसके साथ मुझे आपसी समझ हासिल करनी थी।

अब मैं खाना पकाने वाले xneur के बारे में बात करना चाहता हूं, सेटिंग्स का वर्णन करता हूं और "छोटी फुटबॉल चालें" साझा करता हूं।

नंबर 0 पर लेखों का यह भाग सबसे सरल - विवरण के लिए समर्पित है। आपको आश्चर्य होगा कि पुन्नो कितना एक्सन कर सकते हैं।

उन लोगों के लिए जिन्होंने लंबे समय तक कोशिश की, लेकिन गुरु नहीं बने। मैं हमेशा बातचीत के लिए खुला हूं। यदि कुछ काम नहीं करता है, तो मुझे सभी आवश्यक जानकारी बताएं, और मैं आपकी समस्या को हल करने का प्रयास करूंगा।

एक्स न्यूरल स्विचर क्या है।



एक्स न्यूरल स्विचर - टाइप किए गए पाठ के आधार पर, स्वचालित रूप से कीबोर्ड लेआउट स्विच करने का कार्यक्रम। यानी टाइप करते समय, यदि यह आपके द्वारा अपेक्षित लेआउट में टाइप नहीं किया गया है, तो xneur स्वचालित रूप से (या अनुरोध पर) भाषा को वांछित में बदल देगा।

स्वचालित मोड में काम करते समय, xneur स्वचालित रूप से इनपुट पाठ का लेआउट निर्धारित करता है और आपके लिए भाषा बदलता है। इस मोड में, अपवाद अनुप्रयोगों को सेट करना संभव है, जिसमें मैनुअल द्वारा स्वचालित मोड को बदल दिया जाएगा।

मैनुअल मोड में काम करते समय, xneur सेट को ट्रैक नहीं करता है, लेकिन आपको स्वचालित रूप से अंतिम शब्द टाइप किए गए लेआउट (पॉज़ / ब्रेक बटन), अंतिम टाइप लाइन (Ctrl + ब्रेक कुंजी संयोजन), चयनित पाठ (Shift + ब्रेक संयोजन) और अन्य उपयोगी कार्यों को बदलने की अनुमति देता है।

उपरोक्त सभी कीबोर्ड शॉर्टकट स्वचालित मोड में काम करते हैं। यदि किसी कारण से आप पूर्व निर्धारित संयोजनों से संतुष्ट नहीं हैं, तो आप हमेशा उन्हें प्रोग्राम सेटिंग्स में बदल सकते हैं। कार्यक्रम आपको किसी भी एप्लिकेशन को लॉन्च करने के लिए अपने स्वयं के कीबोर्ड शॉर्टकट बनाने की अनुमति देता है।

वर्तमान में, यह कार्यक्रम अठारह भाषाओं का समर्थन करता है: अर्मेनियाई, बेलोरियन, चेक, जॉर्जियाई, जर्मन, ग्रीक, अंग्रेजी, एस्टोनियाई, फ्रेंच, कजाख, लिथुआनियाई, लातवियाई, पोलिश, मोलदावियन (रोमानियाई), रूसी, स्पेनिश, यूक्रेनी और उज़्बेक।

उपरोक्त भाषाओं के लिए, कार्यक्रम में हेयुरिस्टिक विश्लेषण एल्गोरिदम हैं, लेकिन, फिर भी, प्रोग्राम अन्य भाषाओं के साथ काम कर सकता है यदि इसके लिए एस्पेल या मायस्पेल शब्दकोशों हैं।

कार्यक्रम की मुख्य विशेषताएं।



इस प्रकार, यदि आप फाइन-ट्यूनिंग में महारत हासिल करते हैं, तो आप हमेशा अपनी पसंद के हिसाब से एक्सनूर पकाएंगे।

कार्यक्रम की स्थापना।


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।

लेकिन चूंकि मैं स्रोत से कार्यक्रम को संकलित करने के लिए बहुत आलसी हूं, इसलिए मेरे पास उबंटू उपयोगकर्ताओं के लिए दो पीपीए हैं।

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)। एल्गोरिदम

Source: https://habr.com/ru/post/In132635/


All Articles