- SimpleKVM Windows के लिए एक प्रोग्राम है, जो एक ही keyboard, mouse और monitor सेट से कई computers को नियंत्रित करने देता है, और high-resolution तथा high-refresh-rate KVM की लागत कम करने का एक विकल्प है
- उपयोगकर्ता को हर computer को monitor से connect करना है, keyboard और mouse को USB Switch से जोड़ना है, फिर किसी एक computer पर SimpleKVM चलाना है
- स्विचिंग USB Switch के बटन या hotkey से की जा सकती है, और प्रोग्राम USB device के connect/disconnect होने या hotkey input को detect करता है
- monitor input switching बहुत से monitors द्वारा समर्थित DDC/CI command के जरिए की जाती है, और multi-monitor configuration भी supported है
- डाउनलोड GitHub के releases सेक्शन में उपलब्ध है, और फिलहाल यह केवल Windows के लिए उपलब्ध है
SimpleKVM किस समस्या को हल करता है
- SimpleKVM एक ही keyboard, mouse और monitor से कई computers को नियंत्रित करने के लिए बनाया गया प्रोग्राम है
- सामान्य KVM, खासकर high-resolution और high-refresh-rate को support करने वाले products, महंगे होते हैं
- SimpleKVM सस्ते USB Switch के साथ इस्तेमाल करके बिना सैकड़ों dollars खर्च किए मिलती-जुलती setup बनाने में मदद करता है
जरूरी सेटअप
- उपयोगकर्ता को यह setup इस क्रम में करना है
- computers को monitor से connect करें
- mouse और keyboard को USB Switch से connect करें
- किसी एक computer पर SimpleKVM चलाएं
- इसके बाद USB Switch या hotkey से computers के बीच switch किया जा सकता है
यह कैसे काम करता है
- प्रोग्राम यह detect करता है कि USB device कब connect या disconnect हुआ
- hotkey input को भी switching trigger के रूप में इस्तेमाल किया जा सकता है
- switch करते समय यह monitor को DDC/CI command भेजकर input source बदलता है
- DDC/CI एक ऐसा तरीका है जिसे बहुत से monitors support करते हैं
मल्टी मॉनिटर और रनटाइम वातावरण
- SimpleKVM multi-monitor को support करता है
- release को releases सेक्शन से डाउनलोड किया जा सकता है
- फिलहाल उपलब्ध build Windows के लिए है
USB Switch के उदाहरण
- कोई भी USB Switch इस्तेमाल किया जा सकता है
- README में बिना किसी affiliation के उदाहरण के तौर पर ये products दिए गए हैं
- SABRENT 4 Port USB Switch for $29 USD: 4 computers को support करता है
- 2 port USB switch for $24 USD: 2 computers को support करता है
- 2 ports for for $3 USD: 2 computers को support करता है, input USB एक है
startup सेटिंग और स्रोत
- startup पर अपने-आप चलाने के लिए settings button पर click करें और Run at Startup को check करें
- SimpleKVM को haimgel के display-switch प्रोग्राम से प्रेरणा मिली है
1 टिप्पणियां
Hacker News टिप्पणियाँ
मोटे तौर पर कहें तो “मैं भी इसी निष्कर्ष पर पहुँचा”, लेकिन मेरा सेटअप थोड़ा ज़्यादा जटिल है, पर मेरे हिसाब से बेहतर और सस्ता भी है
ऊपर वाला तरीका हर कंप्यूटर पर इंस्टॉल करना पड़ता है, इसलिए मेरे लिए मुश्किल है, और यह USB switching पर निर्भर है, इसलिए पूरी तरह remote trigger संभव नहीं है
इसके बजाय monitor input switching के लिए DDC commands इस्तेमाल करता हूँ, USB के लिए एक-बटन वाला 25 डॉलर का USB KVM, और button input के लिए 5~15 डॉलर का AliExpress macropad
Stream Deck जैसे तैयार प्रोडक्ट कुछ बटनों के लिए ही 80 डॉलर से ऊपर पड़ते हैं, इसलिए महंगे हैं, और सस्ते macropad को bundled software की जगह https://github.com/rOzzy1987/MacroPad जैसे GitHub project से program किया जा सकता है
USB KVM के बटन को FingerBot 16 डॉलर या Switchbot 28 डॉलर से दबवाता हूँ, और AHK shortcuts को watch करके DDC commands और USB switch button को साथ में trigger करता है
कुछ सेकंड की देरी होती है, लेकिन सिर्फ एक जगह से control होता है और पूरी तरह remote execution भी संभव है
आखिर में यह थोड़ा unstable रहा, और दूसरी चीज़ें ज़्यादा बिगड़ी हुई थीं, इसलिए ज़्यादातर छोड़ दिया
Macropad अच्छा idea है, और USB switch कहाँ रखा है यह पता करना हमेशा झंझट वाला रहा है
अमेरिका की shipping cost पता नहीं, लेकिन यूरोप की shipping 15 डॉलर थी
KVM पर रिसर्च करते-करते मैं भी आखिर इसी निष्कर्ष पर पहुँचा कि DDC ही समाधान है
मेरे मामले में दो Windows मशीनें और dual-monitor setup है, और मैं CLI वाले NirSoft ControlMyMonitor और Elgato Stream Deck का इस्तेमाल करता हूँ
सामान्य KVM में दोनों monitors सिर्फ एक ही कंप्यूटर दिखाते हैं, लेकिन मैं चाहता हूँ कि monitor A पर एक कंप्यूटर और monitor B पर दूसरा कंप्यूटर दिखे, और ज़रूरत पड़े तो उन्हें आपस में बदल सकूँ
मैं portrait/landscape monitors साथ में इस्तेमाल करता हूँ, और mouse व keyboard को monitor configuration से स्वतंत्र रूप से switch करना चाहता हूँ
मैं हर कंप्यूटर पर Stream Deck software चलाता हूँ, और Stream Deck USB switch से जुड़ा है
एक साधारण USB switcher भी काफ़ी महंगा था, और कभी-कभी Linux में ऐसे driver माँगता था जो चलते ही नहीं थे
इसलिए मैंने USB hub और switch वाला एक simple circuit board जल्दी से डिज़ाइन किया और JLCPCB या PCBWay जैसी DIY fabrication service से assembly भी करवा ली
2-to-1 switch वाला 5 पीस 25 यूरो में पड़ा, और मुझे circuit design का कोई अनुभव नहीं था, soldering भी नहीं की थी, फिर भी यह पूरी तरह काम करता है
यह इस software के साथ भी अच्छी तरह फिट लग रहा है, इसलिए शायद मैं इसे भी आज़माऊँ
मेरे हिसाब से custom बनाने से कम महंगा है
grounding और अलग-अलग potential वाले ground loop से बचाव शायद इसका काफ़ी बड़ा हिस्सा होगा
कुछ USB switchers का Linux में ठीक से काम न करना दिलचस्प है
मैंने सोचा था कि यह एक simple USB hub होगा, इसलिए अलग driver की ज़रूरत नहीं होगी, लेकिन https://www.aliexpress.com/item/1005006202631772.html जैसे प्रोडक्ट, जिनमें PCs के बीच file transfer या mouse sharing जैसे advanced features होते हैं, उनमें अक्सर special software और drivers की ज़रूरत पड़ती है
यह जितना हो सके उतना “dumb” device है, इसलिए एक review के मुताबिक़ अगर बहुत ज़्यादा plug/unplug किया जाए तो port थोड़ा unstable हो सकता है, लेकिन मेरे 2 Dell P2419H monitors पर यह अब भी पूरी तरह काम करता है
मैंने यह प्रोडक्ट इसलिए चुना क्योंकि इसकी सारी केबलें पीछे की तरफ़ हैं, और OP के GitHub page में remote वाला model भी ठीक लगता है
ऐसा ही setup ढूँढते हुए मैंने कुछ इस्तेमाल किए और रिसर्च भी की, लेकिन जिन प्रोडक्ट्स को मैंने देखा उनमें किसी में भी driver की ज़रूरत नहीं थी
मैं इस काम के लिए udev इस्तेमाल करता हूँ। USB switch दिखते ही DDC command भेजता हूँ
ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="1a40", ENV{ID_MODEL_ID}=="0101", RUN+="/usr/bin/ddcutil --sn ABCDEFGHI setvcp 60 0x0f"अच्छे KVM, खासकर Level1Tech के प्रोडक्ट्स, सभी मॉनिटरों को वर्चुअली लगातार connected रखते हैं, इसलिए मशीनों के बीच जाने पर भी विंडो की position वही बनी रहती है
client PC के नज़रिए से USB/DisplayPort device कभी गायब नहीं हुआ, इसलिए device को दोबारा plug करने वाली delay भी नहीं होती
peripherals को dock में बहुत सारे जोड़कर सिर्फ upstream Thunderbolt को switch भी किया जा सकता है, लेकिन वह तरीका ठीक से काम नहीं करता
घटिया KVM बनाना आसान है, अच्छा KVM बनाना मुश्किल
https://www.store.level1techs.com/products/hardware से मेरा कोई संबंध नहीं है
Mac और Linux box (Gnome) के बीच स्विच करने पर Mac सो जाता था, और Gnome default monitor configuration पर लौटकर विंडो की position बदल देता था
EDID emulation वाला DP 1.2 KVM तो है, लेकिन उससे DP 1.4 के फायदे खो जाते हैं
FAQ forum में भी इसका ज़िक्र है: https://forum.level1techs.com/t/official-l1techs-kvm-faq-ult...
USB receiver इस्तेमाल करने वाले wireless peripherals के साथ इसे चलाएँ तो cable-free setup बन जाता है, और laptop में सिर्फ एक cable लगाते ही सब कुछ connect हो जाता है
मैं काम के PC और personal PC के बीच दिन में कई बार आता-जाता हूँ, और दो Linux मशीनों पर dual monitor के साथ 4K 60Hz और 2K 144Hz में अब तक यह पूरी तरह सही चला है
USB audio, mic, 4K camera, printer, keyboard और mouse तक जुड़े हुए हैं
ठीक-ठाक window manager इतने smart होते हैं कि monitor वापस आने पर विंडो को उसकी पुरानी जगह पर लौटा दें
source switching कभी एक बार भी fail नहीं हुई, और जिन delays की दूसरे लोग बात करते थे, वे सिर्फ monitor के अपने HDMI handshake process की वजह से थीं
मेरे पास इससे कहीं महंगा TESmart https://www.amazon.com/gp/product/B08N494N7X भी था, लेकिन Thunderbolt dock https://www.amazon.com/gp/product/B08HR3T837 और MBP के combination में अजीब compatibility problems थीं, इसलिए उसे इस्तेमाल नहीं कर पाया
support team से भी पूछा, लेकिन आखिर तक कारण समझ नहीं आया
ऐसे tools में ध्यान रखने वाली बात यह है कि DisplayPort पर आमतौर पर command सिर्फ active input के लिए ही allowed होते हैं
एक बार किसी दूसरे input पर चले जाएँ तो फिर वापस आने के लिए दूसरी computer side से चलाना पड़ता है, इसलिए यह असुविधाजनक है
इसके उलट HDMI आमतौर पर non-active input ports पर भी DDC commands allow करता है
यह अनिवार्य है या नहीं, पता नहीं, लेकिन मैंने जितने display इस्तेमाल किए हैं, उनमें ऐसा ही था
यह तो बिल्कुल वही project है जिसकी मुझे ज़रूरत थी. सोच रहा हूँ कि क्या सिर्फ Thunderbolt dock को switch करना भी संभव है
उदाहरण के लिए, चार computers हों जो Thunderbolt support करते हों, और उनके बीच सिर्फ एक USB-C को switch किया जाए
hardware पर असर पड़ेगा इस डर से मैंने खुद कोशिश नहीं की, और इस पोस्ट से प्रेरित होकर Thunderbolt KVM खोजा तो https://sabrent.com/products/sb-tb4k और https://www.reddit.com/r/Thunderbolt/comments/11gos6n/kvm_sw... जैसी चीज़ें मिलीं
अगर आप delay सह सकते हैं, तो शायद यह काम कर जाए
सार यह है कि हर computer को monitor के हर input में अपनी HDMI cable लगानी होगी
यह वैसा असली KVM नहीं है जैसा बहुत लोग सोचते हैं; यह बस monitor का input select button दबाने की ज़रूरत खत्म करता है
कम-से-कम एक machine चालू होनी चाहिए और उस पर Windows चलना चाहिए, लेकिन शायद सिर्फ एक पर ही ऐसा होना काफ़ी है
USB device insert होने का पता चलते ही monitor input को Windows computer पर बदल देता है, और USB device हटने का पता चलते ही Linux computer पर वापस कर देता है
मैं पहले से ही hotkey दबाने पर script चलाकर
xrandrसे monitor rotation बदलने जैसा मिलता-जुलता काम कर रहा हूँजब तक मैं फिर से एक ही कंप्यूटर पर नहीं लौटा, तब तक केबल सीधे निकालकर लगाता था; फिर README में बताए गए Ugreen USB switch का इस्तेमाल किया; और आखिरकार built-in KVM monitor पर आकर ठहरा, जो सबसे अच्छा निकला
समस्या तब आती है जब आप काम और गेमिंग के लिए एक ही monitor इस्तेमाल करना चाहते हैं
4K या high refresh rate वाले KVM switch बहुत महंगे होते हैं और उनकी reliability भी अक्सर कम होती है, इसलिए आम तौर पर USB switch इस्तेमाल किया जाता है और monitor input हाथ से बदला जाता है
यहाँ का software “input source change” बटन दबाने का काम कम कर देता है, लेकिन यह Windows-only लगता है, इसलिए अगर दोनों machines Windows नहीं हैं तो सिर्फ एक दिशा में switch होगा और वापस आते समय manual switch करना पड़ेगा
गेमिंग के लिए उपयुक्त, high DPI, high refresh rate और built-in KVM वाला monitor Gigabyte M28U है
एक बटन से input source और USB peripherals साथ में बदल जाते हैं और यह काफ़ी अच्छी तरह काम करता है
M32U भी है, लेकिन उसका DPI कम है
क्योंकि यह detect कर सकता है कि USB device हटाई गई है, यानी दूसरे कंप्यूटर पर स्विच हुआ है, और फिर लगाई गई है, यानी इस कंप्यूटर पर वापस आया है
मैंने भी ऐसा ही कुछ खुद बनाया था, और इसे USB switch या दूसरे hardware के बिना चलने लायक बनाया
HDMI/USB-C monitor को DDC commands भेजता हूँ, और Logi MX keyboard तथा mouse को HID++ byte codes भेजता हूँ
कोड शेयर करने लायक बहुत बिखरा हुआ है, लेकिन जो लोग खुद बनाना चाहते हैं, वे Logi Bolt Receiver, Logitech Unified Receiver, MX Keys Mini Bluetooth, और MX Anywhere 3 Bluetooth के लिए हर host पर switch कराने वाली byte sequences भेजने के तरीके से इसे बना सकते हैं
मेरी मौजूदा setup में Dell U2415 monitor के दो units और Linux x86_64 desktop है, और मैं Bluetooth तथा dongle दोनों को सपोर्ट करने वाला Logi vertical mouse और ATK(A.JAZZ) keyboard इस्तेमाल करता हूँ
मैं Raspberry Pi 5 के Bluetooth और micro-HDMI के दो ports का इस्तेमाल करके keyboard/monitor/mouse को pure software तरीके से share करना चाहता हूँ, और hardware KVM पर बहुत पैसा खर्च नहीं करना चाहता