How do I set focus follows mouse?
Solution 1:
13.04 and later (GUI)
Follow-on-focus settings can be set using the unity-tweak-tool
12.10 and later (command line)
The following controls follow-on focus
gsettings set org.gnome.desktop.wm.preferences focus-mode 'sloppy'
or
gsettings set org.gnome.desktop.wm.preferences focus-mode 'mouse'
Use the value 'click'
to reset to the standard focus-control.
Note: the difference between 'sloppy'
and 'mouse'
is described at the bottom of this answer.
In addition you have the following option which when set, automatically raises the window to have focus:
gsettings set org.gnome.desktop.wm.preferences auto-raise true
You can control the delay for this auto-raise capability (in milliseconds):
gsettings set org.gnome.desktop.wm.preferences auto-raise-delay 500
You can change raise-on-click
to control what window is on top:
gsettings set org.gnome.desktop.wm.preferences raise-on-click false
12.04
Two methods for 12.04 are presented below:
method 1
Use gconf-editor
and change the focus-mode value shown to mouse or sloppy
(see note below)
If do not have gconf-editor
already installed then you can install via the terminal command:
sudo apt-get install gconf-editor
In addition you have the following key which when set, automatically raises the window to have focus - auto-raise
.
You can control the delay for this auto-raise capability (in milliseconds) by changing the key value auto-raise-delay
method 2
use gnome-tweak-tool
change windows focus mode to mouse or sloppy
(see note below)
"mouse" vs "sloppy"
A focus mode "sloppy" seems to work better at allowing Alt+TAB to override focus.
"mouse" means that if the mouse isn't in the window, the window isn't selected, no matter what you've selected in any other way.
The window focus mode indicates how windows are activated. It has three possible values; "click" means windows must be clicked in order to focus them, "sloppy" means windows are focused when the mouse enters the window, and "mouse" means windows are focused when the mouse enters the window and unfocused when the mouse leaves the window.
Controlling What Window is on Top
The following window options control what window is in the front of others (or "on top"). It's slightly different than what window has the input focus. The following descriptions help explain slightly.
raise-on-click
Some users who use focus-follows-mouse do not like the windows the interact with to come to the top unless they explicity click on the tilebar of the window. This gives a finer grain of control when working with multiple windows, but can be frustrating for most users.
auto-raise
Some users who use focus-follows-mouse, like to have the window their cursor is over automatically raise to the top. This makes the window in full view, with no other windows eclipsing it.
auto-raise-delay
The length of time to wait before triggering the auto-raise behavior.
Solution 2:
This can be done through CompizConfig Settings Manager. I've tested it on 11.10, 12.04, and 12.10, and Elder Geek successfully tested it on 14.04. and 16.04
Select the "Focus & Raise Behavior Tab", then uncheck "Click To Focus." Make sure "Auto-Raise" is checked.
If you don't have CompizConfig Settings Manager (also known as 'CCSM') installed, you can do so from the Software Center, or from the command line:
sudo apt-get install compizconfig-settings-manager
You can then launch it with as ccsm
from the command line, or from the launcher with "compiz" or "ccsm",
Here are some general caveats for running ccsm: what are some of the issues with ccsm?
Solution 3:
While you can use the gconf-editor or gnome-tweak-tool to do this, they are not installed by default. I also found (on the intarwebs from http://blog.bodhizazen.com/linux/gnome-3-focus-follows-mouse):
gconftool-2 --type string --set /apps/metacity/general/focus_mode mouse
gconftool-2 --type boolean --set /apps/metacity/general/auto_raise true
gconftool-2 --type integer --set /apps/metacity/general/auto_raise_delay 600
Personally, I don't like the auto_raise feature, so I set the second option to "false" and didn't set the auto_raise_delay option.
Note, however, that this ultimately "breaks" the Unified Menu Bar (UMB) (when you mouse off the item you're using and onto another one, the Unified Menu Bar is now reflective of whatever you're now hovering over).
Two Workarounds:
- Move the window to the top of the screen before accessing UMB
- Press F10, which will keep UMB open on focused window for you to interact with
Tested as recently as Precise
more edits: I've put "breaks" in quotes - yes, it's not really broken, but it breaks IMO the intent of the UMB, or at least makes it challenging to use as Reese correctly points out in the comment. IMO, that's a "breaks simple usability, but with an annoying workaround." Though given Linux's focus on providing very strong multitasking (which tends to lead to a "cluttered" desktop), it seems that either the UMB diminishes multitasking, or multitasking diminishes the UMB's capabilities. I'll leave that as an exercise to the reader to decide...