Bug 180770 - Provide a quadkonsole like interface
Summary: Provide a quadkonsole like interface
Status: RESOLVED FIXED
Alias: None
Product: konsole
Classification: Applications
Component: split-view (show other bugs)
Version: 2.8
Platform: Debian testing Unspecified
: NOR wishlist
Target Milestone: ---
Assignee: Konsole Developer
URL:
Keywords: usability
: 400666 408983 (view as bug list)
Depends on:
Blocks: 180931
  Show dependency treegraph
 
Reported: 2009-01-15 07:17 UTC by Richard Hartmann
Modified: 2019-06-21 11:19 UTC (History)
17 users (show)

See Also:
Latest Commit:
Version Fixed In: 19.08.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Richard Hartmann 2009-01-15 07:17:22 UTC
Quadkonsole[1] is a Konsole modification which allows you to run several konsoles in one window[2][3]. It was written by Simon Perreault[4] and was even featured on linux.com[5].

That piece of software is simple awesome and I would love to have it back :)

If anyone pledges to look into it (playground/extragear for 4.2, trunk for 4.3, I suppose) and is at Fosdem (or near Munich), I am going to buy beer :)
Comment 1 Richard Hartmann 2009-01-15 07:19:02 UTC
urgs..

[1] http://www.kde-apps.org/content/show.php?content=22482
[2] http://nomis80.org/quadkonsole1.png
[3] http://nomis80.org/quadkonsole2.png
[4] http://nomis80.org/
[5] http://www.linux.com/feature/57170

PS: This worked with 3.2 and not since. This is why I needed to file this wishlist item

PPS: I should not start writing bug reports before 0700 ;)
Comment 2 Richard Hartmann 2009-01-15 08:36:17 UTC
Some more references (yay, bugzilla ate my previous post because it "could not find anything related to" a perfectly valid email address which I added to CC)

* Robert and me talking about this back in 2007:
  http://lists.kde.org/?l=konsole-devel&m=118849652719256&w=2

* Robert mentioning code in that direction:
  http://lists.kde.org/?l=konsole-devel&m=118882545329013&w=2

* People who are so desperate, they use 3._2_ stuff with KDE 4:
  http://www.ipsidixit.net/2008/11/05/quadkonsole-on-kde4/

* Google hit-count:
  Results 1 - 10 of about 8,640 for quadkonsole. (0.06 seconds)
Comment 3 Simon Perreault 2009-01-15 14:58:46 UTC
My comments on this (I'm the author of QuadKonsole):

- I did port QuadKonsole to KDE 4. The code is sitting in my home account. But I was not satisfied with it. I could not make the keyboard shortcuts work (I personally don't use them, but I know a lot of people who do). There was also a superfluous one-pixel spacing between lines of text, and that was driving me crazy. I don't want to release this code because I want people to search for a good solution rather than accepting a 50% solution.

- I think this should be part of Konsole itself. I envision an action titled "Split Horizontally", like in Konqueror. Same with vertically. It would be much better supported if it's part of Konsole. It would not be intrusive: you don't see it if you don't use it.

- For now, I'm using Terminator (http://www.tenshu.net/terminator/). It is incredibly good. We should copy it.
Comment 4 Robert Knight 2009-01-15 15:56:04 UTC
> I think this should be part of Konsole itself.
> I envision an action titled "Split Horizontally", like in Konqueror.
> Same with vertically. It would be much better supported if it's part of Konsole

That already exists - in fact it is the biggest change from KDE 3 to KDE 4.  Go to View -> Split View.  However, unlike QuadKonsole (and I presume Terminator) it has a couple of differences:

- Recursive (horizontal AND vertical) splitting is not supported.  You can currently only have one or the other at any time.  The widget which controls the splitting does support this but I don't consider it well-enough tested to ship.
- When you split the view it doesn't create new shells in the new area but duplicates the existing views and tab bar in the new area.  The thinking behind this was to:

a) Make it possible to view different sections of the same session at once, eg. for executing commands in a session while consulting earlier output from the same session.
b)  Make it possible to switch between views in one of the areas.  For example, you can use it like an IDE where you typically have one large view for the primary work area and a smaller view which you would use for other tasks - switching the tabs in the smaller view depending on whether you were in a debugger, running some scripts on another host etc.

Terminator doesn't support use cases (a) or (b) but it does support the case where people want to allocate one tab per task (eg. one per project they are working on) and then sub-divide that tab into a number of shells doing different things and it does support recursive splitting.  The first of these is probably the most work to do in Konsole but many of the components needed are already there.  I don't have a whole lot of time or inclination to do this myself in the immediate future but I'd happily support anyone who does.

Adding recursive splitting but keeping the current handling of tabs and views (where each view has a set of tabs and not the other way round) can be done without much discussion.  Inverting the tabs/views as Terminator has it needs more careful consideration of whether to keep both conceptual models, whether to drop one or how to merge them.
Comment 5 Simon Perreault 2009-01-15 16:03:59 UTC
The important thing is to be able to split and have the two views show different shells.

I am passably angry at the people who thought that different views of the same shell was an important feature at all. It's a command line, dammit. Except in corner cases, what you want to see is the bottom line, plus some history.

I too don't have much spare time so I'll refrain from commenting further. Please, someone, implement this!
Comment 6 Robert Knight 2009-01-15 16:10:05 UTC
> The important thing is to be able to split and have the
> two views show different shells. 

You can do that now.

> I am passably angry at the people who thought that different views of the same > shell was an important feature at all. It's a command line, dammit.

That would be me and yes - I do use this feature.
Comment 7 Simon Perreault 2009-01-15 16:13:21 UTC
(In reply to comment #6)
> > The important thing is to be able to split and have the
> > two views show different shells. 
> 
> You can do that now.

Can you say how, and starting with what version?

> That would be me and yes - I do use this feature.

Please don't take my words too harshly. I understand very well how the "scratching an itch" thing works. I'm just angry at you for not having the same itch as me! ;)
Comment 8 Robert Knight 2009-01-15 17:23:17 UTC
> Can you say how, and starting with what version?

In KDE 4.0 and later:

1.  Open two tabs
2.  Go to View -> Split View -> Split View Top/Bottom
3.  Use the tab bar in the bottom or top view to choose which session shows in which section.
Comment 9 Richard Hartmann 2009-01-16 08:57:27 UTC
Something Terminator can do which Quadkonsole could not is resize
dynamically. The way it's implemented is somewhat inflexible, though.
You need to split subwindows manually and thuse have an order in which
you split.

Assume you split horizontally, then vertically in both resulting sections.
The end result is:

+--+--+
|  |  |
|  |  |
+--+--+
|  |  |
|  |  |
+--+--+


You will able to do this:

+--+--+
| |   |
| |   |
+--+--+
|   | |
|   | |
+--+--+


Or:

+--+--+
|  |  |
+--+--+
|  |  |
|  |  |
|  |  |
+--+--+


But not this:


+--+--+
|  |  |
|--|  |
+  +  +
|  |--|
|  |  |
+--+--+


The two obvious cases in a more flexible, non-hierachical system 'move
the shortest seperator' and 'move the longest seperator' are easy to
expose to the user via, for example, click-drag and ctrl-click-drag.
Anything more advanced, for example changing this:

+--+--+--+--+
|  |  |  |  |
|  |  |  |  |
+--+--+--+--+
|  |  |  |  |
|  |  |  |  |
+--+--+--+--+
|  |  |  |  |
|  |  |  |  |
+--+--+--+--+
|  |  |  |  |
|  |  |  |  |
+--+--+--+--+


To this:

+--+--+-+---+
|  |  | |   |
|--|--| |   |
+  +  +-+---+
|  |  | |   |
|  |  | |   |
+--+--+-+---+
|  |  | |   |
|  |  | |   |
+--+--+--+--+
|  |  |  |  |
|  |  |  |  |
+--+--+--+--+


would need a way to select edges, maybe with shift-click and then
shift-click-dragging them? Alternatively, edges could be welded.


Something I like about Terminator is that it always has a small(!)
title above each subwindow.


Also, having a way to manually/automagically keep the relative
terminal sizes while resizing the window would be nice. Absolute
size _could_ possibly be enabled by a welding-like mechanism.


Finally, exposing all this via config and command lines
parameters would be sweet.


And yes, I realize this is A Lot Of Stuff To Ask For. If people
prefer, I can split this into individual wishlist items. At the
very least, I will track the parts which are done and keep that
list up to date.
Comment 10 Eike Hein 2009-01-16 13:01:34 UTC
FWIW: The split implementation in KDE Extragear's Yakuake is very similar to QuadKonsole's, in that arbitrary vertical and horizontal splits showing different terminals are possible, along with the ability to instantly spawn "quad" tabs via session presets. Unlike in Konsole, however, it's not possible to show different parts of the same terminal via splits.
Comment 11 Jekyll Wu 2011-08-17 01:53:27 UTC
FYI, just noticed a KDE 4 port of quadkonsole on kde-apps.org
http://kde-apps.org/content/show.php?content=141069
Comment 12 Mathieu Jobin 2013-08-14 13:40:24 UTC
please !
Comment 13 Mathieu Jobin 2014-04-26 02:40:27 UTC
I would close this as duplicate of bug #178320

what we want is a Terminator/iTerm2 clone with Konsole backend.
Comment 14 Vincenzo 2014-04-26 08:11:15 UTC
Check a status update here: https://bugs.kde.org/show_bug.cgi?id=203970#c4
Comment 15 Shmerl 2015-09-02 17:33:48 UTC
Does anyone plan to integrate Vincenzo's patches upstream? He stopped working on the project.
Comment 16 xliiv 2015-09-02 19:22:05 UTC
Well I'm working on it https://github.com/xliiv/konsole-multi-terminal/tree/kde5port
and can't say anything more.
Comment 17 Giuseppe Calà 2016-05-02 13:17:12 UTC
(In reply to xliiv from comment #16)
> Well I'm working on it
> https://github.com/xliiv/konsole-multi-terminal/tree/kde5port
> and can't say anything more.

just tested your fork and seems very promising. thanks for your efforts
Comment 18 Mathieu Jobin 2016-05-04 17:09:54 UTC
only 7 years later, I still have a strong wish for this.

all terminal applications that does proper splitt (terminator, terminology) has huge flaws.

only konsole is the best terminal app ever!

could a QML script do the split integrating konsole parts?
Comment 19 xliiv 2016-05-04 17:51:40 UTC
(In reply to Giuseppe Calà from comment #17)
> (In reply to xliiv from comment #16)
> > Well I'm working on it
> > https://github.com/xliiv/konsole-multi-terminal/tree/kde5port
> > and can't say anything more.
> 
> just tested your fork and seems very promising. thanks for your efforts

Thanks should go to Vincepii, because it's his effort. I only ported it to kde5. :)
Comment 20 Nate Graham 2018-11-05 23:09:12 UTC
*** Bug 400666 has been marked as a duplicate of this bug. ***
Comment 21 Luca Carlon 2018-11-06 00:06:29 UTC
Thinking of contributing to this is very hard, I am a bit confused about who is working on what... would it be possible for someone to summarize a minimal set of features and what fork is the nearest (https://github.com/xliiv/konsole-multi-terminal/tree/kde5port?)? Is there someone actively working on this? There is the risk of overlapping with someone else's work or of implementing something that never reaches master. By reading other two or three reports this seems to be a feature that would be pretty appreciated!
Comment 22 Nate Graham 2018-11-06 00:19:00 UTC
Last I was aware, Tomaz Canabrava was working toward doing this, and had already made a lot of the preliminary required changes. Is that still correct, Tomaz?
Comment 23 Luca Carlon 2018-11-11 10:23:10 UTC
Is there an agreement on what to implement precisely? The current implementation is named "split view" and somehow seems to clone the terminal. What I read here is "what we want is a Terminator/iTerm2 clone with Konsole backend": does this mean "cloning" is supposed to be removed and only splitting is supposed to remain? I'm not a KDE developer, not sure how it works: is there anyone in charge of defining the specifications?
Comment 24 Luca Carlon 2019-01-06 17:13:50 UTC
I took some time to try to implement this and I got a decent result here: https://github.com/carlonluca/konsole. The feature is there, it requires some work on detaching tabs, on the old split view feature and some cleanup. Also I branches a few months ago so I'd need to merge some from master. It is based on the work done by others in this thread. If someone is willing to have a look I'd appreciate some help to try to propose a working patch.
Comment 25 Mariusz Glebocki 2019-01-06 17:21:51 UTC
Feature like this is currently worked on https://phabricator.kde.org/D17643
Comment 26 Luca Carlon 2019-01-06 17:25:53 UTC
I'll stop working on this then. Thanks for letting me know.
Comment 27 Mathieu Jobin 2019-01-09 03:55:56 UTC
As mentioned on bug #178320, there is this project that does not have too many features but works well for the most part

https://github.com/kterminal/kterminal/
Comment 28 Shmerl 2019-01-09 03:57:32 UTC
Is this somehow useful to Konsole?
Comment 29 Mathieu Jobin 2019-01-09 04:00:03 UTC
Shmerl, I'm sorry about the confusion, I guess you are right. it is not useful to Konsole.
Comment 30 Nate Graham 2019-03-27 16:46:23 UTC
This was just added in https://phabricator.kde.org/D17643!

\o/
Comment 31 shevegen 2019-03-31 20:25:25 UTC
Great!

I also only noticed this very old report here due to Nate writing about.

So a few things:

- I remember having used Quadkonsole many years ago too and it was very nice.

I was also using yakuake and yakuake is quite cool on its own.

A few months or so I tried out the konsole split-view (or whatever it was called) and the behaviour confused me completely, since I expected it to be more to quadkonsole; and possibly to yakuake (although I can not say whether there are marked differences, but from my limited testing, the behaviour in yakuake in regards to splitting/modifying the views/panes, was less confusing than in KDE konsole).

I have not yet tested the changes - so I rely mostly on what Nate wrote at https://pointieststick.com/2019/03/31/kde-usability-productivity-week-64/ - but from the screenshot, it indeed seems to be a lot closer to what quadkonsole originally did. I can't say yet whether both seem to do the same (my memory is also dim) but the change seems to be a LOT closer in making KDE konsole behave more similarly to quadkonsole. So I wanted to add this perspective too, even if it is ... hmm + 10 years late. But better a late comment than no comment.
Comment 32 Christoph Feck 2019-06-21 11:19:37 UTC
*** Bug 408983 has been marked as a duplicate of this bug. ***