Winpodx - Linux'ta Windows uygulamalarını yerel pencereler olarak çalıştıran araç
(github.com/kernalix7)5 yılı aşkın süredir ana sistem olarak Linux kullanıyorum; ancak Office (Exchange'e bağlı Outlook, MS Project) ve kamu/finans siteleri gibi Windows'a bağımlı programların beni ara sıra Windows'a çekmesi hep can sıkıcıydı. Wine birçok şeyi hallediyor, ama Microsoft ile derin entegrasyon gerektiren kısımlarda tökezliyor.
Bu yüzden bunu yaptım. Linux uygulama menüsünde bir Windows uygulamasının simgesine tıklayınca, yerel bir Linux penceresi gibi açılıyor. Tam ekran RDP değil; her uygulama, bağımsız bir Linux penceresi olarak açılıyor.
Nasıl çalışıyor
Arka planda Podman üzerinde bir Windows konteyneri (dockur/windows) çalıştırıyor ve her Windows uygulamasını yerel Linux penceresi gibi göstermek için FreeRDP RemoteApp kullanıyor. Konuk sistem içinde bearer kimlik doğrulamalı bir HTTP agent çalıştırarak host→guest komut kanalını yönetiyor (PowerShell penceresi açılmıyor).
- Uygulama simgesine tıklayınca hemen çalışır (sıfır yapılandırmalı ilk çalıştırma)
- Görev çubuğu gruplaması, dosya ilişkilendirmeleri, alt-tab her şey normal çalışır
- Konukta kurulu uygulamaları otomatik keşfeder (Registry App Paths, Start Menu, UWP/MSIX, Chocolatey, Scoop)
- Boşta kaldığında konteyneri otomatik askıya alır, RDP parolasını her 7 günde bir otomatik döndürür
- Çoklu DE HiDPI otomatik ölçekleme (GNOME, KDE, Sway, Hyprland, Cinnamon)
- Python + Qt6 (Electron kullanmıyor, ağırlıklı olarak stdlib)
Aynı alandaki araçlardan farkı
winapps, winboat ve LinOffice de aynı dockur + FreeRDP kombinasyonunu kullanıyor. winpodx'in farkları:
- Sıfır yapılandırmalı ilk çalıştırma (diğer araçlarda manuel ayar veya GUI kurucu gerekiyor)
- Air-gapped kurulum yoluna açık destek (
--source,--image-tar,--skip-deps) - Daha derin otomatik yapılandırma (otomatik askıya alma, parola döndürme, çoklu DE HiDPI)
RDPWrap'ın Rust ile yeniden uygulanması (rdprrap)
Bunu geliştirirken beklediğimden çok daha fazla hafta sonumu yiyen bir yan görev de çıktı.
Windows Desktop, kullanıcı başına RDP oturumunu bir tane ile sınırlandırıyor; bu yüzden ikinci uygulamayı açınca ilk oturumu elinden alıyor. Standart çözüm olan RDPWrap yıllardır bakım görmüyor ve yalnızca şeffaf olmayan C++ ikili dosyaları olarak dağıtılıyor.
Bu yüzden Rust ile sıfırdan yeniden yazdım (rdprrap, MIT). winpodx ile birlikte paketleniyor ve otomatik kuruluyor; en fazla 10 bağımsız RDP oturumunu destekliyor.
Kısıtlar
- Konteyner için birkaç GB RAM gerekiyor
- GPU passthrough henüz yok (performansa duyarlı işler ve oyunlar için Wine + DXVK önerilir)
- RAIL'de uygulamaya özgü bazı davranışlar hâlâ tam olarak cilalanmış değil
- Beta (
v0.3.0)
Kurulum
Desteklenen dağıtımlar: openSUSE, Fedora, Debian/Ubuntu, RHEL/Alma/Rocky 9 ve 10. AUR sırada.
curl -fsSL https://raw.githubusercontent.com/kernalix7/winpodx/main/install.sh | bash
Ya da önceden derlenmiş RPM/deb paketlerini GitHub Release üzerinden alabilirsiniz. openSUSE/Fedora için OBS üzerinden:
sudo zypper addrepo https://download.opensuse.org/repositories/home:/…
sudo zypper install winpodx
GitHub: https://github.com/kernalix7/winpodx
Beta aşamasında olduğu için issue'lar memnuniyetle karşılanır.
Henüz yorum yok.