# limitations under the License.
-# This anticipates when we want to tab windows. There are 2 options of
-# when to do it: just after a window is created, or just before a window
-# is created.
+# This anticipates when we want to tab windows.
+#
+# There are 2 options of when to do it: just after a window is created,
+# or just before a window is created.
#
# * Doing it after a window is created allows you to move a window into
# the split that only has 1 window, whereas the other way doesn't. For
# the window is closed, and I don't want single window splits hanging around,
# so I close them out in
#
-# I have a keybind which disables both, it runs /b/ds/i3-auto-layout-toggle
+# I have a keybind which disables both, super+shift+u, it runs
+# /b/ds/i3-auto-layout-toggle
#
import sys
workspace = win.workspace()
#pprint(vars(workspace.rect))
- screen_width = workspace.rect.width
- screen_height = workspace.rect.height
- half_w = screen_width / 2 + 1
- half_h = screen_height / 2 + 1
+ screen_w = workspace.rect.width
+ screen_h = workspace.rect.height
+ half_w = screen_w / 2 + 1
+ half_h = screen_h / 2 + 1
w = win.rect.width
h = win.rect.height
ph = parent.rect.height
pw = parent.rect.width
- # There is potential for future use with < 1920, but I'm
- # not thinking about it yet.
- if ( screen_width < 1920 or parent.layout == 'tabbed' or gp.layout == 'tabbed'):
+ if ( parent.layout == 'tabbed' or gp.layout == 'tabbed'):
return
- # print('d2: len(parent.nodes)', len(parent.nodes),' > 1',
- # 'and ( ph ',ph,' > h + 10',h + 10,' or pw',pw,' > w',w,' )',
- # 'and w <= half_w',half_w,'+ and h <= half_h',half_h)
+ # debug
+ print('d2: len(parent.nodes):', len(parent.nodes),' > 1',
+ 'and ( ph:',ph,' > h + 10:',h + 10,' or pw:',pw,' > w:',w,' )',
+ 'and (screen_w:',screen_w,' < screen_h:',screen_h,' or w <= half_w:',half_w,')',
+ 'and h <= half_h:',half_h,')')
# h + 10 because a tabbed window loses high compared to its parent.
# Note, it is redundant since we check above if the parent is tabbed,
# but just being cautious.
+ #
+ # condition in english
+ # the parent container is bigger
+ # and we are on a vertical screen or our window is <= half the screen width
+ # and we are <= half the screen height
if (len(parent.nodes) > 1
and ( ph > h + 10 or pw > w )
- and w <= half_w and h <= half_h ):
+ and ( screen_w < screen_h or w <= half_w )
+ and h <= half_h ):
i3.command('split vertical, layout tabbed')
# print('d1: tabbed')
+
### further potential use cases:
# We could automatically do a vertical split when there are 2 or 3