Skip to content

one-bash/one.share

Repository files navigation

one.share

one.bash + one.share = an awesome shell.

one.share is the one.bash official repo, which provides common aliases, completions, plugins, configs, bin, sub for one.bash.

Features

Preview

Click to expend/collapse

preview.png

The prompt line is implemented by a-bash-prompt. See ./plugins/prompt.bash.

Responsive prompt. Press Enter to auto adjust with window width.

responsive-prompt.png

Show last command exit status

exit-status.png

Highlight Backgound jobs:

jobs-labels.png

Use sub commands:

sub-commands.jpeg

Bubble Style and Block Style:

bubble-and-block-styles.png

Environments

  • ✅ iTerm2 Build 3.0.14 (Terminal.app compatible)
  • ✅ GNU Bash 4.4 or 5.0+
  • ✅ Tmux 3.3+ (Not necessary. Tmux compatible)
  • ✅ MacOS Intel Arch
  • ✅ MacOS ARM Arch
  • ✅ Linux/Unix system
  • 🚫 Windows system
  • 🚫 Zsh. This project is just for Bash players. Zsh players should use Oh My Zsh.

Dependencies

Required Dependencies

Optional Dependencies

These dependencies are not required for the project. It will improve the experience of terminal. Install them as your requirement.

Git Submodules

Git submodules required in one.bash.

  • dotbot: To create symbolic links and manage them by config.
  • lobash: A modern, safe, powerful utility/library for Bash script development.
  • a-bash-prompt: A Bash prompt written by pure Bash script.
  • bash-preexec: Add preexec_functions, precmd_functions arrays, and precmd, preexec functions for bash.

Installation

Just invoke one dep install to install.

Update

one dep update one.share to update codes.

Usage

./recommended-modules

# If ONE_BASH_IT_ENABLE=true
one completion enable aliases.completion

Read one.bash documents for usage.

File Structure

.
├── aliases/                        # Available aliases
├── bin/                            # Executables. The directory path is added to PATH by one.bash.
├── completions/                    # Available completions
├── configs/                        # dotfiles, configs
├── deps/                           # the dependencies for modules
│   ├── a-bash-prompt/              # https://github.com/adoyle-h/a-bash-prompt
│   ├── bash-preexec/               # https://github.com/rcaloras/bash-preexec
│   ├── cheatsheets-community/      # https://github.com/cheat/cheat
│   └── z.lua/                      # https://github.com/skywind3000/z.lua
├── docs/                           # The documents of this project
├── plugins/                        # Available plugins
│   ├── completions.bash            # Enable general completions and tab complete keymap
│   ├── preexec.bash                # Enable bash-preexec
│   └── prompt.bash                 # Enable a-bash-prompt
└── sub/                            # The commands for ONE_SUB

Notice

Slow Loading

Some modules are slow. Set ONE_DEBUG=true in ONE_CONF file, you will see the logs showing slow loading time.

  • With ONE_NO_MODS=true, [one.bash|00:00:00|entry.bash] loaded success (Total 112ms)
  • With ONE_NO_MODS=false and one plugin enable fuck nvm npm, [one.bash|00:00:00|entry.bash] loaded success (Total 2200ms)

UI

If using tmux, $TERM should be xterm-256color or screen-256color for best appearance.

Usage

prompt

Use one_prompt_append add function to PROMPT_COMMAND.

plugin:completion

When one plugin enable completion,

The completion files loaded in order:

  • bash_completion will load files in order:
    • ${BASH_COMPLETION_COMPAT_DIR:-/usr/local/etc/bash_completion.d}
    • ${BASH_COMPLETION_USER_FILE:-~/.bash_completion}
  • this plugin will load
    • $HOME/.bash_completions

Suggestion, Bug Reporting, Contributing

Any comments and suggestions are always welcome.

Before open an issue/discussion/PR, You should search related issues/discussions/PRs first for avoiding to create duplicated links.

  • For new feature request, open a discussion, describe your demand concisely and clearly.
  • For new feature submit, open a PR, describe your demand and design concisely and clearly.
  • For bug report, open an issue, describe the bug concisely and clearly.
  • For bug fix, open a PR, concisely and clearly describe what you fixed.
  • For question and suggestion, open a discussion.
  • For anything not mentioned above, open a discussion.

Do not post duplicated and useless contents like +1, LOL. React to comments with emoji instead of.

你可以使用中文反馈意见。但希望你尽可能使用英文,不要中英文混杂,而是完全的英文语句。 因为我们处于国际社区,英文更通用,方便外国人阅读理解你的意见。 (Please communicate in English as much as possible)

Versions

See tags. The versions follows the rules of SemVer 2.0.0.

Copyright and License

Copyright 2022 ADoyle (adoyle.h@gmail.com) Some Rights Reserved. The project is licensed under the Apache License Version 2.0.

Read the LICENSE file for the specific language governing permissions and limitations under the License.

Read the NOTICE file distributed with this work for additional information regarding copyright ownership.

About

one.bash + one.share = an awesome shell.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published