We have been looking at ways of making the Terminal app more pleasing, in terms of the user experience, as well as the visuals.
I would like to share the work so far, invite users of the app to comment on the new designs, and share ideas on what other new features would be desirable.
On the visual side, we have brought the app in line with our Suru visual language. We have also adopted the very nice Solarized palette as the default palette – though this will of course be completely customisable by the user.
On the functionality side we are proposing a number of improvements:
-Keyboard shortcuts
-Ability to completely customise touch/keyboard shortcuts
-Ability to split the screen horizontally/vertically (similar to Terminator)
-Ability to easily customise the palette colours, and window transparency (on desktop)
-Unlimited history/scrollback
-Adding a “find” action for searching the history
Tabs and split screen
On larger screens tabs will be visually persistent. In addition it’s desirable to be able split a panel horizontally and vertically, and use keyboard shortcuts or focusing with a mouse/touch to move between the focused panel.
On mobile, the tabs will be accessed through the bottom edge, as on the browser app.
Quick mobile access to shortcuts and commands
We are discussing the option of having modifier (Ctrl, Alt etc) keys working together with the on-screen keyboard on touch – which would be a very welcome addition. While this is possible to do in theory with our on-screen keyboard, it’s something that won’t land in the immediate near future. In the interim modifier key combinations will still be accessible on touch via the shortcuts at the bottom of the screen. We also want to make these shortcuts ordered by recency, and have the ability to add your own custom key shortcuts and commands.
We are also discussing with the on-screen keyboard devs about adding an app specific auto-correct dictionary – in this case terminal commands – that together with a swipe keyboard should make a much nicer mobile terminal user experience.
More themability
We would like the user to be able to define their own custom themes more easily, either via in-app settings with colour picker and theme import, or by editing a JSON configuration file. We would also like to be able to choose the window transparency (in windowed mode), as some users want a see-through terminal.
We need your help!
These visuals are work in progress – we would love to hear what kind of features you would like to see in your favourite terminal app!
Also, as Terminal app is a fully community developed project, we are looking for one or two experienced Qt/QML developers with time to contribute to lead the implementation of these designs. Please reach out to alan.pope@canonical.com or jouni.helminen@canonical.com to discuss details!
EDIT: To clarify – these proposed visuals are improvements for the community developed terminal app currently available for the phone and tablet. We hope to improve it, but it is still not as mature as older terminal apps. You should still be able to run your current favourite terminal (like gnome-terminal, Terminator etc) in Unity8.



Excelent !
These new features to gnome-terminal are great.
Would be nice if we could also select text only within the split window, either by mouse or keyboard shortcuts?
there’s no mention of this.
WOW That looks gorgeous!!!! And split view is all I really wanted added to the terminal. Good stuff Canonical! I wish Unity 8 was ready now.
Thanks. To clarify, these are proposed design improvements to the community driven Terminal app – https://uappexplorer.com/app/com.ubuntu.terminal – though there is no reason they couldn’t be applied to the gnome-terminal in principle, at least the desktop designs.
This looks absolutely beautiful and functional. Reminds me slightly of elementary OS’ terminal (in a good way).
Looks like the best terminal app I’ve ever seen!
Some feedback:
1. Remove the close button in desktop-mode for all non-focused tabs.
2. I would love to have special key-maps for specific applications (switching between key-maps often on mobile is cumbersome)
3. Custom key-map via text config file, something like:
[name] = [action] or [key combination] = [action]
e.g.:
l = “clear && ls”
K_SPACE K_ENTER = “history | head”
Are all next gen ubuntu (touch) apps supposed to have window decoration like the one in the mockup above? If yes, any idea if it’ll be possible to have a consistent look across ubuntu/qt and gnome/gtk apps?
Hi Owais,
This design example is using client side window decorations, which is something that’s being worked on but hasn’t landed yet. An app author will be able to decide to use either normal window decorations (typical dark bar, which can be themed on GTK apps to match the window deco on other Unity8 apps, see here – http://mhall119.com/2016/05/dogfooding-unity-8/) – or an app might in some cases want to use client side decoration (shown here), where the app has the close/max/min pills within its’ surface.
Hey Thibran,
Thanks for the feedback! We thought about making the close buttons on tabs only visible on hover – but since there is no specific “desktop mode” – desktop devices can also have touch screens – it makes sense to have a visual close button on all tabs, to be able to close them quickly.
The key-map idea is great – we were also thinking of shortcuts for often used combined commands (your examples, or ssh username@whatever.ip.com for instance) could be very useful. Thanks again for the comments!
Alpha blur when transparent would be really nice.
Perfect! Split screen should set a variable with term id (for example, TERM_ID). In this way, when synchronizing all terminals, it is possible to make a custom command for each terminal considering this TERM_ID.
Please make it easier to see which tab is active. Upgrading from 14.04 to 16.04, I saw a big improvement, but you seem to have taken a step back.
Thanks
Tmux / Screen seem able to do the jobs. But native support in terminal app would be great!
It would be nice to enhance visibility of font on semi transparent screens… For example by allowing to change the opacity of the font independent of the opacity of the background.
Ideally I could set the background to 50 percent opacity but the font to 90 percent.
The last mockup looks like client side decorations. Yes, please! Even built in the SDK inside the header.
I really love this new design. Here are my opinions to improve in phone mode:
– Split screen available in phones. Vertical split screen when in portrait view and horizontal split screen when in landscape view. They should switch automatically when the phone rotates.
– Give more space to the text by removing all floating buttons. I’d prefer the settings button to be on the hamburguer menu or accessed when switching tabs, something like the browser. The button to show the keyboard can be put on the bottom.
– List of suggestions to autocomplete just below where you type, something like any IDE does.
Hi Nikalon,
Really good ideas. The split screen on phone sized screens like you described is something we talked about do and will probably add it!
We will probably have autocomplete just above the on-screen keyboard, where it currently is when on for languages like English, but need app specific dictionaries landed first.
Hey Jv,
Excellent idea. Will add to settings.
Hi John,
We discussed this – some people want to see the things behind the terminal relatively clearly. Blur/transparency elsewhere in the shell could be nice though, and will probably land at some point. Thanks for the suggestion!
Good! I am waiting for the blur option in transparent windows. It will be nice.
Amazing mockups! If Unity 8 is really going to be the high-quality product these screenshots suggest it will be, people will love it!
However, one important aspect you should keep in mind is to support power users in their workflow. At least on the desktop. So you should probably think about providing the keyboard bindings they are already used to. With that I especially mean popular tmux and vim bindings.
If correctly implemented the terminal could even be a simple replacement for tmux.
I’d love if you add a pull-down terminal mode with a global hotkey, ala yakuake. It’s so useful.
What always happens to me is that at the end of a session of building, upgrading or debugging something, I scroll back through my history to see what I need to write down to document. I always end up selecting the whole screen dump and saving it somewhere. I know script could have done the job but who thinks of that while tinkering around?
A little “save all terminal contents since $time” would be really cool. And make me feel less blonde.
About 20 years ago I added this page
http://www.viewtouch.com/terminal.html
to my touchscreen point of sale system. It allows me to create buttons at will and to put any command line into a button and see the output on the text window. The entire PoS program only takes up about 10 Mbytes of RAM when running. It’s been GPL3 for almost 2 years.
What Blueberry said! A hot key to show / hide the terminal, like with Guake and others. I guess this functionality needs the terminal to be always on and watching for the hot key so that it can hide and reveal.
no mention about notifications ? at least some notification (icon, light whatever) of input on my tabs would be great… actually awesome, but it doesnt seem it is going to get over average terminal apps anytime soon :(
Whenever input or a specific keyword appears in the terminal, show it with a visual or audible alarm.
Great while waiting for something like “finished” to continue your work.
I do hope the unlimited scrollback can be turned off.
In fact, I would suggest that it were by default.
It is so easy to launch a command that fills the screen with immense amounts of junk and eats up your RAM at high speed. Obviously then, your system is so unresponsive that a forced reboot is the easiest option.
What I’d love to have is a “focus mode” (Name borrowed from a vim plugin). If you maximize the window while in split screen, only the active section gets maximised and the others go away to sides or something.
Thanks for the comment jpeg729. Yes it will be configurable. Also, the way we thought it would work is there is a RAM threshold and save/read from disk after that. And option to purge the log from app settings, or set it to delete disk log after logout from session
How can I install this terminal on Ubuntu 16.04 ?
> On mobile, the tabs will be accessed through
> the bottom edge, as on the browser app.
When the OSK is up, the bottom edge is not directly accessible, the user has to swipe the OSK away first. Has this been considered?
It’s not so bad for the browser because the OSK can be easily dismissed by tapping on any non-editable element on a webpage (and the browser is often used read-only anyway), but it might be cumbersome for the terminal where the user typically interacts a lot with the OSK.
Thanks, that’s a very good point Olivier. We did consider adding a two-finger swipe on the CLI view as a shortcut gesture for changing between the tabs. But maybe there needs to be a visual shortcut too for the tab view while OSK is up
Duard,
These visuals have not been implemented yet. We are looking for a QT/QML dev to work with us on implementing the design
It looks great!
What I really would like too (in the visual part) is to have a transparency with blur.
And if you could add broadcast just like Terminator, it’d be sick!
Thanks and see you!
Thanks Jouni. I suppose Gnome apps will use their own CSD system on Unity8 and won’t have window decorations that looks and feel “native” to unity8 then.
Can’t wait for Unity8 desktop to land as the default. Unity7 was the best designed desktop environment IMO and it worked great for the most part.
I hope Unity8 desktop will get some of the original Unity7 features back like the HUD (with menu+indicator search) and multi-touch gestures.
for God’s sake, RTL support.
Solarized has many issues and seems to be unmaintained. I love Solarized and would like to see it continued, but in its current state is perhaps not the best choice as a default colorscheme. I’ve opened an issue on Github to see whether the community would like to take over its maintenance: https://github.com/altercation/solarized/issues/355
I’d like to point out one unpleasant thing about gnome terminal which I wouldn’t like (naturally) to see in new terminal app. If you resize window gnome terminal doesn’t redraw the content. Please don’t repeat their mistakes.
About look and feel of client side decorations: I think creating GTK+ and standard Qt themes for Suru is necessary – with this GNOME apps’ CSD will be able to nicely integrate visually with Unity 8 while still having their own window decorations.
I would love this design even if it could keep the traditional Ubuntu color of Terminal. A big thank!