We'll remember your contact info. for this session.

Terminal - Basic View

A few assumptions have been made on this design, I failed to reach anyone on the #ubuntu-design on IRC so I went ahead and:
  • Used the Ubuntu-On-Phones product image despite all the other mockups so far using the iPhone enclosure.
  • Used the iPhone keyboard as I couldn't find the ubuntu phone keyboard anywhere (I thought it would take to long and look terrible if I put it together from scratch).
  • I used the modal screen overlay to emulate a slightly opaque background or a black / dark background (not sure if we had to stick to white or not).

  • A concept idea I had for the terminal (which is outside the scope of the mockup) is that there could be a settings option to have a system status icon for the terminal so it can be pulled down as an overlay. However this could go against how these icons are supposed to be used, but for an Ubuntu user like me it would feel like a guake style terminal HUD.

    Comments (51)

    David

    David replied 1 year ago , re: Benjamin's Version 3 from 1 year ago

    I think the keyboard layout may need to be customized for the terminal or if there is a hardware keyboard, on screen buttons allowing for easy access to missing "common terminal characters", things like "|" and so forth.

    Sergey

    Sergey replied 1 year ago , re: Benjamin's Version 3 from 1 year ago

    I'm agree with David, it's great idea!

    Sergey

    Sergey replied 1 year ago , re: Benjamin's Version 3 from 1 year ago

    Guest replied 1 year ago , re: Benjamin's Version 3 from 1 year ago

    David is right, it must have keys like "tab", "ctrl", "pipe", etc. and it would desirable also to have cursor arrows keys, to navigate recent commands with up and down keys.

    Benjamin

    Benjamin replied 1 year ago , re: Benjamin's Version 5 from 1 year ago

    Hi Guys thanks for the suggestions, Volkov I have merged your suggestion . I was pretty sure somewhere I had seen this sliding behaviour on the title and remember there being an arrow there, however I couldn't find it in any of the designs on the device pages so please let me know if that is out of place.
    Also I have added the note for a more terminal-centric keyboard to be put in place of the keyboard, I think if the keyboard is custom built for a terminal the control key should just be embedded in it and thus I have removed the second figure in the mock-up. Feel free to submit an alternate version with your design of a keyboard and I will merge it in.

    Benjamin

    Benjamin replied 1 year ago , re: Benjamin's Version 5 from 1 year ago

    Hi Guys thanks for the suggestions, Volkov I have merged your suggestion . I was pretty sure somewhere I had seen this sliding behaviour on the title and remember there being an arrow there, however I couldn't find it in any of the designs on the device pages so please let me know if that is out of place.
    Also I have added the note for a more terminal-centric keyboard to be put in place of the keyboard, I think if the keyboard is custom built for a terminal the control key should just be embedded in it and thus I have removed the second figure in the mock-up. Feel free to submit an alternate version with your design of a keyboard and I will merge it in.

    Martin

    Martin replied 1 year ago , re: Benjamin's Version 6 from 1 year ago

    Tab complete should be swipe right, run command perhaps swipe left or down (on the command prompt itself), you can change the behaviour when in an editor or other program for the design.

    Guest replied 1 year ago , re: Benjamin's Version 6 from 1 year ago

    I also would like to have a terminal that is just as powerful as on the desktop. On my Nexus I'm using an Android Terminal from the market, but things such as autocompletion doesn't work since there is no "Tab" Key. Terminal without autocompletion is useless.

    Guest replied 1 year ago , re: Benjamin's Version 6 from 1 year ago

    I don't know if the keyboard is capable of showing "T9 predictive" text on the top of the keyboard but that might also be a good way to do auto-completion.
    Maybe if you tap and hold that it will show a complete list, if there are to many. Otherwise you could swipe left and right and chose the right completion.

    ZSH style menu completion with onscreen menu that works with touch might also be a good option.

    ubuntu-phone ~ % cd Downloads/ :

  • completing file
  • Some.pdf < click this to complete for Downloads/Some.pdf
    Another.pdf
    Music.mp3

    ubuntu-phone ~ % cd
  • completing local directory -
  • Pictures/ Desktop/ Documents/ Downloads/ Dropbox/ Video/

    ZSH can also complete hostnames, parameters and much more but completing directories and files this way might be very suitable for a touchbased terminal.

    Guest replied 1 year ago , re: Benjamin's Version 6 from 1 year ago

    To start auto-completion swipe from left to right in the the terminal. Select the appropriat completion for example the next directory on screen. If you want to complete even more, for example to list the files and folders that are in that directory swipe again. After completing the first folder by selecting it from the menu, of course you can type a few letters and start a new auto-completion after that to reduce the amount of alternatives that are shown in the menu.

    This should also work for commands.

    ubuntu-phone~ % md

  • completing external command
  • md5pass md5sum mdadm mdassemble mdmon
    completing alias
  • mdstat

  • Now if you complete for md5sum and swipe again it will complete for files that are in the directory that you are currently in. Select the file and you end up with ubuntu-phone~ % md5sum Some.mp3

    That would be a really awesome touch terminal. It would completely remove the need for a Tab Key in the terminal.

    Tim

    Tim replied 1 year ago , re: Benjamin's Version 6 from 1 year ago

    Tim

    Tim replied 1 year ago , re: Tim's Version 7 from 1 year ago

    Still needs an intelligent solution for navigating through the command history etc. Would be good if most of this can be down without requiring special buttons like Ctrl so you can do "Ctrl + C" "Ctrl + Z".

    I think the most used Shortcuts and Keys in a Linux Terminal are
    "Tab" for completion
    "Up-Arrown" "Down-Arrow" for history
    "Ctrl + C" "Ctrl +Z"
    Maybe "Ctrl + Shift + C" and "Ctrl + Shift + V" after selecting text.

    Tim

    Tim replied 1 year ago , re: Tim's Version 7 from 1 year ago

    If the terminal is not free floating it might be the most obvious thing to browse the command history by doing a either an up or down swipe.

    So maybe:
    Up-Swipe: Go back in command history
    Down-Swipe: Go forward in command history
    Right-Swipe (while cursor is at end of command): Autocomplete command, file or directory
    Left-Swipe: Move cursor to the left so you can insert/edit parameters in old commands without having to delete everything that is infront of it with backspace
    Right-Swipe (while inside a command): Move cursor to the right.

    Most Android Terminals also use the Volume Rocker for special shortcuts.
    Volume Down + Key
    Volume Up + Key

    Tim

    Tim replied 1 year ago , re: Tim's Version 7 from 1 year ago

    Volume Down + P = | (Pipe)
    Volume Down + C = Ctrl + C
    Volume Down + Z = Ctrl + Z

    Tap and hold on terminal starts text-selection mode with two brackets that you can pull appart.
    Volume Up + C = Ctrl + Shift +C (Copy Text)
    Volume Up + V = Ctrl + Shift + V (Paste Text at cursor position)

    Benjamin

    Benjamin replied 1 year ago , re: Benjamin's Version 13 from 1 year ago

    Awesome Ideas Tim. Just wondering, with the left and right swiping to move the cursor to insert parameters could that be unintuitive if a user is used to selecting in the text where they want the cursor to move to? I know in Android at least when I select a new location, a blue tag shows up below the cursor position to show where I am and I am assuming similar functionality will be in the Ubuntu Phone. As for the swipe to the right for auto-completion, I think that would work great.

    Tim

    Tim replied 1 year ago , re: Benjamin's Version 13 from 1 year ago

    I know that if you write a text message on Android or an E-Mail you can tap in the text to place the cursor and drag it around with the little blue lable that is attached to it. Doesn't work that great in my opinion on Android I often have to tap 3-4 times to get it where I want it to be maybe I'm just not good at this. :D
    Placing the cursor directy could also be an alternative nevertheless.

    What I also like is this concept:
    http://i46.tinypic.com/9utedh.jpg

    With tap and hold, the terminal would have every possible form of user input on a touch device. Inteligent swipes, tap to place cursor, tap and hold menu, direct keyboard input without the need for extra keys, on ccreen clickable elements.

    The tap and hold menu could be good for starting the text modification mode. Selecting, Copy, Paste Text.

    Guest replied 1 year ago , re: Benjamin's Version 13 from 1 year ago

    If swipe up and down moves through command history how do you scroll up to see previous output? I might think a volume rocker would be more natural for cycling through commands and swiping up and down would be for seeing history.

    Tim

    Tim replied 1 year ago , re: Benjamin's Version 13 from 1 year ago

    You really need shortcuts on a smartphone terminal like Volume Down + Q (jump to begining of line) Volume Down + W (jump to end of line). Otherwise you need extra screen clutter with sepcial keys like Ctrl etc that are pulled in from somewhere. The volume rocker is ideal for this.

    I rarely have to look for previous output. On Android the terminals are also fixed at least I haven't foun a scrollable terminal.
    Maybe tap and hold and then start scrolling up by moving your finger higher than the place where you tapped first and the reverse of scrolling down.
    The higher your figer is above your tapping point the faster the scrolling.

    Guest replied 1 year ago , re: Benjamin's Version 13 from 1 year ago

    The session switcher is very large. It would be preferable to use a design that allows as much of the screen as possible to display lines. The focus on the phone UI is to give content as much space as possible. Perhaps integrating a session switcher into the app menu would be more in line with the overall design philosophy.

    Guest replied 1 year ago , re: Tim's Version 14 from 1 year ago

    Would it be good if you could simply double tap on a previous command in order to have it repeated?
    Surely that would be simple enough to counter the lack of up/down keys to reuse a command.

    Martin

    Martin replied 1 year ago , re: Tim's Version 14 from 1 year ago

    Don't output the file/dir/command text from the auto complete in the terminal itself. This would just waste space and confuse context. We should use a popup similar to other auto complete methods. Use icons if needed, or like ls -F use a symbol. One per section should do the trick.

    Guest replied 1 year ago , re: Tim's Version 14 from 1 year ago

    For Ctrl-c (stopping a command), touch the screen for 3 seconds. For using '|' (pipe), when we type pipe there can be suggestions for using the text 'pipe' or '|'. Or, you can have a line of the special characters placed above the keypad.

    Guest replied 1 year ago , re: Tim's Version 14 from 1 year ago

    what about getting rid of user and hostname in front of each line in sake for saving some space? Instead displaying it in a separate place above the input area?

    Guest replied 1 year ago , re: Tim's Version 14 from 1 year ago

    @Aditya Atluri: "For Ctrl-c (stopping a command), touch the screen for 3 seconds."

    1, there are several situations in which you might need to hit ctrlc very quickly

    Guest replied 1 year ago , re: Tim's Version 14 from 1 year ago

    @Aditya Atluri: "For Ctrl-c (stopping a command), touch the screen for 3 seconds."

    -1, there are several situations in which you might need to hit ctrl\+c very quickly

    (sorry, formatting went wrong in previous comment)

    Tim

    Tim replied 1 year ago , re: Tim's Version 14 from 1 year ago

    @Foo To do this you only have to edit your $PS1 variable. Type "echo $PS1" into your terminal and you basically see what you prompt is made of. You can customize the hell out of it.

    I'd also give a -1 for touching for 3 seconds to close process. This wouldn't feel very natural.

    As for having popups with autocomplete options this could also work. Maybe it's easier to program but it would create a bit a of distraction, because you have popup windows constantly popping up in your terminal that might obscure your input/output. I rather have pure commanline text in the terminal rather than adding other graphical elements. That's just my personal preference.

    What do others think?

    Guest replied 1 year ago , re: Tim's Version 14 from 1 year ago

    Tim

    Tim replied 1 year ago , re: Tim's Version 14 from 1 year ago

    I don't know if you're going to have multiple users anyway. To install apps I don't think people will have to enter the root password everytime. You're probably going to be root and have everything sandboxed.

    Your directory switch can only go back and not forward. If there are 15 directories in share how are you going to access them? I think people should just use "cd" and autocomplete for this like in a normal Terminal. It shouldn't turn into a filemanager type app.

    Benjamin

    Benjamin replied 1 year ago , re: Tim's Version 14 from 1 year ago

    Why won't it have multiple users? I thought this would be very likely. I mean Android just brought out multiple users and Ubuntu already has it built in on the desktop side.

    Thats ignoring the face that it would be very dangerous to be root all the time... I mean even with a crazy amount of sandboxing there will be times where an app needs permissions (GParted for phones?) and if it was running as root it could be very dangerous.

    I do however agree that we could make valuable space in the prompt by removing the hostname and the current working directory. and we can just access them with command such as pwd and hostname. This could get annoying not knowing if your cd worked because there is no directory so maybe we should print just the current parent? so we know where we are?

    Guest replied 1 year ago , re: Tim's Version 15 from 1 year ago

    The keyboard or separate keys are needed for text navigation. Trying to plant the cursor down for editing within text is a nightmare on other phones unless you get a soft-keyboard with arrows.

    Benjamin

    Benjamin replied 1 year ago , re: Tim's Version 15 from 1 year ago

    @e8hfff maybe I just have a different experience with my slim hands and galaxy note for a phone :)

    Guest replied 1 year ago , re: Tim's Version 15 from 1 year ago

    I also not the lack of landscape orientation in the mock-ups. Because of my fat thumbs, I (and I'm comfortable including others on this) may prefer a landscape mode. This would also leave room for a more complete keyboard (I'm thinking "hacker's keyboard" on android). Given the nature of a terminal, regular tab completion using a 'tab' key on the keyboard should be a feature. T9-style or swype-text with pop-ups may have a cool factor, but remembering the terminal is a tool more than an app would be prudent.

    Guest replied 1 year ago , re: Tim's Version 15 from 1 year ago

    repeating the prompt over and over again takes up a lot of room. For the sake of screen real-estate conservation, maybe we should dedicate a section of the screen for the current prompt value (hostname+pwd, or whatever you want to see there). That should minimize the amount of wrapping that occurs when typing long commands.

    Guest replied 1 year ago , re: Tim's Version 15 from 1 year ago

    repeating the prompt over and over again takes up a lot of room. For the sake of screen real-estate conservation, maybe we should dedicate a section of the screen for the current prompt value (hostname+pwd, or whatever you want to see there). That should minimize the amount of wrapping that occurs when typing long commands.

    Guest replied 1 year ago , re: Tim's Version 15 from 1 year ago

    Agree with: """If swipe up and down moves through command history how do you scroll up to see previous output? I might think a volume rocker would be more natural for cycling through commands and swiping up and down would be for seeing history."""

    Guest replied 1 year ago , re: Tim's Version 15 from 1 year ago

    I think it would be nice to make the auto-complete like this http://javathreads.de/data/uploads/2011/05/1105_EclipseJBossToolsVisualEditorAutocomplete.jpg

    Tim

    Tim replied 1 year ago , re: Tim's Version 15 from 1 year ago

    Keep in mind that the fontsize is very exaggerated in the mockup. On my Nexus and Android Terminal you can pack way more output on the screen without any problem. Still think that using the volume rocker for history browsing is a huge waste. Take any Terminal Emulator on Android and see if it uses the volume rocker for Ctrl / Ctrl + Shift - Shortcuts. If you don't do that you have to add a gazillion of pointless keys to the keyboard through the chrome or an alternative touch keyboard (which one would have to design, program and implement first). Just adds unecessary screen clutter.

    Tim

    Tim replied 1 year ago , re: Tim's Version 15 from 1 year ago

    @Wabuo It's easier to swipe left and right to find your command, because you'll still have focus on your current command. If you expand vertical you have search up and down.

    Homero

    Homero replied 1 year ago , re: Tim's Version 15 from 1 year ago

    Homero

    Homero replied 1 year ago , re: Tim's Version 15 from 1 year ago

    We can use a keyboard with prediction included, like the one actually used by Android. So we can use these predictions to suggest commands to user. Also, if the keyboard has a Ctrl button, this can be used to generate predictions for commands using Ctrl (Ctrl+C, Ctrl+Z, etc).

    Tim

    Tim replied 1 year ago , re: Tim's Version 15 from 1 year ago

    Using the keyboard predication was something I head mentioned, too. This would also work. Might be easier to program aswell, but we don't know much about the capabilites of the keyboard and if we can have alternative versions for different apps.

    I wouldn't use it for use it for Ctrl / Ctrl + Shift etc. short-cuts though.

    Tim

    Tim replied 1 year ago , re: Tim's Version 15 from 1 year ago

    I will merge your idea into the current design. With the Android keyboard you can tap and hold the "predictions" and they will all popup in a menu so you don't have to scroll left and right through the predictions hope they Ubuntu Keyboard can do something like this too.

    Homero

    Homero replied 1 year ago , re: Tim's Version 15 from 1 year ago

    Yep, would be great if the keyboard had these prediction capabilities. But like said by users above, if we are designing a Terminal app, makes sense to also include a special keyboard. Seems that even Ars Technica are understanding this:

    http://arstechnica.com/gadgets/2013/01/ubuntu-phones-to-come-with-a-terminal-prepare-your-command-line-skills/

    Guest replied 1 year ago , re: Tim's Version 15 from 1 year ago

    Just my two cents on navigation:
    A normal up/down move to scroll through output.
    A longpress highlights the cursor and allows an up/down move to scroll the command history.
    A tap while the cursor has a command entry triggers a zoom widget(borrowed from blackberry 10) focused around the cursor to allow left/right moves to desired point of insert/edit

    Guest replied 1 year ago , re: Tim's Version 15 from 1 year ago

    Their mockups show a lack of understanding about how phones are used and the limited space on the screen. What you should do is have the location+dollar-sign be just a dollar sign that's clickable. When you tap on the dollar sign, it'll expand to show the directory you're currently in. This saves precious space on the limited lines.

    Also, everything should be clickable (and color coded to indicate what type of thing they are) to facilitate less typing (which is much harder than typing on a regular keyboard).

    Guest replied 1 year ago , re: Tim's Version 15 from 1 year ago

    Don't you know that ServerAuditor app has most of described features already: http://serverauditor.com. I mean the navigation, it's really convenient and we are going to update it with a new approach to the navigation soon.

    Michele

    Michele replied 1 year ago , re: Tim's Version 15 from 1 year ago

    i would like to rise awareness about the fact that the terminal app is the most commented and discussed among all the presented apps, although it will likely be the least used by actual phone users.

    I understand most of the people here are used to the terminal (just like I am) and I don't want to troll, but in my opinion we're spending way too much effort in designing and discussing the terminal app.

    Canonical recently announced that the first wave of Ubuntu phones will ship without a store, because they want to target the basic audience. We should be designing apps for the users, not apps for us.

    Guest replied 1 year ago , re: Tim's Version 15 from 1 year ago

    I think in the circle menu, "Last Command" should be at the top to better integrate with desktop experience.

    Guest replied 1 year ago , re: Tim's Version 15 from 1 year ago

    For the special characters in the virtual keyboard: you could use several alternate keyboards (alphabetic, ascii symbols, maybe some utf-8 code pages) and use right/left swipe on keyboard to switch between them. You should also be able to choose which keyboards you use (for example if you need Greek but not so much Japanese) and, most importantly, this keyboard should be mostly consistent across all apps (maybe ascii symbols is more useful for terminal, but you could also use it for smileys in messaging...).

    Guest replied 1 year ago , re: Tim's Version 15 from 1 year ago

    I propose:
    1. Do not mess with the keyboard. This makes it more difficult for users of non-English layouts, users who want to install their own keyboards, or similar input methods.
    2. Use Sergey's idea of a bar below the keyboard for a ctrl key. Potentially, this bar is configurable but might include, e.g. Ctrl, Esc, Tab, PgUp, PgDn, followed by punctuation. If the screen is too narrow for all, you can swipe to scroll through them. This can be activated or deactivated in settings but is visible by default.

    Roshan

    Roshan replied 1 year ago , re: Tim's Version 15 from 1 year ago

    Navigation inside commands can be done as follows: the user presses the screen for some time and then the cursor moves to the right or left depending on how much the finger also has moved in the same direction. This is a simple and intuitive way to move cursors. Basically, it implements what the middle mouse button does.

    Add a Comment

    Some HTML is allowed. You can also use Mockups text formatting markup.
    Ex: *bold* _italic_ &underlined& {color:#FF0000}colored{color} * New lines with asterisks for bulleted lists.

    Are you sure you want to delete mockup "XYZ?"

    Your mockup's data and history will be deleted forever!

    Notify project members