mcrmck a368a90e37 Add directional drag-and-drop inserts for Vertical, Horizontal, Tall, Fat, Grid
Previously, body drops in all non-Splits layouts showed a full-window overlay
and performed a positional swap. This adds proper top/bottom or left/right
half-window overlays and true before/after insertion for the five layouts
Kovid identified.

Architecture:

- New `drag_overlay_mode` ClassVar on Layout ('full'|'axis_y'|'axis_x'|'free')
  controls both overlay display and valid direction axis. Layout subclasses set
  one line; tabs.py and boss.py dispatch on this attribute instead of hasattr.

- New `insert_window_group_next_to(target_group_id, after)` on WindowList
  performs a positional insert (not swap) by popping the active group and
  inserting it before or after the target.

- New base `insert_window_next_to` on Layout uses insert_window_group_next_to
  for axis_x/axis_y layouts and falls back to swap for 'full' (Stack).
  Splits overrides this with its existing tree-based implementation.

- `_insert_window_in_direction` in boss.py collapses from a 7-line hasattr
  branch to a single layout.insert_window_next_to() call.

Direction constraints:
  Vertical, Tall, Grid -> top/bottom (axis_y)
  Horizontal, Fat      -> left/right (axis_x)
  Splits               -> 4-way free (unchanged)
  Stack                -> full-window swap (unchanged)
2026-03-27 02:08:41 -04:00
...
2024-07-14 12:34:24 +05:30
2026-03-07 09:33:39 +05:30
2026-03-17 20:14:02 +05:30
2026-03-16 17:38:14 +05:30
...
2026-03-12 13:48:20 +05:30
2023-11-11 08:32:05 +05:30
2025-05-30 10:06:38 +05:30
2023-06-14 03:39:53 +06:00
2023-07-29 14:16:25 +05:30
2021-09-23 20:31:13 +05:30
2021-09-28 14:23:49 +05:30
2023-07-29 14:16:25 +05:30
2026-02-24 07:47:22 +05:30
2025-10-07 20:20:19 +05:30
...
2025-09-14 21:31:43 +05:30
2024-03-28 19:36:07 +05:30
...
2026-03-17 08:22:45 +05:30
2026-01-20 17:09:01 +01:00
2022-11-14 15:42:01 +05:30
2022-11-14 15:41:53 +05:30

= kitty - the fast, feature-rich, cross-platform, GPU based terminal

If you live in the terminal, *kitty* is made for **you**!

See https://sw.kovidgoyal.net/kitty/[the kitty website].

image:https://github.com/kovidgoyal/kitty/workflows/CI/badge.svg["Build status", link="https://github.com/kovidgoyal/kitty/actions?query=workflow%3ACI"]

https://sw.kovidgoyal.net/kitty/faq/[Frequently Asked Questions]

To ask other questions about kitty usage, use either the https://github.com/kovidgoyal/kitty/discussions/[discussions on GitHub] or the
https://www.reddit.com/r/KittyTerminal[Reddit community]

Packaging status in various repositories:

image:https://repology.org/badge/vertical-allrepos/kitty-terminal.svg?columns=3&header=kitty["Packaging status", link="https://repology.org/project/kitty-terminal/versions"]
Description
No description provided
Readme 71 MiB
Languages
Python 38.4%
C 28%
Go 26.2%
Objective-C 5.7%
Shell 1.1%
Other 0.6%