๐ Dexile is a powerful web-based remote desktop control application that allows you to control your desktop from any mobile device or web browser with mouse/touchpad control, keyboard input, gesture support, and seamless file transfer capabilities.
- ๐ฑ๏ธ Remote Mouse Control: Precise mouse movement and clicking
- โจ๏ธ Keyboard Input: Full keyboard support with special keys and shortcuts
- ๐ Gesture Controls: 2-finger and 3-finger gestures for enhanced productivity
- ๐ File Transfer: Bidirectional file transfer between desktop and mobile
- ๐ Secure Authentication: Unique session codes for secure connections
- ๐ฑ Mobile-Friendly: Responsive web interface optimized for mobile devices
- ๐ Cross-Platform: Works on Windows, macOS, and Linux
- Node.js (version 14 or higher)
- npm (comes with Node.js)
- Python (for robotjs compilation)
- Build tools (platform-specific)
# Install Visual Studio Build Tools or Visual Studio Community
# Install Python 3.x
npm install --global windows-build-tools# Install Xcode Command Line Tools
xcode-select --installsudo apt-get update
sudo apt-get install build-essential python3 python3-dev libx11-dev libxtst-dev libxrandr-dev libjpeg-dev libpng-dev libgif-dev-
Clone or Download the Project
mkdir dexile cd dexile -
Save the Files
- Save
server.js(Server Side code) - Save
filetransfer.js(File Transfer Module) - Save
package.json - Save
client.html(Client Side web app)
- Save
-
Install Dependencies
npm install
-
Start the Server
npm start
-
Connect from Mobile/Web
- Open
client.htmlon your web browser on mobile device - Enter
YOUR_DESKTOP_IP:3000 - Enter the authentication code displayed in the server console
- Open
# Start on default port (3000)
npm start
# Start on custom port
node server.js 8080While the server is running, you can use these commands:
status- Show server status and connected clientsnewcode- Generate a new authentication codehelp- Show available commandsexit- Shutdown the server
-
Find Your Desktop IP
- Windows:
ipconfig - macOS/Linux:
ifconfigorip addr
- Windows:
-
Open
client.htmlon the browser- Enter the
YOUR_DESKTOP_IP:3000 - Enter the authentication code from server console
- Enter the
-
Start Controlling
- Use the touchpad area for mouse control
- Tap for left-click, two-finger tap for right-click
- Use gesture buttons for advanced controls
- Type in keyboard area for text input
- Move: Drag finger on touchpad area
- Left Click: Single tap
- Right Click: Two-finger tap
- Double Click: Use gesture button
- Scroll: Use scroll up/down buttons
- 2-Finger Swipe Left/Right: Alt+Tab (Windows) / Cmd+Tab (macOS)
- 3-Finger Swipe Up: Task View (Windows) / Mission Control (macOS)
- Text Input: Type in the keyboard area
- Special Keys: Enter, Backspace, Arrow keys, etc.
- Shortcuts: Ctrl+C, Ctrl+V, Alt+Tab, etc.
- Switch to "File Transfer" tab
- Drag & drop files or click "Select Files"
- Files are saved to
transfers/incoming/directory
- Place files in
transfers/outgoing/directory - Access them through the file transfer interface
- Download to your mobile device
- Documents: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX
- Images: JPG, PNG, GIF, BMP, SVG
- Audio/Video: MP3, MP4, AVI, MOV, WAV
- Archives: ZIP, RAR, 7Z, TAR, GZ
- Code: JS, HTML, CSS, JSON, XML, CSV
- File Size Limit: 100MB (configurable in file-transfer.js)
- Session Timeout: 24 hours
- Authentication: Unique codes generated per session
- Default Port: 3000
- WebSocket Protocol: ws://
- CORS: Enabled for cross-origin requests
- Session-based Authentication: Unique codes for each session
- File Type Validation: Only allowed file types can be transferred
- Size Limits: Configurable file size restrictions
- Local Network Only: Designed for local network use
- No Data Persistence: No login credentials stored
-
robotjs Installation Failed
# Install build tools for your platform # Windows: npm install --global windows-build-tools # Then: npm install robotjs
-
Permission Denied (macOS)
# Grant accessibility permissions # System Preferences โ Security & Privacy โ Privacy โ Accessibility # Add Terminal or your terminal app
-
Connection Refused
- Check firewall settings
- Ensure port 3000 is not blocked
- Verify IP address is correct
-
Mouse/Keyboard Not Working
- Check platform-specific permissions
- Ensure robotjs is properly installed
- Try running with elevated privileges
# Enable debug logging
DEBUG=dexile:* npm start- iOS Safari: Full support
- Android Chrome: Full support
- Firefox Mobile: Full support
- Edge Mobile: Full support
- Local Network: Use on same WiFi network for best performance
- File Transfer: Smaller files transfer faster
- Gesture Response: Ensure stable connection for smooth gestures
- Battery: Keep mobile device charged during extended use
npm update# Clear transfer history
rm -rf transfers/incoming/*
rm -rf transfers/outgoing/*dexile/
โโโ server.js # Main server application
โโโ file-transfer.js # File transfer module
โโโ client.html # Web client interface
โโโ package.json # Dependencies and scripts
โโโ transfers/ # File transfer directory
โ โโโ incoming/ # Uploaded files
โ โโโ outgoing/ # Files for download
โ โโโ temp/ # Temporary files
โโโ README.md # This file
- WebSocket: Main communication channel
- HTTP: Basic server info (port 3000)
- Fork the repository
- Create feature branch
- Make changes
- Test thoroughly
- Submit pull request
For support and questions:
- Check the troubleshooting section
- Review the issues on GitHub
- Ensure all dependencies are properly installed
Start controlling your desktop remotely with ease. Perfect for presentations, media control, or accessing your desktop from across the room!