Manjaro VM no longer resizes to fit the VMware app window size

I have a Manjaro VM whose desktop size (screen resolution) used to resize to match the VMware Workstation’s app windows size until just before the 25-06-23 update (Stable Branch, Xfce).

Today, I updated the system, which means I am applying both the 25-06-23 and the 25-07-12 updates at once.

Upon such update, the VM no longer resizes to mach the app window size.

Any idea on restoring the resize?

I have noted the same thing.

It coincides with the deprecation of the xf86-video-vmware package - but if there is a direct connection - I don’t know.

My personal workaround is to set the desired size of the display in the system Display settings.

1 Like

Thank you for confirming that I am not the only one.

I did something similar: Create a clickable script for going to the desired size.

Could a future update restore the facility?

I have no idea :slight_smile:

You may create monitor configuration file.

Another member @HanVroon has desribed how it could be solved in Xserver not starting after updates in VMware VM - #21 by HanVroon

Indeed, I have a /etc/X11/xorg.conf.d/10-monitor.conf file with the following content:

Section "Monitor"
    Identifier "Virtual1"
    Modeline "1680x974_60.00"  135.75  1680 1784 1960 2240  974 977 987 1011 -hsync +vsync
    Option "PreferredMode" "1680x974_60.00"
EndSection

I created it long ago with the help of package xorg-xrandr.
(I can give you details about my procedure from 2018)
What this file seems to do is add the possible resolution (in my case 1680x974) to the dropdown list of Resolution in System settings, Display & Monitor.

So, probably you only have to create this file with content above, set your resolution in the Modeline and Option line and reboot.
Then you still have to select your resolution in System settings.

Thanks.

Here’s what I did–for what it’s worth to anybody having the same trouble.

Note: I am not a computer person and don’t understand what I am doing, but the thing worked for me.

  1. Run xrandr and see output like the following, where ** indicates some repetitive-looking stuff I cut out.
[luna@jar-j ~]$ xrandr
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 8192 x 8192
Virtual-1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1280x800      60.00 +  59.81    59.91  
   4096x2160     60.00    59.94  
**
   1366x768      59.79    60.00  
**
   848x480       60.00  
   640x480       59.94  
Virtual-2 disconnected (normal left inverted right x axis y axis)
**
[luna@jar-j ~]$ 

The two things I noted are Virtual-1 and the the 60 for (I believe) frequency

  1. Run cvt 1500 1040 60 where 1500 1040 are the desired resolution and 60 is from step 1, and see output like:
[luna@jar-j ~]$ cvt 1500 1040 60
# 1504x1040 59.89 Hz (CVT) hsync: 64.62 kHz; pclk: 129.25 MHz
Modeline "1504x1040_60.00"  129.25  1504 1592 1752 2000  1040 1043 1053 1079 -hsync +vsync

Note

  • I got 1504 instead of 1500.
  • If you run the same command multiple times, you may get different numbers for the series that starts with 129.25. I understand that you can use the series from output of any iteration of the command.
  1. Create a script

In which you get to use

  • Virtual-1 from step 1 (for DISPLAY_OUTPUT) and
  • the Modeline from step 2 (for CUSTOM_MODE_NAME and CUSTOM_MODELINE).

The rest of the script I got from Google Gemini, and I do not understand it.

#!/bin/bash

# Define your display output name (e.g., Virtual-1, VGA-1)
DISPLAY_OUTPUT="Virtual-1"

# Define your desired custom resolution mode (from cvt command)
# Replace the Modeline with the exact one you generated
CUSTOM_MODE_NAME="1504x1040_60.00"
CUSTOM_MODELINE="129.25  1504 1592 1752 2000  1040 1043 1053 1079 -hsync +vsync"

# Check if the mode already exists to avoid errors
if ! xrandr | grep -q "$CUSTOM_MODE_NAME"; then
    echo "Adding new mode: $CUSTOM_MODE_NAME"
    xrandr --newmode "$CUSTOM_MODE_NAME" $CUSTOM_MODELINE
fi

# Check if the mode is already added to the output
if ! xrandr --verbose | grep "$DISPLAY_OUTPUT" | grep -q "$CUSTOM_MODE_NAME"; then
    echo "Adding mode $CUSTOM_MODE_NAME to output $DISPLAY_OUTPUT"
    xrandr --addmode "$DISPLAY_OUTPUT" "$CUSTOM_MODE_NAME"
fi

# Set the resolution for your display output
echo "Setting resolution for $DISPLAY_OUTPUT to $CUSTOM_MODE_NAME"
xrandr --output "$DISPLAY_OUTPUT" --mode "$CUSTOM_MODE_NAME"

echo "Resolution change attempted. Check your display."
  1. Do whatever you have to do to make the script executable.

  2. Create a desktop file for the script. The contents of the desktop file looks like this for me, where /home/luna/mntsw/0_screen_1504x1040 is my script’s (pretty unprofessional-looking) filepath.

[Desktop Entry]
Type=Application
Name=0_screen_1504x1040.desktop
Exec=/home/luna/mntsw/0_screen_1504x1040
Icon=xfce4-systray
Terminal=true
Comment=
Path=
StartupNotify=false

Since I have 3 desktop sizes I want, the desktop files for the 3 sizes are all on the desktop, acting like buttons.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.