focus_follows_mouse no
It doesn't do what you wanted, but I also can't see why anyone would want a window to focus simply because you hovered over it.Less of an issue on a tiling window manager, but sometimes I really want to be able to type in a window without bringing it to the foreground.
Also, selecting text should copy and middle click should paste. No one can convince me these things are bad or unnecessary.
The click not only focuses but is also passed on to whatever you clicked on, so it's like it was already focused.
> Less of an issue on a tiling window manager, but sometimes I really want to be able to type in a window without bringing it to the foreground.
I don't understand that. You have to somehow indicate to the system what it is you want to type on.
> Also, selecting text should copy and middle click should paste. No one can convince me these things are bad or unnecessary.
I'm 100% with you on that. Although saying "selecting text should copy" makes it sound like it's being copied when selecting, when it's actually copied when pasting.
You do it by moving the mouse. It makes the mouse more useful because you can now focus things with one less click.
On the other hand, in what circumstance would you want to move your hand to the mouse, move it intentionally over another window without clicking, and _not_ focus it? What would be the point in moving the cursor?
Precisely in the one that brought this into topic. It's nice to not have to be so careful with how the mouse moves. When it gets in the way, I can just flick it off, not worried about my stuff changing focus. It also greatly decreases the annoyance of accidentally touching a touchpad while typing.
I've just tested it and it does centre on the window only if the window is on a different monitor.
https://i3wm.org/docs/userguide.html#_mouse_warping
> By default, when switching focus to a window on a different output (e.g. focusing a window on workspace 3 on output VGA-1, coming from workspace 2 on LVDS-1), the mouse cursor is warped to the center of that window.
> With the mouse_warping option, you can control when the mouse cursor should be warped. none disables warping entirely, whereas output is the default behavior described above.
I agree that would be nice, though I've never really minded; If I'm gonna touch the mouse, I'm gonna touch the mouse.
My problem is that my table isn't perfectly stable, so when I type, my mouse moves on its own by microscopic distances. When I'm in the middle of typing, the results range from mildly annoying to infuriating, depending on how a random application handles given input.
I've just found this video describing a solution (writing a minimal script): <https://www.youtube.com/watch?v=7QeZkq88jTw>
bindsym $mod+h focus left; exec --no-startup-id center-mouse
I've been using that and it fixes the issue for me, even though it seems silly that it's not built-in given there's a mouse_warping config setting.That said, I thought i3's default behaviour was that it would only focus a window when the mouse entered it, not when the mouse was moving around within a window, so I'm surprised you're having that issue. For me I just got sick of my mouse being "way over there" in the odd situation I need it.
If you're typing with proper form, "hjkl" results in the index finger moving down and the middle finger moving up. So, your most useful finger is used for the most common action, and your second most useful finger for the second most common action. What's probably the third most common action, moving left would be done with your index finger, and right with your ring finger. You'd never have to use your awkward pinky finger for anything.
With "jkl;", you'd be moving down with the middle finger, and up with the ring finger. Your dexterious index finger would be waiting for the moment when you'd want to move left, which is not as often, and you'd be encouraged to use your awkward pinky finger quite often.
This isn't necessarily the case when working with windows, but by now it's a matter of consistency. Although, encouraging to use the pinky finger and not being able to use the index finger for 2 actions still sucks.
[0] https://github.com/i3/i3/commit/6d0071db197031845b5f77febc22...
> To move the focus between the two terminals, you can use the direction keys which you may know from the editor vi. However, in i3, your homerow is used for these keys (in vi, the keys are shifted to the left by one for compatibility with most keyboard layouts). Therefore, $mod+j is left, $mod+k is down, $mod+l is up and $mod+; is right.
I wonder where they got that idea. The keys are "hjkl" simply because they were inscribed with arrows in the machine Bill Joy used when creating vi[1][2]. From [1]:
> Joy used a Lear Siegler ADM-3A terminal... the keys h,j,k,l served double duty as cursor movement keys and were inscribed with arrows, which is why vi uses them in that way.
The StackExchange question has a picture of the keys.
Can you send a PR for https://github.com/i3/i3/blob/30e886b0319ee948863a36a65e5b72... with your correction please?
Or do you think that not having arrows on "hjkl" is the justification of using "jkl;"?
Personally, I can't see a good reason for "jkl;". The rationale that those are the keys where the fingers rest has been brought up here, but here is my response:
https://news.ycombinator.com/item?id=22349868
The thing is that I believe the designers of ADM-3A made a good choice in putting the arrows on "hjkl" as opposed to "jkl;". It's much more ergonomic.
Couldn't think of the right word at the time.
noremap ; l
noremap l k
noremap k j
noremap j h