paulgorman.org/technical

Configuration to Make Gnome 3 Tolerable to Use

(2018)

#  apt-get install gdm3 gnome gnome-tweaks dconf-editor

$  cat ~/.local/share/applications/firefox-local.desktop 
[Desktop Entry]
Name=Firefox
GenericName=Web Browser
X-GNOME-FullName=Firefox Web Browser
Exec=/home/paulgorman/bin/firefox/firefox %u --class Firefox
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/usr/share/icons/hicolor/128x128/apps/firefox-esr.png
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;
StartupWMClass=Firefox

Activate/install these extension:

Although the Gnome Alt-Tab behavior is unexpected, I’ve found that messing with it leads to more problems. Once you get used to it, Alt-Tab/Alt-Backtick/Alt-Esc gives a minimally-acceptable workflow.

Tweak tool:

Gnome Settings:


Old

Install gnome-tweak-tool.

Activate these extensions:

Tweaks:

It appears the only way to add an application to the dock is with a foo.desktop file, which must reside in either /usr/share/applications or ~/.local/share/applications/. Here’s ~/.local/share/applications/firefox-dev.desktop:

[Desktop Entry]
Name=Firefox Developer Edition
GenericName=Web Browser
X-GNOME-FullName=Firefox Developer Edition Web Browser
Exec=/home/paulgorman/bin/firefox/firefox %u --class FirefoxDev
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/home/paulgorman/bin/firefox/browser/icons/mozicon128.png
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;
StartupWMClass=FirefoxDev

In The Gnome Settings tool:

Set some preferences not exposed through GUI config tools:

$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-1 "['<Super>1']"
$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-2 "['<Super>2']"
$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-3 "['<Super>3']"
$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-4 "['<Super>4']"
$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-5 "['<Super>5']"
$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-6 "['<Super>6']"
$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-7 "['<Super>7']"
$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-8 "['<Super>8']"
$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-9 "['<Super>9']"
$ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-10 "['<Super>0']"

$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-1 "['<Super><Shift>1']"
$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-2 "['<Super><Shift>2']"
$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-3 "['<Super><Shift>3']"
$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-4 "['<Super><Shift>4']"
$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-5 "['<Super><Shift>6']"
$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-6 "['<Super><Shift>6']"
$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-7 "['<Super><Shift>7']"
$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-8 "['<Super><Shift>8']"
$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-9 "['<Super><Shift>9']"
$ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-10 "['<Super><Shift>0']"

$ gsettings set org.gnome.shell.overrides edge-tiling false

Complaints:

I feel like the Gnome developers don’t heavily use workspaces themselves.

The “workspaces to dock” extension may address some of my workspaces complaints. (Also check out “dash to dock”.)

The Workspace Grid extension may be an even better solution to my biggest Gnome 3 complaints.

———————- OLD —————————-

Install/activate these extensions:

Gnome-shell may need to be restarted to activate some extensions:

% gnome-shell replace &

In Tweak Tool, set Windows -> Focus Mode: Mouse. And Titlebar Buttons Maximize and Minimize to ON. Also, set Attached Modal Dialogs and Automatically Raise Windows to OFF.

% gsettings set org.gnome.shell.overrides focus-change-on-pointer-rest false

Add the desired number of workspaces (e.g. ten) in Tweak Tool. We want to set keyboard shortcuts to these desktops (like Alt-1 through Alt-0). Unfortunately, not all shortcuts can be set with the Gnome 3 keyboard configuration tool. Use the dconf-editor tool and drill down to org -> gnome -> desktop -> wm -> keybindings, and set “switch-to-workspace-1” like “[’1’]”. Not that Gnome also maps some of the Alt-F5 keys by default, so we may want to un-map those.

In the Gnome 3 settings, Keyboard -> Shortcuts -> Navigation, set “Switch windows” to “Alt+Tab”. (Was there also an issue with Gnome grouping windows by application? I don’t clearly recall.)

https://github.com/gnome-integration-team/firefox-gnome/issues/164 Scroll bars. For some insane reason Gnome 3 switched the long-established behavior of all mouse buttons when clicking the empty space of a scroll bar. We expect a click mouse button 1 to send page-down or page-up when clicking below or above the scroll handle. Instead, Gnome 3 jumps the view port to the clicked location. The behavior of mouse buttons 2 and 3 also changed. Once it was possible to add the following line to ~/.config/gtk-3.0/settings.ini to revert this behavior:

gtk-primary-button-warps-slider=0

However, this no longer seems to work reliably. It leaves some applications with the expected behavior and other applications with the surprising Gnome 3 behavior. Firefox, for example, doesn’t respect the gtk setting. Sigh. Firefox used to have a ui.scrollToClick option that would restore sane behavior when set to zero, but the option no longer seems to exist.

gnome-terminal

$ gsettings set org.gnome.desktop.interface cursor-blink false

Profile preferences:

Set colors:

nautilus

$ cat << 'EOF' > ~/bin/fm

#!/bin/sh /usr/bin/nautilus $PWD 2>/dev/null & EOF $ chmod a+x ~/bin/fm