मैं 5 साल से ज़्यादा समय से Linux को मुख्य सिस्टम के रूप में इस्तेमाल कर रहा हूँ, लेकिन Office (Exchange से जुड़ा Outlook, MS Project), सरकारी/वित्तीय साइटों जैसे Windows-निर्भर प्रोग्राम कभी-कभी मुझे Windows की ओर खींच लेते हैं—यह बात हमेशा खलती रही। Wine बहुत कुछ संभाल लेता है, लेकिन जहाँ Microsoft का गहरा integration होता है, वहाँ यह टूट जाता है।

इसीलिए मैंने इसे बनाया। Linux ऐप मेनू में Windows ऐप का आइकन क्लिक करते ही वह native Linux विंडो की तरह खुलता है। यह fullscreen RDP नहीं है; हर ऐप अलग-अलग Linux विंडो के रूप में दिखाई देता है।


यह कैसे काम करता है

बैकग्राउंड में Windows कंटेनर (dockur/windows) को Podman पर चलाया जाता है, और FreeRDP RemoteApp के ज़रिए हर Windows ऐप को native Linux विंडो की तरह दिखाया जाता है। guest के अंदर bearer-authenticated HTTP agent चलाया जाता है, जो host→guest command channel को संभालता है (PowerShell विंडो नहीं खुलती)।

  • ऐप आइकन क्लिक करते ही तुरंत लॉन्च (zero-config first run)
  • taskbar grouping, file associations, alt-tab सब सामान्य रूप से काम करते हैं
  • guest में इंस्टॉल किए गए ऐप्स का automatic discovery (Registry App Paths, Start Menu, UWP/MSIX, Chocolatey, Scoop)
  • idle होने पर कंटेनर अपने आप pause, हर 7 दिन में RDP password अपने आप rotate
  • multi-DE HiDPI automatic scaling (GNOME, KDE, Sway, Hyprland, Cinnamon)
  • Python + Qt6 (Electron का इस्तेमाल नहीं, ज़्यादातर stdlib)

इसी क्षेत्र के दूसरे टूल्स से अंतर

winapps, winboat, LinOffice भी यही dockur + FreeRDP संयोजन इस्तेमाल करते हैं। winpodx की खास बातें:

  • zero-config first run (दूसरे टूल्स में manual setup या GUI installer)
  • air-gapped install path के लिए स्पष्ट समर्थन (--source, --image-tar, --skip-deps)
  • ज़्यादा गहरा auto-config (auto suspend, password rotation, multi-DE HiDPI)

RDPWrap का Rust में पुनः-इम्प्लीमेंटेशन (rdprrap)

इसे बनाते समय एक side quest उम्मीद से कहीं ज़्यादा वीकेंड खा गया।

Windows Desktop प्रति-उपयोगकर्ता RDP session को एक तक सीमित करता है, इसलिए दूसरा ऐप खोलने पर पहला session छिन जाता है। सामान्य समाधान RDPWrap है, लेकिन उसका कई वर्षों से maintenance नहीं हुआ है और वह सिर्फ़ opaque C++ binary के रूप में वितरित होता है।

इसलिए मैंने इसे Rust में शुरू से फिर से इम्प्लीमेंट किया (rdprrap, MIT)। यह winpodx में bundle होकर आता है और अपने आप इंस्टॉल हो जाता है, तथा अधिकतम 10 independent RDP sessions को support करता है।


सीमाएँ

  • कंटेनर के लिए कुछ GB RAM चाहिए
  • GPU passthrough अभी नहीं है (performance-sensitive कामों, गेम्स के लिए Wine + DXVK की सिफारिश)
  • RAIL में ऐप-विशिष्ट व्यवहार के कुछ हिस्से अभी पूरी तरह polish नहीं हुए हैं
  • beta (v0.3.0)

इंस्टॉलेशन

समर्थित distributions: openSUSE, Fedora, Debian/Ubuntu, RHEL/Alma/Rocky 9 और 10. AUR लंबित है।
curl -fsSL https://raw.githubusercontent.com/kernalix7/winpodx/main/install.sh | bash

या फिर prebuilt RPM/deb packages GitHub Release से डाउनलोड किए जा सकते हैं। openSUSE/Fedora के लिए OBS के ज़रिए:
sudo zypper addrepo https://download.opensuse.org/repositories/home:/…
sudo zypper install winpodx


GitHub: https://github.com/kernalix7/winpodx

यह अभी beta चरण में है, इसलिए issues का स्वागत है।

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.