diff --git a/share/functions/suspend.fish b/share/functions/suspend.fish new file mode 100644 index 000000000..72ba10ca9 --- /dev/null +++ b/share/functions/suspend.fish @@ -0,0 +1,18 @@ +# If the user hasn't set it, make sure our test level has a value +if not set -q suspend_minimum_SHLVL + set -g suspend_minimum_SHLVL 3 +end + + +function suspend -d "Suspend the current shell." + if begin contains -- $argv --force + or not status --is-interactive + or begin test $SHLVL -ge $suspend_minimum_SHLVL + and not status --is-login + end + end + kill -STOP %self + else + echo 2>&1 Cannot suspend login shell or SHLVL to low, use --force to force. + end +end