Fixing Ubuntu gnome-terminal app to allow copy/paste

; Date: Sun Jan 28 2018

Tags: Ubuntu

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: (superuser.com) 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 autocutsel or 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.

About the Author(s)

(davidherron.com) David Herron : David Herron is a writer and software engineer focusing on the wise use of technology. He is especially interested in clean energy technologies like solar power, wind power, and electric cars. David worked for nearly 30 years in Silicon Valley on software ranging from electronic mail systems, to video streaming, to the Java programming language, and has published several books on Node.js programming and electric vehicles.