Commit Graph

10 Commits

Author SHA1 Message Date
root
62262c9c19 Test: Force monitors 0,2 (primary+middle) for 2-monitor mode 2025-09-18 11:24:53 +02:00
root
b16ec65781 TEST: Force monitor selection to 0,1 instead of 1,2
Testing different monitor combination to isolate the issue:

Monitor layout:
- Monitor 0: +3840+0 (primary, rightmost)
- Monitor 1: +0+0 (secondary, leftmost)
- Monitor 2: +1920+0 (secondary, middle)

Previous: Used monitors 1,2 (leftmost + middle) → single monitor
Test: Use monitors 0,1 (primary + leftmost) → see if this works

This will help determine if the issue is:
- Specific monitor IDs (1,2 vs 0,1)
- Primary monitor involvement
- Physical monitor positioning
- FreeRDP interpretation of monitor selection

Command will be: xfreerdp /f /monitors:0,1
2025-09-18 11:22:49 +02:00
root
b12dface5d URGENT FIX: Restore fullscreen with simple /f + /monitors approach
User needs working solution immediately.

Simple approach:
- Use /f for fullscreen (always)
- Add /monitors:1,2 for specific monitor targeting
- Stop overthinking parameter conflicts

Command for 2 monitors: xfreerdp /f /monitors:1,2
Command for all monitors: xfreerdp /f /multimon

This should work - /f ensures fullscreen, /monitors specifies which ones.
2025-09-18 11:20:11 +02:00
root
80fd3dde36 Remove /size: parameter conflict with /monitors: for better compatibility
Issue: /monitors:1,2 with /size:3840x1080 still shows only single monitor
Analysis: /size: parameter may conflict with /monitors: in FreeRDP 2.11.5

New approach:
- Use /monitors:1,2 WITHOUT /size: parameter
- Let /monitors: parameter handle monitor layout and sizing automatically
- Remove /size: from command when using specific monitor selection
- Keep /size: only for single monitor or manual resolution settings

Expected behavior:
- /monitors:1,2 should automatically span across monitors 1,2
- Remove potential parameter conflicts causing single monitor fallback
- Maintain fullscreen-like behavior through monitor spanning

Test command change:
Before: xfreerdp /size:3840x1080 /monitors:1,2
After:  xfreerdp /monitors:1,2

This follows FreeRDP documentation that /monitors: should handle sizing.
2025-09-18 11:12:01 +02:00
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
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