:shell: Python-powered, cross-platform, Unix-gazing shell.
Changed:
gitstatus
prompt fields are now None
.$THREAD_SUBPROCS=False
: When a callable alias is executed with ![]
, its standard output and standard error are no longer captured. This is because a separate thread is required in order to both capture the output and stream it to the terminal while the alias is running.Fixed:
$PROMPT
format strings like {gitstatus: hello {}}
now work as expected.$THREAD_SUBPROCS=False
: When cd
is used with an invalid directory, the error message is now correctly displayed.Authors:
Added:
Changed:
xonsh.AppImage
to 3.10Fixed:
pygments
tries to load an unknown stylegit push origin :dev-branch
)less
no longer stops when a callable alias containing subprocess commands is piped into itgitstatus
Prompt-field would be empty on paths without git setup.swaymsg -t get_inputs
no longer fails with the error "Unable to receive IPC response"current_job
variable now works as expected when used in $TITLE
Security:
xpip
will never add sudo
under any circumstances and will instead append --user
as neededAuthors:
Removed:
xonsh
code-base is no longer amalgamated, so tracebacks should be
human-readable without intervention. This may have (minor) impacts on startup
speed.Fixed:
free_cwd
whole_word_jumping
xontrib failing on Linux, conditional import of ptk_win32
→ Windows onlyAuthors:
Fixed:
Authors:
Added:
loading and unloading <https://github.com/xonsh/xonsh/issues/4541>
_
with functions _load_xontrib_(xsh: XonshSession, **kwargs) -> dict
,
_unload_xontrib_(xsh: XonshSession, **kwargs) -> None
defined in their module.
Updated doc <https://xon.sh/tutorial_xontrib.html>
_Changed:
![sleep 10 &]
)whole_word_jumping
xontrib with matching bindings for
delete
and backspace
. The XONSH_WHOLE_WORD_CTRL_BKSP
environment
variable can be set to False
to avoid binding control+backspace
in
incompatible terminals.furo
Removed:
prompt_ret_code
is now removed.
Now the default prompt already shows the last-return-code when the previous command fails.
Please use the new prompt fields last_return_code
, last_return_code_if_nonzero
from
the PR <https://github.com/xonsh/xonsh/pull/4798>
_Fixed:
fg
for commands started in the background (e.g. ![sleep 10 &]
) now worksnohup
command to work properly.bg
now properly resumes jobs in the backgroundsleep 500 &
running in the background, pressing Ctrl+D twice to force quit now works properlyAuthors:
Authors:
Changed:
Awesome Xontribs <https://github.com/xonsh/awesome-xontribs/>
_ page.
Going forward, new contributions will be updated here, making it not depending on the xonsh release <https://github.com/xonsh/xonsh/issues/4679>
_.Removed:
NEP0029 <https://numpy.org/neps/nep-0029-deprecation_policy.html>
_Fixed:
Authors:
Fixed:
dd sta
gets completed to dd status=
, without a space space after the equals sign.gitstatus <https://github.com/xonsh/xonsh/pull/4771>
_ prompt is fixed now. It will display the value now instead of the name.fixed <https://github.com/xonsh/xonsh/pull/4763>
_ vox rm
crashing when user input is requiredAuthors:
Fixed:
xontrib-abbrevs <https://github.com/xonsh/xonsh/pull/4757>
_Authors:
Added:
Added interface to complete any alias that has xonsh_complete
attribute. It is a function with fn(**kwargs) -> Iterator[RichCompletion | str]
signature.
added $ALIAS_COMPLETIONS_OPTIONS_LONGEST
to control showing options in completions
added $CMD_COMPLETIONS_SHOW_DESC
environment variable to control showing command completions with a description part.
completer complete
command is added to test current completions
completions from man page will now show the description for the options if available.
$XONSH_COMPLETER_DIRS
to put command completers
Aliases.register
to register an alias function.
Tracebacks are now printed in color if available (interactive session with shell that supports colors with pygments installed and $COLOR_RESULTS enabled)
Added python's match statement for python >=3.10.
Added support for the $SHLVL environment variable, typed as int, using bash's semantics.
Python files with command completions can be put inside xompletions
namespace package,
they will get loaded lazily.
xontrib.fish_completer
is available to complete using fish
shell.
Support for pythons sys.last_type, sys.last_value, sys.last_traceback.
added xonsh-uname
command to xoreutils
auto-completion support for commands : source-foreign
, source-bash
, source-zsh
, source-cmd
added history transfer
command to transfer history entries between backends.
now $PROMPT_FIELDS
is a custom class with method pick(field_name)
to get the field value efficiently.
The results are cached within the same prompt call.
new class xonsh.prompt.base.PromptField
to ease creating/extending prompt-fields
Sublime Text 4 extension to the Editors page.
Support for the virtualenv <https://virtualenv.pypa.io/en/20.0.1/extend.html#activation-scripts>
_ activate.xsh
script is back! Ensure you create the virtualenv from the same python where xonsh is installed.
vox new/create accepts a new --prompt
argument, which is passed through to python -m venv
New set of commands and options to manage virtualenvs inspired from pew
runin
runinall
new
--link
: to associate venv with project directory--temp
: to create temporary virtualenvsactivate
toggle-ssp - toggle system site packages
project - manage project path associations
wipe - to quickly remove all user installed packages
prompt.env.env_name
is now aware of the "prompt" key in pyvenv.cfg
- search order from first to last is: $VIRTUAL_ENV_PROMPT
, pyvenv.cfg
, $VIRTUAL_ENV
, $CONDA_DEFAULT_ENV
new command vox upgrade
xonfig web
can now update abbrevs/aliases/env-variables
.
Added xontrib-default-command <https://github.com/oh-my-xonsh/xontrib-default-command>
to xontrib list.
new xontrib-django <https://github.com/jnoortheen/xontrib-django>
_ for django management completions
Added xontrib-gruvbox <https://github.com/rpdelaney/xontrib-gruvbox>
to xontrib list.
Added xontrib-up <https://github.com/oh-my-xonsh/xontrib-up>
to xontrib list.
Changed:
Both *.xsh
and *.py
files inside $XONSHRC_DIR
will get loaded now.
Environment-variables of no predefined type or path environment variables are now represented as strings via the empty string.
Made stacktraces behave like in python, i.e. when something in user-provided code fails (both interactively and non-interactively), only that part is shown, and the (static) part of the stacktrace showing the location where the user code was called in xonsh remains hidden. When an unexpected exception occurs inside xonsh, everything is shown like before.
run_compiled_code, run_script_with_cache, run_code_with_cache now return sys.exc_info() triples instead of throwing errors
SyntaxError tracebacks now by default hide the internal parser state (like in python); set XONSH_DEBUG >= 1 to enable it again.
XonshError tracebacks now by default hide xonshs internal state; set XONSH_DEBUG >= 1 to enable it again.
run_code_with_cache takes a new parameter display_filename to override the filename shown in exceptions (this is independent of caching)
Update uptime lib by the last one from Pypi
umask
, ulimit
commands will not override the system's commands unless requested
Xontribs that require other third party packages are moved to its own packages. The following xontribs are moved and can be loaded after install as usual
Xonsh adopts NEP-0029 <https://numpy.org/neps/nep-0029-deprecation_policy.html>
_ in supporting Python versions.
Privatise certain attributes of lexer/parser to minimise API surface
Make XSH.load
calls explicit (not in Execer)
Make import hooks require Execer
Simplified foreign functions
Updated tutorial.rst to clarify use of time_format
vox new
will use default python version of the system rather than the one vox is run with
xonfig web
now shows latest xontribs available from xonsh.xontribs_meta
Removed:
$XONSH_GITSTATUS_*
is removed
since the prompt fields can be customized easily now individually.$XONSH_GITSTATUS_FIELDS_HIDDEN
is removed.
Please set hidden fields in $PROMPT_FIELDS['gitstatus'].hidden = (...)
xonsh.ptk2
module whcih was kept for some old packages sake. Now xonsh requires atleast ptk3 version.Fixed:
/home/user/
during autocompletion.
xonsh bash_completions
does not expect that, so it breaks autocompletion by producing paths like ~/f/home/user/foo
.
After the fix if bash returns changed paths then /home/user
prefix will be replaced with ~/
.pip
completer now handles path completions correctly$CONDA_DEFAULT_ENV
is now respected when xonsh is run outside of conda.(
$PROMPT
is no longer removed when using ptk shell.
These codes need to be escaped with \001..\002
instead.$XONSHRC_DIR
directory entry exists.current_branch
will now work empty git repository.Authors: