Commit Graph

9 Commits

Author SHA1 Message Date
root
8de2e372a7 Fix missing _get_best_monitor_selection method
Error: 'RDPClient' object has no attribute '_get_best_monitor_selection'

Root cause: Method was accidentally removed during previous code refactoring
when adding _get_monitors_combined_resolution method.

Fix:
- Restored complete _get_best_monitor_selection method with all functionality
- Cleaned up duplicate/corrupted code fragments
- Removed duplicate _setup_gui method definitions
- Added test script to verify method accessibility

Verified:
- _get_best_monitor_selection(2) returns '1,2' 
- _get_monitors_combined_resolution('1,2') returns '3840x1080' 
- Both methods properly integrated in RDPClient class 

The '2 Monitors' selection should now work without AttributeError.
2025-09-18 11:07:51 +02:00
root
0ff0ef1cb1 Fix fullscreen resolution for specific monitor selection
Problem: Previous fix removed /f but didn't provide proper resolution,
causing RDP to open in very low resolution window instead of fullscreen.

Solution: Calculate combined resolution of selected monitors
- 2 monitors (1,2): /size:3840x1080 /monitors:1,2
- 3 monitors (1,2,0): /size:5760x1080 /monitors:1,2,0

Changes:
- Add _get_monitors_combined_resolution() method
- Calculate total width from leftmost to rightmost selected monitor
- Use calculated resolution with /size: parameter
- Eliminate duplicate monitor selection calls
- Enhanced logging for resolution calculation

Expected result:
- '2 Monitors' opens fullscreen across 2 monitors at proper resolution
- '3 Monitors' opens fullscreen across 3 monitors at proper resolution
- Maintains /monitors: parameter for correct monitor targeting
2025-09-18 11:05:10 +02:00
root
e727430a4f Fix monitor selection: resolve /f and /monitors: parameter conflict
Root cause: /f (fullscreen) parameter conflicts with /monitors: in FreeRDP 2.11.5
causing specific monitor selection to fall back to single monitor display.

Changes:
- Reorder command generation to check monitor config before resolution
- Skip /f when using specific monitor selection (/monitors:1,2 or /monitors:1,2,0)
- Keep /f only for 'All Monitors' and single monitor scenarios
- Add test script to validate new command generation logic

This should fix the issue where:
- 'All Monitors' works correctly (uses /f + /multimon)
- '2 Monitors' and '3 Monitors' were showing only 1 monitor

Expected result: /monitors:1,2 without /f should now properly display on 2 monitors
2025-09-18 11:01:39 +02:00
root
87598da623 Enhance monitor selection with advanced debugging and logging
- Improved monitor detection with primary/secondary identification
- Enhanced logging to track monitor layout and selection process
- Added comprehensive debug scripts for troubleshooting monitor issues
- Better error handling in monitor selection logic
- Created test utilities for validating monitor selection behavior

Debug tools added:
- debug_monitor_issue.sh: Comprehensive monitor debugging script
- test_enhanced_monitor.py: Tests monitor selection logic with logging
- debug_rdp_command.py: Tests RDP command generation

Fixes:
- Monitor detection now identifies primary monitor correctly
- Detailed logging shows exactly which monitors are selected
- Better fallback handling for monitor detection errors
- Enhanced command logging for easier troubleshooting
2025-09-18 10:55:34 +02:00
root
9fc22b2b97 Fix README: Separate curl commands into individual code blocks
- Split installation commands into separate copyable blocks
- Users can now copy each curl command independently
- Improved clarity with Option 1/Option 2 labels
2025-09-18 10:44:54 +02:00
root
7de727cc1e Update README with one-line installation commands
- Add prominent Quick Installation section with curl commands
- Include both SSH and HTTPS installation options
- Document post-installation usage options
- Add uninstall instructions
- Improve visibility of convenient installation methods
2025-09-18 10:43:03 +02:00
root
a3c9d16eaf Add complete installation scripts for easy deployment
- install_rdp_client_complete.sh: Full-featured installer with auto-detection
- install_rdp_client_https.sh: Simple HTTPS-based installer
- INSTALL_INSTRUCTIONS.md: One-line installation commands and documentation

Features:
- Auto-detects Linux distribution (apt, dnf, yum, zypper, pacman)
- Installs all system dependencies automatically
- Sets up Python virtual environment
- Creates desktop entry and launcher
- Supports both SSH and HTTPS repository access
- Includes uninstall option
- Comprehensive error handling and user feedback
2025-09-18 10:39:53 +02:00
root
8d25033ea5 Add Python RDP Client with multi-monitor support and enhanced features
- Complete rewrite of bash RDP script in Python with tkinter GUI
- Multi-monitor support with intelligent monitor selection
- Encrypted credential storage using Fernet encryption
- Connection profiles with advanced configuration options
- Fixed authentication issues (STATUS_ACCOUNT_RESTRICTION)
- Enhanced monitor detection and selection logic
- Professional tabbed interface with General/Advanced/Performance tabs
- Install script and documentation included
2025-09-18 10:36:36 +02:00
root
69fb363286 feat: Add professional Python RDP client with GUI interface
- Complete rewrite of zenity-based bash script in Python
- Modern tkinter GUI with Microsoft RDP Client-like design
- Encrypted credential storage and connection management
- Fixed STATUS_ACCOUNT_RESTRICTION authentication issues
- Support for multiple monitors, sound, clipboard, drive sharing
- Connection history and profile management
- Keyboard shortcuts and professional interface
- Comprehensive logging and error handling
- Virtual environment auto-detection and setup
- Full feature parity with original bash script
- Enhanced security with Fernet encryption
- Cross-platform compatibility and modern UX
2025-09-16 15:01:20 +02:00