> * 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
Bugs, which is subscribed to 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
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs