# 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 ``` Interesting: ``` $ gsettings list-recursively ``` Activate/install these extension: - Openweather - Vitals - Alternatetab - Launch new instance - https://extensions.gnome.org/extension/118/no-topleft-hot-corner/ - Workspace indicator - Disable workspace switcher popup Maybe the only way to tolerate Gnome 3 is to forget about any window management model — task-oriented workspaces, iconified windows, etc — and accept one big stack of windows as the only way. Or maybe static two workspaces, with the second as dump for windows you would otherwise minimize/iconify? Tweak tool: - General: animations off - Fonts: - hinting slight - antialiasing subpixel - Keyboards & Mouse - Compose key: PrtScn - Overview shortcut: Left Super - Additional Layout Options: - Caps Lock is also Ctrl - Key sequence to kill the X server: Ctrl+Alt+Backspace - WHERE IS THE EQUIVALENT OF "xcape -e 'Control_L=Escape'" OPTION?! https://github.com/alols/xcape/issues/67 - Middle Click Paste on - Top Bar - Application Menu (I guess) - Clock: weekday, date - Calendar: week numbers - Windows: edge tiling on - Workspaces: Static workspaces 6 Gnome Settings: - Search: - All off except Terminal and Files - Move Terminal to the top - Privacy: - Screen Lock: on - Location Services: off - Usage & History: on, retain history 30 days - Purge Trash & Temporary Files: on, after 30 days - Power: - Blank screen: 15 minutes - Automatic suspend: on, 1 hour - Devices: - Displays: Night Light: on, manual 8 PM to 9 AM - Keyboard: - Move to workspace above: Alt+k - Move to workspace below: Alt+j - Switch applications: Super+Tab (the default) - Lock screen: disabled - Restore the keyboard shortcuts: disabled - Hide window: disabled Hmm, interesting. Set "Switch windows" to Alt+Tab, and "Switch applications" to Alt+Esc. With "Switch windows of an application" set to Alt+`, we get a fair amount of functionality. Then: ``` 🐚 bava ~ $ gsettings set org.gnome.shell.app-switcher current-workspace-only false 🐚 bava ~ $ gsettings set org.gnome.shell.window-switcher current-workspace-only true ``` --- ### Old Install `gnome-tweak-tool`. Activate these extensions: - Alternatetab and set "Show only windows in the current workspace". - Launch new instance - Workspace indicator Tweaks: - Set the Appearance of Enable Animations to "off". - Set all Fonts to "DejaVu Sans Book 10" or "DejaVu Sans Mono Book 10". - Set the Windows Focus Mode to Sloppy. (This may mess with Alt-Tab window switching....) - Set the Windows titlebar buttons Maximize and Minimize to "on". - Set Workspaces creation to "Static" and set the number of workspaces (10+). 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: - Devices... Keyboard... Move to workspace above = Super+k - Devices... Keyboard... Move to workspace below = Super+j - Devices... Keyboard... Toggle maximization state = Super+m - Devices... Keyboard... Custom shortcut... New Terminal = Super+Return for `gnome-terminal` Set some preferences not exposed through GUI config tools: $ gsettings set org.gnome.desktop.media-handling automount false $ gsettings set org.gnome.desktop.media-handling automount-open false $ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-1 "['1']" $ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-2 "['2']" $ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-3 "['3']" $ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-4 "['4']" $ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-5 "['5']" $ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-6 "['6']" $ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-7 "['7']" $ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-8 "['8']" $ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-9 "['9']" $ gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-10 "['0']" $ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-1 "['1']" $ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-2 "['2']" $ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-3 "['3']" $ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-4 "['4']" $ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-5 "['6']" $ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-6 "['6']" $ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-7 "['7']" $ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-8 "['8']" $ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-9 "['9']" $ gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-10 "['0']" $ gsettings set org.gnome.shell.overrides edge-tiling false Complaints: - Label the workspaces so I know where I'm at and where I should move windows! - Gnome badly needs a "switch-to-last-used-workspace" keyboard shortcut! - Gnome models workspaces as an array. I can move up and down between workspaces. A huge missing option is **wrapping**, so continuing to hit "workspace down" on the bottom workspace wraps around to the top workspace. - Gnome's "Type to search..." feature could be much more powerful, if Gnome gave us a way to tag workspaces and windows with searchable keywords. - There no way to truly minimize/iconify windows. The Gnome minimize function just sends the window to the bottom of the window stack instead of hiding it from the stack. 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](https://github.com/zakkak/workspace-grid) extension may be an even better solution to my biggest Gnome 3 complaints.** ---------------------- OLD ---------------------------- Install/activate these extensions: - Disable workspace switcher popup - Launch new instance - No topleft hot corner - Workspace indicator 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 - Hide menubar Profile preferences: - Cursor shape Block - Custom font "Liberation Mono Regular 10" - Show scrollbar uncheck - Scroll on output uncheck - Scroll on keystroke check - Limit scrollback to 10000 lines Set colors: - Solarized Dark - Default color #D9D9D9 #002B36 - Bold color #FFFFFF - Cursor color #FFFFFF #CE5C00 - Highlight color #002B36 #EDD400 ## nautilus ## $ cat << 'EOF' > ~/bin/fm #!/bin/sh /usr/bin/nautilus $PWD 2>/dev/null & EOF $ chmod a+x ~/bin/fm