When a terminal is running and I launch another, is there any way to open a new tab in the same window instead of open a new window?
-
2I don't fully understand your question: How will you lunch another terminal? If you are in terminal, just push Ctrl+Shift+T, and a new tab will open.– bigbangFeb 9, 2016 at 6:44
-
1When the terminal window is not on focus and I push Cmd + T to launch a new one I would like to open a new tab and not open a new window.– jacosroFeb 9, 2016 at 11:14
-
Are you in Freya or Loki? That may count, on whether the window is focused or not by a shortcut.– user170Oct 10, 2016 at 20:20
5 Answers
pantheon-terminal
actually has an undocumented command line option -w
with which you can specify a working directory for the new terminal.
This option also handily checks for already existing pantheon-terminal windows and opens a new tab if there is one, or a new window if there isn't.
I've written a tiny script that simply uses that option and then focuses the terminal with wmctrl
:
#!/bin/sh
pantheon-terminal -w ''
# A small sleep might be useful if the terminal doesn't open fast enough for wmctrl to focus it
#sleep 0.05
wmctrl -ia $(wmctrl -lx | sed -n 's/^\(0x[0-9a-f]\{8\}\)\s\{1,2\}[0-9-]\+ pantheon-terminal\.Pantheon-terminal .*$/\1/p' | tail -n1)
The script depends on the wmctrl
package.
It will open the new tab in the last opened terminal window. If you'd rather like it opened in the first opened window, check the history of my answer for an older version of the script with that behaviour.
I saved the script to /opt/open-terminal.sh
and made it executable with
chmod +x /opt/open-terminal.sh
I've mapped the script to the <Super>+T key combination so that I can easily open a new terminal whenever and wherever:
If you want that behaviour whenever you click on the Terminal shortcut, you could probably simply change the Exec parameter to the script.
This command wil make a copy of the pantheon-terminal shortcut for your user and set it to execute the script:
sed '/^\[Desktop Entry\]$/,/^Exec=pantheon-terminal$/{s#Exec=pantheon-terminal$#Exec=/opt/open-terminal.sh#}' /usr/share/applications/pantheon-terminal.desktop > ~/.local/share/applications/pantheon-terminal.desktop
elementaryOS Loki (v0.4):
As pointer out by @cipricus in the comments, it seems that with pantheon-terminal v4.0+ (Loki and above), they changed the behaviour of the -w
option to also automatically focus the temrinal window.
So if you are on Loki, you only have to add:
pantheon-terminal -w ''
as the command in the custom keyboard shortcuts and the desktop shortcut.
Here's the command to create a copy of the desktop shortcut with only the pantehon-terminal -w
command:
sed '/^\[Desktop Entry\]$/,/^Exec=pantheon-terminal$/{s#Exec=pantheon-terminal$#Exec=pantheon-terminal -w ""#}' /usr/share/applications/pantheon-terminal.desktop > ~/.local/share/applications/pantheon-terminal.desktop
-
1Why is the script needed when the command
panthon-terminal -w ''
can be used with a custom shortcut, be it a re-assigned Super-T or some other shortcut, as well as with a launcher/dock icon?– user170Oct 10, 2016 at 19:19 -
1Yes, I actually mapped Super-Shift-T to the command
panthon-terminal -w ''
so I can open a new terminal (without Shift) or a new tab (with Shift). It also gets the focus (elementary OS 0.4 Loki) so there is no need of the wrapper script. Oct 10, 2016 at 19:37 -
@cipricus Only
pantheon-terminal -w ''
won't focus the terminal window, at least not for me.wmctrl -a
switches to the desktop the window is on and brings it to the front.– halfbitOct 10, 2016 at 19:45 -
For me the command
pantheon-terminal -w WHATEVER
will focus the terminal window. Could be it because, as suggested in a comment by lemonslice, this is only the case in Loki? Are you in Freya? - I have added a complementary answer that you should feel free to copy/paste or otherwise integrate into yours and then I may delete mine. If you do not have enough reputation score, ask me to do it instead.– user170Oct 10, 2016 at 20:01 -
I'm using pantheon on top of debian. The repository here seems to be at Freya, pantheon-terminal has version 0.3.1.3. It's quite possible they added the focusing in 0.4, yea.– halfbitOct 10, 2016 at 20:13
-
That isn't exactly what the questioner wanted. The questioner wanted opening terminal via Cmd+T, dock or application launcher to result in a new tab in an existing window instead of a new window. Mar 2, 2016 at 14:25
-
The problem is with that shortcut not being a global shortcut: one that works also when the terminal is not in focus.– user170Oct 10, 2016 at 18:56
-
as indicated in the other answer, the needed command is
pantheon-terminal -w ''
. That can be used with a shortcut or with a launcher. (I don't see the need for the script.)– user170Oct 10, 2016 at 19:18
The default terminal in Elementary OS offers the possibility to open a new tab. On the left side of the terminal you'll find a plus which opens a new tab in the same window.
This is a complement (tested in Loki) to the other answer that shows that a good command is
pantheon-terminal -w ''
The command pantheon-terminal -w %u
is present in the file usr/share/applications/open-pantheon-terminal-here.desktop
. The `''´ part is needed in that some character has to be used there, but anything can go, like a dot, or even a poetry line
pantheon-terminal -w 'My name is Ozymandias, king of kings: Look on my works, ye Mighty, and despair!'
This command can be used to replace the default one in usr/share/applications/org.pantheon.terminal.desktop
(the default desktop file of the terminal), or in a new desktop file to be kept in dock, etc.; also, the default Super-T can be reassigned to this command, or a new shortcut can be created for this command in Keyboard > Custom > Add.
This will set the default new tab's path to that of the previous tab
gsettings set org.pantheon.terminal.settings follow-last-tab true