Skip to content

@agnostic-apollo agnostic-apollo released this Jun 10, 2021

0.114 - 2021-06-11

Changelog

Added

  • Allow users to adjust terminal transcript rows with termux.properties. The terminal-transcript-rows key can be used to adjust the terminal transcript rows. The user can set an integer value between 100 and 50000. The default value is still 2000. So adding an entry like terminal-transcript-rows=10000 to termux.properties file will allow users to scroll back ~10000 lines of command output. After updating the value, termux must be restarted. You can also run termux-reload-settings command so that termux loads the updated value, but only new sessions will use the updated value, existing sessions will not be affected. Be advised that using large values may have a performance impact depending on your device capabilities, so use at your own risk. Closes #2071. (0b4bbaf)

  • Allow users to set terminal cursor style with termux.properties. The terminal-cursor-style key can be used to set the terminal cursor style. The user can set a string value to block for , underline for _ or bar for | cursor style. The default value is still block. So adding an entry like terminal-cursor-style=bar to termux.properties file will allow users to change to the bar cursor style. After updating the value, termux must be restarted. You can also run termux-reload-settings command so that termux loads the updated value, but only new sessions will use the updated value, existing sessions will not be affected unless you Reset them from terminal's long hold options menu More -> Reset or restart termux activity after double back press to exit. Closes #2075. (f545ebf)

  • Allow users to disable terminal session change toast. The user can add disable-terminal-session-change-toast=true entry to termux.properties file to disable terminal session change toast. The default value is false. Running termux-reload-settings command will also update the behaviour instantaneously if changed. Closes #2118. (7ac62c9)

  • Updated bootstrap to 2021.06.04-r1. (7620800)

Changed

  • Change default extra keys style. If a user does not define a custom value in termux.properties file, then by default 2 rows will be shown with all arrow keys (up/down/left/right) for ease of terminal use. (fd80cda)

Fixed

  • Do not close soft keyboard when toolbar text input view is focused on. Fixes #2077. (e08e3b5)

  • Fix issue where soft keyboard would not show in some cases. Fixes #2111, Fixes #2112. (1ad038e)

  • Fix issue where soft keyboard overlaps extra keys or terminal in some cases. Check TermuxActivityRootView javadocs for the details. This affected people who had set enforce-char-based-input=true in termux.properties and Gboard clipboard suggestions covered part of extra keys/terminal, but only when text is copied and clipboard suggestions and number keys row toggles are enabled in its settings. Reports have been received for other keyboards as well, like for SwiftKey number key rows overlapping, but hopefully it should be fixed now. If not, then report it. Related #538 and #1539. (e7dd0ee)

  • Remove hardcoded wiki.termux.com url from HelpActivity. (7ef9255)

  • Fix issue where terminal cursor blinking would not automatically start again if termux activity was restarted after exiting it with double back press. (e119d34)

  • Fix issue where if termux installer failed with an exception after prefix directory was already created, then try again would load a broken environment. (19c690d)

Debug Build APK. Check Installation for more info on debug builds.

12 people reacted
Assets 2

@agnostic-apollo agnostic-apollo released this May 16, 2021

0.113 - 2021-05-16

Changelog

Added

  • Allow users to enable/disable keyboard instead of just show/hide with KEYBOARD toggle buttons. This soft-keyboard-toggle-behaviour key can be used to change the behaviour. The default behaviour is show/hide. The user can add a line soft-keyboard-toggle-behaviour=enable/disable in ~/termux.properties file to change default behaviour of keyboard toggle buttons to enable/disable. In this mode, tapping the keyboard toggle button will disable (and hide) the keyboard and tapping on the terminal view will not open the keybaord automatically, until the keyboard toggle button is pressed again manually. This applies to split screen and floating keyboard as well. The keyboard can also be enabled from Termux Settings -> Termux -> Terminal I/O -> Soft Keyboard Enabled toggle. Running termux-reload-settings command will also update the behaviour instantaneously if changed. Also fixes #1098. (e4e638b)
  • Allow users to disable soft keyboard automatically if hardware keyboard is connected. Users can enable this behaviour by enabling the Termux Settings -> Termux -> Terminal I/O -> Soft Keyboard Only If No Hardware toggle. (90c9a7b)
  • Allow users to enable terminal cursor blinking with termux.properties. This terminal-cursor-blink-rate key can be used to enable terminal cursor blinking. The user can set an int value between 100 and 2000 which will be used as blink rate in millisecond. The default value is 0, which disables cursor blinking. So adding an entry like terminal-cursor-blink-rate=600 to ~/termux.properties file will make the cursor attempt to blink every 600ms. Running termux-reload-settings command will also update the cursor blinking rate instantaneously if changed.
    This will have a performance impact, so use wisely and at your own risk. Note that you can also change the cursor color by adding cursor property to ~/colors.properties file, like cursor=#FFFFFF for a white cursor. Closes #153. (31298b8, 89a1e02)
  • Add in-app Donation link in Termux Settings for non google playstore releases. We require donations due to bintray shutdown to pay for termux apt repository hosting costs. Related issue termux-packages#6348. (6de3713)
  • Moved Termux app settings into dedicated "directory" in Termux Settings and added About page to show info of all termux apps installed and important links. (d42514d)
  • Added support for showing APK release type in App Info reports and About page. (1e30022)
  • Add support for setting Termux:Tasker log level from Termux Settings. (339b2a2)
  • All invalid values stored in termux.properties file during load time will be logged. (f8ccbb4)
  • Updated bootstrap to 2021.05.16-r1. (6524a61)

Fixed

  • Disable error flashes when clearing TMPDIR directory on termux app exit. (b268b6e)
  • Fixed NullPointerException on com.termux.app.TermuxService.wantsToStop(). Fixes #2026. (42ad372)
  • Attempt to fix issues where soft keyboard was not shown in some cases when hardware keyboard was attached. The extra keys and drawer KEYBOARD toggle button and ctrl+alt+k hardware keyboard shortcut will all behave the same now and may help in showing soft keyboard forcefully. Related issues #1995. (Requires testers). (4d1851e, 39c69db)
  • Release terminal beep SoundPool resources on activity stop to attempt to prevent exception. (58d5770)
  • Generate potentially long running reports in background threads instead of main UI thread. (2f82825)

Debug Build APK. Check Installation for more info on debug builds.

2 people reacted
Assets 2

@agnostic-apollo agnostic-apollo released this Apr 22, 2021

0.112 - 2021-04-22

Fixed

  • Reverted the versioning logic change done in a6ae656 since that caused F-Droid bot and Github Packages to fail to pick up new releases. The versions must be bumped directly in build.gradle file in future and not through other files like gradle.properties. Thanks to @jspricke for notifying us. (0aa5a12)

Debug Build APK. Check Installation for more info on debug builds.

1 person reacted
Assets 2

@agnostic-apollo agnostic-apollo released this Apr 21, 2021

0.111 - 2021-04-21 (RE-RELEASED)

Changed

  • Bumped gradle wrapper to 7.0. (1d06ff9)

Fixed

  • Fixed termux-reset not working properly since v0.109. (d6eb5e3)
  • Fixed cases where bootstrap was not reinstalled even if PREFIX was broken, i.e if it was empty or only contained the tmp directory. (107927f, b34f60b)

Debug Build APK. Check Installation for more info on debug builds.

Assets 2

@agnostic-apollo agnostic-apollo released this Apr 15, 2021

0.110 - 2021-04-15

Added

  • Add support to include source jar files for libraries published by termux so that developers that import the libraries can see javadocs and comments. (3306c3c)

Fixed

  • Fix Termux Settings crash for release builds. Fixes #2005 (cde0bd2)
Assets 2
  • v0.109
  • 354fe19
  • Compare
    Choose a tag to compare
    Search for a tag
  • v0.109
  • 354fe19
  • Compare
    Choose a tag to compare
    Search for a tag

@xeffyr xeffyr released this Apr 13, 2021

Change Log:

  • Updated bootstrap archives.
  • Lots of fixes and improvements (see expandable list below).
Full change log

Added

  • Added SettingsActivity (Termux Settings) which can be accessed by Long pressing terminal view -> More -> Settings. This will allow GUI based management of settings in future, like keyboard key mapping, etc. Currently supports controlling log level, plugin errors and softkeyboard state. (d39972b)

  • Add SettingsActivity to launcher shortcuts. (2b3f681, 325a6f7)

  • Added ReportActivity and ReportInfo to be used as base for showing reports to users. Currently supports plugin errors, app crashes and issue reports. (9d36e9a)

  • Added centralized Logging framework to the entire app and terminal-view and terminal-emulator libraries which has 4 levels, Off, Normal (default), Debug, Verbose which can be used by users via logcat to debug problems. Users can set the log level from Termux Settings -> Debugging -> Log Level. Terminal view key logging can now also be enabled with the Terminal View Key Logging toggle without having to recompile the app. Support for writing to files in addition to writing to logcat will/can be added in future. (d39972b)

  • Added logging for termux bootstrap package installation and setup of storage symlinks. (92b804d).

  • Requested android.permission.DUMP permission so that users can use dumsys commands without root after running adb shell pm grant com.termux android.permission.DUMP. (356a442)

  • Requested android.permission.REQUEST_INSTALL_PACKAGES permission to allow users to access Android/obb on android 11 after explicitly granting Termux the permission by going to Termux App Info in Android Settings -> Advance -> Install unknown apps. (93a5bf8)

  • Added support to warn users if Draw over other apps permission is missing when attempting to start Termux foreground session from the background with plugin commands, like for RUN_COMMAND intent. Check android background restrictions for more info. Now, the Termux foreground session will not even be attempted to be started if permission is missing since it would fail randomly otherwise and users would report bugs for it. (d3ddb21)

  • Added hide-soft-keyboard-on-startup termux.properties property which when set to true will automatically hide the soft keyboard on Termux startup to solve issues for when users use hardware keyboard and soft keyboard wastes screen space. Fixes #1978. (1ef8eb9)

  • Added support for disabling soft keyboard completely for when users use hardware keyboard. Users can toggle the state from Termux Settings -> Keyboard I/O -> Soft Keyboard toggle. (2a8d5e2)

  • Added support for adjusting termux toolbar height with terminal-toolbar-height termux.properties property. The user can set a float value between 0.4 and 3.0 which will be used as the scaling factor for the default height. The default scaling factor is 1. So adding an entry like terminal-toolbar-height=2.0 to termux.properties file will make the toolbar height twice its original height. Fixes #1857. (ff0440d)

  • Added executable and working directory validation for RUN_COMMAND intent. The working directory will also also be created if its under TermuxConstants.TERMUX_FILES_DIR_PATH. (b4995ef)

  • Added support for session actions for foreground session commands received via RUN_COMMAND intent or termux-tasker. (ec7568d)

  • Added support for sending back background and foreground command results for RUN_COMMAND intent and foreground command results for Termux:Tasker. Check RUN_COMMAND Intent Wiki for more info. (a2209dd)

  • Added support to notify users of errors via flashes and notifications for plugin commands, like for allow-external-apps not set to true when RUN_COMMAND intent is received. Clicking the notification will open the ReportActivity to show the report. The flashes and notifications can be controlled with the Termux Settings -> Debugging -> Plugin Error Notifications toggle. (8612a1d, 31371b5)

  • Added support for stdin for background RUN_COMMAND intent, TERMUX_SERVICE.ACTION_SERVICE_EXECUTE and Termux:Tasker (will require update) commands. This will allow users to pass (bash, python, etc) scripts or other data via stdin to the executable. Arguments would still be passed to the executable and not the script. (192b208, f1034c2)

  • Added crash reporting so that whenever the Termux app crashes, the crash report (stacktrace, app and device info) will be logged to ~/crash_log.md file in markdown format. When the user will reopen the app, a notification will be shown which when clicked will show the crash report content in ReportActivity. The activity will have important links like email (termuxreports@groups.io), reddit, github issues of termux app and packages at which the user can optionally report an issue if necessary after copying the crash report text. The ~/crash_log.md file will be moved to ~/crash_log-backup.md so that a notification is not shown again on next startup and can be viewed again via SAF, etc. The notifications can be controlled with the Termux Settings -> Debugging -> Crash Report Notifications toggle. (69e4b57, cf5bb69)

  • Added support to allow users to report an issue based on terminal transcript with Long pressing terminal view -> More -> Report Issue. Selecting the option will open the ReportActivity with the terminal transcript, app device and APT info with important links like email (termuxreports@groups.io), reddit, github issues of termux app and packages at which the user can optionally report an issue after copying the report text. The report text will be in markdown format so that it is more readable and will take a few seconds to generate. (939338a, df4d8ac, 6293f5f)

  • Added termux-shared library. This defines shared constants and utils of Termux app and its plugins. This allows for removal of all hardcoded paths in Termux app. The termux plugins should use this in future as well. (682ce08)

  • Added TermuxConstants class to store all shared constants of Termux app and its plugins. This also has info on what changes need to be made if forking Termux app and changing its package name. (14c4986, 0225a8b)

  • Added TermuxPropertyConstants class that defines shared constants of SharedProperties used by Termux app and its plugins. Also added TermuxSharedProperties class that acts as manager for handling termux properties. (7b4acb5)

  • Added TermuxPreferenceConstants class that defines shared constants of the SharedPreferences used by Termux app and its plugins. Also added TermuxSharedPreferences class that acts as manager for handling termux preferences. (93b506a, 9e82561)

  • Added SharedProperties class which is an implementation similar to android's SharedPreferences interface for reading from .properties files which also maintains an in-memory cache for the key/value pairs. Write support is currently not there since .properties files also have comments and escapes, so in-place editing would be required to update values. For this apron library could be looked into. (7b4acb5)

  • Added ExecutionCommand to stores all data related to an execution command. This allows easier management and passing of execution command data between classes and management of it, like post processing and failure management. (bccc35b, 31371b5, 1b5e5b5)

  • Added ShellUtils to provide utilities for shell related stuff, since they don't belong in BackgroundJob which has been removed. (dff2794, 249f7c6, 8598b92)

  • Added the TermuxSession class for linking a TerminalSession to an ExecutionCommand and to maintain info for foreground Termux sessions. (78a99fd, 0cd7cb8)

  • Added the TermuxTask class for linking a Process to an ExecutionCommand and to maintain info for background Termux tasks. It also supports synchronous command execution as well to run shell commands and scripts from anywhere for internal use by termux app and its plugins. (f62febb, 0cd7cb8)

  • Added StreamGobbler class which has been imported from libsuperuser and partially modified to read stdout and stderr of background commands. (f62febb)

  • Added interface methods to TerminalViewClient in terminal-view library so that it becomes agnostic of termux.properties files. (10d6eaa)

  • Added MarkdownUtitls to provide utilities for markdown support in the app, like for error and crash reports. It uses the commonmark-spec via the markwon library. (131f481)

  • Added ShareUtils to provide utilities for sharing data from termux apps. It will also try to prevent android.os.TransactionTooLargeException exceptions when sharing large data. (c28990a)

  • Added TermuxUtils to provide utilities for termux app specific operations, like getting termux app info, device info, report info, Context object of each termux plugin app, etc. (c9e18e5, 3491956, 69e4b57, 15eb56d)

  • Added NotificationUtils to provide utilities to build and manage notifications. (20d20f4)

  • Added PackageUtils to provide utilities to get various package related info. This will be used to get info based on app Context objects instead of using BuildConfig which wouldn't have been available across termux plugins. (15eb56d)

  • Added FileUtils to provide utilities to safely manage files. Also added support to get detailed UNIX file attributes by porting classes from android's libcore/ojluni. (d4fc34c)

Changed

  • Refactored TermuxActivity. Dedicated classes and functions have been created for various actions and commands. (c9e18e5)

  • The dedicated TerminalToolbarViewPager class has been created to handle the now called toolbar that shows on the bottom of the terminal view. (c9e18e5)

  • The dedicated TermuxSessionsListViewController class has been created to handle view related functionality of the termux sessions list shown in the left drawer. (c9e18e5)

  • The dedicated TermuxTerminalSessionClient class has been created to handle TerminalSession class TerminalSessionClient interface (previously SessionChangedCallback). (c9e18e5, 824b3e6)

  • Refactored TermuxService. Dedicated classes and functions have been created for various actions and commands. (d9b5344)

  • Refactored terminal-view. Dedicated classes and functions have been created for various actions and commands. (ada5087)

  • The dedicated CursorController, TextSelectionCursorController(previously SelectionModifierCursorController) and TextSelectionHandleView (previously HandleView) classes have been created to handle text selection and have been moved from TerminalView. (ada5087)

  • Get TERMUX_VERSION while building shell environment via Termux package context instead of BuildConfig so that termux plugin apps can use it too. (d4653d0)

  • Use FileUtils for bootstrap and shared storage symlinks setup. (b2cd20c)

  • Use FileUtils for clearing TMPDIR and move clearing function to ShellUtils from TermuxService. (8598b92)

  • Disable obfuscation of termux-app in release builds without disabling optimizations and shrinking to allow stacktraces to have full class and method names when a crash report is generated. (067709b)

  • Changed compileSdkVersion (NOT targetSdkVersion) to 29 so that newer APIs can be used. (8e80e88)

  • Moved activities and fragments to respective packages. (b856e16)

  • Fixed xml files naming convention. (c9e18e5, 4eced52)

  • Fixed string resources naming convention. (eeb8554)

Fixed

  • Fixed Duplicate finish request for ActivityRecord errors. (f50d15d)

  • Fixed executable and working directory path expansion in RunCommandService where it was not expanding path if exactly $PREFIX is passed and was adding extra trailing slashes in some cases. (80858ba)

  • Fixed the issue when cwd is empty and is passed to Runtime.getRuntime().exec(progArray, env, new File(cwd));, it raises the No such file or directory exceptions when targeting sdk 29. (85b2c44)

  • Fixed non-crashing NoClassDefFoundError exceptions for TermuxActivity. (9fd2cf9)

  • Fixed few potential null pointer exceptions (and probably added a few more). (dbf8477)

  • Fix old issue where termux app would crash if sessions list ListView was not notified of new sessions. (ae260fa)

  • Fixed issue which caused the java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. exception to be thrown when long pressing the down key while simultaneously long pressing the terminal view for text selection and crashed the app. Fixes #1501. (ada5087)

  • Fixed issue to restore keyboard input into terminal view when toggling extra-keys slider input with VOL_UP+q. Fixes #1420. (395759c)

  • Fixed TermuxActivityBroadcastReceiver wrongly designed intent actions and extras. (e5c5174)

  • Fixed potential crashes of TermuxService due to startForeground() and stopForeground() not being called in all the right places. (d9b5344)

  • Fixed performance degradation of background commands since logging of every line separately was enabled. They will now only be logged if log level is set to verbose. This will also prevent potentially private user data from being sent to logcat by default. (f62febb)

  • Fixed issue where TermuxService was stopped and Termux notification canceled if background tasks were still running but all sessions had been closed. (f888f35)

  • Fixed issue where Termux:Tasker would hang indefinitely when the command was executed with Runtime.getRuntime().exec() and it raised an exception, like for invalid or missing interpreter errors and Termux:Tasker was not notified of it. Now the errmsg will be used to send any exceptions back to Termux:Tasker and other 3rd party calls. (f62febb)

  • Fixed issue where stdout or stderr were too large in size and the TransactionTooLargeException exception was raised and result of background commands was not sent back to the caller. This previously only applied to Termux:Tasker which would hang indefinitely. Now stdout and stderr will be truncated from the start to max 100KB combined. The original size of stdout and stderr will now also be sent to the caller so that they can check if either of them were truncated, these additional variables need to be implemented in Termux:Tasker but will be available for the now supported RUN_COMMAND intent results. The errmsg will also be truncated from end to max 25KB to preserve start of stacktraces. (f62febb)

  • Fixed issue where Termux:Tasker would hang indefinitely for background commands when TermuxService was killed before the commands completed or before they even started because TermuxService was about to be killed since Termux:Tasker was not notified of it. Now, TermuxService will kill all background commands started by plugins for which the result is expect back via a pending intent before it is destroyed and notify Termux:Tasker. For commands that have not even started, Termux:Tasker will be notified that they have been canceled. This previously only applied to Termux:Tasker and not RUN_COMMAND intent, but now will apply to the later as well if result is expected back. Note that there may still be cases where TermuxService is killed without even having the chance to notify the command sender, in which case reasonable timeout values should be used, like the one available for Tasker actions. (0cd7cb8)

Deprecated

  • TERMUX_ACTIVITY.EXTRA_RELOAD_STYLE (com.termux.app.reload_style) which was previously used for requesting storage permissions if its value equaled storage has been deprecated. (e5c5174)
Assets 2

@xeffyr xeffyr released this Feb 19, 2021

Special release to fix F-Droid build issue as new build configuration (split apks) is not supported by F-Droid in way how it was introduced. Now it is reverted back to all-in-one architecture apk. Otherwise, changelog is same as unreleased v0.107.

Assets 2
Pre-release
Pre-release

@xeffyr xeffyr released this Feb 3, 2021

Changes:

  • Implement numpad arrows/home/end/pgup/pgdn/ins/del when num lock is off.
  • Extra keys: handle multiple defined special buttons and in popup. Fix for #1881.
  • ~/.termux/termux.properties: add option fullscreen to toggle fullscreen mode. You may need to enable use-fullscreen-workaround on some devices to fix layout issues, though on some devices it still doesn't work properly. Consider fullscreen mode as unstable for now.
  • ~/.termux/termux.properties: add option default-working-directory which allows to open Termux in a specified directory instead of home.
  • Added back PNG icons in addition to current adaptive/vector icon. This should fix issues with launchers still not supporting adaptive icons.
  • Export current application version as environment variable TERMUX_VERSION.
  • Update bootstrap archives.

From this point Termux does split-apk builds. One APK per CPU architecture: for aarch64, arm, i686 and x86_64.

Assets 2
  • v0.106
  • 92570be
  • Compare
    Choose a tag to compare
    Search for a tag
  • v0.106
  • 92570be
  • Compare
    Choose a tag to compare
    Search for a tag

@xeffyr xeffyr released this Jan 17, 2021

This is actually fixed v0.105 release, so changes are same by comparing to v0.104:

  • Remove restrictions from file types viewable by ~/bin/termux-file-editor.
  • If Termux:Styling is not installed, suggest to install it from F-Droid instead of Play Store, when attempting to change terminal font/colors.
  • Add property ctrl-space-workaround to enable ctrl+space usable on hardware keyboard for some devices.
  • Updated bootstrap archives.
Assets 2
Pre-release

@xeffyr xeffyr released this Jan 6, 2021

  • Remove restrictions from file types viewable by ~/bin/termux-file-editor.
  • If Termux:Styling is not installed, suggest to install it from F-Droid instead of Play Store, when attempting to change terminal font/colors.
  • Add property ctrl-space-workaround to enable ctrl+space usable on hardware keyboard for some devices.
  • Updated bootstrap archives.

This release is broken, sorry. Use v0.104 instead!

Assets 2