This floats chrome windows with i3wm while dragging tabs.

Syphdias, updated 🕥 2023-02-03 11:02:15

Disclaimer ⚠️

There are versions for chromium/Google Chrome that work better than others. Here is a rough overview when this tool worked or was unnecessary:

  • pre 83.x: Dragging is not working flawlessly, this tool was born to work around the issues
  • 83.x–95.0.4630.0: Perfect window dragging, no tool assist needed
  • 95.0.4630.0–97.0.4692.99: Major breakage in dragging, this tool cannot fix it
  • 97.0.4692.99+: Dragging works like pre 83.x again, tool can work again, but it's not perfect
  • around 100: It broke again see Issues #5 and #6
  • ~103: Works like pre 83.x again, tool can work again, but it's not perfect

Description – What it does

This script aims to solve a problem I have with dragging Chrome tabs while using the i3 window manager where it can be hard to place a second tab into another Chrome window. If it detects a Chrome window has been opened while the user is dragging (left mouse button is being pressed down), it switches the new window to floating mode so it can easily and independently be dragged to another Chrome window. If the mouse is released without the window being droped in another chrome window, floating is toggled off, so the window will receive it's own new tile.


  • make sure all requirements are installed pip install --user -r requirements.txt
  • copy script to your place of choice, e.g. ~/.i3/
  • add this to i3 config: exec_always --no-startup-id ~/.i3/

For Arch Linux, there is a package in the AUR (thanks, syyyr):

Without and With

Without without

With with


None besides the ones mentioned in the Disclaimer 😉.


You are very welcome to contribute by PR or Issue to report wishes or bugs. Please honor PEP-8 if you open a PR, but don't worry if you don't know it, I will fix it for you.


Tab swallowing not working properly

opened on 2022-06-11 23:19:11 by gibsonrng

Hey, finally discovered this project (big thanks for sharing this) as tab dragging in i3 and chromium based browsers has been painful for quite some time (especially when trying to rearrange tabs in the same browser window when inside a tabbed i3 layout with multiple windows).

Just noting that I am aware of the recent chromium bug that caused complete tab dragging breakage in the last few weeks. But it looks already fixed in chromium 102.0.5005.115 based browsers. So I started testing this script with 102.0.5005.115 and also multiple older browser versions before the last breakage. But in all cases I am noticing a problem. When dragging a tab to another window, the dragged window gets switched to floating mode properly, but it cannot be placed in another browser window, it just does not get swallowed when dragged to the new position. This can be seen in the following gif:


In very rare cases (maybe 1%) it randomly gets swallowed in a new position.

So I started testing this with other machines, distros and older browser versions and this issue seems to appear with all versions >= 97.0.4692.71. More specifically 96.0.4664.110 was the last version there the script in this project worked really well (as described in the project README). I used the following method: to install older google-chrome versions on a Debian based system.

Am I doing something wrong? Has dragged tab swallowing been working properly for somebody with a chromium based browser >= 97.0.4692.71?

stopped working again

opened on 2022-06-07 22:14:41 by chrisco23

Hi, not sure when it started back up as I've kind of been avoiding the dragging lately, but the script has stopped working now.

Is there any news and/or any fix?