! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
Display Devices With Invalid Characters Cannot Be in displays.xml
Status:
RESOLVED: FIXED
Product:
Xfce4-settings
Component:
Display Settings

Comments

Description jatedev 2015-01-06 17:14:53 CET
Created attachment 5846 
filter invalid characters from randr

On my i.mx6 system under Linux kernel 3.10.17 on the Vivante driver (from Freescale), the display name returned by randr is "DISP3 BG".

The space is invalid for ~/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml. Daemon xfsettingsd does not write the displays.xml file. Unfortunately, there was no error message in the debug output.

Also, the Vivante driver returns modes of the format U:1980x1020. This is incompatible with the display modes generated in the xfce4 display panel.


My first patch translates invalid characters in the display name to an underscore.

My second patch modifies the loop which checks for a valid mode after the user selects a mode. It generates a mode string ("1980x1020") like the ones in the display panel for comparison.
Comment 1 jatedev 2015-01-06 17:15:58 CET
Created attachment 5847 
check mode based on string instead of randr derived name
Comment 2 jatedev 2015-01-06 17:19:40 CET
The version of xfce4-settings is 4.11.x.
Comment 3 Sean Davis editbugs 2015-01-31 18:19:12 CET
Specifically, which xfce4-settings are you using?  Spaces are actually fully functional with xfce4-settings 4.11.3. In fact, we actually insert spaces into the names now.

<property name="eDP1" type="string" value="1. SDC 15&quot;">
<property name="HDMI2" type="string" value="2. LG Electronics 22&quot;">

The second patch is actually quite good and has been applied to master.
Comment 4 jatedev 2015-02-03 00:20:22 CET
I am currently using xfce4-settings 4.11.0+gitb7a0e1f. which is the version currently used in Openembedded's meta-oe/meta-xfce layer. This is found on gitorious.org/xfce/xfce4-settings.git. It is close to 4.11.1 as found on git.xfce.org.

It has been a little while, but IIRC the problem came in the property name as opposed to the value.

Within diplays.xml this is how it looks with my patch:

<channel name="displays" version="1.0">
  <property name="Default" type="empty">
    <property name="DISP3_BG" type="string" value="DISP3_BG">
...

The the original "DISP3 BG" as returned by libxrandr, the display setting would not get set. I only discovered this by monitoring the dbus communications. The xfsettingsd replied with the message including

"Property names can only include the ASCII..."

I think the problem occurs in this portion, and not the value.
    <property name="DISP3 BG"
                        ^^^

The example you provided shows a space in the value field. Do you know if any changes were made to support a space in the property name?

Thanks.
Comment 5 Sean Davis editbugs 2015-02-04 02:40:20 CET
Thanks an excellent point.  I've modified your patch slightly to not modify the friendly name, only the name (which is used in the property name). This should eliminate any further issues from this bug.  Let me know if this works for you.

http://git.xfce.org/xfce/xfce4-settings/commit/?id=5a7f55a049147320adb8e2dc8495d6f868c4d6ac
Comment 6 jatedev 2015-02-04 16:03:02 CET
Thanks! Looks good.
Comment 7 Sean Davis editbugs 2015-02-05 12:26:02 CET
Marking as FIXED, will be available in the next release.

Bug #11423

Reported by:
jatedev
Reported on: 2015-01-06
Last modified on: 2015-02-05

People

Assignee:
Jérôme Guelfucci
CC List:
4 users

Version

Version:
unspecified

Attachments

Additional information