66

Typical situation is that I type something (worst case is my password) in some application, when some other application pops up a window and steals the focus, so my typing (password) goes to something else. I would like to prevent this, at least when I actively type something in an edit box. I always really hated this on Windows, but I never found a way to prevent this. I started using Ubuntu a while ago, and so far I was able to do everything I wanted, so I thought maybe this is also possible. Thanks in advance!

pomsky
  • 67,112
  • 21
  • 233
  • 243
Imre Major
  • 661
  • 1
  • 5
  • 4
  • 8
    Try to change a setting with the terminal command `gsettings set org.gnome.desktop.wm.preferences focus-new-windows 'strict'`. Let us know if that works in your case. To reset to default, give the command `gsettings reset org.gnome.desktop.wm.preferences focus-new-windows` – vanadium Oct 15 '18 at 20:13
  • 5
    Thanks. With this change the new windows appear in the background, but interstingly the focus is lost. So for example I start typing in the terminal, and meanwhile I start some application with starts up quite slowly. I click on the application on the left side in the favorites, click back to the terminal window to continue typing. In a few seconds the application starts, its window is put behind the terminal window (which is good) but I lose the focus, and cannot type until I click on the terminal window again. – Imre Major Oct 16 '18 at 15:26
  • 2
    A pity this did not work completely. It remains something that is difficult to control. Many related questions over the years unfortunatelly remained unanswered. – vanadium Oct 16 '18 at 16:05
  • It's not a bug, it's a feature! :( Another variation of this which affects my project is that when my app displays a pop-up (using `yad`) and the user clicks anywhere else, from then on that pop-up and all subsequent ones from the same app never get the focus back, even when they're on top! (The same thing would happen if another app displayed a window as in your case.) ... – Joe Oct 18 '18 at 03:55
  • 2
    ... I haven't tried it yet, but I'm thinking about writing another little app (that my main app can start in the background and subsequently stop when it no longer needs it) that just sits in the background looking for my pop-ups and gives the focus back to them. It appears to be easy enough to write using `bash` and `xdotool`, but a lot of things look simple before you try to implement them. This would have to know what windows it was looking for in advance, so it's not a generic solution to your issue. – Joe Oct 18 '18 at 04:01
  • Just brainstorming: It might be possible to write a desktop automation script using `AutoKey` or a similar tool that you could activate using a hotkey as soon as you open a window you want to keep focused. It would grab the info on the current window and use it to start my little helper script from the previous comment. This would be awkward, but it would probably work. That these suggestions are overly complex indicates a shortcoming in the Free Desktop windows specifications (which are otherwise pretty good.) – Joe Oct 18 '18 at 04:13
  • `gsettings set org.gnome.desktop.wm.preferences auto-raise false`? Or maybe with `wmctrl`? – Pablo Bianchi Jan 26 '19 at 06:03
  • 3
    The top and most upvoted comment by @vanadium doesn't work at all. If in the shell I type `gedit &[enter]ls"`, "ls" ends up in gedit, not on the shell. – Giszmo Jan 05 '21 at 14:00
  • Giszmo is right. I just tried this with gnome-shell 41.3, X11. The "strict" setting seems to have no effect. – uncleremus Jan 18 '22 at 07:43
  • Focus grabbing can be done "right" - the ssh or gpg askpass dialogs do this, for example. The entire screen changes color and everything is frozen. It's practially impossible not to notice that something important happened, and to type private content into a "wrong" window inadvertently. But stealing focus silently, like gedit does, is really dangerous. – uncleremus Jan 18 '22 at 07:49

5 Answers5

3
  1. Install CompizConfig Settings Manager

    • either from Ubuntu Software Center
    • or via terminal:

      sudo apt-get install compizconfig-settings-manager
      
  2. Open CompizConfig Settings Manager and go to General -> General options -> Focus and raise behaviour

  3. Change the 'Focus prevention level' from 'Low' to 'Normal'.

pomsky
  • 67,112
  • 21
  • 233
  • 243
  • 1
    Not applicable to Ubuntu 18.04 with GNOME 3, it doesn't even have Compiz. – pomsky May 03 '20 at 16:18
  • @pomsky I just today did the above steps on my Ubuntu 18.04 and they worked. I don't remember having added Compiz individually, other than the mentioned package. How could it be working? – Vassilis Barzokas May 03 '20 at 18:58
  • Is your system upgraded from an older Ubuntu release? – pomsky May 03 '20 at 19:00
  • No, it was installed as 18.04.1 and has been upgraded just up to 18.04.4 and I can verify that my window manager is Gnome 3, so I haven't changed it. Have you tried the above steps on your Ubuntu 18.04 and didn't work? I wonder if adding `CompizConfig Settings Manager` also adds any prerequisite that make this requested feature working. In any case I only did the above and I am no longer experiencing the issue. – Vassilis Barzokas May 03 '20 at 19:06
  • Okay, fair enough! – pomsky May 03 '20 at 19:09
  • Installing this on Pop!_OS 20.04 (based on Ubuntu, uses Gnome 3) worked via apt. But it couldn't help at all at any of the "Focus prevention levels" from Low to Very High. I tried adding apps - Terminal & Upwork - to using the option given to add window, and changing prevention level; no cigar. – Qumber Jul 22 '20 at 05:18
  • 2
    On Ubuntu 20.04 I used this solution and it required one more step for it to work. I had to Alt+F2 and run the "r" command to restart the x server. I assume the settings get reloaded after that and THEN, new windows stopped stealing current window focus. – EffectiX Aug 31 '21 at 13:27
  • It didn't work for me on Ubuntu 22.04. I even tried the other "higher" level settings (High and Very High), and with a reboot between each attempt. – user643722 Oct 07 '22 at 10:24
0

As you haven't accepted an answer yet, perhaps using this bug - a minimized always-on-top window to not even put on-demand new windows on top, would help.

Cees Timmerman
  • 604
  • 11
  • 26
  • 1
    The bug you linked is for elementary OS and Gala. Not sure how useful it is for Ubuntu 18.04 with GNOME 3. – pomsky May 03 '20 at 16:21
0
gsettings set org.gnome.desktop.wm.preferences focus-new-windows 'smart'

(I tried the first comment which set the setting to 'strict' but found this didn't work. I also found a tutorial when I searched this setting, that was trying to make windows steal focus like WindowsOS does(opposite of OP), and he set it to 'strict' to accomplish this, and said 'smart' caused things to NOT steal focus. I tried 'smart' and it worked. I can now type freely into a terminal while programs open and they don't steal focus. Ubuntu 18.04) https://major.io/2015/07/06/allow-new-windows-to-steal-focus-in-gnome-3/#:~:text=Open%20dconf%2Deditor%20and%20navigate,and%20you%20can%20select%20strict.

diox8tony
  • 101
  • Doesn't work for me unfortunately. I keep typing in a terminal window, meanwhile start spotify for example. As soon as the spotify window appears my typing stops working. Ubuntu 21.10, GNOME 40.4.0 – Imre Major Feb 25 '22 at 18:50
  • I used the "get" version of your command to find that I am already using the 'smart' setting (and suffer from the window focus issue described); i.e. `gsettings get org.gnome.desktop.wm.preferences focus-new-windows`. – user643722 Oct 07 '22 at 10:27
0

If you are using Cinnamon, there is an easy solution which I found here:

https://superuser.com/questions/1377530/how-to-prevent-programs-stealing-focus-in-mint-linux-19

Search for 'Windows', then:

Windows > Behaviour > Prevent focus stealing > On.

I was experiencing this issue with Thunderbird Lightning Popups and could now finally resolve this.

enter image description here

Ohumeronen
  • 131
  • 3
-1

If using X Panel (XFCE)

Using "Always On Top" or "Always Below Other Windows" options for the window you need to remain focused, or unfocused. Just right-click the icon on the desktop panel and check the option. That window will behave as you wish.

Also, force certain windows to a particular workspace. Something I use constantly, if you pointer is on the desktop, mouse scroll changes which workspace is focused.

XFCE Desktop Panel

J. Cravens
  • 23
  • 4
  • 5
    This doesn't change anything about focus. – Saren Tasciyan Aug 26 '20 at 10:26
  • Especially, even with always on top and always on visible workspace enabled, Skype still steals focus when you switch to another workspace – axolotl Oct 05 '20 at 02:50
  • 1
    Also, it doesn't work for MS Teams, which doesn't support the normal window options - there's no way to tell it to stay on any workspace. – Rick-777 Mar 29 '21 at 09:48
  • Sorry it does not pop up but it steals the active window, so the typing goes to a window in the background which is even worse. – JoKalliauer May 19 '21 at 12:34