Fixing Ubuntu gnome-terminal app to allow copy/paste
By: +David Herron; Date: January 28, 2018
Ubuntu is supposed to be an easy-to-use Linux distribution where everything just works. If so, why doesn't copy/paste work with the default terminal program? It's quite common to copy/paste text and other data between applications. Speaking for myself, I am frequently writing tech tutorials like this one, and therefore must frequently copy text from a terminal session, or into a terminal session, to write the tutorial. Using gnome-terminal, the default terminal app on Ubuntu, it's a frustrating experience because copy/paste does not work fluidly with gnome-terminal on Ubuntu. Further, the fix is unsatisfying and incomplete.
The problem is this:
You have some command output to copy somewhere. Knowing that the shortcut key-sequence is
CTRL-SHIFT-C, you type that on the keyboard, then you go to the target program, and type
CTRL-V, and you don't get the pasted-in text you expect.
Infuriatingly you can PASTE text INTO the gnome-terminal app, but not COPY text OUT from the gnome-terminal app.
This application is the default terminal app for Ubuntu. It's what is listed when you right-click the desktop and choose Open Terminal, and
gnome-terminal is the only terminal app installed on Ubuntu.
As the name implies
gnome-terminal is part of the gnome desktop environment.
Basic copy/paste knowledge
The issue is not a lack of understanding of this basic skill:
- Ctrl+Shift+C : copy
- Ctrl+Shift+V : paste
- Shift+Insert : paste
I know very well the reason for using
SHIFT+CTRL+C/V in the terminal, and
CTRL+C/V in other applications. Basically, since
CTRL+C is important in CLI app interactions, it must be easy for the terminal to type
CTRL+C. Therefore copy/paste needs a different shortcut, and they settled on
SHIFT+CTRL+C/V, and this is how Linux terminal programs have worked for a couple decades.
The tale of two clipboards
The problem is that doing the right thing -
CTRL-SHIFT-C or the Edit menu COPY choice - does not do whatever is necessary such that you can then paste the text into a different application.
After a LOT of searching I found this: https://superuser.com/questions/68170/how-can-i-merge-the-gnome-clipboard-and-the-x-selection
This question says the GNOME environment and the X11 environment have different clipboards. The barrier between those two clipboards is what's behind the funky copy/paste behavior.
It was suggested to use either
parcellite to merge the two clipboards. I was unable to get either to do anything useful.
Giving gnome-terminal the heave-ho, using Konsole instead
Once I determined there was no solution, the question became whether it would be possible to replace
gnome-terminal. I was unable to fully replace it, but have installed Konsole (the KDE terminal emulator) and am thinking of switching desktop environments to KDE.
It's possible in the regular Settings window to change the default applications. Unfortunately there isn't a setting to change the default terminal application. WTF?
One thing you can do is:
$ sudo update-alternatives --config x-terminal-emulator [sudo] password for david: There are 4 choices for the alternative x-terminal-emulator (providing /usr/bin/x-terminal-emulator). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/bin/konsole 40 auto mode 1 /usr/bin/gnome-terminal.wrapper 40 manual mode * 2 /usr/bin/konsole 40 manual mode 3 /usr/bin/rxvt-xpm 8 manual mode 4 /usr/bin/rxvt-xterm 10 manual mode Press <enter> to keep the current choice[*], or type selection number:
As you can see, I've configured it to Konsole. That means running
apt-get install konsole before-hand, since that app is not installed by default.
Another method is to run this command:
gsettings set org.gnome.desktop.default-applications.terminal exec /usr/bin/konsole
Either changes the behavior of the
CTRL+ALT+T shortcut. That shortcut will now launch Konsole or whatever your preferred terminal program is.
But it does not change the behavior of right-clicking in the Desktop, and choosing Open Terminal.