summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTilman List <tilman.list@posteo.de>2020-02-20 14:58:54 +0100
committerAlex Leferry 2 <alexherbo2@gmail.com>2020-06-18 14:33:34 +0200
commite77dbdbfac630338cb5d52ff143c14c0353f3ac0 (patch)
treeb8ad6d9237d212158c8b7229dbf2a27e7b29c3e5
parent277c00cfbecd8a313b7e892356343355ca5fb6ed (diff)
added an option connect_environment
The option connect_environment is evaluated just after the .env files, so that the user can change and set environment variables in the connected shell through this option.
-rw-r--r--README.md11
-rw-r--r--rc/connect.kak9
2 files changed, 17 insertions, 3 deletions
diff --git a/README.md b/README.md
index b60c6d0..e4ab88c 100644
--- a/README.md
+++ b/README.md
@@ -146,6 +146,17 @@ require-module connect-dolphin
map global normal <c-t> ': connect-terminal<ret>'
```
+By setting the option `connect_environment` you can specify commands that
+are run before the shell is executed. This might be useful, if you want to
+change or export environment variables:
+
+``` kak
+set-option global connect_environment %{
+ GIT_EDITOR='kak -c $KAKOUNE_SESSION'
+ export LYEDITOR='edit %(file)s +%(line)s:%(column)s'
+}
+```
+
## Kakoune commands
- [`:connect-terminal`] | [`:t`]
diff --git a/rc/connect.kak b/rc/connect.kak
index 9f548e9..8684a14 100644
--- a/rc/connect.kak
+++ b/rc/connect.kak
@@ -1,16 +1,18 @@
declare-option -hidden str connect_path %sh(dirname "$kak_source")
+declare-option str connect_environment
provide-module connect %{
define-command connect-terminal -params .. -shell-completion -docstring 'Connect a terminal' %{
terminal sh -c %{
- kak_opt_connect_path=$1 kak_session=$2 kak_client=$3 kak_client_env_SHELL=$4
+ kak_opt_connect_path=$1 kak_opt_connect_environment=$2 kak_session=$3 kak_client=$4 kak_client_env_SHELL=$5
. "$kak_opt_connect_path/env/default.env"
. "$kak_opt_connect_path/env/overrides.env"
. "$kak_opt_connect_path/env/kakoune.env"
. "$kak_opt_connect_path/env/git.env"
- shift 4
+ eval "$kak_opt_connect_environment"
+ shift 5
"${@:-$SHELL}"
- } -- %opt{connect_path} %val{session} %val{client} %val{client_env_SHELL} %arg{@}
+ } -- %opt{connect_path} %opt{connect_environment} %val{session} %val{client} %val{client_env_SHELL} %arg{@}
}
define-command connect-shell -params 1.. -shell-completion -docstring 'Connect a shell' %{
nop %sh{
@@ -19,6 +21,7 @@ provide-module connect %{
. "$kak_opt_connect_path/env/overrides.env"
. "$kak_opt_connect_path/env/kakoune.env"
. "$kak_opt_connect_path/env/git.env"
+ eval "$kak_opt_connect_environment"
setsid sh -c "$@" < /dev/null > /dev/null 2>&1 &
}
}