Hacker News new | past | comments | ask | show | jobs | submit login

I've built something similar for my own needs.

What I found lacking in the default i3 possibilities, was going to the previously used window on the same workspace.

My daily driver is a 32" 4k monitor, so many times I end up with one IDE or terminal on the left, and some documentation on the right, both halves visible at the same time.

However, I hate using tabs in the browser, so thanks to a hacky extension, firefox opens a new window per tab, which means that i3 manages firefox' tabs as regular windows.

So, if you have a bunch of windows open, want to see the one in the middle of the bunch, but need to switch between that and the "work" window, there's no easy way to do that from the keyboard.

From the IDE, going right works as expected. But from the browser, going left "changes tabs". You only reach the IDE after you've been through all the other tabs.




> However, I hate using tabs in the browser, so thanks to a hacky extension, firefox opens a new window per tab, which means that i3 manages firefox' tabs as regular windows.

Can you provide a bit more information about your setup?

I'm using sway and I removed the tabs from Firefox to handle them as individual windows.


I don't have my machine on hand to give you the specific extension, but basically it's something called "notabs" or similar. Whenever a new tab is opened, it gets moved to a separate window. It works mostly OK, but it can sometimes get confused.

I combine this with some custom chrome to completely hide the tab bar area at all times.

Afterwards, I manage my firefox windows with i3 as I would any other window. They usually end up in tiled mode.


Thanks, I guess it would be the following extension:

https://addons.mozilla.org/de/firefox/addon/adsum-notabs/

For the custom chrome, I'm using in userChrome.css:

  #TabsToolbar { visibility: collapse !important; }


That's the one, yes.


You can use the "focus parent" bind then move off of it with your regular left/right binds.


Yeah, that works technically, but it's a PITA. Because you have to:

1. do an extra action

2. remember whether you actually have a parent or not, since it's context dependent. Doing this while the single-window IDE is selected, it'll do nothing (the parent is "everybody", so there's nothing to the right).


i've got you covered. I made a script to achieve exactly this.


https://end.re/9793ad90063fb74423e4b2ff4d5b198ab576110c9bfef...

and then trigger it with eg.:

``` bindsym $mod+x exec --no-startup-id "xargs -n1 kill -USR2 < /tmp/focus_last.pid" ```


Well, I've covered myself with a few lines of Rust that do exactly that.

By the way, there are a few subtleties which your script doesn't handle which bit me ;) Off the top of my head, some full-screen windows (mpv IIRC) behave a bit differently and would be missed.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: