DeskHop – तेज़ desktop switching फीचर
(github.com/hrvach)DeskHop - तेज़ desktop switching
- मुफ़्त और open source
- switching के समय लगभग न के बराबर latency
- mouse pointer को कंप्यूटरों के बीच drag करके switch किया जा सकता है
- software install करने की ज़रूरत नहीं
- सस्ते और आसानी से मिलने वाले components का उपयोग (15 euro से कम)
- 3D printer से प्रिंट किया जा सकने वाला snap-fit case
- outputs के बीच पूरी galvanic isolation
- Linux, macOS, Windows पर काम करता है
यह कैसे काम करता है
- यह डिवाइस keyboard/mouse और कंप्यूटरों के बीच mediator की तरह काम करता है, और एक साथ दो कंप्यूटरों से connection बनाए रखता है
- user की पसंद के अनुसार तय करता है कि mouse और key input किस कंप्यूटर को भेजना है
- mouse को दूसरे desktop पर drag करने पर keyboard भी अपने-आप switch हो जाता है
Mouse
- mouse HID report descriptor को absolute coordinates इस्तेमाल करने के लिए बदलता है, और mouse report (relative movement) को अंदरूनी तौर पर accumulate करके सटीक position बनाए रखता है
- जब cursor दूसरे monitor की दिशा में monitor area से बाहर जाने की कोशिश करता है, तो Y coordinate को बनाए रखता है और maximum X को minimum X में बदलकर output switch करता है
- cursor को दूसरे monitor पर उसी ऊंचाई पर दिखाता है ताकि switching का अनुभव smooth लगे
Keyboard
- USB host के रूप में keyboard को समय-समय पर poll करता है, और पहले से सेट shortcut keys (जैसे Caps Lock) खोजकर characters को दूसरे output पर भेजता है
- कौन-सा output इस्तेमाल हो रहा है, यह visually दिखाने के लिए keyboard LED का feedback के रूप में पुन: उपयोग करता है
- हर कंप्यूटर की LED state याद रखता है, ताकि पिछली स्थिति से काम जारी रखा जा सके
Prebuilt image का उपयोग
- prebuilt images उपलब्ध हैं
- Pico board को PCB के A slot में लगाएँ, और cable जोड़ते समय board का button दबाए रखें; फिर यह सिस्टम में USB drive के रूप में दिखाई देगा
- संबंधित
board_A.uf2file कॉपी करें और B के लिए भी यही दोहराएँ
Firmware upgrade
- विकल्प 1: case खोलें, और हर Pico को connect करते समय button दबाए रखते हुए सही
uf2file कॉपी करें - विकल्प 2: एक खास key combination (
Right Shift, P, H, X, Left Shift) का उपयोग करके BOOTSEL mode में जाएँ और Picos को bootloader upgrade mode में स्विच करें
अन्य फीचर
- जब mouse को बारीकी से adjust करने की ज़रूरत हो, तब
Right ALTदबाकर mouse हिलाने पर mouse speed काफ़ी धीमी हो जाती है, जिससे precise काम किया जा सकता है
Hardware
- circuit सस्ता है (प्रति unit 4.10 euro), हाथ से solder किया जा सकता है, और यह दो Raspberry Pi Pico boards पर आधारित है जो ज़्यादातर suppliers के पास stock में मिल जाते हैं
- Picos को Analog Devices ADuM1201 dual-channel digital isolator (~3 euro) का उपयोग करके UART से जोड़ा जाता है
- RP2040 के programmable IO जादू का उपयोग करके USB implement करने वाले शानदार project की वजह से यह USB host और device दोनों की तरह काम कर सकता है
PCB
- DIY build को जितना हो सके आसान रखने के लिए traces केवल एक side पर रखे गए हैं और components की संख्या न्यूनतम रखी गई है
- USB D+/D- differential lines की लंबाई समान होनी चाहिए, लेकिन PICO PCB पर संबंधित GPIO trace length के अंतर की भरपाई करने के लिए इन्हें जानबूझकर थोड़ा asymmetric रखा गया है ताकि कुल लंबाई match हो सके
Case
- 3D modeling में बहुत दक्ष न होने के कारण case सरल और बुनियादी है, लेकिन अपने उद्देश्य के लिए पर्याप्त है
- इसे प्रिंट करना आसान है, इसमें लगभग 33g filament लगता है, और कुछ घंटों में तैयार हो जाता है
- horizontal PCB movement को holes से गुजरने वाले pins रोकते हैं, और vertical movement को side के snap-fit tabs रोकते हैं, इसलिए screws की ज़रूरत नहीं होती
- micro USB connector case के side से थोड़ा बाहर निकलता है, इसलिए थोड़ा बड़ा hole होने पर cable अंदर जा सकती है
- lid snap-fit design की है, और इसे खोलने के लिए screwdriver slot दिया गया है
- ऊपर की markings recessed हैं, इसलिए crayon आदि से finish करके contrast बढ़ाया जा सकता है (या वैसे ही छोड़ा जा सकता है)
सामग्री सूची
- Raspberry Pi Pico 2, ADuM1201BRZ 1, Cap 1206 SMD 100nF 2, USB-A PCB connector 2, Headers 2.54 1x03 2
- कुल कीमत: 11.53 euro
- USB-A connector के लिए Molex MX-67643-0910 या वही dimensions साझा करने वाला कोई सस्ता alternative इस्तेमाल किया जा सकता है
- अतिरिक्त चरण: PCB fabrication (Gerber दिया गया है, JLC कुछ dollars में बना देता है, 1.6mm thickness चुनें), case की 3D printing (stl files दी गई हैं, लगभग 33g filament चाहिए)
FAQ
- क्या PCB और isolator के बिना केवल दो Pico से यह काम करेगा?
- isolator recommended है, लेकिन इसके बिना भी यह काम कर सकता है।
- अगर monitors की resolution अलग-अलग हो तो क्या होगा?
- mouse movement एक abstract coordinate space में होती है और कंप्यूटर physical screen mapping खुद calculate करता है, इसलिए बिना समस्या काम करना चाहिए।
- यह उत्पाद कहाँ खरीदा जा सकता है?
- यह बिक्री के लिए नहीं है; यह एक व्यक्तिगत non-commercial hobby project है।
- जब mouse से active screen बदलती है, तो क्या keyboard भी उसके साथ switch होता है (और उल्टा भी)?
- हाँ, इसे ऐसे बनाया गया है कि यह एक ही कंप्यूटर जैसा महसूस हो।
- क्या यह Logitech Unifying Receiver जैसे keyboard/mouse combo dongle के साथ काम करता है?
- मौजूदा version में नहीं, क्योंकि यह मानकर चलता है कि mouse अलग port में connected है। Logitech Unifying Receiver के behavior की जाँच करके support implement करना होगा।
- क्या यह ऐसे wireless mouse और keyboard के साथ काम करता है जिनके लिए अलग-अलग wireless receivers हों?
- ऐसे मामलों के लिए इसका test नहीं हुआ है, इसलिए अनपेक्षित समस्याएँ आ सकती हैं, लेकिन सैद्धांतिक रूप से इसे सीधे काम करना चाहिए।
कमियाँ
- ध्यान दें: इस फीचर का उपयोग करने के लिए दोनों कंप्यूटर connected और powered on होने चाहिए (हर board को जुड़े हुए कंप्यूटर से power मिलती है)।
- code cleanup, refactoring आदि की ज़रूरत है।
- कभी-कभी bugs और अजीब behavior होता है।
- कई तरह के devices के साथ test नहीं किया गया है, इसलिए यह उपयोगकर्ता के hardware पर कैसे काम करेगा, यह पता नहीं।
- Pico-PIO-USB को keyboard LED control support करने के लिए patch किया गया है, जबकि सामान्यतः इसे host mode में TinyUSB संभालता है।
अस्वीकरण
- इस project को आज़माने वाला हर व्यक्ति यह समझे और स्वीकार करे कि किसी भी injury, damage या अन्य परिणाम के लिए वह स्वयं ज़िम्मेदार होगा।
- safety महत्वपूर्ण है, इसलिए ज़रूरी precautions लेना और पूरे project के दौरान अपनी भलाई की ज़िम्मेदारी खुद लेना आवश्यक है।
- electric shock, burns, stress या गुस्से से बचें, और उम्मीद है कि आप इसे आनंद के साथ बनाएँगे और इस्तेमाल करेंगे।
GN⁺ की राय:
- यह लेख दो कंप्यूटर इस्तेमाल करने वाले लोगों के लिए बहुत उपयोगी हो सकता है। खासकर उन users के लिए जो एक keyboard और mouse share करके काम की efficiency बढ़ाना चाहते हैं, यह आकर्षक है।
- यह open source है, और इसका DIY approach तकनीक में रुचि रखने वाले लोगों के लिए एक दिलचस्प project हो सकता है। users अपनी ज़रूरत के हिसाब से system को adjust और improve कर सकते हैं।
- यह project तकनीकी समस्याओं को हल करने की community की innovative spirit दिखाता है। users खुद समस्या हल करते हैं और प्रक्रिया साझा करते हैं, जिससे दूसरे लोग भी लाभ उठा सकते हैं।
1 टिप्पणियां
Hacker News राय
यह बात उल्लेखनीय है कि client software के बिना भी edge detection किया जा सकता है.
मैं दस साल से भी ज़्यादा समय से Synergy नाम का software solution इस्तेमाल कर रहा हूँ. यह Wi-Fi के ज़रिए तुरंत switch हो जाता है और Windows/Mac/Linux के बीच भी काम करता है.
कभी-कभी YouTube में slider को किसी खास position पर बिल्कुल सटीक ले जाने की कोशिश करते समय माउस बहुत ज़्यादा sensitive लगता है, इसलिए हाथ बहुत सावधानी से चलाना पड़ता है.
,) और period (.) keys का इस्तेमाल करके video को frame-by-frame scrub किया जा सकता है.Windows पर Microsoft Garage द्वारा बनाया गया और अब Windows PowerToys का हिस्सा बन चुका Mouse Without Borders नाम का tool इस्तेमाल किया जा सकता है.
दूसरे मिलते-जुलते projects से प्रेरित होकर मैंने अपना खुद का version बनाया.
मैंने keyboard और mouse switch करने के लिए 4 USB hubs खरीदे, लेकिन ज़्यादातर devices इतने खराब थे कि मुझे दिन में कई बार hub को physically unplug करना पड़ता था.
दो PCs के बीच mouse और keyboard input switch करने के लिए USB 3.0 switch इस्तेमाल करना मेरी बड़ी परेशानियों में से एक है.
मैं अभी KVM switch इस्तेमाल कर रहा हूँ, और switch होने में 2-3 seconds लगते हैं, इसलिए ज़्यादातर समय मैं दूसरे computer में SSH करके tmux session इस्तेमाल करता हूँ.
यह वाकई शानदार प्रगति है.
Synergy सिर्फ software के दम पर इस समस्या को अच्छी तरह हल करता है. यह free या open source नहीं है, लेकिन काफ़ी सस्ता है.