Skip to content

VinayKumarVangala/Dexile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Dexile - Remote Desktop Control & File Transfer

๐Ÿš€ 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.

โœจ Features

  • ๐Ÿ–ฑ๏ธ 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

๐Ÿ› ๏ธ Installation

Prerequisites

  • Node.js (version 14 or higher)
  • npm (comes with Node.js)
  • Python (for robotjs compilation)
  • Build tools (platform-specific)

Platform-Specific Requirements

Windows

# Install Visual Studio Build Tools or Visual Studio Community
# Install Python 3.x
npm install --global windows-build-tools

macOS

# Install Xcode Command Line Tools
xcode-select --install

Linux (Ubuntu/Debian)

sudo apt-get update
sudo apt-get install build-essential python3 python3-dev libx11-dev libxtst-dev libxrandr-dev libjpeg-dev libpng-dev libgif-dev

Quick Setup

  1. Clone or Download the Project

    mkdir dexile
    cd dexile
  2. 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)
  3. Install Dependencies

    npm install
  4. Start the Server

    npm start
  5. Connect from Mobile/Web

    • Open client.html on your web browser on mobile device
    • Enter YOUR_DESKTOP_IP:3000
    • Enter the authentication code displayed in the server console

๐Ÿš€ Usage

Starting the Server

# Start on default port (3000)
npm start

# Start on custom port
node server.js 8080

Server Commands

While the server is running, you can use these commands:

  • status - Show server status and connected clients
  • newcode - Generate a new authentication code
  • help - Show available commands
  • exit - Shutdown the server

Connecting from Mobile

  1. Find Your Desktop IP

    • Windows: ipconfig
    • macOS/Linux: ifconfig or ip addr
  2. Open client.html on the browser

    • Enter the YOUR_DESKTOP_IP:3000
    • Enter the authentication code from server console
  3. 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

๐ŸŽฎ Controls Guide

Mouse Controls

  • 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

Gesture Controls

  • 2-Finger Swipe Left/Right: Alt+Tab (Windows) / Cmd+Tab (macOS)
  • 3-Finger Swipe Up: Task View (Windows) / Mission Control (macOS)

Keyboard Controls

  • Text Input: Type in the keyboard area
  • Special Keys: Enter, Backspace, Arrow keys, etc.
  • Shortcuts: Ctrl+C, Ctrl+V, Alt+Tab, etc.

๐Ÿ“ File Transfer

Upload Files (Mobile โ†’ Desktop)

  1. Switch to "File Transfer" tab
  2. Drag & drop files or click "Select Files"
  3. Files are saved to transfers/incoming/ directory

Download Files (Desktop โ†’ Mobile)

  1. Place files in transfers/outgoing/ directory
  2. Access them through the file transfer interface
  3. Download to your mobile device

Supported File Types

  • 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

๐Ÿ”ง Configuration

Security Settings

  • File Size Limit: 100MB (configurable in file-transfer.js)
  • Session Timeout: 24 hours
  • Authentication: Unique codes generated per session

Network Settings

  • Default Port: 3000
  • WebSocket Protocol: ws://
  • CORS: Enabled for cross-origin requests

๐Ÿ›ก๏ธ Security Features

  • 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

๐Ÿ”ง Troubleshooting

Common Issues

  1. robotjs Installation Failed

    # Install build tools for your platform
    # Windows: npm install --global windows-build-tools
    # Then: npm install robotjs
  2. Permission Denied (macOS)

    # Grant accessibility permissions
    # System Preferences โ†’ Security & Privacy โ†’ Privacy โ†’ Accessibility
    # Add Terminal or your terminal app
  3. Connection Refused

    • Check firewall settings
    • Ensure port 3000 is not blocked
    • Verify IP address is correct
  4. Mouse/Keyboard Not Working

    • Check platform-specific permissions
    • Ensure robotjs is properly installed
    • Try running with elevated privileges

Debug Mode

# Enable debug logging
DEBUG=dexile:* npm start

Mobile Browser Compatibility

  • iOS Safari: Full support
  • Android Chrome: Full support
  • Firefox Mobile: Full support
  • Edge Mobile: Full support

Performance Tips

  • 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

Updates & Maintenance

Updating Dependencies

npm update

Cleaning Up

# Clear transfer history
rm -rf transfers/incoming/*
rm -rf transfers/outgoing/*

Development

Project Structure

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

API Endpoints

  • WebSocket: Main communication channel
  • HTTP: Basic server info (port 3000)

Contributing

  1. Fork the repository
  2. Create feature branch
  3. Make changes
  4. Test thoroughly
  5. Submit pull request

Support

For support and questions:

  • Check the troubleshooting section
  • Review the issues on GitHub
  • Ensure all dependencies are properly installed

๐ŸŽ‰ Enjoy Dexile!

Start controlling your desktop remotely with ease. Perfect for presentations, media control, or accessing your desktop from across the room!

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors