Commit Graph

720 Commits

Author SHA1 Message Date
Leonid Pliushch e783f40670
allow user to keep Termux data when uninstalling the app 2021-02-12 15:49:42 +02:00
Leonid Pliushch abccf895e4
check for isExternalStorageManager() instead of MANAGE_EXTERNAL_STORAGE granted 2021-02-12 15:35:48 +02:00
Leonid Pliushch b428ece72d
fix termux-setup-storage for Android 11 2021-02-12 15:15:07 +02:00
Leonid Pliushch 3e21af7470
update ndk 2021-02-12 14:36:14 +02:00
Leonid Pliushch d4c90bd7aa
storage compatibility for Android 10 as well as for previous and future versions
On Android 11 we need MANAGE_EXTERNAL_STORAGE to access files without
restrictions on shared storage.

Android 10 we have to opt-out from scoped storage and use WRITE_EXTERNAL_STORAGE.
2021-02-12 14:30:13 +02:00
Leonid Pliushch f407c43eba
remove unnecessary intent 2021-01-23 11:11:24 +00:00
Leonid Pliushch c227fee5f7
add permission MANAGE_EXTERNAL_STORAGE 2021-01-23 11:01:09 +00:00
Leonid Pliushch 8ff49911a2
target sdk level 30 2021-01-23 10:43:25 +00:00
Prakhar Shukla 3497119c71
sync with https://github.com/termux/termux-app/pull/1782
* Changed the hardcoded cache directory to the android alternative (pointing to /data/user/0 which is a symlink to /data/data).
* Implemented the transparent activity mechanism for downloading multiple apps through the Play Store (which just works as if the intent was added to the back-stack)
* Now we check deliberately check for source (external for ext. repo and play-store for the Play Store).
* Fixed a few bugs.
2020-10-08 16:07:09 +03:00
Leonid Pliushch 0f078a7cf3
remove link to staging.termux-mirror.ml
staging.termux-mirror.ml will be down and shouldn't be used.
2020-09-26 23:48:11 +03:00
Leonid Pliushch 25c9be2cde
update pkg.sh 2020-09-07 19:26:36 +03:00
Prakhar Shukla 8d83a39a85
* Changed the download directory to /com.termux/cache/pkg/.
* Improved notification management.
* Implemented downloading from the Google Play Store.
2020-09-07 19:22:33 +03:00
Prakhar Shukla f6c3b6f38a
android 10 compatibility: APK-based package management (#1715)
A basic implementation of APK-based package management.
Can install/uninstall Termux packages or output a list of installed ones into Android log.
2020-08-21 23:21:58 +03:00
Leonid Pliushch 531c32f3c9
CI: do builds for android-10 branch 2020-08-16 22:56:55 +03:00
Leonid Pliushch db2f50c76e
extra keys: use TextUtils.join instead of String.join
String.join() is available only on Android API 26+ but our current
minimal is 24.

See https://github.com/termux/termux-app/issues/1670.
2020-08-14 15:08:32 +03:00
Leonid Pliushch 784affe39c
linter: fix wakelock log tag
See https://github.com/termux/termux-app/issues/1670.
2020-08-14 15:03:51 +03:00
Leonid Pliushch b486d29d23
fix RUN_COMMAND permission description
See https://github.com/termux/termux-app/issues/1713.
2020-08-14 14:50:34 +03:00
Fredrik Fornwall 332f1104a3 Update drawerlayout library 2020-08-09 00:07:35 +02:00
Leonid Pliushch 5a70be1523 terminal emulator: flush remaining process output data when terminating session 2020-08-08 02:22:47 +03:00
Leonid Pliushch 619552ec5c
version 0.98 (v0.97 is non-release, so updating from 0.96 to 0.98) 2020-08-07 15:39:44 +03:00
Leonid Pliushch 70580abd50
update bootstrap archives 2020-08-07 15:39:11 +03:00
Henrik Grimler f191c35851
Merge pull request #1693 from landfillbaby/patch-1
update WcWidth.java, add note about c version
2020-08-07 13:39:33 +02:00
lucy phipps bd7ed28981
update WcWidth.java, add note about c version 2020-08-07 07:38:06 +01:00
hannesa2 b68bd107c1
Gradle 6.5.1 (#1686) 2020-08-04 15:37:18 +03:00
hannesa2 5075273362
Android Studio 4.0.1 (#1687) 2020-08-04 15:36:41 +03:00
cn 04268f4c20
move sdk version configs to gradle.properties (#1685) 2020-08-04 15:36:14 +03:00
Leonid Pliushch 6f24628fd2
version 0.96 2020-07-30 23:56:27 +03:00
Leonid Pliushch debbe44809
update bootstrap archives 2020-07-30 23:47:26 +03:00
Agnostic Apollo b2ff0e4051 Changed static string "EXTRA_EXECUTE_IN_BACKGROUND" access to public 2020-07-30 21:39:41 +03:00
Agnostic Apollo 9e7029b76a Receive "RUN_COMMAND_ARGUMENTS" extra for "RUN_COMMAND_ACTION" intent
as a string array extra instead of a string extra since TermuxService expects it that way.

Added "RUN_COMMAND_BACKGROUND" boolean extra so that Termux session can be started in background
when running a command.

Updated usage docs.

Check #1029 for details.
2020-07-30 21:39:41 +03:00
Egor Zhdanov 51370799c7 update notification icon 2020-07-14 12:36:56 +03:00
Danny Lin 0910844896 Invert selected text instead of highlighting
Highlighting text in the terminal often makes it hard to read, which
can be problematic for users who want to adjust or review selections
before copying them. For example, the default theme makes white and
green text hard to read on its light gray selection background, and
there are plenty of other themes where the choice of text and cursor
colors would hinder selection readability.

To fix this issue and make selected text more legible in nearly all
combinations of colors, invert selected text instead of highlighting it.
This is more common among terminal emulators anyway:
    Invert:    xterm, fbcon, kitty, Konsole, Alacritty, Tilix,
               gnome-terminal (7)
    Highlight: Termux, Terminal.app, iTerm2, Windows Terminal (4)
2020-07-12 17:54:47 +03:00
Danny Lin f33ebf810f Fix selection rendering with alternate cursor styles
There is currently a bug where selection rendering is broken if the
active cursor shape is anything other than the default solid box.
Selected text is normally highlighted by effectively rendering a cursor
over all of the characters in the selection region, but if the cursor is
a bar, the resulting selection highlight is too narrow to cover the full
width of the selection. Similarly, if the cursor is an underline, all of
the selected text will be underlined instead of highlighted.

To fix this issue, treat selections different from cursors in the
rendering logic and force the renderer to always use the block cursor
style for rendering selections. That way, we get correct behavior
regardless of what the current cursor shape is.
2020-07-04 15:31:45 +03:00
Felix C. Stegerman 930029b5d2 export COLORTERM=truecolor 2020-06-22 02:07:20 +03:00
Leonid Pliushch 33def928cf
add DEX2OATBOOTCLASSPATH environment variable 2020-06-19 22:25:51 +03:00
Leonid Pliushch fc04a93990
get rid of Android 5 legacy stuff
We don't need LD_LIBRARY_PATH as of Android 7.0.
2020-06-19 22:18:28 +03:00
Leonid Pliushch 8d302aa9fe
fix am on Android R 2020-06-19 22:18:21 +03:00
Leonid Pliushch 2224d917a3
update ndk version 2020-06-17 14:08:58 +03:00
Leonid Pliushch 664ec43f94
version 0.95 2020-06-09 23:08:23 +03:00
Leonid Pliushch 6cf742460c
extra keys: make popup & pressed button no longer transparent
Fixes visual issue when popup overlaps text of upper row.
2020-06-09 22:54:57 +03:00
Leonid Pliushch 72981fb981
Use vector drawables for text selection handle
https://github.com/termux/termux-app/issues/1036
2020-06-09 21:47:11 +03:00
Leonid Pliushch 2c5534e2c1
RunCommandService: update information about usage 2020-06-09 16:07:42 +03:00
Leonid Pliushch 5b32540635
minor refactoring: RunCommand => RunCommandService 2020-06-09 15:48:56 +03:00
Leonid Pliushch db3ff7b24a
Provide a service for executing commands by third-party applications
Re-implementation of https://github.com/termux/termux-app/pull/1029.

If Termux has property "allow-external-apps" set to "true", a third-party
program will be able to send intents for executing custom commands
within Termux environment.

Third-party program must declare permission "com.termux.permission.RUN_COMMAND".
2020-06-09 15:36:08 +03:00
Trygve Aaberge 5f71e3e73a Join lines that fills the width when selecting urls
Some terminal applications, like mutt and weechat, prints a newline at
the end of each line even if text is wrapped. This causes urls which are
wrapped to not be selectable in full.

By ignoring newlines when the text fills the entire width of the screen,
those urls can be selected. Many other terminal emulators do this as
well.

A drawback of this is that if a url happens to fill the width of the
screen, the url selection will include the first word of the next line,
but this doesn't happen that often so I think it's an okay tradeoff.

Fixes #313
2020-06-09 13:41:36 +03:00
Josh Home 3e04ea4cb0 Add Log file to view intent #1497 2020-06-09 12:31:59 +03:00
Trygve Aaberge 0af823607a
Improvements to extra keys (#1479)
* Make popup keys for extra keys row configurable

This makes the keys you get when swiping up on a key configurable. You
can configure such a key by using an array of strings instead of a
single string in the row. The first entry will be the normal key and the
second will be the extra key.

This is a slightly breaking change, as people that have configured
custom extra keys with "-" or "/" will have to change the config to keep
the popup keys. The default config will remain the same in terms of
functionality, i.e. it includes the same popup key for "-".

* Make popup keys interact well with long press keys

This stops the repeat action when the popup is shown, and makes sure the
popup is closed when you release even if there has been some repeat
actions.

* Support configuring the style of the extra keys

This adds a setting for choosing between the different ways to render
key names that were already present in ExtraKeysView.

The available setting values are "arrows-only", "arrows-all", "all",
"none" and "default". Other values will fallback to "default".

Can be used as a workaround for #1410

* Support using modifier keys with letter keys in extra keys

This allows you to use the modifier keys on the extra keys rows, e.g.
ctrl, together with another button on the extra keys rows, as long as
that button is a normal letter and not a special key. Support for
special keys will come in the next commit.

* Support using modifier keys with special keys in extra keys

This allows you to use the modifier keys on the extra keys rows together
with a special key on the extra keys rows, e.g. CTRL+LEFT.

Fixes #745, fixes most of #895 and possibly #154

* Support mapping extra keys to other actions

This adds a setting called extra-keys-map which allows you to map a key
on the extra keys rows to another action. The value is a json object
where the key is the button text as configured in extra-keys and the
value is the action. Multiple actions can be used, but if they are
special characters (like ESC or LEFT) they have to be separated from the
other characters with a space on each side. If you want an actual space
character, use SPACE.

For example if you want to add a key to go to the next active channel in
weechat, you can use this:
    extra-keys-map = {"weechat next": "ESC a"}
And then add "weechat next" to extra-keys. The name can of course be
whatever you want.

Or if you want the button for the UP arrow to show ⇧ instead of ↑, you
can use this:
    extra-keys-map = {"⇧": "UP"}
And put "⇧" in extra-keys instead of "UP".

Modifier keys (ctrl, alt and shift) can't be used in this map yet.
Support for ctrl and alt will come in the next commit.

I think this fixes #1186

* Support CTRL and ALT in extra keys map

This allows you to use CTRL and ALT in extra-keys-map.

For example if you want a button to exit the terminal, you can use this:

    extra-keys-map = {"exit": "CTRL d"}

And add "exit" to extra-keys.

* Support a KEYBOARD button in extra keys

This toggles showing the keyboard input method.

* Support specifying macro keys in the extra-keys option

Instead of specifying macros in the separate extra-keys-map option by
matching the key name in the two options, you can now use "macro"
instead of "key" in extra-keys, and it will be a macro, i.e. a sequence
of multiple keys separated by space.

* Remove option extra-keys-map

Now that you can specify macro in extra-keys, there is no point in
having this separate option. Instead of specifying the value to display
as key, and the macro to perform in extra-keys-map, you would now
specify the value to display in the display property and the macro to
perform in the macro property.

* Lookup display text when creating ExtraKeyButton

This will make it easier to support key aliases for macros in the next
commit.

* Add support for a key to open the drawer

Fixes (I think) #1325
2020-06-09 12:17:07 +03:00
Trygve Aaberge 4d9c0c315e Update notification icon to match launcher icon
This is the launcher icon with a circle around it. I added the circle
because the icon has a transparent background, so it looks a bit weird
with just the >_.
2020-06-09 12:11:49 +03:00
Leonid Pliushch 9c32935ca2
fix ndk version for terminal-emulator module 2020-06-09 12:08:13 +03:00
Leonid Pliushch 669c336e2f
update ndk version 2020-06-09 12:02:41 +03:00