Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
981eb11b6d | ||
|
|
b33494d399 | ||
|
|
11def894e2 | ||
|
|
da04640fdf |
+13
-1
@@ -9,9 +9,21 @@
|
||||
# The inner resolution runs ON THE HOST: flatpak-spawn forwards the sandbox
|
||||
# environment, so $SHELL would still point at this script — resolve the user's
|
||||
# real login shell from passwd instead and fix up $SHELL before exec'ing it.
|
||||
exec flatpak-spawn --host /bin/sh -c '
|
||||
#
|
||||
# The PTY itself was allocated inside the sandbox (its own devpts instance),
|
||||
# so on the host the forwarded fd cannot be named (`tty` fails, no
|
||||
# controlling terminal, tools that open /dev/tty break). script(1) allocates a
|
||||
# second, host-side PTY for the shell and relays through the forwarded one;
|
||||
# util-linux >= 2.35 also passes window-size changes along.
|
||||
# flatpak-spawn --host does not forward the caller's environment: without
|
||||
# --env the host shell starts with no TERM at all (login scripts then fail
|
||||
# in tput and in integer tests on the empty LINES/COLUMNS).
|
||||
exec flatpak-spawn --host --env=TERM="${TERM:-xterm-256color}" --env=COLORTERM=truecolor /bin/sh -c '
|
||||
shell="$(getent passwd "$(id -un)" | cut -d: -f7)"
|
||||
[ -x "$shell" ] || shell=/bin/sh
|
||||
export SHELL="$shell"
|
||||
if command -v script >/dev/null 2>&1; then
|
||||
exec script -q -e -c "exec \"$shell\" -l" /dev/null
|
||||
fi
|
||||
exec "$shell" -l
|
||||
'
|
||||
Reference in new issue
Block a user