Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

plugins: Add README.md #554

Merged
merged 3 commits into from
Apr 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ to keep the repository size small. The filename should be
light background of the terminal used to make the image.
After your new themes are merged, the list in [Themes](https://github.com/ohmybash/oh-my-bash/wiki/Themes) in the Wiki also needs to be updated.

When you add a new plugin, please also update [plugins/README.md](https://github.com/ohmybash/oh-my-bash/blob/master/plugins/README.md)

----

## Use the Search, Luke
Expand Down
51 changes: 51 additions & 0 deletions plugins/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Oh-My-Bash Plugins: Enhancing Your Development Experience

"Oh My Bash won't make you a tenfold developer... but it might make you feel like one."

_Embracing a suite of plugins can significantly boost your coding efficiency by automating repetitive tasks, thereby making them less monotonous and easier to execute._

**What is a Plugin?**
A plugin is a type of software that augments the functionality of an existing program or system. These additions can range from simple to complex features and are intended to extend or customize the core functionality without modifying the codebase.

**Plugin Enablement:**
Once you identify the plugins you wish to utilize with Oh My Bash, you'll need to enable them in the `.bashrc` file located in your `$HOME` directory. Open this file with your preferred text editor and specify the plugins you want to load. For instance:

```bash
plugins=(git bundler osx rake ruby)
```

**Conditional Enablement:**
You may wish to control when or how plugins are activated. For instance, to ensure the `tmux-autoattach` plugin runs only in SSH sessions, you can employ a conditional statement checking for the `$SSH_TTY` variable. Make sure to remove the plugin from the main plugin list and use a conditional like this:

```bash
[[ $SSH_TTY ]] && plugins+=(tmux-autoattach)
```

By leveraging these plugins, you can streamline your workflow and tackle coding challenges with greater efficiency.

| Plugin | Description |
| --------------- | ------------------------------------------------------------------------------------------------------------------- |
| ansible | Configuration management tool used to automate the provisioning, configuration, and management of computer systems. |
| aws | Tools for interacting with Amazon Web Services (AWS) |
| bash-preexec | Tool allowing execution of commands before they are executed in Bash. |
| bashmarks | Utility facilitating directory navigation via bookmarks in Bash. |
| battery | Plugin related to monitoring and managing battery on computer systems. |
| brew | Package manager for macOS and Linux facilitating software installation and management. |
| bu | Insufficient information provided to give a precise description. |
| chezmoi | Dotfile management tool enabling management of user environment configuration. |
| fasd | Utility easing filesystem navigation through shortcuts and abbreviated commands. |
| gcloud | Command-line tools for interacting with Google Cloud Platform (GCP). |
| git | Distributed version control system for managing the history of changes in software projects. |
| goenv | Tool for managing Go versions within a development environment. |
| golang | The Go programming language, along with its tools and standard libraries. |
| kubectl | Command-line tool for interacting with Kubernetes clusters. |
| npm | Package manager for Node.js facilitating installation and management of project dependencies. |
| nvm | Node.js version manager allowing easy switching between different Node.js versions. |
| progress | Insufficient information provided to give a precise description. |
| pyenv | Tool for managing multiple Python versions within a system. |
| sdkman | Version and package manager for development tools such as Java, Kotlin, and Gradle. |
| sudo | Utility for executing commands with superuser privileges on Unix and Unix-like systems. |
| tmux-autoattach | Plugin related to session management in the tmux terminal multiplexer. |
| vagrant | Tool for creating and managing virtual development environments. |
| xterm | Terminal emulator for X Window systems providing a graphical user interface for accessing the command line. |
| zoxide | Utility for quickly navigating the filesystem based on visited directory history. |
Loading