Dconf configuration: GNOME 3 Fallback Mode

The Linux GNOME 3 UI assumes you have a beefy 3D GPU and capable driver, which can cause problems when that isn’t the case.

Individual GNOME 3 users can fix this by setting their desktop experience to GNOME 3 “fallback mode” which can avoid the 3D compute burden. Fallback mode is an essential setting for older PCs, VMs, USB graphics, remote desktop, etc. It also provides the (arguably) more familiar GNOME 2 like experience (Applications / Places menus, desktop icons, etc.)

It’s possible to configure fallback mode for all users, plus the login screens, centrally by changing some dconf settings. Here’s how:

First, if you don’t already have a “user” profile, then we create one — specifying a new settings database we’ll call “fallback”. Create a file /etc/dconf/profile/user (as su / sudo) which contains these two lines:

user
fallback

Then we’ll create the settings directories for that new database

sudo mkdir /etc/dconf/db/fallback.d
sudo mkdir /etc/dconf/db/fallback.d/locks

Create a settings file to also use fallback once users are logged in. Create a file called /etc/dconf/db/fallback.d/60-user-fallback with:

[org/gnome/desktop/session]
session-name='gnome-fallback'

[org/gnome/desktop/background]
show-desktop-icons = true

# This one is useful more for automatic USB multiseat
[org/gnome/desktop/lockdown]
disable-user-switching = true

And, finally, create a settings file to have login screens themselves use fallback mode. Create a file /etc/dconf/db/gdm.d/60-login-fallback with:

[org/gnome/desktop/session]
session-name='gdm-fallback'

dconf is a binary settings database (very un-unix like), so for any of these changes to take effect, you must run

sudo dconf update

Which will update the binary blobs which are then queried by GNOME to apply these settings. See the dconf admin guide for more.

And that should do it. You should see the fallback look and feel (more like GNOME 2). And if you’re running in a VM, with USB multiseat, or anywhere you don’t access to a beefy 3D processor — you should see a big drop in CPU usage.

Again, these directions have only been tested on Fedora 17. Please feel free to comment on changes (if any) to apply them for other distros.


neither object nor array? not implemented yet

Switch to gutenberg-Blocks!
There the JSON Content Importer Block gives an easier way to use the JSON-APIs.
Or: Switch on the Debugmode by adding "debugmode=10" in the Shortcode.

If all is without success: Open ticket at wordpress.org please


We have a Problem with JSON here:
Either we got no JSON from the API. Or the basenode-parameter is not ok.
Switch on the Debugmode of the Plugin!
Switch to gutenberg-Blocks!
There the JSON Content Importer Block gives an easier way to use the JSON-APIs.
Or: Switch on the Debugmode by adding "debugmode=10" in the Shortcode.

If all is without success: Open ticket at wordpress.org please


11 comments on “Dconf configuration: GNOME 3 Fallback Mode”

  1. will allik

    This is a great idea, but I need a little more step-by-step instructions to get going. I have no idea how to create a file, or where it would be created! Where do all these lines belong? Still finding my way around Linux…

    Thanks

  2. Bernie Thompson

    For anyone who has never edited a Linux system file, in the end I would recommend not messing with settings like above — a small typo can cause problems that are hard to recover from (if they keep GDM from letting anyone log in). Sorry, perhaps a better way of making the change to GNOME 3 fallback globally will come along …

  3. Me

    Although the dconf binary settings database may be a bit un-unixlike, it’s better than gconfs xml files where for every application you start you’d have to wait a few seconds for all these files to be opened and parsed.

  4. Will Allik

    This wasn’t so hard once I found instructions for logging into Fedora as root and could create the files in the GUI. I understand that it is risky but I have nothing on the system yet and figured I could just reinstall from the CD…
    Everything seems to work, logging in to all stations now with Gnome 2. Thanks.

  5. Dominic

    Love it. How to configure gnome 3 for fallback gdm login session.
    For older graphics cards (like my ATI Radeon X300) this is perfect to let me run fedora 17. Plus I can switch to the infinitely more usable LXFCE desktop. I hope others find this page when they need it.

  6. William Allik

    These instructions kept Gnome shell from starting after Fedup upgrade to Fedora 18. Removing them allows users to log on as usual, but in the default Gnome environment.

  7. Rob Thijssen

    Yes, I’m another user who can’t make this work on Fedora 18. The gdm bit still works but as soon as the gnome desktop starts, it stops again and redirects to the login screen.

    • ivan

      This post was written with Fedora 17 in mind. I’ve also attempted to do this same procedure on Fedora 18 and ran into the same issues as you, GDM goes into fallback mode but you are unable to log in to GNOME, we have not found a solution for this yet, unfortunately.

  8. i really own one

    I purchased a Plugable UD-160-A. What sold me was the promise of automatic multiseat configuration using systemd. I’d like to share my “success” story.

    Unfortunately, when I booted up for the first time, the system treated the device as a second monitor rather than a second seat. Internet searches offered few clues, at least to a udev noob like me. So, Plugable, please feature this post somewhere for other noobs.

    Fortunately, after reading Lennart’s documentation (http://www.freedesktop.org/wiki/Software/systemd/multiseat) a little more carefully and finding a sample udev rule (“71-seat.rules”, first online but also in /usr/lib/udev/rules.d) that used his magic “ID_AUTOSEAT” keyword, I did the following:
    – Ran “dmesg” and found the Plugable device vendor and product ID’s.
    – Created a new text file (e.g., “71-seat.rules”) under /etc/udev/rules.d
    – Entered this single line of text:
    SUBSYSTEM==”usb”, ATTR{idVendor}==”17e9″, ATTR{idProduct}==”0377″, ENV{ID_AUTOSEAT}=”1″
    – Rebooted.

    Multiseat feature now works.

    Additional notes:
    – Ran into trouble using display managers other than gdm. (Ugh. I should retest. Consider this first “additional note” suspect.)
    – Ran into poor performance using window managers other than gnome 3. (Ugh. Same caveat.) By “poor performance”, I don’t think the device bandwidth is challenged. It just looks like the window manager or device (or both) don’t know to repaint the display.
    – *Worse* performance using fallback mode. Mostly good performance without it. Maybe something’s changed since Plugable started giving out advice to use “fallback mode”? Even with the “mostly good” performance on gdm/gnome3, the gdm greeter — am I using the stock greeter or another? I don’t know — is very slow to repaint itself and the mouse pointer leaves pointer trails for up to ~6 seconds before erasing them. Fortunately, apps themselves (e.g., Firefox) run very quickly and repaint themselves normally.

    Sorry, I’m not retesting other configurations. Hopefully, this bit of info helps fellow noobs.

    • Bernie Thompson

      Thanks for posting an experience report to help others! I empathize with your experiences — The diversity of behaviors on various Linux distros / window managers / etc is so complex, that we don’t really have any across-the-board recommendations to get things working well. Frankly, it’s a mess. If someone were to do it again, I would recommend writing an app that uses VNC to simulate a seat (connects back to the same machine as a host), and have that app talk directly with the USB display, keyboard, and mouse. That would bypass most of the cross-distro incompatibilities.

Comments are closed.