GitXplorerGitXplorer
d

oh-my-xonsh

public
0 stars
6 forks
0 issues

Commits

List of commits on branch main.
Unverified
d5d91d4c181bff8f2057a1d8b7bc6ef2a4bc779f

Correct copy/paste wording from example readme

mmattmc3 committed 3 years ago
Unverified
2cb8dd6f2c213e9410046506288ed717a7143cb3

Add readme

mmattmc3 committed 3 years ago
Unverified
ac3321d65b909701e8e5a4ec2a3b3158eaf278a7

Bug fix: check for prereq plugin

mmattmc3 committed 3 years ago
Verified
c6fe01a90ba5a206253d600101e9a48a9692c5ff

Add example plugin link

mmattmc3 committed 3 years ago
Verified
9af992113e375100b1f2507fd72f7b644812712d

Remove single char aliases

mmattmc3 committed 3 years ago
Verified
bfb55bf646833ff6cf1f0a3cc3489fd1e54f9194

Update example.xsh

mmattmc3 committed 3 years ago

README

The README file for this repository.

oh-my-xonsh

🐍 🐚 🔌 - 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: