From 496da3f877c5f8f3ea52429b36719de6de95211d Mon Sep 17 00:00:00 2001 From: Leonid Pliushch Date: Wed, 3 Feb 2021 20:22:38 +0200 Subject: [PATCH] introduce a property for configuring default working directory Issue https://github.com/termux/termux-app/issues/1192. --- app/src/main/java/com/termux/app/TermuxActivity.java | 9 ++++++++- .../main/java/com/termux/app/TermuxPreferences.java | 11 ++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/termux/app/TermuxActivity.java b/app/src/main/java/com/termux/app/TermuxActivity.java index 5839d10a..280d9378 100644 --- a/app/src/main/java/com/termux/app/TermuxActivity.java +++ b/app/src/main/java/com/termux/app/TermuxActivity.java @@ -652,7 +652,14 @@ public final class TermuxActivity extends Activity implements ServiceConnection .setPositiveButton(android.R.string.ok, null).show(); } else { TerminalSession currentSession = getCurrentTermSession(); - String workingDirectory = (currentSession == null) ? null : currentSession.getCwd(); + + String workingDirectory; + if (currentSession == null) { + workingDirectory = mSettings.mDefaultWorkingDir; + } else { + workingDirectory = currentSession.getCwd(); + } + TerminalSession newSession = mTermService.createTermSession(null, null, workingDirectory, failSafe); if (sessionName != null) { newSession.mSessionName = sessionName; diff --git a/app/src/main/java/com/termux/app/TermuxPreferences.java b/app/src/main/java/com/termux/app/TermuxPreferences.java index 1d85b727..bb2a417e 100644 --- a/app/src/main/java/com/termux/app/TermuxPreferences.java +++ b/app/src/main/java/com/termux/app/TermuxPreferences.java @@ -78,6 +78,7 @@ final class TermuxPreferences { boolean mBackIsEscape; boolean mDisableVolumeVirtualKeys; boolean mShowExtraKeys; + String mDefaultWorkingDir; ExtraKeysInfos mExtraKeys; @@ -113,7 +114,7 @@ final class TermuxPreferences { } catch (NumberFormatException | ClassCastException e) { mFontSize = defaultFontSize; } - mFontSize = clamp(mFontSize, MIN_FONTSIZE, MAX_FONTSIZE); + mFontSize = clamp(mFontSize, MIN_FONTSIZE, MAX_FONTSIZE); } boolean toggleShowExtraKeys(Context context) { @@ -227,6 +228,14 @@ final class TermuxPreferences { mUseFullScreenWorkAround = false; } + mDefaultWorkingDir = props.getProperty("default-working-directory", TermuxService.HOME_PATH); + File workDir = new File(mDefaultWorkingDir); + if (!workDir.exists() || !workDir.isDirectory()) { + // Fallback to home directory if user configured working directory is not exist + // or is a regular file. + mDefaultWorkingDir = TermuxService.HOME_PATH; + } + String defaultExtraKeys = "[[ESC, TAB, CTRL, ALT, {key: '-', popup: '|'}, DOWN, UP]]"; try {