Hyper Fixating On Linux Desktop's Most Important Setting

Brodie Robertson · Intermediate ·💻 AI-Assisted Coding ·12mo ago

Key Takeaways

This video highlights the importance of the focus follows cursor feature in Linux desktop environments

Full Transcript

Every so often I feel like making a video that I know that basically nobody actually cares about. Maybe me and like two other people. And this is one of those videos. So there is one setting that makes or breaks an environment for me. One setting where if it's done wrong, honestly, it's really hard for me to look past it. I find the environment way more annoying to use. That is something often called focus follows cursor. Sometimes called focus follows mouse. Basically the same thing in my environment. A blue border indicates focus. Focus follows cursor is where I take my mouse, move it over to this window. I don't have to click. I don't have to press anything. As soon as the cursor is on the other window, that window now has focus. Now this might seem like a very simple model. And for this very simple use case, it is. For more complicated situations though, there are very important subtleties that I often see implemented in very different ways. And some of those implementations I find to be very, very annoying. So, as a topic literally no one cares about, I want to talk about those subtleties. First up though, a bit of background for why I like this model. because this is not the default on KDE or Gnome or Cosmic or Windows, but it is something where as I started daily driving Linux, I really grew to like it. So when I first swapped to Linux, I was running a tiling window manager i3WM. Then I went to BSPWM, awesome WM. I tried Sway. I tried Hyperland. Nowadays, I'm using Niru. This is a scrolling tiling window manager, but still basically the same core concept. And what you realize very quickly is focus follows cursor is either the default or in many cases the only option available in tilers. And this is kind of the criticism the model gets because in a tiling environment where windows never overlap, it works absolutely flawlessly. Never any problems when you are purely tiling like this. There is no like weird situation where you might be on one window but on another window. They are very clearly distinct elements and that extends to something like Ner here which technically isn't entirely in the same sense as something like I3WM but the model still makes perfect sense when there is no overlapping windows. Now, in a lot of cases, there is the option for a focus delay where you move the cursor to another window and instead of getting focus immediately, it waits x number of milliseconds, 5 milliseconds, 10 milliseconds, 5,000 milliseconds, whatever you want it to be. Something like KD has this option. Cosmic has the option as well. And I don't like the option. Whenever I turn that option on, frankly, it just feels like everything is sort of laggy and it it feels buggy. Even though I intentionally set that value, I intentionally set a delay, not having it be instant focus gain just feels wrong to me. But even in a floating environment when the windows are distinctly separate, say we do something like this and we put this one here, when it is like this, there are not any problems. Where you start to see problems is when you do something like this. Overlapping windows. Now, you might say, why would I ever want an overlapping window? I'd always just put it over here and there just wouldn't be a problem. Well, there is a case where you're just not going to be able to stop that, and that's with a popup. Whether it be something like a file picker popup or an alert window or something else like that, there are cases where pop-ups appear and they're very likely going to be on top of your current window. Now, certain titles handle this in a really, in my opinion, dumb way. So I have seen cases where by default it just does this. It takes the window and then just puts it into a tile. And some windows behave correctly like that. Other times you have alert windows where they have a very set size and will not actually resize. So you end up seeing something like this where all of this is just empty space for the tile. Usually what I prefer is if it's an alert window, if it's a pop-up, if it's something where the user would expect to see it over their window, it it does just make sense to make it a popup. And this is what happens in something like Neri. Say I was to go and try to save this page, it could very well make this a tiling window. It doesn't though. It makes it floating and that eliminates quite a lot of problems. But the important question is how should you handle focus on this window? That might seem like a really dumb question unless you've thought about this problem for far far too long. Firstly, should focus stay on the window behind it and then you move your cursor over and now the window has focus. Should that depend on the kind of pop-up with something like a file manager where you have to deal with it right now? should that be given immediate focus, but then something like a warning popup or an error popup, not that big of a deal. It can just be open in the background and you can just ignore it. And if focus does go to this popup, what should you do with the cursor? Should the cursor stay where it was before or should you do a cursor warp where it now immediately goes to that window? And if you are doing a cursor warp, is that going to lead to problems where users might feel slightly disorientated because the cursor was not where they previously expected it to be? Even if the devs haven't necessarily thought through these questions, these are questions which have been answered in various different ways, in various different combinations of ways across different environments. And at this point, I'm honestly not entirely sure what is the correct combination of these behaviors. If focus stays on the original window, it kind of defeats the point of a pop-up. The point of a pop-up is to grab your attention. Now, obviously, there are bad pop-ups out there. You know, you have malware, call this number, things like that. Obviously, those are bad. But I mean pop-ups where you want to see them, like a file manager because you're trying to save a file or upload a file, things like that or a warning thing, like things where they are pop-ups, but they are good pop-ups. Maybe the context isn't good, but they're a pop-up that provides value to the user. If you're not being given focus on the window, right? Like the the point is to get focus. And if you decide, I want to do it for some windows and not others, now you have a really inconsistent situation. However, inconsistencies are not necessarily always bad. You might notice I'm not in Nero anymore. Now I'm over in plasma. If I open up the save dialogue, this is a very weird situation. My cursor is on the background window, but the file manager, that is what currently has focus. I can go and do all the key binds with it. No issue whatsoever. We're in a situation where the focus is not following the cursor. If I go and move my cursor from this window to this window and then back off, it's kind of hard to tell because there's not colored borders here. Let's go and put it on the terminal over here. If I start typing, it's not going to type in the file manager. It's going to type in the terminal. This is what currently has focus. And allowing for this slight inconsistency in this one situation solves a very important problem. Cursor warping and the disorientation it can cause. But if you get used to it, cursor warping isn't inherently bad. Back over on Neri, this is what I've been using. If we go save page as, it does a cursor warp. If we do it from here, it does a cursor warp. Now, Neri is a little bit weird about how it warps the cursor. It doesn't necessarily go to the center of the window like other environments will. That's a bug and probably should be addressed, but it still jumps to that window. When I first started using this, it felt really strange as my eyes were expecting the cursor to be over here. So, I'd move somewhere and throw the cursor into a completely different location. But if you basically just force yourself into this model, it works perfectly fine. But then the question you have to answer is, are you going to do cursor warping for pop-ups just to resolve the problem of inconsistent focus? Or are you going to do it for every single window? because those are going to have the same problem as well where you could still be on this window here with the way your cursor is placed, but actually the focus is here. If we uh make this one smaller, spawn a window, jumps it there. Spawn a window, jumps it there. Frankly, now that I'm used to it, I can swap back and forth between both models without much difficulty. As long as I know which model to expect, I can put myself in the mindset for that specific model. However, there is one implementation of focus follows cursor that is always going to feel broken for me and that is what do you do when you have overlapping windows? When you have floating windows like this, what do you do with the focus? Do you have it? So when you move your cursor to the window, the window is raised or is the raise operation and the focus operation two separate things? In the case of Ner, we have to go and click on the window to raise the window. If we are just focused on it, it's still going to be behind. And this isn't just the case in Neri. This is really standard behavior in a Taylor. It's also standard behavior over in KDE. This is the model which makes the most sense. It avoids any problems of windows jumping up and down. Yes, it is an extra click. It's an extra interaction, but it feels very, very much like you're in control. Now, we're over in cosmic. And basically this video was a long way to say I don't like how focus follows cursor works in this environment because in this case the raise and the focus operation are the same function. So if I move my cursor to the terminal down here immediately it's raised up and given focus here here here. This might not seem like that big of a deal in this situation. just don't have the windows overlapping. It is a problem for pop-ups, though. If you have a pop-up that appears over this window and then mouse off that window, the pop-up is now behind the window it's supposed to be above. I've raised this with cosmic. It was raised a long time ago. The implementation is causing so many problems that they are kind of thinking of removing it. I don't think that is the best way to go about this. I think having focus for his cursor is a good idea. However, if you are going to have it, you need to separate the rays and the focus operation. I know this is not an issue in Smithy as Neri is able to do this. This is an implementation choice within Cosmic and I see why it's causing people a lot of problems. I don't like it. I've never seen a single person that likes it this way. The only time it actually works correctly is in tiling mode. And clearly the model was designed around using it in tiling, but it is also nice to have as an option in floating, just not the way it currently works. I forgot about this one, but there is a different problem it also causes for cosmic as well. So, if I click the power button here with ignore the flashing windows, that's just their capture being broken. If I try to mouse over to the window, technically the background is also a window. And this window disappears. The settings window here disappears if a different window gets focus. So it actually breaks this. There's like if you move in a slight correct direction fast enough, you can get to it, but most of the time it will just disappear. If for some reason you stuck around to the end, I hope you learned something about the focus follows cursor model and some different subtleties in how it can be implemented and maybe things that you like, things that you don't like about it. And if you don't like focus follows cursor, I'd love to know why. Why do you like click to focus? I've heard some arguments for it. They've never really felt that compelling to me. I like the snappiness and the responsiveness of focus follows cursor. But if you like click to focus, tell me why. If you like the video, go like the video. If you really like the video and you want to become one of these amazing people over here, check out my Patreon subscribe bar linked in the description down below. That's going to be it for me. And what do you focus on? If it don't involve money, then I don't accept. If it don't involve money, then I don't accept. [Music]

Original Description

There's one feature that I always look for in a desktop, a feature called focus follows cursor and the way it specifically works immediately tells me if I'll like an environment ==========Support The Channel========== ► Patreon: https://brodierobertson.xyz/patreon ► Paypal: https://brodierobertson.xyz/paypal ► Liberapay: https://brodierobertson.xyz/liberapay ► Amazon USA: https://brodierobertson.xyz/amazonusa =========Video Platforms========== 🎥 Odysee: https://brodierobertson.xyz/odysee 🎥 Podcast: https://techovertea.xyz/youtube 🎮 Gaming: https://brodierobertson.xyz/gaming ==========Social Media========== 🎤 Discord: https://brodierobertson.xyz/discord 🐦 Twitter: https://brodierobertson.xyz/twitter 🌐 Mastodon: https://brodierobertson.xyz/mastodon 🖥️ GitHub: https://brodierobertson.xyz/github ==========Credits========== 🎨 Channel Art: Profile Picture: https://www.instagram.com/supercozman_draws/ #Linux #LinuxDesktop #OpenSource #FOSS #Wayland 🎵 Ending music Track: Debris & Jonth - Game Time [NCS Release] Music provided by NoCopyrightSounds. Watch: https://www.youtube.com/watch?v=yDTvvOTie0w Free Download / Stream: http://ncs.io/GameTime DISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from Brodie Robertson · Brodie Robertson · 0 of 60

← Previous Next →
1 This Linux Patch Removes Spectre & Meltdown Protections
This Linux Patch Removes Spectre & Meltdown Protections
Brodie Robertson
2 Linux's Most Degenerate Terminal Application
Linux's Most Degenerate Terminal Application
Brodie Robertson
3 You Can Buy Modern Linux Distros On A DVD??
You Can Buy Modern Linux Distros On A DVD??
Brodie Robertson
4 Bypass Paywalls Vanishes From Firefox Addon Store
Bypass Paywalls Vanishes From Firefox Addon Store
Brodie Robertson
5 CoreJS: The Web & Open Source Are Broken!
CoreJS: The Web & Open Source Are Broken!
Brodie Robertson
6 Begone GTK4, Long Live The New King GTK5
Begone GTK4, Long Live The New King GTK5
Brodie Robertson
7 Flathub Finally Adds Much Needed Flatpak Feature
Flathub Finally Adds Much Needed Flatpak Feature
Brodie Robertson
8 Google Should Be Worried About ChatGPT Bing
Google Should Be Worried About ChatGPT Bing
Brodie Robertson
9 How To Never Improve The Linux Wayland Experience
How To Never Improve The Linux Wayland Experience
Brodie Robertson
10 Fedora Linux Unveils New 5 Year Roadmap
Fedora Linux Unveils New 5 Year Roadmap
Brodie Robertson
11 Linux Desktop Randomly Stuttering? Here's Why #shorts
Linux Desktop Randomly Stuttering? Here's Why #shorts
Brodie Robertson
12 Why We Need Even More Linux Distros!?!
Why We Need Even More Linux Distros!?!
Brodie Robertson
13 This Wayland Change Will Improve Linux Forever
This Wayland Change Will Improve Linux Forever
Brodie Robertson
14 Ubuntu Linux Was Once Spyware Says EFF & Stallman
Ubuntu Linux Was Once Spyware Says EFF & Stallman
Brodie Robertson
15 Rise Of A New Kind Of Linux Package Manager
Rise Of A New Kind Of Linux Package Manager
Brodie Robertson
16 Rolling Release Linux Distro Probably Isn't For You
Rolling Release Linux Distro Probably Isn't For You
Brodie Robertson
17 Ubuntu Flavors Put An End To Shipping Flatpak
Ubuntu Flavors Put An End To Shipping Flatpak
Brodie Robertson
18 WINE Will Finally Run On Wayland NATIVELY!!
WINE Will Finally Run On Wayland NATIVELY!!
Brodie Robertson
19 No ZDNET, Linux 6.2 WILL NOT Run On M1 Macs
No ZDNET, Linux 6.2 WILL NOT Run On M1 Macs
Brodie Robertson
20 Ubuntu Linux Announces New Kind Of Mini ISO??
Ubuntu Linux Announces New Kind Of Mini ISO??
Brodie Robertson
21 Fedora Linux Finally Kills Off Delta RPM
Fedora Linux Finally Kills Off Delta RPM
Brodie Robertson
22 Linus Torvalds Is Sick Of Useless Git Merges
Linus Torvalds Is Sick Of Useless Git Merges
Brodie Robertson
23 Arch Linux Bricks Dual Boot With One Kernel Change
Arch Linux Bricks Dual Boot With One Kernel Change
Brodie Robertson
24 Linux AppImage Finally Addresses Greatest Flaw!!
Linux AppImage Finally Addresses Greatest Flaw!!
Brodie Robertson
25 Refusing To Use Windows For "Religious Reasons"
Refusing To Use Windows For "Religious Reasons"
Brodie Robertson
26 GNOME Shell & Mutter Finally Drop GTK3!!
GNOME Shell & Mutter Finally Drop GTK3!!
Brodie Robertson
27 11 Documents Showing Microsoft Tried To Destroy Linux
11 Documents Showing Microsoft Tried To Destroy Linux
Brodie Robertson
28 Manjaro Linux Is The Joke That Never Ends
Manjaro Linux Is The Joke That Never Ends
Brodie Robertson
29 The New Ubuntu Linux "Flavor" We All Expected
The New Ubuntu Linux "Flavor" We All Expected
Brodie Robertson
30 NEVER Write Git Commit Messages With ChatGPT
NEVER Write Git Commit Messages With ChatGPT
Brodie Robertson
31 Why GNOME? Why Didn't KDE Takeover Linux?!?
Why GNOME? Why Didn't KDE Takeover Linux?!?
Brodie Robertson
32 Discord Tried To END This Reverse Engineered Server
Discord Tried To END This Reverse Engineered Server
Brodie Robertson
33 Mesa 23 Makes Linux Shader Stuttering A Thing Of The Past
Mesa 23 Makes Linux Shader Stuttering A Thing Of The Past
Brodie Robertson
34 Linux Kernel Broke A Feature NOBODY Uses!
Linux Kernel Broke A Feature NOBODY Uses!
Brodie Robertson
35 Manjaro Broke Asahi Linux... AGAIN!!!
Manjaro Broke Asahi Linux... AGAIN!!!
Brodie Robertson
36 Linux Hasn't Become Complicated & Limiting | Distrotube Reply
Linux Hasn't Become Complicated & Limiting | Distrotube Reply
Brodie Robertson
37 Ubuntu Linux's Steam Snap Is Almost Stable
Ubuntu Linux's Steam Snap Is Almost Stable
Brodie Robertson
38 Wayland Is Linux's Future, But Why Do I Care?
Wayland Is Linux's Future, But Why Do I Care?
Brodie Robertson
39 John Deere Refuses To Respect Free Software & GPL
John Deere Refuses To Respect Free Software & GPL
Brodie Robertson
40 Why BSD Documentation Is Just Better Than Linux
Why BSD Documentation Is Just Better Than Linux
Brodie Robertson
41 KDE Fixes Discord On Wayland Because Discord Can't
KDE Fixes Discord On Wayland Because Discord Can't
Brodie Robertson
42 Xorg Foundation Has A Serious Problem
Xorg Foundation Has A Serious Problem
Brodie Robertson
43 Manjaro Linux's Biggest Drama That Never Happened
Manjaro Linux's Biggest Drama That Never Happened
Brodie Robertson
44 I'm Leaving Arch Linux For A Better Distro!!
I'm Leaving Arch Linux For A Better Distro!!
Brodie Robertson
45 Red Hat Linux Once Featured A REDNECK Translation
Red Hat Linux Once Featured A REDNECK Translation
Brodie Robertson
46 Android Authority Doesn't Understand Linux or Android
Android Authority Doesn't Understand Linux or Android
Brodie Robertson
47 Switching To Wayland: Why I'm Daily Driving Hyprland
Switching To Wayland: Why I'm Daily Driving Hyprland
Brodie Robertson
48 Private Security Patching Is A Nightmare In Open Source
Private Security Patching Is A Nightmare In Open Source
Brodie Robertson
49 Xorg Vs Wayland Is Just A Technical Detail
Xorg Vs Wayland Is Just A Technical Detail
Brodie Robertson
50 Why Did Fedora Linux Drop Its Wacky Release Names?
Why Did Fedora Linux Drop Its Wacky Release Names?
Brodie Robertson
51 KDE App Theming On Other Desktops Is A Mess
KDE App Theming On Other Desktops Is A Mess
Brodie Robertson
52 Xenocara: That X11 Server That Isn't Xorg
Xenocara: That X11 Server That Isn't Xorg
Brodie Robertson
53 PopOS New COSMIC Desktop Has Me Excited Again!
PopOS New COSMIC Desktop Has Me Excited Again!
Brodie Robertson
54 Hilarious GNOME Archive Bug Finally Gets Addressed
Hilarious GNOME Archive Bug Finally Gets Addressed
Brodie Robertson
55 Rust Foundation Has A Serious Trademark Problem
Rust Foundation Has A Serious Trademark Problem
Brodie Robertson
56 Top 5 Best Hyprland Linux Features
Top 5 Best Hyprland Linux Features
Brodie Robertson
57 Installing Linux Software Is More Confusing Than Ever
Installing Linux Software Is More Confusing Than Ever
Brodie Robertson
58 Clipboard: Simple Unified Linux Clipping Tool
Clipboard: Simple Unified Linux Clipping Tool
Brodie Robertson
59 Solus Linux Returns From The Distro Afterlife
Solus Linux Returns From The Distro Afterlife
Brodie Robertson
60 uBlue Linux: Immutable Fedora With Batteries Included
uBlue Linux: Immutable Fedora With Batteries Included
Brodie Robertson

Related Reads

📰
Practical Guide: Integrating Claude Code with NanoBanana MCP for Image Generation and Editing
Integrate Claude Code with NanoBanana MCP for AI-powered image generation and editing, streamlining UI development
Dev.to · Germey
📰
Automating an app with no DOM: driving Flutter/canvas editors with coordinates only
Learn to automate Flutter and canvas editors using coordinates, bypassing the need for DOM elements
Dev.to AI
📰
I Built an AI-Powered CLI That Migrates Legacy Java Code to Java 17/21/25
Learn how to build an AI-powered CLI tool to migrate legacy Java code to newer versions like Java 17, 21, and 25, and understand the importance of modernizing legacy codebases
Dev.to · Haroon Ali Shah
📰
I Built a Local AI Code Reviewer That Reads Your Entire Codebase (and PRs!) for Free
Learn how to build a local AI code reviewer that reads your entire codebase for free, ensuring proprietary code security
Dev.to · Bimasha Zaman
Up next
6-Month App Development Roadmap 2026 | Mobile Apps | #shorts
SCALER
Watch →