Coder Social home page Coder Social logo

ubports / terminal-app Goto Github PK

View Code? Open in Web Editor NEW
14.0 8.0 6.0 3.26 MB

Moved to GitLab

Home Page: https://gitlab.com/ubports/apps/terminal-app

License: GNU General Public License v3.0

CMake 1.17% Prolog 0.19% C++ 77.66% QML 17.72% JavaScript 1.47% QMake 0.31% C 0.42% Python 0.86% Shell 0.02% Roff 0.18%
core-app

terminal-app's Introduction

Ubuntu Terminal

A terminal app for desktop and mobile devices. It provides access to terminal sessions and is based on KDE's Konsole plugin.

The current plugin consists of:

  • KTerminal: offers access to terminal session from qml
  • KSessions: offers access to pty(s) from C++ layer

Building the app

Using clickable

To build and run the app on the desktop run:

clickable desktop

To build and install a click package on the device run:

clickable

See clickable documentation for details.

Using QtCreator

Bulding

For the desktop

Install the following build dependencies:

sudo apt-get install libpam0g-dev

Then open the CMakeLists.txt file in Qt Creator, and ensure that the kit selected on the left sidebar (just above the green "Run" button) is "Desktop"

Ensure you've selected the kit you want for your build and press the build button on Qt Creator's left sidebar (or alternatively Ctrl+B).

For a device

If you don't have one already, you'll need to create an armhf chroot to cross-compile the app. Here's how:

  1. In Qt Creator, open the CMakeLists.txt file
  2. Go to Tools > Options > Ubuntu > Click
  3. Click on Create Click Target
  4. Follow the prompts to generate the chroot. You will be asked for your sudo password
  5. Once created, you'll need to add the build dependencies for the app:
  • Click on the Maintain button on your chroot
  • On the terminal prompt that is started, type apt-get install libpam0g-dev:armhf
  • Close the terminal when the installation finishes
  1. Now you can either do a clean checkout and wait to be prompted by Qt Creator to add the armhf kit, or alternatively:
  2. Go to the Projects tab > Add kit and then select the UbuntuSDK armhf kit

Additionally, you'll have to tell Qt Creator that you are doing a build for a device to ultimately create a click package for installation:

  1. In Qt Creator, go to the Projects tab on the sidebar
  2. Click on the "Build" subtab of the "UbuntuSDK for armhf..." tab
  3. Then go to the "CMake arguments" text field and add "-DCLICK_MODE=on" without the quotes

Before starting the build make sure to select the "UbuntuSDK" kit on Qt Creator's left sidebar (just above the green "Run" button).

Ensure you've selected the kit you want for your build and press the build button on Qt Creator's left sidebar (or alternatively Ctrl+B).

Running the app

On the desktop

No additional steps are required before running the app on the desktop.

On a device

Due to Qt Creator's bug #1312094 in launchpad.net, there needs to be a manual workaround done before the app can run on the device:

  1. Modify the desktop.in file: change the Exec line to read: Exec=lib/arm-linux-gnueabihf/bin/@EXEC@

Remember to revert this temporary change if you are building a click package or if you're making other changes to be committed to the code!

Starting the app

Ensure you've selected the kit you want for your build and press the run button on Qt Creator's left sidebar (or alternatively Ctrl+R).

If the app hasn't been built yet, or if there are pending changes that require a build, the app will automatically be built first before running.

If you're starting the app on a device, the build will be copied over and the code will run unconfined.

Building a click package

There are two alternative ways to clickable of building a click package.

Using Qt Creator
  1. Ensure you've selected the UbuntuSDK for armhf kit on Qt Creator's sidebar
  2. Click on Publish on the sidebar
  3. Click on "Create package"
  4. If all goes well, you'll find the final click package in the build directory

Notes:

  • You can see the output of the click build if you click on Edit on the sidebar and then "Application Output" at the bottom. This is useful to identify any failures during the build
  • Run sudo apt-get install click-reviewers-tools to enable click package validation in Qt Creator. You might need to restart Qt Creator after you've installed them for it to detect them
Using click-buddy
  1. Install phablet-tools: sudo apt-get install phablet-tools
  2. Run click-buddy in your source tree: click-buddy --dir . --arch armhf --framework ubuntu-sdk-15.04
  3. Once finished, click-buddy will tell you the location of your source package

Installing a click package

First of all, ensure you've got a working Ubuntu device attached over USB to your host computer

Manually

Run the following commands to manually install the click package (replace 0.1 with the version of your package):

adb push /home/phablet com.ubuntu.terminal_0.1_armhf.click
adb shell
sudo -H -u phablet pkcon install-local /home/phablet/com.ubuntu.terminal_0.1_armhf.click
Using click-buddy

You can add the --provision argument to the previous command to install the click package on the device.

Starting the app
  1. Either kill unity8 with pkill unity8 or restart the system for the Apps (click) scope to pick up your newly installed click package
  2. Search for Reminders in the Apps scope and tap on its icon to start it
  3. You'll find the runtime logs at ~/.cache/upstart/application-click/

Uninstalling a click package

Run the following commands, replacing the version of the click package you want to uninstall:

adb shell
sudo -iu phablet
sudo click unregister com.ubuntu.terminal 0.1

Run the autopilot tests

The autopilot tests require the deprecated SDK. If you still have it installed, you may run the tests. Once the app has been built, you can go to the build directory and run:

cd tests/autopilot
autopilot run ubuntu_terminal_app

terminal-app's People

Contributors

carlosj888 avatar comradekingu avatar dplanella avatar elleo avatar eveninglily avatar fkaleo avatar flohack74 avatar jonnius avatar larryprice avatar mariogrip avatar mikix avatar nikwen avatar popey avatar sil2100 avatar sverzegnassi avatar swordfish90 avatar tjyrinki avatar universalsuperbox avatar wagafo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

terminal-app's Issues

Taking the click build with this repository to the Openstore

The click that the Openstore installs does not correspond to the click that is built from this repository. The one in the Openstore has a hack to never ask for login when the terminal app is started, and we don't have the source AFAIK. For the terminal app to be installed by default in the ubports images, the login should not be completely deactivated. That's why I contributed a patch to add a setting so that the user can disable being asked for login, but it is activated by default.

Now, I think this new click should be offered in the Openstore and installed by default in the images. I'm offering myself to maintain it. What is left to do:

  1. Bump the version to a new number, I haven't touched the version number.
  2. Modify the Cmakefile so that manifest.json is written from manifest.json.in. I just copied it so that the package could build.
  3. Modify clickable.json so that it installs a dependency needed to build: libpam0g-dev

These are minor things and the click can be moved (IMHO) to the images and the Openstore.

add -e switch like in gnome-terminal

-e switch would allow to feed terminal app with input string upon start.

It would then be possible for other apps to call terminal app and feed it script to execute.

Keyboard layout action of "type": "string" do not work (e.g. `CMD` layout)

Have put together a layout for Vim and wanted to enhance using ideas from https://swordfishslabs.wordpress.com/2015/02/27/json-profiles-in-ubuntu-terminal-app/. Relevant section:

{
    "main_action" : {
        "type" : "string",
        "text" : ":q",
        "string" : ":q\n"
    },
    "other_actions" : [
        {
            "type" : "string",
            "text" : ":wq",
            "string" : ":wq\n"
        },
        {
            "type" : "string",
            "text" : ":q!",
            "string" : ":q!\n"
        }
    ]
}

Tried this but it didn't work. While checking the other layouts, noticed that the CMD layout relies on string as well and then found that none of those work either. Asked a question on the Telegram group and confirmed that this wasn't working for others, either -- viz. @Fuseteam & @advocatux.

Terminal app should support lifecycle exception

Terminal app should support prevention of app_suspensions or similar.

It would be helpful if there was a setting for the terminal app which allows the user to start a process in the shell and have it continue running even if the user locks the phone. There are lots of cases when one wants to start a process and just let it run until you select to terminate it yourself.

I suggest making a new setting for this. It should be clear to the user that this has an impact on battery life.

terminal-app does not have a maintainer

No one is currently maintaining this app. If you would like to become the maintainer, please reply to this issue or get a hold of us via another method.

The app maintainers will be responsible for coordinating the following (doing it yourself is still coordinating, if you prefer that):

  • Triaging bugs
  • Fixing bugs
  • Vetting and implementing enhancement requests
  • Corresponding with the UBports project regarding the app's progress
  • Requesting bounties be posted for the app
  • Creating one of the most beloved applications on the platform

Cannot open the settings

Steps to reproduce

  1. Open app
  2. try to open the settings - little cog wheel at the top right

Expected result

Settings open

Current result

Nothing happens - seems not to react to touch

General information

[ Let us know more about your device. ]

  • OS version: 16.04
  • Channel: dev channel
  • Device: Nexus 7 (deb)
  • App version: dpkg --list | grep term : 0.8.2ubports+0~xenial201802222211015.2~1

Logfiles and additional informations

application-legacy-ubuntu-terminal-app-1528049233955354.log

App crashes in selection mode with press & hold

Crashes confirmed on two devices:

  • N5 devel: 2019-02-11.
  • OPO rc: 2019-W06.

Not 100% reproducible but do these steps a few times and it will crash:

  1. Press & hold until context menu is displayed.
  2. Hit Select.
  3. Make an arbitrary selection area, doesn't have to involve any text.
  4. Press & hold on the selection area.
  5. Crash occurs upon releasing the selection area.

Here's a GIF showing the crash occurring on the OPO after the second attempt:

out

keyboard bar stays hidden after disconnecting bluetooth keyboard

  • Device: FP2, bluetooth keyboard
  • UT channel: 16.04 rc
  • UT build: 2018-W29
  • terminal-app version: 0.9.0

Steps to reproduce

  1. start terminal-app and enter passcode
  2. connect to bluetooth keyboard; on-screen-keyboard as well as terminal-app keyboard bar disappear
  3. disconnect bluetooth keyboard by deactivating phone or keyboard bluetooth
  4. press keyboard button

Expected behavior

  • on-screen-keyboard appears
  • terminal-app keyboard bar appears

Actual behavior

  • on-screen-keyboard appears
  • terminal-app keyboard bar does not reappear and stays unusable

Additional Information

  • after restarting the terminal-app keyboard bar is available again

build failure ubuntu 16.04 / clickable 4.1.0

ubuntu 16.04 / clickable 4.1.0
so i just followed the build instructions from git. installed clickable ok, cloned git and then launched "clickable --desktop"

but i get this error

-- The C compiler identification is GNU 4.9.2
-- The CXX compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found Gettext: /usr/bin/msgmerge (found version "0.19.2") 
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.28") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pixel/terminal-app/build
Scanning dependencies of target com.ubuntu.terminal.desktop
Scanning dependencies of target pofiles_16
Scanning dependencies of target com.ubuntu.terminal.pot
Scanning dependencies of target pofiles_11
Scanning dependencies of target pofiles_35
Scanning dependencies of target com_ubuntu_terminal_CLICKFiles
Scanning dependencies of target pofiles_12
Scanning dependencies of target pofiles_15
Scanning dependencies of target pofiles_32
Scanning dependencies of target pofiles_18
Scanning dependencies of target pofiles_2
Scanning dependencies of target pofiles_37
Scanning dependencies of target pofiles_38
Scanning dependencies of target pofiles_34
Scanning dependencies of target pofiles_17
Scanning dependencies of target pofiles_51
Scanning dependencies of target pofiles_19
Scanning dependencies of target pofiles_5
Scanning dependencies of target pofiles_14
Scanning dependencies of target pofiles_4
Scanning dependencies of target pofiles_53
Scanning dependencies of target pofiles_52
Scanning dependencies of target PamAuthentication_automoc
Scanning dependencies of target pofiles_42
Scanning dependencies of target pofiles_20
Scanning dependencies of target pofiles_48
Scanning dependencies of target pofiles_39
Scanning dependencies of target pofiles_1
Scanning dependencies of target pofiles_30
Scanning dependencies of target pofiles_31
Scanning dependencies of target pofiles_33
Scanning dependencies of target pofiles_41
Scanning dependencies of target pofiles_43
Scanning dependencies of target qmltermwidget-qmldir
Scanning dependencies of target pofiles_23
Scanning dependencies of target pofiles_26
Scanning dependencies of target pofiles_45
Scanning dependencies of target pofiles_24
Scanning dependencies of target pofiles_6
Scanning dependencies of target pofiles_3
Scanning dependencies of target pofiles_7
[  1%] Scanning dependencies of target pofiles_49
Scanning dependencies of target pofiles_27
Scanning dependencies of target pofiles_47
Scanning dependencies of target qmltermwidget_automoc
Scanning dependencies of target pofiles_50
[  2%] Scanning dependencies of target pofiles_28
Scanning dependencies of target terminal_automoc
Scanning dependencies of target pofiles_29
Scanning dependencies of target pofiles_13
Scanning dependencies of target pofiles_22
[  3%] Scanning dependencies of target pofiles_36
Scanning dependencies of target terminal-qmlfiles
Scanning dependencies of target pofiles_25
Scanning dependencies of target pofiles_21
Scanning dependencies of target pofiles_40
Scanning dependencies of target qmltermwidget-layouts-schemes
Scanning dependencies of target pofiles_10
src/plugin/qmltermwidget/CMakeFiles/qmltermwidget-layouts-schemes.dir/build.make:49: recipe for target 'src/plugin/qmltermwidget/CMakeFiles/qmltermwidget-layouts-schemes' failed
CMakeFiles/Makefile2:2384: recipe for target 'src/plugin/qmltermwidget/CMakeFiles/qmltermwidget-layouts-schemes.dir/all' failed
cp: cannot overwrite non-directory '/home/pixel/terminal-app/build/src/plugin/qmltermwidget/../QMLTermWidget' with directory '/home/pixel/terminal-app/src/plugin/qmltermwidget/lib/color-schemes'
make[2]: *** [src/plugin/qmltermwidget/CMakeFiles/qmltermwidget-layouts-schemes] Error 1
make[1]: *** [src/plugin/qmltermwidget/CMakeFiles/qmltermwidget-layouts-schemes.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[  4%] [  6%] [  6%] Scanning dependencies of target pofiles_8
Scanning dependencies of target pofiles_44
Scanning dependencies of target pofiles_9
Scanning dependencies of target pofiles_46
[ 12%] [ 12%] [ 12%] [ 12%] [ 12%] Scanning dependencies of target pofiles_54
[ 13%] [ 14%] [ 15%] [ 17%] [ 20%] [ 21%] [ 23%] [ 24%] [ 25%] [ 25%] [ 16%] [ 21%] [ 22%] [ 26%] [ 28%] [ 29%] Built target qmltermwidget-qmldir
[ 30%] [ 31%] [ 33%] [ 33%] [ 34%] [ 35%] [ 37%] [ 38%] [ 39%] [ 46%] [ 46%] [ 41%] [ 43%] [ 46%] [ 46%] [ 40%] [ 46%] [ 47%] Generating translation template...
[ 48%] [ 49%] [ 50%] Built target terminal-qmlfiles
Generating id.gmo
Merging translations into com.ubuntu.terminal.desktop...
[ 52%] [ 52%] Generating pa.gmo
[ 53%] [ 55%] [ 56%] Built target com_ubuntu_terminal_CLICKFiles
[ 57%] Generating ru.gmo
Generating cs.gmo
[ 58%] Generating ast.gmo
Generating sq.gmo
Generating en_GB.gmo
Generating lv.gmo
Generating bs.gmo
Generating ja.gmo
Generating sk.gmo
Generating it.gmo
Generating eo.gmo
Generating ml.gmo
Generating sv.gmo
Generating el.gmo
[ 59%] Generating be.gmo
Generating ro.gmo
Generating hr.gmo
Generating tr.gmo
Generating zh_TW.gmo
Generating nb.gmo
Generating az.gmo
Generating fo.gmo
[ 60%] Generating de.gmo
[ 61%] Generating my.gmo
[ 61%] Generating am.gmo
[ 64%] [ 64%] Generating ug.gmo
[ 65%] Automatic moc for target PamAuthentication
Generating zh_CN.gmo
Generating sc.gmo
Generating fa.gmo
Generating br.gmo
Built target pofiles_18
Wrote com.ubuntu.terminal.desktop.in.in.h
Generating pl.gmo
Generating eu.gmo
Generating hu.gmo
Generating fr.gmo
Generating uk.gmo
Generating ca.gmo
Generating gd.gmo
[ 65%] [ 65%] Generating nl.gmo
[ 66%] Built target pofiles_12
Built target pofiles_32
Generating sr.gmo
[ 66%] [ 66%] Automatic moc for target qmltermwidget
Generating es.gmo
Generating ta.gmo
[ 66%] Generating ar.gmo
[ 66%] Automatic moc for target terminal
Built target pofiles_1
Built target pofiles_3
Generating km.gmo
Built target pofiles_23
Built target pofiles_34
Merging translations into com.ubuntu.terminal.desktop.
../src/app/qml/KeyboardRows/KeyboardLayout.qml:60: warning: unterminated string literal
../src/app/qml/KeyboardRows/KeyboardLayout.qml:65: warning: unterminated string literal
../src/app/qml/KeyboardRows/KeyboardLayout.qml:67: warning: unterminated string literal
Generating fi.gmo
Generating pt.gmo
[ 66%] [ 66%] [ 66%] [ 66%] Generating en_AU.gmo
[ 66%] [ 66%] [ 66%] [ 66%] Built target pofiles_27
Built target pofiles_48
[ 66%] Built target pofiles_42
Built target pofiles_51
Built target pofiles_14
Built target pofiles_29
Built target pofiles_33
Built target pofiles_16
Built target pofiles_11
[ 66%] Built target pofiles_10
[ 66%] Generating da.gmo
[ 66%] [ 66%] Generating gl.gmo
[ 66%] [ 66%] [ 66%] Built target pofiles_13
Built target pofiles_15
Built target pofiles_37
Built target pofiles_17
Built target pofiles_41
Built target pofiles_6
[ 66%] [ 66%] [ 66%] Generating pt_BR.gmo
[ 66%] [ 66%] [ 66%] Generating sl.gmo
Generating cy.gmo
Generating he.gmo
Built target pofiles_5
[ 66%] [ 66%] [ 66%] [ 66%] [ 66%] Built target pofiles_25
[ 66%] [ 66%] [ 66%] Built target pofiles_40
[ 66%] Built target pofiles_45
[ 66%] [ 66%] [ 66%] Built target pofiles_35
[ 66%] [ 66%] Built target pofiles_24
[ 66%] [ 66%] Built target pofiles_2
[ 66%] Built target pofiles_31
Built target pofiles_20
Built target pofiles_47
[ 66%] [ 66%] Built target pofiles_50
Built target pofiles_53
[ 66%] Built target pofiles_19
Built target pofiles_39
[ 66%] Built target pofiles_54
[ 66%] Built target pofiles_38
Built target pofiles_9
[ 66%] Built target pofiles_4
Built target pofiles_28
Built target pofiles_46
Built target pofiles_43
Built target pofiles_7
Built target pofiles_26
Built target pofiles_21
Built target com.ubuntu.terminal.desktop
Built target pofiles_49
Built target pofiles_22
Built target pofiles_30
[ 66%] [ 66%] [ 66%] Built target pofiles_52
Built target pofiles_8
Built target pofiles_36
Built target com.ubuntu.terminal.pot
[ 66%] Built target pofiles_44
Generating moc_fileio.cpp
[ 66%] Built target terminal_automoc
Generating moc_pamauthentication.cpp
Generating moc_pamauthentication_plugin.cpp
[ 66%] Built target PamAuthentication_automoc
Generating moc_Emulation.cpp
Generating moc_Filter.cpp
Generating moc_HistorySearch.cpp
Generating moc_Pty.cpp
Generating moc_ScreenWindow.cpp
Generating moc_Session.cpp
Generating moc_TerminalDisplay.cpp
/home/pixel/terminal-app/src/plugin/qmltermwidget/lib/TerminalDisplay.h:89: Warning: Property declaration colorScheme has no READ accessor function or associated MEMBER variable. The property will be invalid.
/home/pixel/terminal-app/src/plugin/qmltermwidget/lib/TerminalDisplay.h:91: Warning: Property declaration lineSpacing has no READ accessor function or associated MEMBER variable. The property will be invalid.
/home/pixel/terminal-app/src/plugin/qmltermwidget/lib/TerminalDisplay.h:99: Warning: Property declaration enableBold has no READ accessor function or associated MEMBER variable. The property will be invalid.
Generating moc_Vt102Emulation.cpp
Generating moc_kprocess.cpp
Generating moc_kptydevice.cpp
Generating moc_kptyprocess.cpp
Generating moc_ksession.cpp
/home/pixel/terminal-app/src/plugin/qmltermwidget/src/ksession.h:40: Warning: Property declaration shellProgram has no READ accessor function or associated MEMBER variable. The property will be invalid.
Generating moc_qmltermwidget_plugin.cpp
[ 66%] Built target qmltermwidget_automoc
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
Command '['docker', 'run', '-v', '/home/pixel/terminal-app:/home/pixel/terminal-app', '-w', '/home/pixel/terminal-app/build', '-u', '1000', '--rm', '-i', 'clickable/ubuntu-sdk:15.04-amd64-1d181d43-e6e1-412a-89de-344bbc3b177c', 'bash', '-c', 'make -j']' returned non-zero exit status 2

Window size issues in windowed mode

Description

When in windowed mode, the window size does not follow the stored size.
Upon initial opening, the window size defaults to a certain size.
Also, when opening the settings page, the window size changes again to this certain size.

Transparency does not work

Device: Nexus 4(devel), Nexus 5(RC)
OS: 16.04

When the background transparency is set in the settings, the background is black.
It works when I switch between applications.

Custom layouts should override preinstalled layouts

While testing ideas related to #61, I found that layouts defined under ~/.config/com.ubuntu.terminal/Layouts/ are always appended to the preinstalled layouts, even if identical. Ideally, layouts placed under this location should override preinstalled layouts, in case a user would like to customise/extend an existing layout for their own use.

Cursor scrolling only goes left

Device: Hammerhead
Channel: 16.04/devel
Build: 2018-12-22/2

Steps to reproduce:

  1. Open terminal
  2. Swipe up to retrieve old command
  3. Hold space bar
  4. Slide left on space bar to move cursor
  5. Slide right on space bar

Expected:

  • Cursor should slide left and right with slide movement

Actual:

  • Cursor moves left but unable to move the cursor to the right

Scroll the screen

A good idea would be the ability to scroll the screen. There is a possibility?

Build Failure on Debian 9

All dependencies seem satisfied and so running debuild ought to work no?

Build log is here

It is pulled from the git repo.

keys on keyboard bar with meta / alt modifier not working

  • Device: FP2
  • UT channel: 16.04 rc
  • UT build: 2018-W29
  • terminal-app version: 0.9.0

Background

Using the last version of ubuntu touch by canonical I created and used some custom keyboard bar layouts. Recently I transferred those layouts to ubuntu touch by ubports and noticed that my keys with meta or alt modifier are not received anymore.

Steps to reproduce

For demonstration we will use the preinstalled showkey that will print the codes for pressed keys as well as a test layout.

Setup

  1. create user layout directory if it does not already exist
    mkdir -p ~/.config/ubuntu-terminal-app/Layouts
  2. copy test layout to layout directory
    cp 'test layout.txt' '~/.config/ubuntu-terminal-app/Layouts/test layout.json'

Procedure

  1. (re)start terminal-app and enter passcode
  2. choose test layout for the keyboard bar
  3. run sudo showkey -a
  4. press x on the on-screen keyboard
  5. press x on the keyboard bar
  6. press C-x on the keyboard bar for CTRL+X
  7. press M-x on the keyboard bar for ALT+X
  8. press C-d on the keyboard bar for CTRL+D

Expected behavior

on 4. showkey creates output for the key that was pressed
on 5. showkey creates output for the key that was pressed
on 6. showkey creates output for the key that was pressed
on 7. showkey creates output for the key that was pressed
on 8. showkey creates output for the key that was pressed and stops

So the output should look similar to this what I created using a bluetooth keyboard:

Actual behavior

on 4. showkey creates output for the key that was pressed
on 5. nothing happens
on 6. showkey creates output for the key that was pressed
on 7. nothing happens
on 8. showkey creates output for the key that was pressed and stops

So actually I get the following output:

Additional information and logs

log_terminal-app.txt

strange scrolling behavior when toggling on-screen-keyboard visibility

  • Device: FP2, bluetooth keyboard
  • UT channel: 16.04 rc
  • UT build: 2018-W29
  • terminal-app version: 0.9.0

Steps to reproduce

  1. start terminal-app and enter passcode
  2. execute some commands that create a lot of output e.g., nano -h to fill the screen
  3. make on-screen-keyboard disappear by swiping it down or switching to another app
  4. make on-screen-keyboard appear again by taping the keyboard button
  5. start writing a new command
  6. press backspace

Expected behavior

  • on 3. command line sticks to lower border of available screen
  • on 4. command line sticks to lower border of available screen
  • on 5. the written symbols appear in the visible command line
  • on 6. the last symbol disappears in the visible command line

Actual behavior

  • the beginning is normal

  • on 3. command line stays in its position creating empty screen space underneath
  • on 4. command line jumps a few lines down ending up invisible behind the on-screen-keyboard
  • on 5. the screen stays in this position; the command is written without being visible
  • on 6. the command line jumps back over the lower border of the screen

Problem

  • scrolling without the user's intention and command line hiding is unpredictable behavior that hinders working with the terminal-app

Additional observations

  • taking a screenshot after 4. makes the command line appear already on 5.
  • after 3. the current position marker is empty

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.