Using Xpra 0.17.2 on current Debian Testing.
When connecting from single monitor client, DPI is set correctly. When connecting from multi monitor client, DPI on server is set as 34x96, can not change it with xrandr on server. If connecting with --dpi 96, server DPI is set to 85x85, which is less weird than it was on 0.17.1, but still wrong.
Client xrandr setup:
$ xrandr Screen 0: minimum 8 x 8, current 5440 x 1080, maximum 32767 x 32767 LVDS1 connected 1600x900+1920+180 (normal left inverted right x axis y axis) 310mm x 174mm 1600x900 60.03*+ 40.02 1440x900 59.89 1368x768 60.00 1360x768 59.80 59.96 1152x864 60.00 1280x720 60.00 1024x768 60.00 1024x576 60.00 960x540 60.00 800x600 60.32 56.25 864x486 60.00 800x450 60.00 640x480 59.94 720x405 60.00 640x360 60.00 DP1 disconnected (normal left inverted right x axis y axis) DP2 disconnected (normal left inverted right x axis y axis) DP3 disconnected (normal left inverted right x axis y axis) HDMI1 disconnected (normal left inverted right x axis y axis) HDMI2 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm 1920x1080 60.00*+ 1280x1024 75.02 60.02 1152x864 75.00 1024x768 75.08 60.00 800x600 75.00 60.32 640x480 75.00 60.00 720x400 70.08 HDMI3 connected 1920x1080+3520+0 (normal left inverted right x axis y axis) 477mm x 268mm 1920x1080 60.00*+ 1280x1024 75.02 60.02 1152x864 75.00 1024x768 75.08 60.00 800x600 75.00 60.32 640x480 75.00 60.00 720x400 70.08 VGA1 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis) $ xdpyinfo | grep inch resolution: 96x96 dots per inch
Xpra server xrandr setup (when connected with --dpi 96)
$ xrandr xrandr: Failed to get size of gamma for output default Screen 0: minimum 320 x 175, current 3864 x 1050, maximum 8192 x 4096 default connected 3864x1050+0+0 0mm x 0mm 8192x4096 5.00 5120x3200 10.00 3840x2880 10.00 3840x2560 10.00 3840x2048 10.00 3840x2160 10.00 2048x2048 10.00 2560x1600 10.00 1920x1440 20.00 1920x1200 10.00 1920x1080 10.00 1600x1200 10.00 1680x1050 10.00 1600x900 20.00 1400x1050 85.00 75.00 70.00 60.00 1440x900 20.00 1280x1024 20.00 1366x768 60.00 1280x800 20.00 1024x768 25.00 20.00 87.00 1024x600 25.00 800x600 25.00 320x200 85.00 6400x4096 5.00 4720x3840 10.00 6400x2560 5.00 5120x2880 10.00 6400x2160 10.00 5280x2560 5.00 5120x2560 5.00 5760x2160 10.00 4400x2560 10.00 5280x1920 5.00 4096x2304 20.00 4096x2160 10.00 3360x2560 10.00 5680x1440 15.00 3120x2560 10.00 3072x2560 10.00 3000x2560 10.00 4000x1660 20.00 5496x1200 25.00 4480x1440 10.00 5280x1200 25.00 4240x1440 10.00 4160x1440 10.00 4800x1200 10.00 4000x1440 20.00 3200x1800 30.00 2560x2240 20.00 5280x1080 25.00 3904x1440 10.00 3008x1692 20.00 3840x1200 20.00 2728x1680 25.00 3600x1200 20.00 3520x1196 20.00 3840x1080 20.00 3864x1050 20.00* 3600x1080 20.00 2560x1440 10.00 2560x1400 50.00 3288x1080 10.00 3360x1050 60.00 3200x1080 50.00 3120x1050 60.00 2048x1536 20.00 1728x1520 50.00 1856x1392 75.00 60.00 1792x1344 75.00 60.00 2048x1152 60.00 50.00 1400x900 60.00 1280x960 85.00 60.00 1360x768 20.00 800x1280 20.00 1152x864 100.00 85.00 75.00 70.00 60.00 800x1242 20.00 1280x768 20.00 1280x762 20.00 1280x720 50.00 25.00 720x1280 25.00 720x1242 25.00 1280x682 25.00 768x1024 25.00 20.00 768x986 25.00 1024x730 25.00 960x720 85.00 75.00 60.00 1024x640 50.00 928x696 75.00 60.00 600x1024 25.00 896x672 75.00 60.00 600x986 25.00 1024x576 60.00 1024x562 25.00 832x624 75.00 960x540 60.00 536x960 25.00 960x536 25.00 536x922 25.00 600x800 25.00 960x498 25.00 600x762 25.00 800x562 25.00 840x525 85.00 75.00 70.00 60.00 864x486 60.00 480x854 25.00 848x480 25.00 480x810 25.00 480x800 25.00 800x480 25.00 848x442 25.00 700x525 85.00 75.00 70.00 60.00 480x762 25.00 640x512 85.00 75.00 60.00 720x450 60.00 640x480 85.00 75.00 73.00 60.00 720x405 60.00 720x400 85.00 680x384 60.00 640x400 85.00 576x432 100.00 85.00 75.00 70.00 60.00 640x360 49.00 640x350 85.00 512x384 87.00 85.00 75.00 70.00 60.00 416x312 75.00 400x300 85.00 75.00 72.00 60.00 56.00 320x240 85.00 75.00 73.00 60.00 360x200 85.00 320x175 85.00 $ xdpyinfo | grep inch resolution: 85x85 dots per inch # when connected without --dpi argument: $ xdpyinfo | grep inch resolution: 34x96 dots per inch
remote starting or attaching with ... --desktop-scaling=off --dpi 96
from multi monitor client I get:
$ xdpyinfo | grep inch resolution: 192x193 dots per inch
Have to disable scaling (which is inconveniently autosets to 125%) after connection without --desktop-scaling=off to get 85x85
Why scaling is automatically set to 125% and why disabling it through cli affects DPI?
The desktop scaling is enabled automatically on large client screens to save bandwidth and it should preserve the same DPI when shown on the client, but only after adjusting it for the client side scaling: the virtual screen on the server is calculated to cover the exact same area (physical dimensions), just with fewer pixels. For example: a scaling value of 200% (applies to both x and y dimensions) means that your virtual screen will have only 25% of the number of pixels found on the client's screen, and the DPI will also be 25% of that value so that applications should look the same, just with fewer pixels. (and more importantly you should be able to get 4 times more frames per second at the same quality setting)
But in order to get the hardware DPI (the one you get with xdpyinfo) to match your client's DPI, you need to use a patched dummy driver which we do not provide for debian systems, only for centos and fedora. See wiki/DPI for more information.
Without the patched dummy driver, only the xrdb value will be set and some applications do not honour it.
The only workaround is to edit /etc/xpra/xorg.conf
and change the physical screen size, and / or the xvfb line in /etc/xpra/xpra.conf
to use a specific DPI.
I will probably close this ticket as wontfix.
I would like to get the hardware DPI to match on Debian. The instructions at wiki/Xdummy says:
The xserver patch: which is part of the 1.12 xserver and later. This xf86-video-dummy patch: which is part of version 0.3.5.
On Debian Jessy, it appears that I have 1.16.4 of xserver and 0.3.7 of the video-dummy.:
$ apt-cache policy xserver-xorg-core xserver-xorg-core: Installed: 2:1.16.4-1 $ apt-cache policy xserver-xorg-video-dummy xserver-xorg-video-dummy: Installed: 1:0.3.7-1+b3
The default software looks like it should have the patches. What else do I need to do? The page says that Ubuntu needs the user to be added to tty, video, and dialout groups. Is that needed for Debian as well?
The default software looks like it should have the patches.
No, you have the correct version for running xdummy, the DPI patches go on top: browser/xpra/tags/v0.17.x/rpmbuild (0002, 0003 and 0004)/
The page says that Ubuntu needs the user to be added to tty, video, and dialout groups. Is that needed for Debian as well?
No.
I was able to sync DPI by adding --dpi 96
to xvfb command and option desktop-scaling = off
in xpra.conf on server.
(at least with single monitor client, will be able to test multimonitor tomorrow)
Since we will not provide patched dummy drivers for Debian, r12658 makes -dpi 96
the default on Debian systems.
Note: you should not be calling this "sync DPI" as this does no such thing, it only hardcodes a specific value and it will not adapt to your client's DPI settings. As per the wiki/DPI, this will only work for applications that rely on the virtualized hardware DPI, and has no effect on the other settings - but the other settings should be synchronized with the client values properly anyway.
Setting --dpi 96
with desktop-scaling = off
in /etc/xpra/xpra.conf does not work for me. I haven't patched a Debian package before. I just need to download or clone the source from https://packages.debian.org/source/jessie/xorg-server and figure out how to build it? Then build it with the patch applied?
Yes, you will need to rebuild the packages with those patches applied. Note: the DPI change in r12658 is to the xvfb / Xorg command line, xpra's DPI switch is a different thing which has no effect on the hardware DPI without the patches.
...and nope again. With multimonitor client -dpi 96
in xvfb command in xpra.conf does not work.
With xpra start ssh:user@server:12323:100 --start-child=xpra-session --exit-with-children --desktop-scaling=off --dpi 96
I get 64x28 dpi and very large content. With xpra start ssh:user@server:12323:100 --start-child=xpra-session --exit-with-children
I get 45x25 dpi and very small content enlarged a bit by scaling.
I've applied patches: 0002-Constant-DPI.patch 0003-fix-pointer-limits.patch 0004-honour-dac.patch to xserver-xorg-video-dummy on server, but still I get wrong dpi. 192x193. I've put dpi 96 everywhere I could: in xpra.conf both on server and client, in xvfb line of xpra.conf on server, as cli argument when starting or connecting. Also disabled desktop-scaling in xpra.conf on both server and client. 192x193 and large content is what I get.
Please post the client and server output with xpra -d screen ...
.
As well as all your config files and exact command lines.
Xpra server config:
clipboard = yes notifications = yes tray = yes system-tray = yes speaker = off microphone = off pings = no remote-logging = both file-transfer = yes file-size-limit = 10 open-files = no printing = True lpadmin = /usr/sbin/lpadmin lpinfo = /usr/sbin/lpinfo postscript-printer = pdf-printer = encodings = all video-encoders = all csc-modules = all video-decoders = all video-scaling = on quality = auto min-quality = 30 speed = auto min-speed = 30 auto-refresh-delay = 0.15 dpi = 96 av-sync = on webcam = auto mmap = yes mmap-group = no socket-permissions = 600 sharing = no compressors = lz4, lzo, zlib compression_level = 1 packet-encoders = rencode, bencode, yaml socket-dirs = socket-dirs = ~/.xpra idle-timeout = 0 server-idle-timeout = 0 opengl = auto title = @title@ on @client-machine@ keyboard-sync = yes ssh = ssh -x key-shortcut = Meta+Shift+F1:show_menu key-shortcut = Meta+Shift+F2:show_start_new_command key-shortcut = Meta+Shift+F3:show_bug_report key-shortcut = Meta+Shift+F4:quit key-shortcut = Meta+Shift+F5:increase_quality key-shortcut = Meta+Shift+F6:decrease_quality key-shortcut = Meta+Shift+F7:increase_speed key-shortcut = Meta+Shift+F8:decrease_speed key-shortcut = Meta+Shift+F10:magic_key key-shortcut = Meta+Shift+F11:show_session_info key-shortcut = Meta+Shift+F12:toggle_debug key-shortcut = Meta+Shift+plus:scaleup key-shortcut = Meta+Shift+minus:scaledown key-shortcut = Meta+Shift+underscore:scaledown key-shortcut = Meta+Shift+KP_Add:scaleup key-shortcut = Meta+Shift+KP_Subtract:scaledown key-shortcut = Meta+Shift+KP_Multiply:scalereset key-shortcut = Meta+Shift+bar:scalereset key-shortcut = Meta+Shift+question:scalingoff window-close = auto desktop-scaling = off shadow-fullscreen = no log-dir = ~/.xpra log-file = $DISPLAY.log start = /etc/X11/Xsession true exit-with-children = no dbus-launch = dbus-launch --close-stderr dbus-control = True dbus-proxy = yes start-new-commands = no bind = ~/.xpra/ mdns = True wm-name = Xpra input-method=none env = #avoid Ubuntu's global menu, which is a mess and cannot be forwarded: env = UBUNTU_MENUPROXY= env = QT_X11_NO_NATIVE_MENUBAR=1 env = #fix for MainSoft's MainWin buggy window management: env = MWNOCAPTURE=true env = MWNO_RIT=true env = MWWM=allwm pulseaudio = yes pulseaudio-command = pulseaudio --start -n --daemonize=false --system=false \ --exit-idle-time=-1 --load=module-suspend-on-idle \ '--load=module-null-sink sink_name="Xpra-Speaker" sink_properties=device.description="Xpra\ Speaker"' \ '--load=module-null-sink sink_name="Xpra-Microphone" sink_properties=device.description="Xpra\ Microphone"' \ --load=module-native-protocol-unix --load=module-dbus-protocol \ --log-level=2 --log-target=stderr pulseaudio-configure-commands = pactl set-default-sink Xpra-Speaker pulseaudio-configure-commands = pactl set-default-source Xpra-Microphone.monitor sync-xvfb = 0 xvfb = Xorg -noreset -nolisten tcp +extension GLX +extension RANDR +extension RENDER -dpi 96 -auth $XAUTHORITY -logfile ${HOME}/.xpra/Xorg.${DISPLAY}.log -configdir ${HOME}/.xpra/xorg.conf.d -config /etc/xpra/xorg.conf displayfd = yes
Xpra client config:
clipboard = yes notifications = yes tray = yes system-tray = yes speaker = on microphone = off pings = no remote-logging = both file-transfer = yes file-size-limit = 10 open-files = no printing = True lpadmin = /usr/sbin/lpadmin lpinfo = /usr/sbin/lpinfo postscript-printer = pdf-printer = encodings = all video-encoders = all csc-modules = all video-decoders = all video-scaling = on quality = auto min-quality = 30 speed = auto min-speed = 30 auto-refresh-delay = 0.15 dpi = 96 av-sync = on webcam = auto mmap = yes mmap-group = no socket-permissions = 600 sharing = no compressors = lz4, lzo, zlib compression_level = 1 packet-encoders = rencode, bencode, yaml socket-dirs = socket-dirs = ~/.xpra idle-timeout = 0 server-idle-timeout = 0 opengl = auto title = @title@ on @client-machine@ keyboard-sync = yes ssh = ssh -x key-shortcut = Meta+Shift+F1:show_menu key-shortcut = Meta+Shift+F2:show_start_new_command key-shortcut = Meta+Shift+F3:show_bug_report key-shortcut = Meta+Shift+F4:quit key-shortcut = Meta+Shift+F5:increase_quality key-shortcut = Meta+Shift+F6:decrease_quality key-shortcut = Meta+Shift+F7:increase_speed key-shortcut = Meta+Shift+F8:decrease_speed key-shortcut = Meta+Shift+F10:magic_key key-shortcut = Meta+Shift+F11:show_session_info key-shortcut = Meta+Shift+F12:toggle_debug key-shortcut = Meta+Shift+plus:scaleup key-shortcut = Meta+Shift+minus:scaledown key-shortcut = Meta+Shift+underscore:scaledown key-shortcut = Meta+Shift+KP_Add:scaleup key-shortcut = Meta+Shift+KP_Subtract:scaledown key-shortcut = Meta+Shift+KP_Multiply:scalereset key-shortcut = Meta+Shift+bar:scalereset key-shortcut = Meta+Shift+question:scalingoff window-close = auto desktop-scaling = off shadow-fullscreen = no log-dir = ~/.xpra log-file = $DISPLAY.log start = /etc/X11/Xsession true exit-with-children = no dbus-launch = dbus-launch --close-stderr dbus-control = True dbus-proxy = yes start-new-commands = no bind = ~/.xpra/ mdns = True wm-name = Xpra input-method=none env = #avoid Ubuntu's global menu, which is a mess and cannot be forwarded: env = UBUNTU_MENUPROXY= env = QT_X11_NO_NATIVE_MENUBAR=1 env = #fix for MainSoft's MainWin buggy window management: env = MWNOCAPTURE=true env = MWNO_RIT=true env = MWWM=allwm pulseaudio = yes pulseaudio-command = pulseaudio --start -n --daemonize=false --system=false \ --exit-idle-time=-1 --load=module-suspend-on-idle \ '--load=module-null-sink sink_name="Xpra-Speaker" sink_properties=device.description="Xpra\ Speaker"' \ '--load=module-null-sink sink_name="Xpra-Microphone" sink_properties=device.description="Xpra\ Microphone"' \ --load=module-native-protocol-unix --load=module-dbus-protocol \ --log-level=2 --log-target=stderr pulseaudio-configure-commands = pactl set-default-sink Xpra-Speaker pulseaudio-configure-commands = pactl set-default-source Xpra-Microphone.monitor sync-xvfb = 0 xvfb = Xorg -noreset -nolisten tcp +extension GLX +extension RANDR +extension \ RENDER -auth $XAUTHORITY -logfile \ ${HOME}/.xpra/Xorg.${DISPLAY}.log -configdir \ ${HOME}/.xpra/xorg.conf.d -config /etc/xpra/xorg.conf displayfd = yes
Start command on server:
xpra -d screen start :100 --exit-with-children --start-child=xpra-session
xpra-session script:
export XDG_MENU_PREFIX=openbox- export XDG_CONFIG_DIRS=/etc/xdg export XDG_CONFIG_HOME="$HOME/.config" export XDG_SESSION_DESKTOP=OPENBOX export XDG_DATA_DIRS=/usr/local/share:/usr/share:/usr/share/gdm:/var/lib/menu-xdg:/usr/local/share/:/usr/share/:/usr/share/gdm/:/var/lib/menu-xdg/ export XDG_CURRENT_DESKTOP=OPENBOX export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc:/etc/gtk-2.0/gtkrc" export QT_STYLE_OVERRIDE=gtk export QT_QPA_PLATFORMTHEME=gtk2 export LANG=ru_RU.UTF-8 export LANGUAGE= export LC_TIME=en_DK.UTF-8 gnome-keyring-daemon & x-terminal-emulator
Connect command on client:
xpra attach ssh:user@server:12323:100
Server's xpra log:
X.Org X Server 1.18.3 Release Date: 2016-04-04 X Protocol Version 11, Revision 0 Build Operating System: Linux 3.16.0-4-amd64 x86_64 Debian Current Operating System: Linux server 4.5.0-2-amd64 #1 SMP Debian 4.5.4-1 (2016-05-16) x86_64 Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.5.0-2-amd64 root=/dev/mapper/mt2_sysgroup-root ro quiet Build Date: 05 April 2016 07:00:43AM xorg-server 2:1.18.3-1 (http://www.debian.org/support) Current version of pixman: 0.33.6 Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (++) Log file: "/home/user/.xpra/Xorg.:100.log", Time: Wed May 25 05:13:32 2016 (++) Using config file: "/etc/xpra/xorg.conf" (==) Using system config directory "/usr/share/X11/xorg.conf.d" 2016-05-25 05:13:32,380 created unix domain socket: /home/user/.xpra/server-100 2016-05-25 05:13:32,596 Warning: menu forwarding is disabled: 2016-05-25 05:13:32,596 cannot load dbus helper: No module named dbus 2016-05-25 05:13:32,782 Warning: using fallback encryption library pycrypto 2016-05-25 05:13:32,782 python-cryptography is not available: 2016-05-25 05:13:32,783 No module named cryptography.hazmat.backends 2016-05-25 05:13:32,940 Error importing swscale colorspace conversion (csc_swscale) 2016-05-25 05:13:32,940 libswscale-ffmpeg.so.3: cannot open shared object file: No such file or directory 2016-05-25 05:13:33,088 Warning: failed to load the mdns avahi publisher: 2016-05-25 05:13:33,089 No module named avahi 2016-05-25 05:13:33,089 either fix your installation or use the 'mdns=no' option 2016-05-25 05:13:33,737 out(xpra opengl)=PyOpenGL warning: missing accelerate module PyOpenGL warning: missing array format handlers: numeric, vbo, vbooffset OpenGL Version: 3.0 Mesa 11.2.2 error=PyOpenGL version 3.1 or later is required (found version 3.0.2) 2016-05-25 05:13:33,737 err(xpra opengl)= 2016-05-25 05:13:33,737 OpenGL: {'error': ''} 2016-05-25 05:13:33,741 _NET_WORKAREA=[0, 0, 8192, 4096] 2016-05-25 05:13:33,741 _NET_DESKTOP_GEOMETRY=[8192, 4096] 2016-05-25 05:13:33,832 Error: failed to import the virtual video module: 2016-05-25 05:13:33,832 No module named _dbus_bindings /bin/sh: 1: pulseaudio: not found 2016-05-25 05:13:33,856 pulseaudio server started with pid 18444 Warning: failed to import GStreamer: GStreamer 1.0: Namespace Gst not available GStreamer 0.10: No module named pygst 2016-05-25 05:13:34,162 Error: failed to query sound subsystem: 2016-05-25 05:13:34,162 query did not return any data 2016-05-25 05:13:34,163 Warning: failed to load or register our dbus notifications forwarder: 2016-05-25 05:13:34,164 No module named dbus.service 2016-05-25 05:13:34,164 if you do not have a dedicated dbus session for this xpra instance, 2016-05-25 05:13:34,164 use the 'notifications=no' option 2016-05-25 05:13:34,165 cannot load dbus helper: No module named dbus 2016-05-25 05:13:34,170 Error setting up our dbus server: 2016-05-25 05:13:34,170 No module named dbus 2016-05-25 05:13:34,205 started command 'xpra-session' with pid 18455 2016-05-25 05:13:34,205 xpra X11 version 0.18.0-r12578 2016-05-25 05:13:34,206 running with pid 18408 on Linux debian stretch/sid 2016-05-25 05:13:34,206 on display :100 SSH_AUTH_SOCK=/run/user/1000/keyring/ssh 2016-05-25 05:13:34,423 xpra is ready. ** (x-terminal-emulator:18470): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files (x-terminal-emulator:18470): Vte-WARNING **: (/build/vte2.91-F7Daq6/vte2.91-0.44.2/./src/vtegtk.cc:1718):int vte_terminal_match_add_gregex(VteTerminal*, GRegex*, GRegexMatchFlags): runtime check failed: (g_regex_get_compile_flags(gregex) & G_REGEX_MULTILINE) 2016-05-25 05:13:35,207 Warning: pulseaudio has terminated shortly after startup. 2016-05-25 05:13:35,207 pulseaudio is limited to a single instance per user account, 2016-05-25 05:13:35,207 and one may be running already for user 'user' 2016-05-25 05:13:35,207 to avoid this warning, either fix the pulseaudio command line 2016-05-25 05:13:35,207 or use the 'pulseaudio=no' option 2016-05-25 05:15:06,925 New unix-domain connection received on /home/user/.xpra/server-100 2016-05-25 05:15:06,926 New unix-domain connection received on /home/user/.xpra/server-100 2016-05-25 05:15:06,927 Connection lost 2016-05-25 05:15:06,935 Handshake complete; enabling connection 2016-05-25 05:15:06,935 dpi=192, dpi.x=0, dpi.y=0, double_click_time=-1, double_click_distance=(-1, -1), antialias={}, cursor_size=18 2016-05-25 05:15:07,051 Error setting up the source's DBUS server: 2016-05-25 05:15:07,051 No module named dbus 2016-05-25 05:15:07,052 Python/Gtk2 Linux debian stretch/sid client version 0.18.0-r12578 2016-05-25 05:15:07,052 connected from 'client' as 'user' 2016-05-25 05:15:07,052 using h264 as primary encoding also available: 2016-05-25 05:15:07,052 vp9, vp8, mpeg4, png, png/P, png/L, webp, rgb24, jpeg, rgb32 2016-05-25 05:15:07,054 client root window size is 5440x1080 with 1 display: 2016-05-25 05:15:07,054 :0.0 (1439x285 mm - DPI: 96x96) workarea: 5404x1080 at 36x0 2016-05-25 05:15:07,055 monitor 1 1920x1080 (477x268 mm - DPI: 102x102) 2016-05-25 05:15:07,055 monitor 2 1600x900 at 1920x180 (310x174 mm - DPI: 131x131) 2016-05-25 05:15:07,055 monitor 3 1920x1080 at 3520x0 (477x268 mm - DPI: 102x102) 2016-05-25 05:15:07,055 maximum client resolution is 5440x1080 (current server resolution is 8192x4096) 2016-05-25 05:15:07,055 set_screen_size(5440, 1080) xdpi=192, ydpi=192 2016-05-25 05:15:07,247 set_dpi(192, 192) 2016-05-25 05:15:07,248 best resolution for client(5440x1080) is: (5496, 1200) 2016-05-25 05:15:07,248 calling RandR.set_screen_size(5496, 1200) 2016-05-25 05:15:07,259 calling RandR.get_screen_size() 2016-05-25 05:15:07,259 RandR.get_screen_size()=5496,1200 2016-05-25 05:15:07,259 RandR.get_vrefresh()=25 2016-05-25 05:15:07,260 server virtual display now set to 5496x1200 (best match for 5440x1080) 2016-05-25 05:15:07,260 set_best_screen_size()=(5496, 1200) 2016-05-25 05:15:07,260 get_max_screen_size()=(8192, 4096) 2016-05-25 05:15:07,261 calculate_workarea(5440, 1080) 2016-05-25 05:15:07,261 calculate_workarea() screen_sizes(X11ServerSource(Protocol(unix-domain socket:/home/user/.xpra/server-100)))=[[':0.0', 5440, 1080, 1439, 285, [['', 0, 0, 1920, 1080, 477, 268], ['', 1920, 180, 1600, 900, 310, 174], ['', 3520, 0, 1920, 1080, 477, 268]], 36, 0, 5404, 1080]] 2016-05-25 05:15:07,261 calculate_workarea() found gtk.gdk.Rectangle(36, 0, 5404, 1080) for display :0.0 2016-05-25 05:15:07,261 _NET_WORKAREA=[36, 0, 5404, 1080] 2016-05-25 05:15:07,261 _NET_DESKTOP_GEOMETRY=[5440, 1080] 2016-05-25 05:15:07,262 setting key repeat rate from client: 500ms delay / 19ms interval 2016-05-25 05:15:07,263 setting keymap: rules=evdev, model=pc105, layout=us,ru 2016-05-25 05:15:07,307 get_max_screen_size()=(8192, 4096) 2016-05-25 05:15:07,313 _screen_size_changed(<gtk.gdk.ScreenX11 object at 0x7f54d0456190 (GdkScreenX11 at 0x4425620)>) 2016-05-25 05:15:07,313 new screen dimensions: (5496, 1200) 2016-05-25 05:15:07,313 calculate_workarea(5496, 1200) 2016-05-25 05:15:07,313 calculate_workarea() screen_sizes(X11ServerSource(Protocol(unix-domain socket:/home/user/.xpra/server-100)))=[[':0.0', 5440, 1080, 1439, 285, [['', 0, 0, 1920, 1080, 477, 268], ['', 1920, 180, 1600, 900, 310, 174], ['', 3520, 0, 1920, 1080, 477, 268]], 36, 0, 5404, 1080]] 2016-05-25 05:15:07,314 calculate_workarea() found gtk.gdk.Rectangle(36, 0, 5404, 1080) for display :0.0 2016-05-25 05:15:07,314 _NET_WORKAREA=[36, 0, 5404, 1080] 2016-05-25 05:15:07,315 RandR.get_screen_size_mm=727,158 2016-05-25 05:15:07,315 DPI set to 192 x 192 2016-05-25 05:15:07,359 Attached to ssh:user@server:12323:100 (press Control-C to detach) 2016-05-25 05:15:07,360 get_max_screen_size()=(8192, 4096) 2016-05-25 05:15:07,366 get_max_screen_size()=(8192, 4096) 2016-05-25 05:15:07,370 python netifaces package is missing
Client output:
$ xpra -d screen attach ssh:user@server:12323:100 2016-05-25 05:35:23,822 Xpra gtk2 client version 0.18.0-r12578 2016-05-25 05:35:23,823 running on Linux debian stretch/sid 2016-05-25 05:35:23,823 Warning: failed to import opencv: 2016-05-25 05:35:23,823 No module named cv2 2016-05-25 05:35:23,823 webcam forwarding is disabled 2016-05-25 05:35:23,976 GStreamer version 1.8 for Python 2.7 2016-05-25 05:35:24,194 PyOpenGL warning: missing accelerate module 2016-05-25 05:35:24,195 PyOpenGL warning: missing array format handlers: numeric, vbo, vbooffset 2016-05-25 05:35:24,195 OpenGL Version: 3.0 Mesa 11.2.2 2016-05-25 05:35:24,196 OpenGL support is missing: 2016-05-25 05:35:24,196 PyOpenGL version 3.1 or later is required (found version 3.0.2) 2016-05-25 05:35:24,210 dpix=34, dpiy=96 2016-05-25 05:35:24,210 dpix=34, dpiy=96 2016-05-25 05:35:24,212 dpix=34, dpiy=96 2016-05-25 05:35:24,212 dpix=34, dpiy=96 2016-05-25 05:35:24,213 dpix=34, dpiy=96 2016-05-25 05:35:24,213 dpix=34, dpiy=96 2016-05-25 05:35:24,214 dpix=34, dpiy=96 2016-05-25 05:35:24,214 dpix=34, dpiy=96 2016-05-25 05:35:24,215 keyboard layouts: us,ru 2016-05-25 05:35:24,216 dpix=34, dpiy=96 2016-05-25 05:35:24,216 dpix=34, dpiy=96 2016-05-25 05:35:24,217 dpix=34, dpiy=96 2016-05-25 05:35:24,217 dpix=34, dpiy=96 2016-05-25 05:35:24,217 dpix=34, dpiy=96 2016-05-25 05:35:24,218 dpix=34, dpiy=96 2016-05-25 05:35:24,218 dpix=34, dpiy=96 2016-05-25 05:35:24,218 dpix=34, dpiy=96 2016-05-25 05:35:24,219 dpix=34, dpiy=96 2016-05-25 05:35:24,219 dpix=34, dpiy=96 2016-05-25 05:35:24,220 dpix=34, dpiy=96 2016-05-25 05:35:24,220 dpix=34, dpiy=96 2016-05-25 05:35:24,221 dpix=34, dpiy=96 2016-05-25 05:35:24,222 dpix=34, dpiy=96 2016-05-25 05:35:24,222 dpix=34, dpiy=96 2016-05-25 05:35:24,223 dpix=34, dpiy=96 2016-05-25 05:35:24,223 dpix=34, dpiy=96 2016-05-25 05:35:24,224 dpix=34, dpiy=96 2016-05-25 05:35:24,224 dpix=34, dpiy=96 2016-05-25 05:35:24,225 dpix=34, dpiy=96 2016-05-25 05:35:24,225 dpix=34, dpiy=96 2016-05-25 05:35:24,225 dpix=34, dpiy=96 2016-05-25 05:35:24,226 dpix=34, dpiy=96 2016-05-25 05:35:24,226 dpix=34, dpiy=96 2016-05-25 05:35:24,262 detected keyboard: rules=evdev, model=pc105, layout=us,ru 2016-05-25 05:35:24,263 get_number_of_desktops() 05000000=5 2016-05-25 05:35:24,264 get_desktop_names() d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203100d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203200d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203300d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203400d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203500=['\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 1', '\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 2', '\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 3', '\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 4', '\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 5'] 2016-05-25 05:35:24,264 get_screen_sizes(1.000000, 1.000000) found 1 screens 2016-05-25 05:35:24,264 screen 0 has 3 monitors 2016-05-25 05:35:24,264 workareas: [] 2016-05-25 05:35:24,264 number of monitors does not match number of workareas! 2016-05-25 05:35:24,264 monitor 0: ['', 0, 0, 1920, 1080, 477, 268] 2016-05-25 05:35:24,264 monitor 1: ['', 1920, 180, 1600, 900, 310, 174] 2016-05-25 05:35:24,264 monitor 2: ['', 3520, 0, 1920, 1080, 477, 268] 2016-05-25 05:35:24,265 get_workarea()=<type 'str'>, len=80 2016-05-25 05:35:24,265 get_workarea() 24000000000000001c15000038040000=(36, 0, 5404, 1080) 2016-05-25 05:35:24,265 workarea=(36, 0, 5404, 1080) 2016-05-25 05:35:24,265 screen 0: (':0.0', 5440, 1080, 1439, 285, [('', 0, 0, 1920, 1080, 477, 268), ('', 1920, 180, 1600, 900, 310, 174), ('', 3520, 0, 1920, 1080, 477, 268)], 36, 0, 5404, 1080) 2016-05-25 05:35:24,265 desktop size is 5440x1080 with 1 screen: 2016-05-25 05:35:24,265 :0.0 (1439x285 mm - DPI: 96x96) workarea: 5404x1080 at 36x0 2016-05-25 05:35:24,265 monitor 1 1920x1080 (477x268 mm - DPI: 102x102) 2016-05-25 05:35:24,265 monitor 2 1600x900 at 1920x180 (310x174 mm - DPI: 131x131) 2016-05-25 05:35:24,265 monitor 3 1920x1080 at 3520x0 (477x268 mm - DPI: 102x102) 2016-05-25 05:35:24,265 dpi: 192, xdpi=192, ydpi=192 2016-05-25 05:35:24,267 get_vrefresh()=60 2016-05-25 05:35:24,267 get_antialias_info()={} 2016-05-25 05:35:24,995 xpra initialization error: 2016-05-25 05:35:24,995 cannot find any live servers to connect to 2016-05-25 05:35:24,995 2016-05-25 05:35:24,999 Error: printing disabled: 2016-05-25 05:35:25,000 No module named cups 2016-05-25 05:35:25,003 Connection lost user@client:~$ xpra -d screen attach ssh:user@server:12323:100 2016-05-25 05:35:40,760 Xpra gtk2 client version 0.18.0-r12578 2016-05-25 05:35:40,760 running on Linux debian stretch/sid 2016-05-25 05:35:40,760 Warning: failed to import opencv: 2016-05-25 05:35:40,761 No module named cv2 2016-05-25 05:35:40,761 webcam forwarding is disabled 2016-05-25 05:35:40,940 GStreamer version 1.8 for Python 2.7 2016-05-25 05:35:41,196 PyOpenGL warning: missing accelerate module 2016-05-25 05:35:41,196 PyOpenGL warning: missing array format handlers: numeric, vbo, vbooffset 2016-05-25 05:35:41,196 OpenGL Version: 3.0 Mesa 11.2.2 2016-05-25 05:35:41,197 OpenGL support is missing: 2016-05-25 05:35:41,197 PyOpenGL version 3.1 or later is required (found version 3.0.2) 2016-05-25 05:35:41,423 dpix=34, dpiy=96 2016-05-25 05:35:41,424 dpix=34, dpiy=96 2016-05-25 05:35:41,427 dpix=34, dpiy=96 2016-05-25 05:35:41,427 dpix=34, dpiy=96 2016-05-25 05:35:41,428 dpix=34, dpiy=96 2016-05-25 05:35:41,428 dpix=34, dpiy=96 2016-05-25 05:35:41,429 dpix=34, dpiy=96 2016-05-25 05:35:41,430 dpix=34, dpiy=96 2016-05-25 05:35:41,431 keyboard layouts: us,ru 2016-05-25 05:35:41,432 dpix=34, dpiy=96 2016-05-25 05:35:41,432 dpix=34, dpiy=96 2016-05-25 05:35:41,433 dpix=34, dpiy=96 2016-05-25 05:35:41,433 dpix=34, dpiy=96 2016-05-25 05:35:41,434 dpix=34, dpiy=96 2016-05-25 05:35:41,435 dpix=34, dpiy=96 2016-05-25 05:35:41,435 dpix=34, dpiy=96 2016-05-25 05:35:41,436 dpix=34, dpiy=96 2016-05-25 05:35:41,437 dpix=34, dpiy=96 2016-05-25 05:35:41,437 dpix=34, dpiy=96 2016-05-25 05:35:41,438 dpix=34, dpiy=96 2016-05-25 05:35:41,439 dpix=34, dpiy=96 2016-05-25 05:35:41,440 dpix=34, dpiy=96 2016-05-25 05:35:41,440 dpix=34, dpiy=96 2016-05-25 05:35:41,441 dpix=34, dpiy=96 2016-05-25 05:35:41,441 dpix=34, dpiy=96 2016-05-25 05:35:41,442 dpix=34, dpiy=96 2016-05-25 05:35:41,442 dpix=34, dpiy=96 2016-05-25 05:35:41,443 dpix=34, dpiy=96 2016-05-25 05:35:41,443 dpix=34, dpiy=96 2016-05-25 05:35:41,444 dpix=34, dpiy=96 2016-05-25 05:35:41,444 dpix=34, dpiy=96 2016-05-25 05:35:41,445 dpix=34, dpiy=96 2016-05-25 05:35:41,445 dpix=34, dpiy=96 2016-05-25 05:35:41,483 detected keyboard: rules=evdev, model=pc105, layout=us,ru 2016-05-25 05:35:41,487 get_number_of_desktops() 05000000=5 2016-05-25 05:35:41,487 get_desktop_names() d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203100d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203200d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203300d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203400d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203500=['\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 1', '\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 2', '\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 3', '\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 4', '\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 5'] 2016-05-25 05:35:41,488 get_screen_sizes(1.000000, 1.000000) found 1 screens 2016-05-25 05:35:41,488 screen 0 has 3 monitors 2016-05-25 05:35:41,488 workareas: [] 2016-05-25 05:35:41,489 number of monitors does not match number of workareas! 2016-05-25 05:35:41,489 monitor 0: ['', 0, 0, 1920, 1080, 477, 268] 2016-05-25 05:35:41,489 monitor 1: ['', 1920, 180, 1600, 900, 310, 174] 2016-05-25 05:35:41,489 monitor 2: ['', 3520, 0, 1920, 1080, 477, 268] 2016-05-25 05:35:41,490 get_workarea()=<type 'str'>, len=80 2016-05-25 05:35:41,490 get_workarea() 24000000000000001c15000038040000=(36, 0, 5404, 1080) 2016-05-25 05:35:41,490 workarea=(36, 0, 5404, 1080) 2016-05-25 05:35:41,490 screen 0: (':0.0', 5440, 1080, 1439, 285, [('', 0, 0, 1920, 1080, 477, 268), ('', 1920, 180, 1600, 900, 310, 174), ('', 3520, 0, 1920, 1080, 477, 268)], 36, 0, 5404, 1080) 2016-05-25 05:35:41,490 desktop size is 5440x1080 with 1 screen: 2016-05-25 05:35:41,491 :0.0 (1439x285 mm - DPI: 96x96) workarea: 5404x1080 at 36x0 2016-05-25 05:35:41,491 monitor 1 1920x1080 (477x268 mm - DPI: 102x102) 2016-05-25 05:35:41,491 monitor 2 1600x900 at 1920x180 (310x174 mm - DPI: 131x131) 2016-05-25 05:35:41,491 monitor 3 1920x1080 at 3520x0 (477x268 mm - DPI: 102x102) 2016-05-25 05:35:41,491 dpi: 192, xdpi=192, ydpi=192 2016-05-25 05:35:41,492 get_vrefresh()=60 2016-05-25 05:35:41,493 get_antialias_info()={} 2016-05-25 05:35:42,596 Xpra X11 server version 0.18.0-r12578 2016-05-25 05:35:42,597 running on Linux debian stretch/sid 2016-05-25 05:35:42,597 enabled remote logging 2016-05-25 05:35:42,598 Attached to ssh:user@server:12323:100 (press Control-C to detach)
So, the client seem to take physical monitors' info into account somehow. This data is just garbage and has no real application anywhere, it should be ignored.
There another occurrence of the bug #1193, causing the DPI to get doubled when used in the config file or command line. You didn't attach the config file, but from what I am seeing, you must have set dpi=96 in there.
So, the client seem to take physical monitors' info into account somehow.
On X11, the xpra client uses the first valid value it finds from:
--dpi=
switch (or its equivalent config file entry)
Xft.dpi
, Xft/DPI
, gnome.Xft/DPI
This data is just garbage and has no real application anywhere, it should be ignored.
Unfortunately, that is just not the case: the whole point the dummy driver patches you applied is to emulate this behaviour since that is what a large number of applications use for calculating the DPI. And this is what we use when everything else has failed.
I actually did attach both configs in previous message. Yes, there was dpi=96 in them. Now I removed these lines, same thing happens.
I always set DPI 96 in for my X server, and I've never seen any application that ignored it and used 102 or 131 DPI directly from monitor data. Anyway, how can monitor's physical DPI have any meaning in multimonitor setup? No app or toolkit is able to redraw itself when window is moved between monitors, DPI is always the same for the whole X screen.
I actually did attach both configs in previous message.
My bad, missed it. BTW, in the future, please use attachments to keep tickets tidy.
I always set DPI 96 in for my X server, and I've never seen any application that ignored it and used 102 or 131 DPI directly from monitor data.
Many applications do this, Java for example, and you may find more on this bug tracker.
Anyway, how can monitor's physical DPI have any meaning in multimonitor setup?
The average value is better than nothing.
We also capture the per-monitor DPI, which has a meaning and which we will be able to use with other display servers, just not with X11.
No app or toolkit is able to redraw itself when window is moved between monitors, DPI is always the same for the whole X screen.
Correct for X11.
OK, I've removed --dpi from cli, the only place in xpra where DPI is set is xvfb line in server's xpra.conf. With single monitor and client's X DPI 96 (not monitor's native) everything now works correctly.
Connected second monitor, started new xpra session, got this:
2016-05-25 11:19:11,642 get_number_of_desktops() 05000000=5 2016-05-25 11:19:11,642 get_desktop_names() d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203100d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203200d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203300d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203400d180d0b0d0b1d0bed187d0b8d0b920d181d182d0bed0bb203500=['\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 1', '\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 2', '\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 3', '\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 4', '\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x87\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x82\xd0\xbe\xd0\xbb 5'] 2016-05-25 11:19:11,642 get_screen_sizes(1.000000, 1.000000) found 1 screens 2016-05-25 11:19:11,642 screen 0 has 2 monitors 2016-05-25 11:19:11,642 workareas: [] 2016-05-25 11:19:11,643 number of monitors does not match number of workareas! 2016-05-25 11:19:11,643 monitor 0: ['', 0, 0, 1920, 1200, 518, 324] 2016-05-25 11:19:11,643 monitor 1: ['', 1920, 0, 1600, 900, 310, 174] 2016-05-25 11:19:11,643 get_workarea()=<type 'str'>, len=80 2016-05-25 11:19:11,644 get_workarea() 24000000000000009c0d0000b0040000=(36, 0, 3484, 1200) 2016-05-25 11:19:11,644 workarea=(36, 0, 3484, 1200) 2016-05-25 11:19:11,644 screen 0: (':0.0', 3520, 1200, 929, 317, [('', 0, 0, 1920, 1200, 518, 324), ('', 1920, 0, 1600, 900, 310, 174)], 36, 0, 3484, 1200) 2016-05-25 11:19:11,644 desktop size is 3520x1200 with 1 screen: 2016-05-25 11:19:11,644 :0.0 (929x317 mm - DPI: 96x96) workarea: 3484x1200 at 36x0 2016-05-25 11:19:11,644 monitor 1 1920x1200 (518x324 mm - DPI: 94x94) 2016-05-25 11:19:11,644 monitor 2 1600x900 at 1920x0 (310x174 mm - DPI: 131x131) 2016-05-25 11:19:11,645 dpix=52, dpiy=96 2016-05-25 11:19:11,645 dpix=52, dpiy=96 2016-05-25 11:19:11,645 dpi: 74, xdpi=52, ydpi=96 2016-05-25 11:19:11,647 get_vrefresh()=60 2016-05-25 11:19:11,648 get_antialias_info()={}
52x96, everything is tiny. Why?
Could you please add --ignore-everything-and-set-this-dpi-everywhere-possible=
cli option?
52x96, everything is tiny. Why?
Those numbers look wrong, please post the "-d screen" debug log with latest trunk which includes better debug logging messages.
You can also run this command to get the same results:
$ XPRA_SCREEN_DEBUG=1 python -c "from xpra.x11.gtk2 import gdk_display_source;from xpra.platform.xposix import gui;print(gui._get_randr_dpi())" 2016-05-25 15:43:56,150 xdpi=93, ydpi=95 - size-mm=1573x577, size=5760x2160 (93, 95)
Could you please add --ignore-everything-and-set-this-dpi-everywhere-possible= cli option?
That's already the case with the client's "--dpi=XXX" switch as long as you remove all dpi command line arguments to Xdummy and Xvfb (which is the default) and apply the patches (for applications relying on "hardware" dpi).
We then set the virtualized physical dpi and all the xrdb settings to match that value.
That's already the case with the client's "--dpi=XXX" switch as long as you remove all dpi command line arguments to Xdummy and Xvfb (which is the default) and apply the patches (for applications relying on "hardware" dpi).
So in theory, only #1193 gets in the way. I'll build and test latest trunk later today.
Yes!
With latest trunk and clean configs starting with --desktop-scaling=off --dpi 96
works as expected.
Setting dpi = 96
and desktop-scaling = off
in xpra.conf also works!
Could you point me to any info on status of upstream adoption of dpi patch in dummy driver?
BTW, build scripts which generate xpra.conf add build dir prefix to "/etc/xpra/xorg.conf" string in xvfb line.
Could you point me to any info on status of upstream adoption of dpi patch in dummy driver?
Upstream is not going to be interested on the DPI patch as it is, because it is quite hackish.
The other patches are being pushed though, some have landed already.
Some links:
BTW, build scripts which generate xpra.conf add build dir prefix to "/etc/xpra/xorg.conf" string in xvfb line.
The xvfb line should always contain the path to the xorg.conf that was installed with the xpra.conf.
And as far as I can tell, it is the case.
If you run "./setup.py build" then the path in build will be relative to the current working directory.
You can also try: ./setup.py install --home=./install
, etc...
Doesn't look like a bug in trunk to me (though #977 was fixed quite recently).
I've built debian package using infrastructure from the trunk (https://xpra.org/svn/Xpra/trunk/debian/). Perhaps some faulty interaction between packaging scripts and setup.py results in full path from temporary build environment being put in final config.
Were DPI patches ever proposed for Debian? If not, I will file a bug there (At least I do not see any current related bugs against xserver-xorg-video-dummy)
I've built debian package using infrastructure from the trunk..
Gotcha: fixed in r12685
I built new Debian Jessie packages with the three patches applied: https://github.com/ctaggart/xserver-xorg-video-dummy/releases/tag/1_0.3.7-1.1
Now I just need to install and test with the correct server and client switches. Which switches should I use on the client or server?
If you have all the bits installed, you should not need any dpi flags anywhere, remove them if present in your config file and your xvfb command.
Success! No dpi flags are set. On the client, I had to attach with --desktop-scaling=off
.
xpra attach --desktop-scaling=off tcp:127.0.0.1:6100
After that, I checked the resolution on the server and it reported 72 dpi.
dpyinfo | grep resolution
resolution: 72x72 dots per inch
I installed my build for Debian Jessie like so:
curl -L -O https://github.com/ctaggart/xserver-xorg-video-dummy/releases/download/1_0.3.7-1.1/xserver-xorg-video-dummy_0.3.7-1.1_amd64.deb
dpkg -i xserver-xorg-video-dummy_0.3.7-1.1_amd64.deb
I verified it was installed with:
dpkg -s xserver-xorg-video-dummy | grep Version
The resolution looks much better on my iMac now. Thanks!
If someone finds the time: #1215.
Milestone renamed
More DPI issues and regressions: #2610.
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1202