LocalDesk'e yeni eklenen Remote Screen özelliği ile:
- ✅ Gerçek Zamanlı Ekran Görüntüleme: PC ekranınızı telefonunuzdan canlı olarak görün
- ✅ Dokunmatik Kontrol: Telefon dokunmatik ekranı ile PC'nizi kontrol edin
- ✅ Mouse Kontrolü: Dokunma ile mouse hareketi ve tıklama
- ✅ Klavye Girişi: Telefon klavyesi ile PC'ye yazı yazın
- ✅ Düşük Gecikme: LAN üzerinden WebRTC ile minimum gecikme
- ✅ Güvenli Bağlantı: Mevcut pairing sistemi ile güvenli bağlantı
- Node.js 20+
- Windows (RobotJS için)
- Electron 28.0.0+
- React Native 0.82+
- Android/iOS
- react-native-webrtc
Desktop klasöründe terminali açın ve şu komutları çalıştırın:
cd desktop
npm install robotjs@^0.6.0Not:
- RobotJS native bir modüldür ve derlenmesi gerekir. Windows'ta Visual Studio Build Tools gerekli olabilir.
wrtcpaketine gerek yoktur çünkü Electron'da zaten WebRTC desteği built-in olarak vardır.
Eğer RobotJS yüklenirken hata alırsanız:
npm install --global windows-build-tools
npm install robotjs@^0.6.0RobotJS bazen sorun çıkarabilir. Alternatif olarak:
Windows için:
npm install --global node-gyp
node-gyp configure
node-gyp build
npm install robotjsEğer hala sorun yaşıyorsanız:
- Node.js versiyonunuzu kontrol edin (20.x önerilir)
- Python 3.x yüklü olmalı
- Visual Studio Build Tools yüklü olmalı
Desktop klasöründe:
npm run rebuildBu komut native modülleri Electron için yeniden derler.
Mobile tarafta react-native-webrtc zaten package.json'da mevcut. Eğer yüklenmemişse:
cd LocalDesk
npm install react-native-webrtc@^111.0.2Android için:
npx react-native link react-native-webrtc
cd android
./gradlew clean
cd ..
npx react-native run-androidiOS için:
cd ios
pod install
cd ..
npx react-native run-ioscd desktop
npm startcd LocalDesk
npm start
# Başka bir terminalde:
npm run android # veya npm run ios-
Mobile'dan Desktop'a Bağlanın
- Mobile uygulamayı açın
- Discovery ekranından Desktop'ınızı seçin
- Pairing'i onaylayın
-
Remote Screen'i Başlatın
- Page List ekranında "🖥️ Uzak Ekran" butonuna tıklayın
- "Oturumu Başlat" butonuna basın
- Ekran görüntüsü gelmeye başlayacak
-
Kontrol Edin
- Dokunarak mouse'u hareket ettirin
- Hızlıca dokunarak sol tık yapın
- Klavye butonuna basarak yazı yazın
- ESC, TAB, Backspace gibi özel tuşları kullanın
- Touch başlangıcı → Mouse move
- Touch hareketi → Mouse move
- Hızlı touch (<200ms) → Left click
- Normalize edilmiş koordinatlar (0-1 range)
- Normal metin: TextInput'tan direkt gönderilir
- Özel tuşlar: ESC, TAB, Backspace, Enter
- Enter tuşu: Metin göndermek için
- STUN Servers: Google STUN servers
- Video: 1280x720 - 1920x1080, 15-30 FPS
- Audio: Devre dışı (sadece video)
Hata: Error: Cannot find module 'robotjs'
Çözüm:
- Node.js versiyonunu kontrol edin:
node -v(20.x olmalı) - Python yüklü mü:
python --version - Visual Studio Build Tools yüklü mü
npm install --global windows-build-toolsçalıştırınnpm install robotjstekrar deneyin
Sorun: Video stream gelmiyor
Çözüm:
- Her iki cihaz da aynı LAN'da mı?
- Firewall WebSocket bağlantılarını engelliyor mu?
- Desktop console'da
📹emoji ile başlayan logları kontrol edin - Mobile'da
Remote Screen errorvar mı?
Sorun: Mouse tıklamalar yanlış yere gidiyor
Çözüm:
- Video aspect ratio'su korunuyor mu kontrol edin
RTCView'ınobjectFit="contain"olduğundan emin olun- Ekran çözünürlüğünüz çok yüksekse düşürmeyi deneyin
Sorun: Klavye girişleri PC'ye gitmiyor
Çözüm:
- RobotJS düzgün yüklendi mi?
- Server loglarında
⌨️emoji ile başlayan mesajlar var mı? - Text vs Keys gönderimi kontrol edin
- Düşük FPS: constraints'de maxFrameRate: 20 yapın
- Düşük Çözünürlük: maxWidth: 1280, maxHeight: 720
- LAN Bağlantısı: 5GHz WiFi kullanın
- Ağ Trafiği: Diğer yoğun uygulamaları kapatın
- Remote Screen özelliği aktifken pil tüketimi normalden yüksek olacaktır
- Kullanmadığınızda "Oturumu Bitir" butonuna basın
- ✅ Tüm bağlantılar lokal ağ üzerinden
- ✅ Pairing sistemi ile yetkisiz erişim engellenir
- ✅ TrustedDevices listesi ile kontrol
⚠️ Remote Screen aktifken tüm ekranınız mobil cihazdan görünür⚠️ Tüm mouse/klavye aksiyonları çalışır
- main.js: WebRTC signaling, screen capture, remote control handlers
- server/index.js: Socket.IO events, RobotJS mouse/keyboard control
- ui/webrtc.js: RTCPeerConnection yönetimi, media stream handling
- preload.js: IPC bridge for renderer
- App.jsx: Routing ve navigation
- RemoteScreenScreen.jsx: UI ve event handling
- useRemoteScreen.js: WebRTC hook, peer connection management
- useConnection.js: Socket.IO connection management
webrtc-offer: WebRTC offerwebrtc-ice-candidate: ICE candidateremote-mouse-move: Mouse hareketremote-mouse-click: Mouse tıklamaremote-mouse-scroll: Mouse scrollremote-keyboard-input: Klavye girişi
webrtc-answer: WebRTC answerwebrtc-ice-candidate: ICE candidate
- Multi-monitor desteği
- Sağ tık ve orta tık desteği
- Drag & drop işlemleri
- Clipboard paylaşımı
- File transfer
- Audio streaming (isteğe bağlı)
- Gesture desteği (pinch zoom, vs)
- ❌ RobotJS sadece Windows'ta test edildi
- ❌ Multi-touch gesture desteği yok
- ❌ Scroll hassasiyeti düşük
- ❌ Yüksek çözünürlükte gecikme artabilir
MIT License - Harun Selçuk Çetin
Sorunlarınız için:
- GitHub Issues açın
- README.md dosyasını okuyun
- Desktop console loglarını kontrol edin
Not: Bu özellik şuanki kısayol sistemini etkilemez. Her iki özellik birbirinden bağımsız çalışır.