9 poin oleh kernalix7 21 hari lalu | Belum ada komentar. | Bagikan ke WhatsApp

Saya sudah memakai Linux sebagai sistem utama selama lebih dari 5 tahun, tetapi aplikasi yang bergantung pada Windows seperti Office (Outlook yang terhubung ke Exchange, MS Project) serta situs pemerintah/keuangan kadang masih menarik saya kembali ke Windows, dan itu selalu menjadi keluhan saya. Wine memang bisa menangani banyak hal, tetapi akan runtuh pada bagian yang terintegrasi sangat dalam dengan Microsoft.

Jadi saya membuat ini. Jika Anda mengklik ikon aplikasi Windows dari menu aplikasi Linux, aplikasi itu akan terbuka seperti jendela Linux native. Bukan RDP fullscreen, melainkan setiap aplikasi muncul sebagai jendela Linux terpisah yang independen.


Cara kerjanya

Di latar belakang, kontainer Windows (dockur/windows) dijalankan di atas Podman, lalu FreeRDP RemoteApp menampilkan setiap aplikasi Windows seperti jendela Linux native. Di dalam guest, dijalankan HTTP agent dengan autentikasi bearer untuk menangani kanal perintah host→guest (tanpa jendela PowerShell muncul).

  • Jalankan langsung begitu ikon aplikasi diklik (first run zero-config)
  • Pengelompokan taskbar, asosiasi file, alt-tab semuanya berfungsi normal
  • Otomatis mendeteksi aplikasi yang terpasang di guest (Registry App Paths, Start Menu, UWP/MSIX, Chocolatey, Scoop)
  • Saat idle, kontainer otomatis di-suspend, dan password RDP dirotasi otomatis setiap 7 hari
  • Auto-scaling HiDPI multi-DE (GNOME, KDE, Sway, Hyprland, Cinnamon)
  • Python + Qt6 (tidak memakai Electron, terutama stdlib)

Perbedaan dibanding alat lain di area yang sama

winapps, winboat, dan LinOffice juga memakai kombinasi dockur + FreeRDP yang sama. Pembeda winpodx:

  • First run zero-config (alat lain memerlukan pengaturan manual atau installer GUI)
  • Dukungan eksplisit untuk jalur instalasi air-gapped (--source, --image-tar, --skip-deps)
  • Auto-config yang lebih dalam (auto suspend, password rotation, HiDPI multi-DE)

Implementasi ulang RDPWrap dalam Rust (rdprrap)

Saat membuatnya, ada side quest yang memakan jauh lebih banyak akhir pekan daripada yang saya perkirakan.

Windows Desktop membatasi satu sesi RDP per pengguna, jadi saat aplikasi kedua dibuka, sesi pertama akan direbut. Solusi standar, RDPWrap, sudah tidak dirawat selama beberapa tahun dan hanya didistribusikan sebagai biner C++ tertutup yang tidak transparan.

Karena itu, saya mengimplementasikannya ulang dari nol di Rust (rdprrap, MIT). Ini dibundel ke dalam winpodx dan diinstal otomatis, serta mendukung hingga 10 sesi RDP independen.


Keterbatasan

  • Perlu RAM beberapa GB untuk kontainer
  • GPU passthrough belum ada (untuk pekerjaan sensitif performa atau game, Wine + DXVK lebih disarankan)
  • Masih ada bagian perilaku spesifik per aplikasi pada RAIL yang belum sepenuhnya dirapikan
  • Beta (v0.3.0)

Instalasi

Distribusi yang didukung: openSUSE, Fedora, Debian/Ubuntu, RHEL/Alma/Rocky 9 dan 10. AUR sedang menunggu.
curl -fsSL https://raw.githubusercontent.com/kernalix7/winpodx/main/install.sh | bash

Atau Anda bisa mengambil paket RPM/deb prebuilt dari GitHub Release. Untuk openSUSE/Fedora melalui OBS:
sudo zypper addrepo https://download.opensuse.org/repositories/home:/…
sudo zypper install winpodx


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

Karena masih tahap beta, issue sangat diterima.

Belum ada komentar.

Belum ada komentar.