Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Display bug when full screen in dual monitor setup #126

Open
powerbling opened this issue Jul 20, 2023 · 1 comment
Open

Display bug when full screen in dual monitor setup #126

powerbling opened this issue Jul 20, 2023 · 1 comment
Assignees
Labels
bug Something isn't working

Comments

@powerbling
Copy link

Describe the bug
My setup is dual monitor and I noticed:

  • When in full session, cassowary tries automatically to go fullscreen but it maps both monitors and the virtual machine's resolution is set as the rectangle containing both displays. The leftmost monitor works but the image is cropped to it's resolution and the rightmost glitches between showing the full image and showing the login wallpaper
  • When running an app and dragging it to the top to make it fullscreen, the image grows on both screen, in the same way as said before and both displays glitch.

To Reproduce
Launch any app on multiple monitor setup and make it fullscreen or launch full rdp session.

Expected behavior
The app should fill only one display, same for the rdp session (at least until multi-monitor is supported)

Screenshots
Screenshot_20230720_124441
Screenshot_20230720_124441
This is opening an app, I'm not able to show the full session screenshot as I can't open the hosts screenshot utility when running.

System information:

  • Cassowary Linux client version: 0.6A
  • Cassowary windows component version: 0.6A
  • Linux Distribution: openSUSE Tumbleweed 20230717, KDE Plasma 5.27.6, wayland
  • Windows/Edition used: Windows 10 Pro

Additional context
Great work on the app!! Thanks a lot for sharing.

@powerbling powerbling added the bug Something isn't working label Jul 20, 2023
@pedicino
Copy link

Hi,

I ran into the same issue, but managed to find a workaround.

Context

Using the CLI, launching a guest app with Cassowary looks like this:
python3 -m cassowary -c guest-run -- 'C:\Windows\System32\mspaint.exe'

(A shortcut, of course, works the same way.)

By default, Cassowary runs apps with preconfigured xfreerdp flags:

guest-run with commandline: xfreerdp /d:"DESKTOP-NAME" /u:"username" /p:"password" /v:guest_ip +clipboard /a:drive,root,/ +decorations /cert-ignore /sound /scale:100 /dynamic-resolution /span /wm-class:"cassowaryApp-mspaint.exe" /app:"C:\Windows\System32\mspaint.exe" /app-icon:"/home/username/Downloads/cassowary_env/lib/python3.12/site-packages/cassowary/base/../gui/extrares/cassowary_app.png"

The GUI allows adding extra flags, but not editing predetermined ones:
cassowary_gui_settings

Solution

1. Check your monitor configuration using xfreerdp /monitor-list.

Example output:

* [0] 1920x1080+1280+0
  [1] 1280x1024+0+0

[0] is my primary (right) monitor.
[1] is my secondary (left) monitor.

For best results, the left monitor should not have a horizontal/vertical offset (+0+0).
The right monitor should have a horizontal offset equal to the left monitor's width, but no vertical offset (+1280+0).

2. Calculate the "combined" resolution of both monitors. In my case, it's 3200x1080.

3. Start an xfreerdp session manually using different flags:

xfreerdp /d:"DESKTOP-NAME" /u:"username" /p:"password" /v:guest_ip +clipboard +window-drag +sec-tls /a:drive,root,/ +decorations /cert-ignore /sound /scale:100 /f /dynamic-resolution /multimon:force /monitors:1,0 /size:3200x1080 /app:"path_to_app"

Flags added:
+window-drag (Enable full window drag)
+sec-tls (Disable TLS protocol security)
/f (Enable fullscreen)
/multimon:force (Enable and force multi-monitor mode)
/monitors:1,0 (You may want to try /monitors:0,1)
/size:3200x1080 (Edit to match your combined resolution)

Flags removed:
/span (Span screen over multiple monitors)

Don't forget to fill DESKTOP-NAME, username, password, guest_ip, and path_to_app with your details. Modify any existing Cassowary shortcuts to run this command instead of the python3 call. Cheers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants