Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split terminal functionnality #71

Closed
kikecalpe opened this issue Apr 18, 2013 · 139 comments
Closed

Split terminal functionnality #71

kikecalpe opened this issue Apr 18, 2013 · 139 comments

Comments

@kikecalpe
Copy link

Split terminal functionnality http://guake.org/ticket/145
Reported by: LaMs Owned by: somebody
Priority: minor Milestone:
Component: guake Version:
Keywords: Cc: mkudro@…
Description

Yakuake and Terminator have this particular functionnality. I was using Yakuake when I was developing on KDE but now that I'm running on gnome I'm using Guake. Guake is perfect for me at the exception of this little functionality. Example of what I'm talking:
http://www.kde-apps.org/content/preview.php?preview=2&id=29153&file1=29153-1.png&file2=29153-2.png&file3=29153-3.png&name=Yakuake
http://www.64bitjungle.com/wp-content/uploads/2008/09/screenshot-terminator.png

Having this in a drop down console like Guake would be very useful for an embedded developer addict to Vim like me.

@kikecalpe
Copy link
Author

Read all thread here: http://guake.org/ticket/145
Duplicated issue: http://guake.org/ticket/467 ( #70 )

Changed by lincoln

humm, first of all, do you know the gnu screen? Maybe it can help you manage more terminals and split them. I think you should give it a try =D

Changed by LaMs ¶

Yes I know screen... and no its not the same feeling. A good alternative, but I would prefer an integrated solution.

Changed  by pingou

milestone 0.5.0 deleted

Changed  by Yva

Would love to see this functionality. Guake is a great tool for monitoring and seeing 2 terminal simultaneously would be great.

Changed  by pingou

From our discussion, the idea is not to split but to divide and thus having {2,3,4...} tabs visible at the same time

Changed  by zaoul

I understand screen can split but I agree it is not the same feel. Especially when it comes to vertical split which screen requires an extra patch. Not that big of a deal but terminator is really nice when working with multiple configuration files for an application. Asterisk for example! In summary I would like to see this implemented.

Thank you, Bryan

Changed by amcl

Some people may not be satisfied with only 2 vertical windows, so this really seems like a job for a terminal multiplexer. The next release of Screen will support vertical splits, but Tmux and dvtm can already do arbitrary vertical/horizontal splits. Why reinvent the wheel in a less flexible way?

http://tmux.sourceforge.net/ http://www.brain-dump.org/projects/dvtm/

Changed  by mahmoudimus

version 0.4 deleted

Amcl,

One of the reasons you can't use something like a terminal multiplexer is that sometimes, it might be necessary to copy something from a split screen. When you highlight a selection using a terminal multiplexer, what ends up happening is that you copy the adjacent screen as well.

This becomes very tedious when copying an output that you've run and are requiring to paste it somewhere. It doesn't even need to be an output, it could be just an error message.

tmux && dvtm have this problem, as well as screen.

This is why implementing terminator functionality, or embedding the terminator console in Guake, might be a better solution for others. I might end up doing this myself because it is SO useful to get a terminal to be able to split windows, both vertically && horizontally.

 Changed  by amcl

Some terminal emulators support rxvt style Alt-leftmouse rectangular selection. I'm not sure if Guake supports rectangular selection, I'm at work at the moment. If it doesn't that would be a good feature. It would solve the problem you describe nicely.

Changed  by estragib

priority changed from major to minor

Block select does work in Guake. and this goes a bit beyond a non-bloaty drop-down term. Per amcl's "Why reinvent the wheel in a less flexible way?", I'm deescalating this to minor, pending indignant protests.

Changed  by nikom

cc mkudro@… added

It is very unfortunate that this enhancement request has been marked as minor. Split screen is most used (by me) future in Yakuake among being able to increase/decrease size of the terminal. It was blessing for me discovering Yakuake and split screen - Ctrl+Alt+L and i got new session on the same tab. I support this future request and vote for upgrading it to higher priority.

follow-up: ↓ 13   Changed  by gimler

+1 it is a key feature to move from yakuake to guake

in reply to: ↑ 12   Changed  by ssrihari

+1 for more usage of horizontal screen space. Split window or seeing multiple tabs.

Changed  by valentt

I would donate 10$ towards making this feature available. Is there any bounty that would convince developer(s) to incorporate this feature.

Until then I'm using Yakuake. If developer(s) accept this idea of bounty just let me know how to donate my part.

Cheers.

Changed  by bpedman

I would also be willing to donate for this feature. I have been using yakuake for a long time but got tired of always installing a bunch of the KDE libs along with it and wanted a more native feel for gnome/unity(/anything other than kde :) ). I am liking guake and it's working well and fast...but really miss this feature from yakuake.

Changed by bernie

I would also like this functionality.

Yes, screen and tmux can sort-of provide the functionality we'd like, but they require the learning of a new command set to do simple things, for example scrolling up through output, or selecting which pane has input focus. These functions could be implemented much better with a GUI-aware terminal program which could respond to mouse scroll wheel actions, and could switch input focus with a mouse click.

Tmux, for example, (which I'm currently using) prevents the use of the usual Shift-PageUp? to scroll back through output, and instead I have to type C-b PageUp?, then ']' to exit copy mode. I haven't used other GNU/Linux programs such as Yakuake or Terminator, but I have used iTerm2 on Mac OS X, and compared to that, using a terminal multiplexer such as screen or tmux is almost more annoying than it's worth.

@kikecalpe
Copy link
Author

Interesting comment from duplicated issue: http://guake.org/ticket/467
Changed by justanotheruser

I would like to see a Shift+Ctrl+T, a Shift+Ctrl+L and a Shift+Tab in Guake. Namely, horizontal/vertical split of the working terminal (recursively) and quick-switching between them with Shift+Tab. Oh boy, that really is the cherry on top of the tasty strawberry ice-cream cake.

@bobziuchkovski
Copy link

+1 I would love this feature. I use guake all day long and am often switching between tabs. Sometimes you run a long task in one tab (compile) and switch to another tab to work while you wait. You want to know when the long task is complete, so you constantly switch back and forth, which is jarring. Gnu screen works, but as others have pointed out, screen's vertical split makes it harder to copy-paste multi-line text using X11's clipboard and middle-click.

@shirishag75
Copy link

+1 on this. I too am a day long user of guake. Having this would be a god send.

@mturley
Copy link

mturley commented Sep 7, 2013

Hey guys, I aim to actually implement this functionality in a fork of the guake repo. I won't have time to work on it for the next few weeks, so if someone else gets around to this in that time, let me know! I'm quite surprised that in an environment like github someone hasn't already just forked it and implemented this feature... it's a very common one. I agree with those who are telling the developers it's not to be considered minor, but I also don't think it's fair to expect them to do it if they don't see the need. What's open source for if not for us to modify things to our liking ourselves?

I'll report back here when I've made a solid effort in my fork, which until then will remain a clone of Guake/guake.

@anhq
Copy link

anhq commented Dec 3, 2013

+1 for this feature. Been using both Terminator and iTerm2 (on OS X) for a long time and being able to split windows to get independent terminals is so key. Has anyone made progress on this at all?

@janlammertyn
Copy link

+1 for this feature. I agree with the argument that some will need more than two, but I think the wide screen estate present on a lot of screens today just screams for more than one terminal horizontally. Btw. is there anyone using terminals a lot working with only 1 terminal window with stacked tabs? I don't think so. If you can, you place them besides each other. Using tmux/screen might be an option, but I think the functionality of these solutions is a bit overkill.

@tsusanka
Copy link

+1

@peelandsee
Copy link

+1 :D

@gsemet
Copy link
Member

gsemet commented Feb 13, 2014

@mturley: do you have something?

Sounds like an interesting feature but for me it requires:

  • dynamic spliting (horizontal / vertical), with resizing
  • hotkey to switch from one panel to another one

I don't plan to work on it soon, but if someone want to deal with this, I'll be glad to integrate its PL

@gsemet gsemet added this to the 0.6.0 milestone Feb 13, 2014
@gsemet gsemet self-assigned this Feb 13, 2014
@mturley
Copy link

mturley commented Feb 13, 2014

Unfortunately I never got around to working on it. That may change, I'll
let you all know if it does.
On Feb 13, 2014 1:55 PM, "Stibbons" notifications@github.com wrote:

@mturley https://github.com/mturley: do you have something?

Sounds like an interesting feature but for me it requires:

  • dynamic spliting (horizontal / vertical), with resizing
  • hotkey to switch from one panel to another one

I don't plan to work on it soon, but if someone want to deal with this,
I'll be glad to integrate its PL

Reply to this email directly or view it on GitHubhttps://github.com//issues/71#issuecomment-35004038
.

@gsemet
Copy link
Member

gsemet commented Feb 13, 2014

ok, sadly. I don't think it is difficult actually. But this will have to wait a little (0.6.0 at least)

@mturley
Copy link

mturley commented Feb 13, 2014

Yeah, I just haven't worked on the guake project before and was intending
to jump in and get my environment all set up to implement this simple
feature. I never ended up having time to get away from other projects.
On Feb 13, 2014 2:59 PM, "Stibbons" notifications@github.com wrote:

ok, sadly. I don't think it is difficult actually. But this will have to
wait a little (0.6.0 at least)

Reply to this email directly or view it on GitHubhttps://github.com//issues/71#issuecomment-35019084
.

@gsemet
Copy link
Member

gsemet commented Feb 13, 2014

You can still try again :) don't hesitate to submit early a Pull Request and I'll do a code review.

@mturley
Copy link

mturley commented Feb 13, 2014

I may just do that. I'm certain others here could implement it faster than
me though, but if don't have the time... Well we'll see :)
On Feb 13, 2014 3:08 PM, "Stibbons" notifications@github.com wrote:

You can still try again :) don't hesitate to submit early a Pull Request
and I'll do a code review.

Reply to this email directly or view it on GitHubhttps://github.com//issues/71#issuecomment-35020058
.

@gsemet gsemet removed their assignment Feb 13, 2014
@gsemet gsemet modified the milestones: 0.6.0, 0.7.0, 0.5.0 Feb 15, 2014
bwrsandman pushed a commit to bwrsandman/guake that referenced this issue Mar 17, 2014
bwrsandman pushed a commit to bwrsandman/guake that referenced this issue Mar 17, 2014
bwrsandman added a commit to bwrsandman/guake that referenced this issue Mar 22, 2014
Split terminal functionality implemented
@JorisM
Copy link

JorisM commented Apr 2, 2014

+1 this would be great

@alexxtasi
Copy link

+1 it would be a great feature!!!

@boop5
Copy link

boop5 commented Apr 23, 2014

yep, +1

@gsemet gsemet added this to the 0.5.1 milestone Jul 11, 2014
@rasmus25
Copy link

The biggest reason I like Terminator's split panes better than Tmux's is that when I have split the window into two panes side by side, I easily select multiple lines of text in one pane with the mouse. If I try to do the same thing with Tmux, it will instead select the lines from both panes, including the pane separator.

Additionally, when text in one pane is scrolling very fast, I cannot select text in the other pane. This is all because Tmux handles its own panes, whereas Terminator uses the window manager's widgets and hence behaves natively.

I guess these are not problems for people who don't use the mouse, but I find the mouse very useful with a terminal emulator like Guake when the terminal covers half the screen and is always on top, so I can select text from a web browser and middle-click-paste it to the relevant terminal pane very quickly.

@farisachugthai
Copy link

@alexanderjohn in the GUI Guake Preferences, there's a section for 'on show hooks'. I'm sure you could set yours to some variation of exec terminator

I have my "on start" set to tmux split-window -h and while that's not a native solution, I'd definitely recommend it for anyone trying to find a quick workaround

@joshuakfarrar
Copy link

joshuakfarrar commented Aug 21, 2018

I use tmux also. Its commands aren't intuitive for a day or two, but it does not take long to pick up.

You will get much mileage from these commands:

ctrl+b + " // ctrl+b %  -- split horizontally and vertically
ctrl+b + tap an arrow key -- move between panes
ctrl+b + q, tap a number -- display pane "ids", then jump to a pane
hold ctrl+b while tapping arrow keys -- resize pane

@undefinedplayer
Copy link

+1

@dialvarezs
Copy link

I personally use Tilix as my main window-terminal, and it's awesome; it has good usability with mouse and kb, and it looks great in gnome. I like it's shortcouts too, specially the alt+arrows to move around.
I hope Guake can get a split functionality as good as the Tilix one, because Guake is my "always open" terminal and the tabs are not enough when I want to check 2 things at the same time.

@iamtodor
Copy link

@gsemet Does it mean we will have split terminal feature in nearest future? :)

@fusion809
Copy link

fusion809 commented Sep 21, 2018

@iamtodor Seems like it, after all you see that merged pull referenced above (#1415), it seems to implement it, we just have to wait for a new release of this fine terminal and then wait for our distro packagers to package this new release.

@solofeed
Copy link

5 years of waiting, and it comes )) @gsemet thank you)

@gsemet
Copy link
Member

gsemet commented Sep 21, 2018

Aye aye aye !! You should thanks @aichingm who did the big work on this one !

@gsemet
Copy link
Member

gsemet commented Sep 21, 2018

@fusion809 If your package is too old, you can install guake with pip3 install --user guake. But yes, you may have to wait for a few days/weeks until we finalize the split terminal feature and fix latest bugs to get the next release (will be 3.4.0), or build from source ;)

@fusion809
Copy link

Yep I know,. I was talking about most users that just use their package manager and default repos, but your advice is still very helpful, so I thank you :). Personally, I'm about to create my own RPM package for the latest build. I favour using my distro's package manager too.

@fusion809
Copy link

That was easy anyone that's using Tumbleweed can go forth and install it — https://build.opensuse.org/package/show/home:fusion809/guake. Trying to fix the Leap 15 build too.

@iamtodor
Copy link

Hello. Where can I find how can I use split function?
I have Guake Terminal 0.8.4

@tincho
Copy link

tincho commented Nov 14, 2018

I literally just googled this feature. Guake 3.0.5 on Ubuntu 18 here and don't see any split/tiling options.

@tomchor
Copy link

tomchor commented Nov 14, 2018

@iamtodor
I'm pretty sure you have to get the latest version (3.4) to get the functionality.
I still don't have it myself (since the maintainer of Arch still hasn't updated it for some reason), but I'm sure it's there once you get v3.4.

@iamtodor
Copy link

@tomchor could you please help me how to get this version 3.4? download from github and compile it by myself, and is there some instruction for compilation?

@gsemet
Copy link
Member

gsemet commented Nov 14, 2018

Pip install —user guake

@iamtodor
Copy link

@gsemet installed successfully, but can't run:

tdr@tdr-HP:~$ pip install --user guake
Collecting guake
  Downloading https://files.pythonhosted.org/packages/21/ec/f45a5410a5b56d80bd3bbd9ed621865f63fcbecb8e6142401a24621a0f81/Guake-3.4.0-py2.py3-none-any.whl (1.2MB)
    100% |████████████████████████████████| 1.2MB 4.2MB/s 
Collecting pbr (from guake)
  Downloading https://files.pythonhosted.org/packages/f3/04/fddc1c2dd75b256eda4d360024692231a2c19a0c61ad7f4a162407c1ab58/pbr-5.1.1-py2.py3-none-any.whl (106kB)
    100% |████████████████████████████████| 112kB 10.0MB/s 
Collecting typing; python_version < "3.5" (from guake)
  Downloading https://files.pythonhosted.org/packages/cc/3e/29f92b7aeda5b078c86d14f550bf85cff809042e3429ace7af6193c3bc9f/typing-3.6.6-py2-none-any.whl
Installing collected packages: pbr, typing, guake
Successfully installed guake-3.4.0 pbr-5.1.1 typing-3.6.6
You are using pip version 10.0.1, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
tdr@tdr-HP:~$ guake
[ERROR] Unable to start Guake, missing mandatory dependency: Keybinder 3
tdr@tdr-HP:~$ pip3 install guake
Collecting guake
  Downloading https://files.pythonhosted.org/packages/21/ec/f45a5410a5b56d80bd3bbd9ed621865f63fcbecb8e6142401a24621a0f81/Guake-3.4.0-py2.py3-none-any.whl (1.2MB)
    100% |████████████████████████████████| 1.2MB 1.2MB/s 
Collecting pbr (from guake)
  Downloading https://files.pythonhosted.org/packages/f3/04/fddc1c2dd75b256eda4d360024692231a2c19a0c61ad7f4a162407c1ab58/pbr-5.1.1-py2.py3-none-any.whl (106kB)
    100% |████████████████████████████████| 112kB 8.3MB/s 
Installing collected packages: pbr, guake
Successfully installed guake-3.4.0 pbr-5.1.1
You are using pip version 8.1.1, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
tdr@tdr-HP:~$ guake
[ERROR] Unable to start Guake, missing mandatory dependency: Keybinder 3

@gsemet
Copy link
Member

gsemet commented Nov 14, 2018

Please read our documentation for the list of system dependency you need to install

@iamtodor
Copy link

iamtodor commented Nov 15, 2018

@gsemet could you please help me figure out what do I do wrong?

tdr@tdr-HP:~$ pip install gir1.2-keybinder-3.0
Collecting gir1.2-keybinder-3.0
  Could not find a version that satisfies the requirement gir1.2-keybinder-3.0 (from versions: )
No matching distribution found for gir1.2-keybinder-3.0

Got this library from the Installing Guake page

@gsemet
Copy link
Member

gsemet commented Nov 15, 2018

Use apt-get install

@gsemet
Copy link
Member

gsemet commented Nov 15, 2018

And never use pip install. Always pip install —user.

@iamtodor
Copy link

iamtodor commented Nov 19, 2018

@gsemet got the following error:

tdr@tdr-HP:~$ guake
Guake not running, starting it
Unable to load the GLib schema, try to compile it
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/dbus/bus.py", line 175, in activate_name_owner
    return self.get_name_owner(bus_name)
  File "/usr/lib/python3/dist-packages/dbus/bus.py", line 361, in get_name_owner
    's', (bus_name,), **keywords)
  File "/usr/lib/python3/dist-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name 'org.guake3.RemoteControl': no such name

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/tdr/.local/lib/python3.5/site-packages/guake/main.py", line 295, in main
    remote_object = bus.get_object(DBUS_NAME, DBUS_PATH)
  File "/usr/lib/python3/dist-packages/dbus/bus.py", line 241, in get_object
    follow_name_owner_changes=follow_name_owner_changes)
  File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 248, in __init__
    self._named_service = conn.activate_name_owner(bus_name)
  File "/usr/lib/python3/dist-packages/dbus/bus.py", line 180, in activate_name_owner
    self.start_service_by_name(bus_name)
  File "/usr/lib/python3/dist-packages/dbus/bus.py", line 278, in start_service_by_name
    'su', (bus_name, flags)))
  File "/usr/lib/python3/dist-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.guake3.RemoteControl was not provided by any .service files

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/tdr/.local/lib/python3.5/site-packages/guake/guake_app.py", line 123, in __init__
    schema_source = load_schema()
  File "/home/tdr/.local/lib/python3.5/site-packages/guake/guake_app.py", line 119, in load_schema
    SCHEMA_DIR, Gio.SettingsSchemaSource.get_default(), False
GLib.GError: g-file-error-quark: Failed to open file '/home/tdr/.local/lib/python3.5/site-packages/data/gschemas.compiled': open() failed: No such file or directory (4)
Error opening directory '/home/tdr/.local/lib/python3.5/site-packages/data': No such file or directory
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/dbus/bus.py", line 175, in activate_name_owner
    return self.get_name_owner(bus_name)
  File "/usr/lib/python3/dist-packages/dbus/bus.py", line 361, in get_name_owner
    's', (bus_name,), **keywords)
  File "/usr/lib/python3/dist-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name 'org.guake3.RemoteControl': no such name

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/tdr/.local/lib/python3.5/site-packages/guake/main.py", line 295, in main
    remote_object = bus.get_object(DBUS_NAME, DBUS_PATH)
  File "/usr/lib/python3/dist-packages/dbus/bus.py", line 241, in get_object
    follow_name_owner_changes=follow_name_owner_changes)
  File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 248, in __init__
    self._named_service = conn.activate_name_owner(bus_name)
  File "/usr/lib/python3/dist-packages/dbus/bus.py", line 180, in activate_name_owner
    self.start_service_by_name(bus_name)
  File "/usr/lib/python3/dist-packages/dbus/bus.py", line 278, in start_service_by_name
    'su', (bus_name, flags)))
  File "/usr/lib/python3/dist-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.guake3.RemoteControl was not provided by any .service files

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/tdr/.local/lib/python3.5/site-packages/guake/guake_app.py", line 123, in __init__
    schema_source = load_schema()
  File "/home/tdr/.local/lib/python3.5/site-packages/guake/guake_app.py", line 119, in load_schema
    SCHEMA_DIR, Gio.SettingsSchemaSource.get_default(), False
GLib.Error: g-file-error-quark: Failed to open file '/home/tdr/.local/lib/python3.5/site-packages/data/gschemas.compiled': open() failed: No such file or directory (4)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/tdr/.local/bin/guake", line 11, in <module>
    sys.exit(exec_main())
  File "/home/tdr/.local/lib/python3.5/site-packages/guake/main.py", line 410, in exec_main
    if not main():
  File "/home/tdr/.local/lib/python3.5/site-packages/guake/main.py", line 310, in main
    instance = Guake()
  File "/home/tdr/.local/lib/python3.5/site-packages/guake/guake_app.py", line 126, in __init__
    try_to_compile_glib_schemas()
  File "/home/tdr/.local/lib/python3.5/site-packages/guake/paths.py", line 97, in try_to_compile_glib_schemas
    subprocess.check_call(["glib-compile-schemas", "--strict", SCHEMA_DIR])
  File "/usr/lib/python3.5/subprocess.py", line 581, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['glib-compile-schemas', '--strict', '/home/tdr/.local/lib/python3.5/site-packages/data']' returned non-zero exit status 1

@gsemet
Copy link
Member

gsemet commented Nov 19, 2018

no idea :(

/home/tdr/.local/lib/python3.5/site-packages/data/gschemas.compiled does not seem to exist

@iamtodor
Copy link

@gsemet so true. I checked, I have no dir data in the following path: /home/tdr/.local/lib/python3.5/site-packages/. Although, I have there guake and Guake-3.4.0.dist-info/ dirs.
Do you know what I could miss, what might be the reason for missing data?

@gsemet gsemet modified the milestones: Backlog, 3.5.0 Apr 3, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests