ddterm / gnome-shell-extension-ddterm

Another drop down terminal extension for GNOME Shell. With tabs. Works on Wayland natively
https://extensions.gnome.org/extension/3780/ddterm/
GNU General Public License v3.0
304 stars 26 forks source link

screen splitting #42

Closed maxadamo closed 1 year ago

maxadamo commented 3 years ago

either Guake, Tilix, Terminator... support terminal splitting (see below screenshot) which is useful, if I run tail against multiple log files.

immagine

amezin commented 3 years ago

This is definitely doable. But as I don't need this feature myself, I'm not sure if I'll have time to work on it

maxadamo commented 3 years ago

This is a real use case for me and this is how I watch logs contemporarily on multiple servers (and for now I am using another Quake application, which allows me to use Terminator): immagine

gorogm commented 3 years ago

This would be really nice to have, I would use it frequently. This is probably the only missing feature to reach yakuake and others

maxadamo commented 3 years ago

On a side note, it would be interesting to understand what is the most common use case for Quake terminals. I use it only to watch logs, and since we have big monitors, splitting the terminal seems sensible.

jacksongoode commented 2 years ago

@amezin Wondering what your approach to implement this might be? Would it be enough to create two windows at locked widths/height/position?

amezin commented 2 years ago

Two (top-level, i. e. X11/Wayland) or more windows are a really bad idea. The extension (wm part) is already a big pile of hacks that I don't fully understand myself. I'm able to maintain it in a somewhat working state only because of extensive testing (both automated and manual). I'm not even adding things like configurable width https://github.com/amezin/gnome-shell-extension-ddterm/issues/67 because, with the current state of things, it will be a testing nightmare.

The correct way here is to split appwindow.{ui,js} into two parts:

1) the window itself 2) GtkNotebook with all its corner buttons and other stuff

And, as the first step, add a GtkPaned into the window, then create two notebook instances and add them into the GtkPaned (so one split max).

If necessary, it will be possible to build a full tiling manager on top of this later. But at first, the solution with two panes should be working.

amezin commented 2 years ago

@jacksongoode are you going to implement it, or just asking? :)

I see that multiple people want this feature... But I don't need it myself, so it's unlikely that I'll work on it

amezin commented 1 year ago

After the major refactoring that happened in v44, this feature should be much easier to implement now