Skip to content

oh-my-xonsh/oh-my-xonsh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

83 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

oh-my-xonsh

-----------------------------------------------------

CALL FOR NEW MAINTAINERS

I started this project to bring features of OMZ to the Xonsh community, but no longer use Xonsh, and thus will not be maintaining this project. If you have a proven track record of helpful participation in the Xonsh community and believe this is project you would like to maintain into the future, please open an issue and I can transfer the org.

-----------------------------------------------------

🐍 🐚 πŸ”Œ - A delightful framework to give your Python-powered, cross-platform, Unix-gazing Xonsh shell a boost!

Usage

Add the following snippet to your ~/.config/xonsh/rc.xsh or ~/.xonshrc:

# set where oh-my-xonsh lives
if not 'OMX_HOME' in ${...}:
    $OMX_HOME = p"~/.config/xonsh/oh-my-xonsh"

# clone omx if needed
if not pf"{$OMX_HOME}".exists():
    git clone --depth=1 https://github.com/oh-my-xonsh/oh-my-xonsh $OMX_HOME

# source oh-my-xonsh to give you the `omx` object
source $OMX_HOME/oh-my-xonsh.xsh

# choose your plugins
omx.plugins = [
    'autocmd',
    'brew',
    'clipboard',
    'common_aliases',
    'copydir',
    'dash',
    'git',
    'gitignore',
    'golang',
    'iwd',
    'macos',
    'manpage_coloring',
    'shrink_path',
    'up',
]

# configure your plugins
# omx.config["plugins.git.skip_aliases"] = True

# initialize oh-my-xonsh
omx.init()

Configuration

Some plugins allow for configuration options. The omx object has a .config property that allows you to set config values.

You need to be sure you set these values before calling omx.init() in your rc.xsh file.

For example:

# set your config options
omx.config["plugins.example.whoami"] = "I'm Batman!"
omx.config["plugins.git.skip_aliases"] = True

# now call init
omx.init()

Adding your own custom plugins

You can add your own custom .xsh files or plugins to OMX by using the $OMX_CUSTOM_HOME directory. You can set $OMX_CUSTOM_HOME to whatever you want, or you can use the OMX default. An example is included to help you get started.

The omx object

Sourcing Oh-My-Xonsh gives you the omx object, which allows you to do lots of great things, such as:

List available plugins

$ omx.list_plugins()
--- OMX plugins ---
autocmd
brew
cdls
clipboard
common_aliases
copydir
copyfile
dash
git
gitignore
golang
iwd
jupyter
macos
manpage_coloring
shrink_path
up
--- OMX custom plugins ---
example

Loaded plugins

You can see the CommandPipeline details about the plugins you've loaded, including the load times for each plugin.

$ omx.loaded_plugins

Updating OMX

OMX can update itself if you want as well (which is simply doing a git pull).

$ omx.update()

References

Oh-My-Xonsh is inspired by many wonderful similar projects from other shells:

About

🐍 🐚 πŸ”Œ - A delightful framework to give your Python-powered, cross-platform, Unix-gazing Xonsh shell a boost!

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages