> * you are changing "do-nothing" to do something, the main reason that this 
> setting was added is that the xrandr calls can be slow on some drivers
> (e.g taking over a second), your patch will add several seconds delay on boot
> on some configuration


The upstream code has changed this behaviour. The patch reflects the upstream 
behaviour closely.

from gsd-xrandr-manager.c

1692 static GnomeRRConfig *
1693 make_default_setup (GsdXrandrManager *manager)
1694 {
1695         GsdXrandrManagerPrivate *priv = manager->priv;
1696         GnomeRRConfig *config;
1697         GsdXrandrBootBehaviour boot;
1698 
1699         boot = g_settings_get_enum (priv->settings, 
CONF_KEY_DEFAULT_MONITORS_SETUP);
1700         g_debug ("xrandr default monitors setup: %d\n", boot);
1701 
1702         switch (boot) {
1703         case GSD_XRANDR_BOOT_BEHAVIOUR_DO_NOTHING:
1704                 config = make_xinerama_setup (manager, priv->rw_screen);
1705                 break;
1706         case GSD_XRANDR_BOOT_BEHAVIOUR_FOLLOW_LID:
1707                 if (laptop_lid_is_closed (manager))
1708                         config = make_other_setup (priv->rw_screen);
1709                 else
1710                         config = make_xinerama_setup (manager, 
priv->rw_screen);
1711                 break;
1712         case GSD_XRANDR_BOOT_BEHAVIOUR_CLONE:
1713                 config = make_clone_setup (manager, priv->rw_screen);
1714                 break;
1715         case GSD_XRANDR_BOOT_BEHAVIOUR_DOCK:
1716                 config = make_other_setup (priv->rw_screen);
1717                 break;
1718         default:
1719                 g_assert_not_reached ();
1720         }
1721 
1722         return config;
1723 }


The default being "follow-lid" . 

The upstream change is massive ( more to do with power management and
systemd ), and as per me not worth it.


This is the code which we use

1810 static void
1811 apply_default_boot_configuration (GsdXrandrManager *mgr, guint32 timestamp)
1812 {
1813         GsdXrandrManagerPrivate *priv = mgr->priv;
1814         GnomeRRScreen *screen = priv->rw_screen;
1815         GnomeRRConfig *config;
1816         GsdXrandrBootBehaviour boot;
1817 
1818         boot = g_settings_get_enum (priv->settings, 
CONF_KEY_DEFAULT_MONITORS_SETUP);
1819 
1820         switch (boot) {
1821         case GSD_XRANDR_BOOT_BEHAVIOUR_DO_NOTHING:
1822                 return;
1823         case GSD_XRANDR_BOOT_BEHAVIOUR_CLONE:
1824                 config = make_clone_setup (mgr, screen);
1825                 break;
1826         case GSD_XRANDR_BOOT_BEHAVIOUR_DOCK:
1827                 config = make_other_setup (screen);
1828                 break;
1829         default:
1830                 g_assert_not_reached ();
1831         }
1832 

The do-nothing does not exists anymore, and we use follow-lid or do-
nothing which still call xinerama.


> * you make the default to be xinerama when there is no lid closed, that's 
> wrong in some cases.
> E.g we want to default to mirror for projectors configurations) ... there is
>  no good way to detect projectors at the moment though, that's why we default
> to mirror

This might be the current behaviour, but not an acceptable behaviour as
per upstream ( and our customer ).


> * the lid status is not an accurate info, some hardware don't rely that status
> correctly

In this case, imho, we would need to file a but against
kernel/acpi/hardware vendor as this would break g-s-d xrandr plugin with
or without the patch.


> Did you consider suggesting to the customer to just change the
> "default-monitors-setup" gsettings key from 'do-nothing' to 'dock'.
> The schemas documentation says: 'dock' will switch off the internal monitor

The current behaviour is not acceptable, and should be updated to be
suitable.


> That seems like what they want, and they should be able to just deplay a 
> custom
>  settings package including a schemas override easily?

Personally, I believe we should have saner defaults in Ubuntu .


-- ritz

-- 
You received this bug notification because you are a member of Ubuntu
Desktop Bugs, which is subscribed to gnome-settings-daemon in Ubuntu.
https://bugs.launchpad.net/bugs/1065979

Title:
  external/internal monitors mirrored on boot when laptop lid is closed

To manage notifications about this bug go to:
https://bugs.launchpad.net/gnome-settings-daemon/+bug/1065979/+subscriptions

-- 
desktop-bugs mailing list
desktop-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs

Reply via email to