Remove old files
This commit is contained in:
parent
a69769e47f
commit
e13b468a59
@ -1,10 +0,0 @@
|
|||||||
root = true
|
|
||||||
|
|
||||||
[*]
|
|
||||||
end_of_line = lf
|
|
||||||
insert_final_newline = true
|
|
||||||
charset = utf-8
|
|
||||||
|
|
||||||
[*.sh]
|
|
||||||
indent_size = 4
|
|
||||||
indent_style = tab
|
|
@ -1,76 +0,0 @@
|
|||||||
# Contributor Covenant Code of Conduct
|
|
||||||
|
|
||||||
## Our Pledge
|
|
||||||
|
|
||||||
In the interest of fostering an open and welcoming environment, we as
|
|
||||||
contributors and maintainers pledge to making participation in our project and
|
|
||||||
our community a harassment-free experience for everyone, regardless of age, body
|
|
||||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
|
||||||
level of experience, education, socio-economic status, nationality, personal
|
|
||||||
appearance, race, religion, or sexual identity and orientation.
|
|
||||||
|
|
||||||
## Our Standards
|
|
||||||
|
|
||||||
Examples of behavior that contributes to creating a positive environment
|
|
||||||
include:
|
|
||||||
|
|
||||||
* Using welcoming and inclusive language
|
|
||||||
* Being respectful of differing viewpoints and experiences
|
|
||||||
* Gracefully accepting constructive criticism
|
|
||||||
* Focusing on what is best for the community
|
|
||||||
* Showing empathy towards other community members
|
|
||||||
|
|
||||||
Examples of unacceptable behavior by participants include:
|
|
||||||
|
|
||||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
|
||||||
advances
|
|
||||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
|
||||||
* Public or private harassment
|
|
||||||
* Publishing others' private information, such as a physical or electronic
|
|
||||||
address, without explicit permission
|
|
||||||
* Other conduct which could reasonably be considered inappropriate in a
|
|
||||||
professional setting
|
|
||||||
|
|
||||||
## Our Responsibilities
|
|
||||||
|
|
||||||
Project maintainers are responsible for clarifying the standards of acceptable
|
|
||||||
behavior and are expected to take appropriate and fair corrective action in
|
|
||||||
response to any instances of unacceptable behavior.
|
|
||||||
|
|
||||||
Project maintainers have the right and responsibility to remove, edit, or
|
|
||||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
|
||||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
|
||||||
permanently any contributor for other behaviors that they deem inappropriate,
|
|
||||||
threatening, offensive, or harmful.
|
|
||||||
|
|
||||||
## Scope
|
|
||||||
|
|
||||||
This Code of Conduct applies within all project spaces, and it also applies when
|
|
||||||
an individual is representing the project or its community in public spaces.
|
|
||||||
Examples of representing a project or community include using an official
|
|
||||||
project e-mail address, posting via an official social media account, or acting
|
|
||||||
as an appointed representative at an online or offline event. Representation of
|
|
||||||
a project may be further defined and clarified by project maintainers.
|
|
||||||
|
|
||||||
## Enforcement
|
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
||||||
reported by contacting the project team at ohmyzsh@planetargon.com. All
|
|
||||||
complaints will be reviewed and investigated and will result in a response that
|
|
||||||
is deemed necessary and appropriate to the circumstances. The project team is
|
|
||||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
|
||||||
Further details of specific enforcement policies may be posted separately.
|
|
||||||
|
|
||||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
|
||||||
faith may face temporary or permanent repercussions as determined by other
|
|
||||||
members of the project's leadership.
|
|
||||||
|
|
||||||
## Attribution
|
|
||||||
|
|
||||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
|
||||||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
|
||||||
|
|
||||||
[homepage]: https://www.contributor-covenant.org
|
|
||||||
|
|
||||||
For answers to common questions about this code of conduct, see
|
|
||||||
https://www.contributor-covenant.org/faq
|
|
@ -1,125 +0,0 @@
|
|||||||
# CONTRIBUTING GUIDELINES
|
|
||||||
|
|
||||||
Oh-My-Zsh is a community-driven project. Contribution is welcome, encouraged, and appreciated.
|
|
||||||
It is also essential for the development of the project.
|
|
||||||
|
|
||||||
First, please take a moment to review our [code of conduct](CODE_OF_CONDUCT.md).
|
|
||||||
|
|
||||||
These guidelines are an attempt at better addressing the huge amount of pending
|
|
||||||
issues and pull requests. Please read them closely.
|
|
||||||
|
|
||||||
Foremost, be so kind as to [search](#use-the-search-luke). This ensures any contribution
|
|
||||||
you would make is not already covered.
|
|
||||||
|
|
||||||
* [Issues](#reporting-issues)
|
|
||||||
* [You have a problem](#you-have-a-problem)
|
|
||||||
* [You have a suggestion](#you-have-a-suggestion)
|
|
||||||
* [Pull Requests](#submitting-pull-requests)
|
|
||||||
* [Getting started](#getting-started)
|
|
||||||
* [You have a solution](#you-have-a-solution)
|
|
||||||
* [You have an addition](#you-have-an-addition)
|
|
||||||
* [Information sources (_aka_ search)](#use-the-search-luke)
|
|
||||||
|
|
||||||
**BONUS:** [Volunteering](#you-have-spare-time-to-volunteer)
|
|
||||||
|
|
||||||
## Reporting Issues
|
|
||||||
|
|
||||||
### You have a problem
|
|
||||||
|
|
||||||
Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
|
|
||||||
your problem.
|
|
||||||
|
|
||||||
If you find one, comment on it so we can know there are more people experiencing it.
|
|
||||||
|
|
||||||
If not, look at the [Troubleshooting](https://github.com/ohmyzsh/ohmyzsh/wiki/Troubleshooting)
|
|
||||||
page for instructions on how to gather data to better debug your problem.
|
|
||||||
|
|
||||||
Then, you can go ahead and create an issue with as much detail as you can provide.
|
|
||||||
It should include the data gathered as indicated above, along with:
|
|
||||||
|
|
||||||
1. How to reproduce the problem
|
|
||||||
2. What the correct behavior should be
|
|
||||||
3. What the actual behavior is
|
|
||||||
|
|
||||||
Please copy to anyone relevant (_eg_ plugin maintainers) by mentioning their GitHub handle
|
|
||||||
(starting with `@`) in your message.
|
|
||||||
|
|
||||||
We will do our very best to help you.
|
|
||||||
|
|
||||||
### You have a suggestion
|
|
||||||
|
|
||||||
Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
|
|
||||||
your suggestion.
|
|
||||||
|
|
||||||
If you find one, comment on it so we can know there are more people supporting it.
|
|
||||||
|
|
||||||
If not, you can go ahead and create an issue. Please copy to anyone relevant (_eg_ plugin
|
|
||||||
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
|
|
||||||
|
|
||||||
## Submitting Pull Requests
|
|
||||||
|
|
||||||
### Getting started
|
|
||||||
|
|
||||||
You should be familiar with the basics of
|
|
||||||
[contributing on GitHub](https://help.github.com/articles/using-pull-requests) and have a fork
|
|
||||||
[properly set up](https://github.com/ohmyzsh/ohmyzsh/wiki/Contribution-Technical-Practices).
|
|
||||||
|
|
||||||
You MUST always create PRs with _a dedicated branch_ based on the latest upstream tree.
|
|
||||||
|
|
||||||
If you create your own PR, please make sure you do it right. Also be so kind as to reference
|
|
||||||
any issue that would be solved in the PR description body,
|
|
||||||
[for instance](https://help.github.com/articles/closing-issues-via-commit-messages/)
|
|
||||||
_"Fixes #XXXX"_ for issue number XXXX.
|
|
||||||
|
|
||||||
### You have a solution
|
|
||||||
|
|
||||||
Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
|
|
||||||
your [problem](#you-have-a-problem), and any pending/merged/rejected PR covering your solution.
|
|
||||||
|
|
||||||
If the solution is already reported, try it out and +1 the pull request if the
|
|
||||||
solution works ok. On the other hand, if you think your solution is better, post
|
|
||||||
it with a reference to the other one so we can have both solutions to compare.
|
|
||||||
|
|
||||||
If not, then go ahead and submit a PR. Please copy to anyone relevant (e.g. plugin
|
|
||||||
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
|
|
||||||
|
|
||||||
### You have an addition
|
|
||||||
|
|
||||||
Please [do not](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#dont-send-us-your-theme-for-now)
|
|
||||||
send themes for now.
|
|
||||||
|
|
||||||
Please be so kind as to [search](#use-the-search-luke) for any pending, merged or rejected Pull Requests
|
|
||||||
covering or related to what you want to add.
|
|
||||||
|
|
||||||
If you find one, try it out and work with the author on a common solution.
|
|
||||||
|
|
||||||
If not, then go ahead and submit a PR. Please copy to anyone relevant (_eg_ plugin
|
|
||||||
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
|
|
||||||
|
|
||||||
For any extensive change, _eg_ a new plugin, you will have to find testers to +1 your PR.
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
## Use the Search, Luke
|
|
||||||
|
|
||||||
_May the Force (of past experiences) be with you_
|
|
||||||
|
|
||||||
GitHub offers [many search features](https://help.github.com/articles/searching-github/)
|
|
||||||
to help you check whether a similar contribution to yours already exists. Please search
|
|
||||||
before making any contribution, it avoids duplicates and eases maintenance. Trust me,
|
|
||||||
that works 90% of the time.
|
|
||||||
|
|
||||||
You can also take a look at the [FAQ](https://github.com/ohmyzsh/ohmyzsh/wiki/FAQ)
|
|
||||||
to be sure your contribution has not already come up.
|
|
||||||
|
|
||||||
If all fails, your thing has probably not been reported yet, so you can go ahead
|
|
||||||
and [create an issue](#reporting-issues) or [submit a PR](#submitting-pull-requests).
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
### You have spare time to volunteer
|
|
||||||
|
|
||||||
Very nice!! :)
|
|
||||||
|
|
||||||
Please have a look at the [Volunteer](https://github.com/ohmyzsh/ohmyzsh/wiki/Volunteers)
|
|
||||||
page for instructions on where to start and more.
|
|
@ -1,21 +0,0 @@
|
|||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2009-2020 Robby Russell and contributors (https://github.com/ohmyzsh/ohmyzsh/contributors)
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
@ -1,313 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<img src="https://s3.amazonaws.com/ohmyzsh/oh-my-zsh-logo.png" alt="Oh My Zsh">
|
|
||||||
</p>
|
|
||||||
|
|
||||||
Oh My Zsh is an open source, community-driven framework for managing your [zsh](https://www.zsh.org/) configuration.
|
|
||||||
|
|
||||||
Sounds boring. Let's try again.
|
|
||||||
|
|
||||||
__Oh My Zsh will not make you a 10x developer...but you may feel like one.__
|
|
||||||
|
|
||||||
Once installed, your terminal shell will become the talk of the town _or your money back!_ With each keystroke in your command prompt, you'll take advantage of the hundreds of powerful plugins and beautiful themes. Strangers will come up to you in cafés and ask you, _"that is amazing! are you some sort of genius?"_
|
|
||||||
|
|
||||||
Finally, you'll begin to get the sort of attention that you have always felt you deserved. ...or maybe you'll use the time that you're saving to start flossing more often. 😬
|
|
||||||
|
|
||||||
To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter, and/or join us on Discord.
|
|
||||||
|
|
||||||
[![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh)
|
|
||||||
[![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/bpXWhnN)
|
|
||||||
|
|
||||||
## Getting Started
|
|
||||||
|
|
||||||
### Prerequisites
|
|
||||||
|
|
||||||
* A Unix-like operating system: macOS, Linux, BSD. On Windows: WSL is preferred, but cygwin or msys also mostly work.
|
|
||||||
* [Zsh](https://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (run `zsh --version` to confirm), check the following instructions here: [Installing ZSH](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH)
|
|
||||||
* `curl` or `wget` should be installed
|
|
||||||
* `git` should be installed
|
|
||||||
|
|
||||||
### Basic Installation
|
|
||||||
|
|
||||||
Oh My Zsh is installed by running one of the following commands in your terminal. You can install this via the command-line with either `curl` or `wget`.
|
|
||||||
|
|
||||||
#### via curl
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
|
||||||
```
|
|
||||||
|
|
||||||
#### via wget
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Manual inspection
|
|
||||||
|
|
||||||
It's a good idea to inspect the install script from projects you don't yet know. You can do
|
|
||||||
that by downloading the install script first, looking through it so everything looks normal,
|
|
||||||
then running it:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
curl -Lo install.sh https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
|
|
||||||
sh install.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
## Using Oh My Zsh
|
|
||||||
|
|
||||||
### Plugins
|
|
||||||
|
|
||||||
Oh My Zsh comes with a shitload of plugins to take advantage of. You can take a look in the [plugins](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins) directory and/or the [wiki](https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins) to see what's currently available.
|
|
||||||
|
|
||||||
#### Enabling Plugins
|
|
||||||
|
|
||||||
Once you spot a plugin (or several) that you'd like to use with Oh My Zsh, you'll need to enable them in the `.zshrc` file. You'll find the zshrc file in your `$HOME` directory. Open it with your favorite text editor and you'll see a spot to list all the plugins you want to load.
|
|
||||||
|
|
||||||
```shell
|
|
||||||
vi ~/.zshrc
|
|
||||||
```
|
|
||||||
|
|
||||||
For example, this might begin to look like this:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
plugins=(
|
|
||||||
git
|
|
||||||
bundler
|
|
||||||
dotenv
|
|
||||||
osx
|
|
||||||
rake
|
|
||||||
rbenv
|
|
||||||
ruby
|
|
||||||
)
|
|
||||||
```
|
|
||||||
|
|
||||||
_Note that the plugins are separated by whitespace. **Do not** use commas between them._
|
|
||||||
|
|
||||||
#### Using Plugins
|
|
||||||
|
|
||||||
Most plugins (should! we're working on this) include a __README__, which documents how to use them.
|
|
||||||
|
|
||||||
### Themes
|
|
||||||
|
|
||||||
We'll admit it. Early in the Oh My Zsh world, we may have gotten a bit too theme happy. We have over one hundred themes now bundled. Most of them have [screenshots](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes) on the wiki. Check them out!
|
|
||||||
|
|
||||||
#### Selecting a Theme
|
|
||||||
|
|
||||||
_Robby's theme is the default one. It's not the fanciest one. It's not the simplest one. It's just the right one (for him)._
|
|
||||||
|
|
||||||
Once you find a theme that you'd like to use, you will need to edit the `~/.zshrc` file. You'll see an environment variable (all caps) in there that looks like:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
ZSH_THEME="robbyrussell"
|
|
||||||
```
|
|
||||||
|
|
||||||
To use a different theme, simply change the value to match the name of your desired theme. For example:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
ZSH_THEME="agnoster" # (this is one of the fancy ones)
|
|
||||||
# see https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#agnoster
|
|
||||||
```
|
|
||||||
|
|
||||||
_Note: many themes require installing the [Powerline Fonts](https://github.com/powerline/fonts) in order to render properly._
|
|
||||||
|
|
||||||
Open up a new terminal window and your prompt should look something like this:
|
|
||||||
|
|
||||||
![Agnoster theme](https://cloud.githubusercontent.com/assets/2618447/6316862/70f58fb6-ba03-11e4-82c9-c083bf9a6574.png)
|
|
||||||
|
|
||||||
In case you did not find a suitable theme for your needs, please have a look at the wiki for [more of them](https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes).
|
|
||||||
|
|
||||||
If you're feeling feisty, you can let the computer select one randomly for you each time you open a new terminal window.
|
|
||||||
|
|
||||||
|
|
||||||
```shell
|
|
||||||
ZSH_THEME="random" # (...please let it be pie... please be some pie..)
|
|
||||||
```
|
|
||||||
|
|
||||||
And if you want to pick random theme from a list of your favorite themes:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
ZSH_THEME_RANDOM_CANDIDATES=(
|
|
||||||
"robbyrussell"
|
|
||||||
"agnoster"
|
|
||||||
)
|
|
||||||
```
|
|
||||||
|
|
||||||
### FAQ
|
|
||||||
|
|
||||||
If you have some more questions or issues, you might find a solution in our [FAQ](https://github.com/ohmyzsh/ohmyzsh/wiki/FAQ).
|
|
||||||
|
|
||||||
## Advanced Topics
|
|
||||||
|
|
||||||
If you're the type that likes to get their hands dirty, these sections might resonate.
|
|
||||||
|
|
||||||
### Advanced Installation
|
|
||||||
|
|
||||||
Some users may want to manually install Oh My Zsh, or change the default path or other settings that
|
|
||||||
the installer accepts (these settings are also documented at the top of the install script).
|
|
||||||
|
|
||||||
#### Custom Directory
|
|
||||||
|
|
||||||
The default location is `~/.oh-my-zsh` (hidden in your home directory)
|
|
||||||
|
|
||||||
If you'd like to change the install directory with the `ZSH` environment variable, either by running
|
|
||||||
`export ZSH=/your/path` before installing, or by setting it before the end of the install pipeline
|
|
||||||
like this:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
ZSH="$HOME/.dotfiles/oh-my-zsh" sh install.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Unattended install
|
|
||||||
|
|
||||||
If you're running the Oh My Zsh install script as part of an automated install, you can pass the
|
|
||||||
flag `--unattended` to the `install.sh` script. This will have the effect of not trying to change
|
|
||||||
the default shell, and also won't run `zsh` when the installation has finished.
|
|
||||||
|
|
||||||
```shell
|
|
||||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Installing from a forked repository
|
|
||||||
|
|
||||||
The install script also accepts these variables to allow installation of a different repository:
|
|
||||||
|
|
||||||
- `REPO` (default: `ohmyzsh/ohmyzsh`): this takes the form of `owner/repository`. If you set
|
|
||||||
this variable, the installer will look for a repository at `https://github.com/{owner}/{repository}`.
|
|
||||||
|
|
||||||
- `REMOTE` (default: `https://github.com/${REPO}.git`): this is the full URL of the git repository
|
|
||||||
clone. You can use this setting if you want to install from a fork that is not on GitHub (GitLab,
|
|
||||||
Bitbucket...) or if you want to clone with SSH instead of HTTPS (`git@github.com:user/project.git`).
|
|
||||||
|
|
||||||
_NOTE: it's incompatible with setting the `REPO` variable. This setting will take precedence._
|
|
||||||
|
|
||||||
- `BRANCH` (default: `master`): you can use this setting if you want to change the default branch to be
|
|
||||||
checked out when cloning the repository. This might be useful for testing a Pull Request, or if you
|
|
||||||
want to use a branch other than `master`.
|
|
||||||
|
|
||||||
For example:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
REPO=apjanke/oh-my-zsh BRANCH=edge sh install.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Manual Installation
|
|
||||||
|
|
||||||
##### 1. Clone the repository:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh
|
|
||||||
```
|
|
||||||
|
|
||||||
##### 2. *Optionally*, backup your existing `~/.zshrc` file:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
cp ~/.zshrc ~/.zshrc.orig
|
|
||||||
```
|
|
||||||
|
|
||||||
##### 3. Create a new zsh configuration file
|
|
||||||
|
|
||||||
You can create a new zsh config file by copying the template that we have included for you.
|
|
||||||
|
|
||||||
```shell
|
|
||||||
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
|
|
||||||
```
|
|
||||||
|
|
||||||
##### 4. Change your default shell
|
|
||||||
|
|
||||||
```shell
|
|
||||||
chsh -s $(which zsh)
|
|
||||||
```
|
|
||||||
|
|
||||||
You must log out from your user session and log back in to see this change.
|
|
||||||
|
|
||||||
##### 5. Initialize your new zsh configuration
|
|
||||||
|
|
||||||
Once you open up a new terminal window, it should load zsh with Oh My Zsh's configuration.
|
|
||||||
|
|
||||||
### Installation Problems
|
|
||||||
|
|
||||||
If you have any hiccups installing, here are a few common fixes.
|
|
||||||
|
|
||||||
* You _might_ need to modify your `PATH` in `~/.zshrc` if you're not able to find some commands after
|
|
||||||
switching to `oh-my-zsh`.
|
|
||||||
* If you installed manually or changed the install location, check the `ZSH` environment variable in
|
|
||||||
`~/.zshrc`.
|
|
||||||
|
|
||||||
### Custom Plugins and Themes
|
|
||||||
|
|
||||||
If you want to override any of the default behaviors, just add a new file (ending in `.zsh`) in the `custom/` directory.
|
|
||||||
|
|
||||||
If you have many functions that go well together, you can put them as a `XYZ.plugin.zsh` file in the `custom/plugins/` directory and then enable this plugin.
|
|
||||||
|
|
||||||
If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`.
|
|
||||||
|
|
||||||
## Getting Updates
|
|
||||||
|
|
||||||
By default, you will be prompted to check for upgrades every few weeks. If you would like `oh-my-zsh` to automatically upgrade itself without prompting you, set the following in your `~/.zshrc`:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
DISABLE_UPDATE_PROMPT=true
|
|
||||||
```
|
|
||||||
|
|
||||||
To disable automatic upgrades, set the following in your `~/.zshrc`:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
DISABLE_AUTO_UPDATE=true
|
|
||||||
```
|
|
||||||
|
|
||||||
### Manual Updates
|
|
||||||
|
|
||||||
If you'd like to upgrade at any point in time (maybe someone just released a new plugin and you don't want to wait a week?) you just need to run:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
upgrade_oh_my_zsh
|
|
||||||
```
|
|
||||||
|
|
||||||
Magic! 🎉
|
|
||||||
|
|
||||||
## Uninstalling Oh My Zsh
|
|
||||||
|
|
||||||
Oh My Zsh isn't for everyone. We'll miss you, but we want to make this an easy breakup.
|
|
||||||
|
|
||||||
If you want to uninstall `oh-my-zsh`, just run `uninstall_oh_my_zsh` from the command-line. It will remove itself and revert your previous `bash` or `zsh` configuration.
|
|
||||||
|
|
||||||
## How do I contribute to Oh My Zsh?
|
|
||||||
|
|
||||||
Before you participate in our delightful community, please read the [code of conduct](CODE_OF_CONDUCT.md).
|
|
||||||
|
|
||||||
I'm far from being a [Zsh](https://www.zsh.org/) expert and suspect there are many ways to improve – if you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests!
|
|
||||||
|
|
||||||
We also need people to test out pull-requests. So take a look through [the open issues](https://github.com/ohmyzsh/ohmyzsh/issues) and help where you can.
|
|
||||||
|
|
||||||
See [Contributing](CONTRIBUTING.md) for more details.
|
|
||||||
|
|
||||||
### Do NOT send us themes
|
|
||||||
|
|
||||||
We have (more than) enough themes for the time being. Please add your theme to the [external themes](https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes) wiki page.
|
|
||||||
|
|
||||||
## Contributors
|
|
||||||
|
|
||||||
Oh My Zsh has a vibrant community of happy users and delightful contributors. Without all the time and help from our contributors, it wouldn't be so awesome.
|
|
||||||
|
|
||||||
Thank you so much!
|
|
||||||
|
|
||||||
## Follow Us
|
|
||||||
|
|
||||||
We're on the social media.
|
|
||||||
|
|
||||||
* [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter. You should follow it.
|
|
||||||
* [Oh My Zsh](https://www.facebook.com/Oh-My-Zsh-296616263819290/) on Facebook.
|
|
||||||
|
|
||||||
## Merchandise
|
|
||||||
|
|
||||||
We have [stickers, shirts, and coffee mugs available](https://shop.planetargon.com/collections/oh-my-zsh?utm_source=github) for you to show off your love of Oh My Zsh. Again, you will become the talk of the town!
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
Oh My Zsh is released under the [MIT license](LICENSE.txt).
|
|
||||||
|
|
||||||
## About Planet Argon
|
|
||||||
|
|
||||||
![Planet Argon](https://pa-github-assets.s3.amazonaws.com/PARGON_logo_digital_COL-small.jpg)
|
|
||||||
|
|
||||||
Oh My Zsh was started by the team at [Planet Argon](https://www.planetargon.com/?utm_source=github), a [Ruby on Rails development agency](https://www.planetargon.com/skills/ruby-on-rails-development?utm_source=github). Check out our [other open source projects](https://www.planetargon.com/open-source?utm_source=github).
|
|
0
zsh/.oh-my-zsh_old/cache/.gitkeep
vendored
0
zsh/.oh-my-zsh_old/cache/.gitkeep
vendored
1
zsh/.oh-my-zsh_old/cache/.zsh-update
vendored
1
zsh/.oh-my-zsh_old/cache/.zsh-update
vendored
@ -1 +0,0 @@
|
|||||||
LAST_EPOCH=18311
|
|
4
zsh/.oh-my-zsh_old/cache/DEBS_avail
vendored
4
zsh/.oh-my-zsh_old/cache/DEBS_avail
vendored
File diff suppressed because one or more lines are too long
4
zsh/.oh-my-zsh_old/cache/DEBS_installed
vendored
4
zsh/.oh-my-zsh_old/cache/DEBS_installed
vendored
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
/home/tim/.kubectx/completion/kubectx.zsh
|
|
@ -1 +0,0 @@
|
|||||||
/home/tim/.kubectx/completion/kubens.zsh
|
|
@ -1,10 +0,0 @@
|
|||||||
# You can put files here to add functionality separated per file, which
|
|
||||||
# will be ignored by git.
|
|
||||||
# Files on the custom/ directory will be automatically loaded by the init
|
|
||||||
# script, in alphabetical order.
|
|
||||||
|
|
||||||
# For example: add yourself some shortcuts to projects you often work on.
|
|
||||||
#
|
|
||||||
# brainstormr=~/Projects/development/planetargon/brainstormr
|
|
||||||
# cd $brainstormr
|
|
||||||
#
|
|
@ -1,2 +0,0 @@
|
|||||||
# Add your own custom plugins in the custom/plugins directory. Plugins placed
|
|
||||||
# here will override ones with the same name in the main plugins directory.
|
|
@ -1,4 +0,0 @@
|
|||||||
# Put your custom themes in this folder.
|
|
||||||
# Example:
|
|
||||||
|
|
||||||
PROMPT="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "
|
|
@ -1 +0,0 @@
|
|||||||
*.zwc
|
|
@ -1,22 +0,0 @@
|
|||||||
Copyright (c) 2009-2014 Robby Russell and contributors (see https://github.com/robbyrussell/oh-my-zsh/contributors)
|
|
||||||
Copyright (c) 2014-2017 Ben Hilburn <bhilburn@gmail.com>
|
|
||||||
Copyright (c) 2019 Roman Perepelitsa <roman.perepelitsa@gmail.com> and contributors (see https://github.com/romkatv/powerlevel10k/contributors)
|
|
||||||
|
|
||||||
MIT LICENSE
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
||||||
this software and associated documentation files (the "Software"), to deal in
|
|
||||||
the Software without restriction, including without limitation the rights to
|
|
||||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
||||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
||||||
subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
||||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
||||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
||||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
||||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -1,607 +0,0 @@
|
|||||||
# Powerlevel10k
|
|
||||||
|
|
||||||
Powerlevel10k is a theme for ZSH. It's fast, flexible and easy to install and configure.
|
|
||||||
|
|
||||||
Powerlevel10k can be used as a [fast](#is-it-really-fast) drop-in replacement for
|
|
||||||
[Powerlevel9k](https://github.com/bhilburn/powerlevel9k). When given the same configuration options
|
|
||||||
it will generate the same prompt.
|
|
||||||
|
|
||||||
![Powerlevel10k](https://raw.githubusercontent.com/romkatv/powerlevel10k/master/powerlevel10k.png)
|
|
||||||
|
|
||||||
## Table of Contents
|
|
||||||
|
|
||||||
1. [Installation](#installation)
|
|
||||||
1. [Manual](#manual)
|
|
||||||
1. [Oh My Zsh](#oh-my-zsh)
|
|
||||||
1. [Prezto](#prezto)
|
|
||||||
1. [Zim](#zim)
|
|
||||||
1. [Antigen](#antigen)
|
|
||||||
1. [Zplug](#zplug)
|
|
||||||
1. [Zgen](#zgen)
|
|
||||||
1. [Antibody](#antibody)
|
|
||||||
1. [Zplugin](#zplugin)
|
|
||||||
1. [Configuration](#configuration)
|
|
||||||
1. [For new users](#for-new-users)
|
|
||||||
1. [For Powerlevel9k users](#for-powerlevel9k-users)
|
|
||||||
1. [Fonts](#fonts)
|
|
||||||
1. [Recommended: Meslo Nerd Font patched for Powerlevel10k](#recommended-meslo-nerd-font-patched-for-powerlevel10k)
|
|
||||||
1. [Try it in Docker](#try-it-in-docker)
|
|
||||||
1. [Is it really fast?](#is-it-really-fast)
|
|
||||||
1. [License](#license)
|
|
||||||
1. [FAQ](#faq)
|
|
||||||
1. [What is instant prompt?](#what-is-instant-prompt)
|
|
||||||
1. [Why do my icons and/or powerline symbols look bad?](#why-do-my-icons-andor-powerline-symbols-look-bad)
|
|
||||||
1. [I'm getting "character not in range" error. What gives?](#im-getting-character-not-in-range-error-what-gives)
|
|
||||||
1. [Why is my cursor in the wrong place?](#why-is-my-cursor-in-the-wrong-place)
|
|
||||||
1. [Why is my prompt wrapping around in a weird way?](#why-is-my-prompt-wrapping-around-in-a-weird-way)
|
|
||||||
1. [Why is my right prompt in the wrong place?](#why-is-my-right-prompt-in-the-wrong-place)
|
|
||||||
1. [Why does the configuration wizard run automatically every time I start zsh?](#why-does-the-configuration-wizard-run-automatically-every-time-i-start-zsh)
|
|
||||||
1. [I cannot install the recommended font. Help!](#i-cannot-install-the-recommended-font-help)
|
|
||||||
1. [Why do I have a question mark symbol in my prompt? Is my font broken?](#why-do-i-have-a-question-mark-symbol-in-my-prompt-is-my-font-broken)
|
|
||||||
1. [What do different symbols in Git status mean?](#what-do-different-symbols-in-git-status-mean)
|
|
||||||
1. [How do I change the format of Git status?](#how-do-i-change-the-format-of-git-status)
|
|
||||||
1. [How do I add username and/or hostname to prompt?](#how-do-i-add-username-andor-hostname-to-prompt)
|
|
||||||
1. [How do I change colors?](#how-do-i-change-colors)
|
|
||||||
1. [Why some prompt segments appear and disappear as I'm typing?](#why-some-prompt-segments-appear-and-disappear-as-im-typing)
|
|
||||||
1. [Why does Powerlevel10k spawn extra processes?](#why-does-powerlevel10k-spawn-extra-processes)
|
|
||||||
1. [Are there configuration options that make Powerlevel10k slow?](#are-there-configuration-options-that-make-powerlevel10k-slow)
|
|
||||||
1. [Is Powerlevel10k fast to load?](#is-powerlevel10k-fast-to-load)
|
|
||||||
1. [Does Powerlevel10k always render exactly the same prompt as Powerlevel9k given the same config?](#does-powerlevel10k-always-render-exactly-the-same-prompt-as-powerlevel9k-given-the-same-config)
|
|
||||||
1. [Is there an AUR package for Powerlevel10k?](#is-there-an-aur-package-for-powerlevel10k)
|
|
||||||
1. [I cannot make Powerlevel10k work with my plugin manager. Help!](#i-cannot-make-powerlevel10k-work-with-my-plugin-manager-help)
|
|
||||||
1. [What is the minimum supported zsh version?](#what-is-the-minimum-supported-zsh-version)
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
### Manual
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
|
|
||||||
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>! ~/.zshrc
|
|
||||||
```
|
|
||||||
|
|
||||||
This is the simplest kind of installation and it works even if you are using a plugin manager. Just
|
|
||||||
make sure to disable your current theme in your plugin manager. See
|
|
||||||
[FAQ](#i-cannot-make-powerlevel10k-work-with-my-plugin-manager-help) for help.
|
|
||||||
|
|
||||||
### Oh My Zsh
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
|
|
||||||
```
|
|
||||||
|
|
||||||
Set `ZSH_THEME=powerlevel10k/powerlevel10k` in your `~/.zshrc`.
|
|
||||||
|
|
||||||
### Prezto
|
|
||||||
|
|
||||||
Add `zstyle :prezto:module:prompt theme powerlevel10k` to your `~/.zpreztorc`.
|
|
||||||
|
|
||||||
### Zim
|
|
||||||
|
|
||||||
Add `zmodule romkatv/powerlevel10k` to your `.zimrc` and run `zimfw install`.
|
|
||||||
|
|
||||||
### Antigen
|
|
||||||
|
|
||||||
Add `antigen theme romkatv/powerlevel10k` to your `~/.zshrc`. Make sure you have `antigen apply`
|
|
||||||
somewhere after it.
|
|
||||||
|
|
||||||
### Zplug
|
|
||||||
|
|
||||||
Add `zplug romkatv/powerlevel10k, as:theme, depth:1` to your `~/.zshrc`.
|
|
||||||
|
|
||||||
### Zgen
|
|
||||||
|
|
||||||
Add `zgen load romkatv/powerlevel10k powerlevel10k` to your `~/.zshrc`.
|
|
||||||
|
|
||||||
### Antibody
|
|
||||||
|
|
||||||
Add `antibody bundle romkatv/powerlevel10k` to your `~/.zshrc`.
|
|
||||||
|
|
||||||
### Zplugin
|
|
||||||
|
|
||||||
Add `zplugin ice depth=1; zplugin light romkatv/powerlevel10k` to your `~/.zshrc`.
|
|
||||||
|
|
||||||
The use of `depth=1` ice is optional. Other types of ice are neither recommended nor officially
|
|
||||||
supported by Powerlevel10k.
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
### For new users
|
|
||||||
|
|
||||||
On the first run, Powerlevel10k configuration wizard will ask you a few questions and configure
|
|
||||||
your prompt. If it doesn't trigger automatically, type `p10k configure`. You can further customize
|
|
||||||
your prompt by editing `~/.p10k.zsh`.
|
|
||||||
|
|
||||||
### For Powerlevel9k users
|
|
||||||
|
|
||||||
If you've been using Powerlevel9k before, **do not remove the configuration options**. Powerlevel10k
|
|
||||||
will pick them up and provide you with the same prompt UI you are used to. Powerlevel10k recognized
|
|
||||||
all configuration options used by Powerlevel9k. See Powerlevel9k
|
|
||||||
[configuration guide](https://github.com/Powerlevel9k/powerlevel9k/blob/master/README.md#prompt-customization).
|
|
||||||
|
|
||||||
To go beyond the functionality of Powerlevel9k, type `p10k configure` and explore the unique styles
|
|
||||||
and features Powerlevel10k has to offer. You can further customize your prompt by editing
|
|
||||||
`~/.p10k.zsh`.
|
|
||||||
|
|
||||||
## Fonts
|
|
||||||
|
|
||||||
Powerlevel10k doesn't require custom fonts but can take advantage of them if they are available.
|
|
||||||
It works well with [Nerd Fonts](https://github.com/ryanoasis/nerd-fonts),
|
|
||||||
[Source Code Pro](https://github.com/adobe-fonts/source-code-pro),
|
|
||||||
[Font Awesome](https://fontawesome.com/), [Powerline](https://github.com/powerline/fonts), and even
|
|
||||||
the default system fonts. The full choice of style options is available only when using
|
|
||||||
[Nerd Fonts](https://github.com/ryanoasis/nerd-fonts).
|
|
||||||
|
|
||||||
### Recommended: Meslo Nerd Font patched for Powerlevel10k
|
|
||||||
|
|
||||||
Download these four ttf files:
|
|
||||||
- [MesloLGS NF Regular.ttf](https://github.com/romkatv/dotfiles-public/raw/master/.local/share/fonts/NerdFonts/MesloLGS%20NF%20Regular.ttf)
|
|
||||||
- [MesloLGS NF Bold.ttf](https://github.com/romkatv/dotfiles-public/raw/master/.local/share/fonts/NerdFonts/MesloLGS%20NF%20Bold.ttf)
|
|
||||||
- [MesloLGS NF Italic.ttf](https://github.com/romkatv/dotfiles-public/raw/master/.local/share/fonts/NerdFonts/MesloLGS%20NF%20Italic.ttf)
|
|
||||||
- [MesloLGS NF Bold Italic.ttf](https://github.com/romkatv/dotfiles-public/raw/master/.local/share/fonts/NerdFonts/MesloLGS%20NF%20Bold%20Italic.ttf)
|
|
||||||
|
|
||||||
Double-click on each file and press "Install". This will make `MesloLGS NF` font available to all
|
|
||||||
applications on your system. Configure your terminal to use this font:
|
|
||||||
|
|
||||||
- **iTerm2**: Type `p10k configure`, answer `Yes` when asked whether to install
|
|
||||||
*Meslo Nerd Font* and restart iTerm2 for the changes to take effect. Alternatively, open
|
|
||||||
*iTerm2 → Preferences → Profiles → Text* and set *Font* to `MesloLGS NF`.
|
|
||||||
- **Apple Terminal** Open *Terminal → Preferences → Profiles → Text*, click *Change* under *Font*
|
|
||||||
and select `MesloLGS NF` family.
|
|
||||||
- **Hyper**: Open *Hyper → Edit → Preferences* and change the value of `fontFamily` under
|
|
||||||
`module.exports.config` to `MesloLGS NF`.
|
|
||||||
- **Visual Studio Code**: Open *File → Preferences → Settings*, enter
|
|
||||||
`terminal.integrated.fontFamily` in the search box and set the value to `MesloLGS NF`.
|
|
||||||
- **GNOME Terminal** (the default Ubuntu terminal): Open *Terminal → Preferences* and click on the
|
|
||||||
selected profile under *Profiles*. Check *Custom font* under *Text Appearance* and select
|
|
||||||
`MesloLGS NF Regular`.
|
|
||||||
- **Konsole**: Open *Settings → Edit Current Profile → Appearance*, click *Select Font* and select
|
|
||||||
`MesloLGS NF Regular`.
|
|
||||||
- **Tilix**: Open *Tilix → Preferences* and click on the selected profile under *Profiles*. Check
|
|
||||||
*Custom font* under *Text Appearance* and select `MesloLGS NF Regular`.
|
|
||||||
- **Windows Console Host** (the old thing): Click the icon in the top left corner, then
|
|
||||||
*Properties → Font* and set *Font* to `MesloLGS NF`.
|
|
||||||
- **Windows Terminal** (the new thing): Open *Settings* (`Ctrl+,`), search for `fontFace` and set
|
|
||||||
value to `MesloLGS NF` for every profile.
|
|
||||||
- **Termux**: Type `p10k configure` and answer `Yes` when asked whether to install
|
|
||||||
*Meslo Nerd Font*.
|
|
||||||
|
|
||||||
Run `p10k configure` to pick the best style for your new font.
|
|
||||||
|
|
||||||
_Using a different terminal and know how to set the font for it? Share your knowledge by sending a PR
|
|
||||||
to expand the list!_
|
|
||||||
|
|
||||||
## Try it in Docker
|
|
||||||
|
|
||||||
Try Powerlevel10k in Docker. You can safely make any changes to the file system while trying out
|
|
||||||
the theme. Once you exit zsh, the image is deleted.
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
docker run -e TERM -it --rm debian:buster bash -uec '
|
|
||||||
apt update
|
|
||||||
apt install -y git zsh
|
|
||||||
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
|
|
||||||
echo "source ~/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc
|
|
||||||
cd ~/powerlevel10k
|
|
||||||
exec zsh'
|
|
||||||
```
|
|
||||||
|
|
||||||
## Is it really fast?
|
|
||||||
|
|
||||||
Yes.
|
|
||||||
|
|
||||||
[![asciicast](https://asciinema.org/a/NHRjK3BMePw66jtRVY2livHwZ.svg)](https://asciinema.org/a/NHRjK3BMePw66jtRVY2livHwZ)
|
|
||||||
|
|
||||||
Benchmark results obtained with
|
|
||||||
[zsh-prompt-benchmark](https://github.com/romkatv/zsh-prompt-benchmark) on an Intel i9-7900X
|
|
||||||
running Ubuntu 18.04 with the config from the demo.
|
|
||||||
|
|
||||||
| Theme | Prompt Latency |
|
|
||||||
|---------------------|---------------:|
|
|
||||||
| powerlevel9k/master | 1046 ms |
|
|
||||||
| powerlevel9k/next | 1005 ms |
|
|
||||||
| **powerlevel10k** | **8.7 ms** |
|
|
||||||
|
|
||||||
Powerlevel10k is over 100 times faster than Powerlevel9k in this benchmark.
|
|
||||||
|
|
||||||
In fairness, Powerlevel9k has acceptable latency when given a spartan configuration. If all you need
|
|
||||||
is the current directory without truncation or shortening, Powerlevel9k can render it for you in
|
|
||||||
17 ms. Powerlevel10k can do the same 30 times faster but it won't matter in practice because 17 ms
|
|
||||||
is fast enough (the threshold where latency becomes noticeable is around 50 ms). You have to be
|
|
||||||
careful with Powerlevel9k configuration as it's all too easy to make prompt frustratingly slow.
|
|
||||||
Powerlevel10k, on the other hand, doesn't require trading latency for utility -- it's virtually
|
|
||||||
instant with any configuration. It stays well below the 50 ms mark, leaving most of the latency
|
|
||||||
budget for other plugins you might install.
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
Powerlevel10k is released under the
|
|
||||||
[MIT license](https://github.com/romkatv/powerlevel10k/blob/master/LICENSE). Contributions are
|
|
||||||
covered by the same license.
|
|
||||||
|
|
||||||
## FAQ
|
|
||||||
|
|
||||||
### <a name='instant-prompt'></a>What is instant prompt?
|
|
||||||
|
|
||||||
*Instant Prompt* is an optional feature of Powerlevel10k. When enabled, it gives you a limited
|
|
||||||
prompt within a few milliseconds of starting zsh, allowing you to start hacking right away while zsh
|
|
||||||
is initializing. Once initialization is complete, the full-featured Powerlevel10k prompt will
|
|
||||||
seamlessly replace instant prompt.
|
|
||||||
|
|
||||||
You can enable instant prompt either by running `p10k configure` or by manually adding the following
|
|
||||||
code snippet at the top of `~/.zshrc`:
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
|
|
||||||
# Initialization code that may require console input (password prompts, [y/n]
|
|
||||||
# confirmations, etc.) must go above this block, everything else may go below.
|
|
||||||
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
|
||||||
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
|
||||||
fi
|
|
||||||
```
|
|
||||||
|
|
||||||
It's important that you copy the lines verbatim. Don't replace `source` with something else, don't
|
|
||||||
call `zcompile`, don't redirect output, etc.
|
|
||||||
|
|
||||||
When instant prompt is enabled, for the duration of zsh initialization standard input is redirected
|
|
||||||
to `/dev/null` and standard output with standard error are redirected to a temporary file. Once zsh
|
|
||||||
is fully initialized, standard file descriptors are restored and the content of the temporary file
|
|
||||||
is printed out.
|
|
||||||
|
|
||||||
When using instant prompt, you should carefully check any output that appears on zsh startup as it
|
|
||||||
may indicate that initialization has been altered, or perhaps even broken, by instant prompt.
|
|
||||||
Initialization code that may require console input, such as asking for a keyring password or for a
|
|
||||||
*[y/n]* confirmation, must be moved above the instant prompt preamble in `~/.zshrc`. Initialization
|
|
||||||
code that merely prints to console but never reads from it will work correctly with instant prompt,
|
|
||||||
although output that normally has colors may appear uncolored. You can either leave it be, suppress
|
|
||||||
the output, or move it above the instant prompt preamble.
|
|
||||||
|
|
||||||
Here's an example of `~/.zshrc` that breaks when instant prompt is enabled:
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
|
||||||
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
|
||||||
fi
|
|
||||||
|
|
||||||
keychain id_rsa --agents ssh # asks for password
|
|
||||||
chatty-script # spams to stdout even when everything is fine
|
|
||||||
```
|
|
||||||
|
|
||||||
Fixed version:
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
keychain id_rsa --agents ssh # moved before instant prompt
|
|
||||||
|
|
||||||
# OK to perform console I/O before this point.
|
|
||||||
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
|
||||||
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
|
||||||
fi
|
|
||||||
# From this point on, until zsh is fully initialized, console input won't work and
|
|
||||||
# console output may appear uncolored.
|
|
||||||
|
|
||||||
chatty-script >/dev/null # spam output suppressed
|
|
||||||
```
|
|
||||||
|
|
||||||
If `POWERLEVEL9K_INSTANT_PROMPT` is unset or set to `verbose`, Powerlevel10k will print a warning
|
|
||||||
when it detects console output during initialization to bring attention to potential issues. You can
|
|
||||||
silence this warning (without suppressing console output) with `POWERLEVEL9K_INSTANT_PROMPT=quiet`.
|
|
||||||
This is recommended if some initialization code in `~/.zshrc` prints to console and it's infeasible
|
|
||||||
to move it above the instant prompt preamble or to suppress its output. You can completely disable
|
|
||||||
instant prompt with `POWERLEVEL9K_INSTANT_PROMPT=off`. Do this if instant prompt breaks zsh
|
|
||||||
initialization and you don't know how to fix it.
|
|
||||||
|
|
||||||
*NOTE: Instant prompt requires zsh >= 5.4. It's OK to enable it even when using an older version of
|
|
||||||
zsh but it won't do anything.*
|
|
||||||
|
|
||||||
### Why do my icons and/or powerline symbols look bad?
|
|
||||||
|
|
||||||
It's likely your font's fault.
|
|
||||||
[Install the recommended font](#recommended-meslo-nerd-font-patched-for-powerlevel10k) and run
|
|
||||||
`p10k configure`.
|
|
||||||
|
|
||||||
### I'm getting "character not in range" error. What gives?
|
|
||||||
|
|
||||||
Type `echo '\u276F'`. If you get an error saying "zsh: character not in range", your locale
|
|
||||||
doesn't support UTF-8. You need to fix it. If you are running zsh over SSH, see
|
|
||||||
[this](https://github.com/romkatv/powerlevel10k/issues/153#issuecomment-518347833). If you are
|
|
||||||
running zsh locally, Google "set UTF-8 locale in *your OS*".
|
|
||||||
|
|
||||||
### Why is my cursor in the wrong place?
|
|
||||||
|
|
||||||
Type `echo '\u276F'`. If you get an error saying "zsh: character not in range", see the
|
|
||||||
[previous question](#im-getting-character-not-in-range-error-what-gives).
|
|
||||||
|
|
||||||
If the `echo` command prints `❯` but the cursor is still in the wrong place, install
|
|
||||||
[the recommended font](#recommended-meslo-nerd-font-patched-for-powerlevel10k) and run
|
|
||||||
`p10k configure`.
|
|
||||||
|
|
||||||
If this doesn't help, add `unset ZLE_RPROMPT_INDENT` at the bottom of `~/.zshrc`.
|
|
||||||
|
|
||||||
Still having issues? Run the following command to diagnose the problem:
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
() {
|
|
||||||
emulate -L zsh
|
|
||||||
setopt err_return no_unset
|
|
||||||
local text
|
|
||||||
print -rl -- 'Select a part of your prompt from the terminal window and paste it below.' ''
|
|
||||||
read -r '?Prompt: ' text
|
|
||||||
local -i len=${(m)#text}
|
|
||||||
local frame="+-${(pl.$len..-.):-}-+"
|
|
||||||
print -lr -- $frame "| $text |" $frame
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### If the prompt line aligns with the frame
|
|
||||||
|
|
||||||
```text
|
|
||||||
+------------------------------+
|
|
||||||
| romka@adam ✓ ~/powerlevel10k |
|
|
||||||
+------------------------------+
|
|
||||||
```
|
|
||||||
|
|
||||||
If the output of the command is aligned for every part of your prompt (left and right), this
|
|
||||||
indicates a bug in the theme or your config. Use this command to diagnose it:
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
print -rl -- ${(eq+)PROMPT} ${(eq+)RPROMPT}
|
|
||||||
```
|
|
||||||
|
|
||||||
Look for `%{...%}` and backslash escapes in the output. If there are any, they are the likely
|
|
||||||
culprits. Open an issue if you get stuck.
|
|
||||||
|
|
||||||
#### If the prompt line is longer than the frame
|
|
||||||
|
|
||||||
```text
|
|
||||||
+-----------------------------+
|
|
||||||
| romka@adam ✓ ~/powerlevel10k |
|
|
||||||
+-----------------------------+
|
|
||||||
```
|
|
||||||
|
|
||||||
This is usually caused by a terminal bug or misconfiguration that makes it print ambiguous-width
|
|
||||||
characters as double-width instead of single width. For example,
|
|
||||||
[this issue](https://github.com/romkatv/powerlevel10k/issues/165).
|
|
||||||
|
|
||||||
#### If the prompt line is shorter than the frame and is mangled
|
|
||||||
|
|
||||||
```text
|
|
||||||
+------------------------------+
|
|
||||||
| romka@adam ✓~/powerlevel10k |
|
|
||||||
+------------------------------+
|
|
||||||
```
|
|
||||||
|
|
||||||
Note that this prompt is different from the original as it's missing a space after the checkmark.
|
|
||||||
|
|
||||||
This can be caused by a low-level bug in macOS. See
|
|
||||||
[this issue](https://github.com/romkatv/powerlevel10k/issues/241).
|
|
||||||
|
|
||||||
#### If the prompt line is shorter than the frame and is not mangled
|
|
||||||
|
|
||||||
```text
|
|
||||||
+--------------------------------+
|
|
||||||
| romka@adam ✓ ~/powerlevel10k |
|
|
||||||
+--------------------------------+
|
|
||||||
```
|
|
||||||
|
|
||||||
This can be caused by misconfigured locale. See
|
|
||||||
[this issue](https://github.com/romkatv/powerlevel10k/issues/251).
|
|
||||||
|
|
||||||
### Why is my prompt wrapping around in a weird way?
|
|
||||||
|
|
||||||
See [Why is my cursor in the wrong place?](#why-is-my-cursor-in-the-wrong-place)
|
|
||||||
|
|
||||||
### Why is my right prompt in the wrong place?
|
|
||||||
|
|
||||||
See [Why is my cursor in the wrong place?](#why-is-my-cursor-in-the-wrong-place)
|
|
||||||
|
|
||||||
### Why does the configuration wizard run automatically every time I start zsh?
|
|
||||||
|
|
||||||
When Powerlevel10k starts, it automatically runs `p10k configure` if no `POWERLEVEL9K_*`
|
|
||||||
parameters are defined. Based on your prompt style choices, the configuration wizard creates
|
|
||||||
`~/.p10k.zsh` with a bunch of `POWERLEVEL9K_*` parameters in it and adds a line to `~/.zshrc` to
|
|
||||||
source this file. The next time you start zsh, the configuration wizard shouldn't run automatically.
|
|
||||||
If it does, this means the evaluation of `~/.zshrc` terminates prematurely before it reaches the
|
|
||||||
line that sources `~/.p10k.zsh`. This most often happens due to syntax errors in `~/.zshrc`. These
|
|
||||||
errors get hidden by the configuration wizard screen, so you don't notice them. Scroll up in the
|
|
||||||
first configuration wizard screen to see these errors. Alternatively, run
|
|
||||||
`POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true zsh` to start zsh without automatically running the
|
|
||||||
configuration wizard. Once you can see the errors, fix `~/.zshrc` to get rid of them.
|
|
||||||
|
|
||||||
### I cannot install the recommended font. Help!
|
|
||||||
|
|
||||||
Once you download [the recommended font](#recommended-meslo-nerd-font-patched-for-powerlevel10k),
|
|
||||||
you can install it just like any other font. Google "how to install fonts on *your OS*".
|
|
||||||
|
|
||||||
### Why do I have a question mark symbol in my prompt? Is my font broken?
|
|
||||||
|
|
||||||
If it looks like a regular `?`, that's normal. It means you have untracked files in the current Git
|
|
||||||
repository. Type `git status` to see these files. You can change this symbol or disable the display
|
|
||||||
of untracked files altogether. Search for `untracked files` in `~/.p10k.zsh`.
|
|
||||||
|
|
||||||
You can also get a weird-looking question mark in your prompt if your terminal's font is missing
|
|
||||||
some glyphs. To fix this problem,
|
|
||||||
[install the recommended font](#recommended-meslo-nerd-font-patched-for-powerlevel10k) and run
|
|
||||||
`p10k configure`.
|
|
||||||
|
|
||||||
### What do different symbols in Git status mean?
|
|
||||||
|
|
||||||
When using *Lean*, *Classic* or *Rainbow* style, Git status may look like this:
|
|
||||||
|
|
||||||
```text
|
|
||||||
feature:master ⇣42⇡42 *42 merge ~42 +42 !42 ?42
|
|
||||||
```
|
|
||||||
|
|
||||||
| Symbol | Meaning | Source |
|
|
||||||
| --------- | -------------------------------------------------------------------- | ------------------------------------------------------ |
|
|
||||||
| `feature` | current branch; replaced with `#tag` or `@commit` if not on a branch | `git status` |
|
|
||||||
| `master` | remote tracking branch; only shown if different from local branch | `git rev-parse --abbrev-ref --symbolic-full-name @{u}` |
|
|
||||||
| `⇣42` | this many commits behind the remote | `git status` |
|
|
||||||
| `⇡42` | this many commits ahead of the remote | `git status` |
|
|
||||||
| `*42` | this many stashes | `git stash list` |
|
|
||||||
| `merge` | repository state | `git status` |
|
|
||||||
| `~42` | this many merge conflicts | `git status` |
|
|
||||||
| `+42` | this many staged changes | `git status` |
|
|
||||||
| `!42` | this many unstaged changes | `git status` |
|
|
||||||
| `?42` | this many untracked files | `git status` |
|
|
||||||
|
|
||||||
See also: [How do I change the format of Git status?](#how-do-i-change-the-format-of-git-status)
|
|
||||||
|
|
||||||
### How do I change the format of Git status?
|
|
||||||
|
|
||||||
To change the format of Git status, open `~/.p10k.zsh`, search for `my_git_formatter` and edit its
|
|
||||||
source code.
|
|
||||||
|
|
||||||
### How do I add username and/or hostname to prompt?
|
|
||||||
|
|
||||||
When using *Lean*, *Classic* or *Rainbow* style, prompt shows `username@hostname` when you are
|
|
||||||
logged in as root or via SSH. There is little value in showing `username` or `hostname` when you are
|
|
||||||
logged in to your local machine as a normal user. So the absence of `username@hostname` in your
|
|
||||||
prompt is an indication that you are working locally and that you aren't root. You can change it,
|
|
||||||
however.
|
|
||||||
|
|
||||||
Open `~/.p10k.zsh`. Close to the top you can see the most important parameters that define which
|
|
||||||
segments are shown in your prompt. All generally useful prompt segments are listed in there. Some of
|
|
||||||
them are enabled, others are commented out. One of them is of interest to you.
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
|
|
||||||
...
|
|
||||||
context # user@hostname
|
|
||||||
...
|
|
||||||
)
|
|
||||||
```
|
|
||||||
|
|
||||||
Search for `context` to find the section in the config that lists parameters specific to this prompt
|
|
||||||
segment. You should see the following lines:
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
# Don't show context unless running with privileges or in SSH.
|
|
||||||
# Tip: Remove the next line to always show context.
|
|
||||||
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
|
|
||||||
```
|
|
||||||
|
|
||||||
If you follow the tip and remove (or comment out) the last line, you'll always see
|
|
||||||
`username@hostname` in prompt. You can change the format to just `username`, or change the color, by
|
|
||||||
adjusting the values of parameters nearby. There are plenty of comments to help you navigate.
|
|
||||||
|
|
||||||
Finally, you can move `context` segment to where you want it to be in your prompt. Perhaps somewhere
|
|
||||||
within `POWERLEVEL9K_LEFT_PROMPT_ELEMENTS`.
|
|
||||||
|
|
||||||
### Why some prompt segments appear and disappear as I'm typing?
|
|
||||||
|
|
||||||
Prompt segments can be configured to be shown only when the current command you are typing invokes
|
|
||||||
a releavant tool.
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
# Show prompt segment "kubecontext" only when the command you are typing
|
|
||||||
# invokes kubectl, helm, kubens or kubectx.
|
|
||||||
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx'
|
|
||||||
```
|
|
||||||
|
|
||||||
Configs created by `p10k configure` may contain parameters of this kind. To customize when different
|
|
||||||
prompt segments are shown, open `~/.p10k.zsh`, search for `SHOW_ON_COMMAND` and either remove these
|
|
||||||
parameters or change their values.
|
|
||||||
|
|
||||||
### How do I change colors?
|
|
||||||
|
|
||||||
Open `~/.p10k.zsh`, search for "color", "foreground" and "background" and change values of
|
|
||||||
appropriate parameters. Colors are specified using numbers from 0 to 255. Colors from 0 to 15 look
|
|
||||||
differently in different terminals. Many terminals also support customization of these colors
|
|
||||||
through color schemes or themes. Colors from 16 to 255 always look the same.
|
|
||||||
|
|
||||||
To see how different colors look in your terminal, run the following command:
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
|
|
||||||
```
|
|
||||||
|
|
||||||
### Why does Powerlevel10k spawn extra processes?
|
|
||||||
|
|
||||||
Powerlevel10k uses [gitstatus](https://github.com/romkatv/gitstatus) as the backend behind `vcs`
|
|
||||||
prompt; gitstatus spawns `gitstatusd` and `zsh`. See
|
|
||||||
[gitstatus](https://github.com/romkatv/gitstatus) for details. Powerlevel10k may also spawn `zsh`
|
|
||||||
to trigger async prompt refresh. To avoid security hazard, these background processes aren't shared
|
|
||||||
by different interactive shells.
|
|
||||||
|
|
||||||
### Are there configuration options that make Powerlevel10k slow?
|
|
||||||
|
|
||||||
No, Powerlevel10k is always fast, with any configuration you throw at it. If you have noticeable
|
|
||||||
prompt latency when using Powerlevel10k, please
|
|
||||||
[open an issue](https://github.com/romkatv/powerlevel10k/issues).
|
|
||||||
|
|
||||||
### Is Powerlevel10k fast to load?
|
|
||||||
|
|
||||||
Yes, provided that you are using zsh >= 5.4.
|
|
||||||
|
|
||||||
Loading time, or time to first prompt, can be measured with the following benchmark:
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
time (repeat 1000 zsh -dfis <<< 'source ~/powerlevel10k/powerlevel10k.zsh-theme')
|
|
||||||
```
|
|
||||||
|
|
||||||
*NOTE: This measures time to first complete prompt. Powerlevel10k can also display a
|
|
||||||
[limited prompt](#what-is-instant-prompt) before the full-featured prompt is ready.*
|
|
||||||
|
|
||||||
Running this command with `~/powerlevel10k` as the current directory on the same machine as in the
|
|
||||||
[prompt benchmark](#is-it-really-fast) takes 29 seconds (29 ms per invocation). This is about 6
|
|
||||||
times faster than powerlevel9k/master and 17 times faster than powerlevel9k/next.
|
|
||||||
|
|
||||||
### Does Powerlevel10k always render exactly the same prompt as Powerlevel9k given the same config?
|
|
||||||
|
|
||||||
This is the goal. You should be able to switch from Powerlevel9k to Powerlevel10k with no
|
|
||||||
visible changes except for performance. There are, however, several differences.
|
|
||||||
|
|
||||||
- By default only `git` vcs backend is enabled in Powerlevel10k. If you need `svn` and `hg`, you'll
|
|
||||||
need to add them to `POWERLEVEL9K_VCS_BACKENDS`.
|
|
||||||
- Powerlevel10k strives to be bug-compatible with Powerlevel9k but not when it comes to egregious
|
|
||||||
bugs. If you accidentally rely on these bugs, your prompt will differ between Powerlevel9k and
|
|
||||||
Powerlevel10k. Some examples:
|
|
||||||
- Powerlevel9k doesn't respect `ZLE_RPROMPT_INDENT`. As a result, right prompt in Powerlevel10k
|
|
||||||
can have an extra space at the end compared to Powerlevel9k. Set `ZLE_RPROMPT_INDENT=0` if you
|
|
||||||
don't want that space.
|
|
||||||
- Powerlevel9k ignores some options that are set after the theme is sourced while Powerlevel10k
|
|
||||||
respects all options. If you see different icons in Powerlevel9k and Powerlevel10k, you've
|
|
||||||
probably defined `POWERLEVEL9K_MODE` before sourcing the theme. This parameter gets ignored
|
|
||||||
by Powerlevel9k but honored by Powerlevel10k. If you want your prompt to look in Powerlevel10k
|
|
||||||
the same as in Powerlevel9k, remove `POWERLEVEL9K_MODE`.
|
|
||||||
- There are
|
|
||||||
[dozens more bugs](https://github.com/Powerlevel9k/powerlevel9k/issues/created_by/romkatv) in
|
|
||||||
Powerlevel9k that don't exist in Powerlevel10k.
|
|
||||||
|
|
||||||
If you notice any other changes in prompt appearance when switching from Powerlevel9k to
|
|
||||||
Powerlevel10k, please [open an issue](https://github.com/romkatv/powerlevel10k/issues).
|
|
||||||
|
|
||||||
### Is there an AUR package for Powerlevel10k?
|
|
||||||
|
|
||||||
Yes, [zsh-theme-powerlevel10k-git](https://aur.archlinux.org/packages/zsh-theme-powerlevel10k-git/).
|
|
||||||
This package is owned by an unaffiliated volunteer.
|
|
||||||
|
|
||||||
### I cannot make Powerlevel10k work with my plugin manager. Help!
|
|
||||||
|
|
||||||
If the [installation instructions](#installation) didn't work for you, try disabling your current
|
|
||||||
theme (so that you end up with no theme) and then installing Powerlevel10k manually.
|
|
||||||
|
|
||||||
1. Disable the current theme in your framework / plugin manager.
|
|
||||||
|
|
||||||
- **zplug:** Open `~/.zshrc` and remove the `zplug` command that refers to your current theme. For
|
|
||||||
example, if you are currently using Powerlevel9k, look for
|
|
||||||
`zplug bhilburn/powerlevel9k, use:powerlevel9k.zsh-theme`.
|
|
||||||
- **prezto:** Open `~/.zpreztorc` and put `zstyle :prezto:module:prompt theme off` in it. Remove
|
|
||||||
any other command that sets `theme` such as `zstyle :prezto:module:prompt theme powerlevel9k`.
|
|
||||||
- **oh-my-zsh:** Open `~/.zshrc` and remove the line that sets `ZSH_THEME`, such as
|
|
||||||
`ZSH_THEME=powerlevel9k/powerlevel9k`.
|
|
||||||
- **antigen:** Open `~/.zshrc` and remove the line that sets `antigen theme`, such as
|
|
||||||
`antigen theme powerlevel9k/powerlevel9k`.
|
|
||||||
|
|
||||||
2. Install Powerlevel10k manually.
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
git clone https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
|
|
||||||
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>! ~/.zshrc
|
|
||||||
```
|
|
||||||
|
|
||||||
This method of installation won't make anything slower or otherwise sub-par.
|
|
||||||
|
|
||||||
### What is the minimum supported zsh version?
|
|
||||||
|
|
||||||
Zsh 5.1 or newer should work. Fast startup requires zsh >= 5.4.
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,170 +0,0 @@
|
|||||||
# Config file for Powerlevel10k with the style of Pure (https://github.com/sindresorhus/pure).
|
|
||||||
#
|
|
||||||
# Differences from Pure:
|
|
||||||
#
|
|
||||||
# - Git:
|
|
||||||
# - `@c4d3ec2c` instead of something like `v1.4.0~11` when in detached HEAD state.
|
|
||||||
# - No automatic `git fetch` (the same as in Pure with `PURE_GIT_PULL=0`).
|
|
||||||
#
|
|
||||||
# Apart from the differences listed above, the replication of Pure prompt is exact. This includes
|
|
||||||
# even the questionable parts. For example, just like in Pure, there is no indication of Git status
|
|
||||||
# being stale; prompt symbol is the same in command, visual and overwrite vi modes; when prompt
|
|
||||||
# doesn't fit on one line, it wraps around with no attempt to shorten it.
|
|
||||||
#
|
|
||||||
# If you like the general style of Pure but not particularly attached to all its quirks, type
|
|
||||||
# `p10k configure` while having Powerlevel10k theme active and pick "Lean" style.
|
|
||||||
|
|
||||||
# Temporarily change options.
|
|
||||||
'builtin' 'local' '-a' 'p10k_config_opts'
|
|
||||||
[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases')
|
|
||||||
[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob')
|
|
||||||
[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
|
|
||||||
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
|
|
||||||
|
|
||||||
() {
|
|
||||||
emulate -L zsh
|
|
||||||
setopt no_unset
|
|
||||||
|
|
||||||
autoload -Uz is-at-least && is-at-least 5.1 || return
|
|
||||||
|
|
||||||
# Unset all configuration options.
|
|
||||||
unset -m 'POWERLEVEL9K_*'
|
|
||||||
|
|
||||||
# Prompt colors.
|
|
||||||
local grey=242
|
|
||||||
local red=1
|
|
||||||
local yellow=3
|
|
||||||
local blue=4
|
|
||||||
local magenta=5
|
|
||||||
local cyan=6
|
|
||||||
local white=7
|
|
||||||
|
|
||||||
# Left prompt segments.
|
|
||||||
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
|
|
||||||
dir # current directory
|
|
||||||
vcs # git status
|
|
||||||
context # user@host
|
|
||||||
command_execution_time # previous command duration
|
|
||||||
newline # \n
|
|
||||||
virtualenv # python virtual environment
|
|
||||||
prompt_char # prompt symbol
|
|
||||||
)
|
|
||||||
|
|
||||||
# Right prompt segments.
|
|
||||||
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()
|
|
||||||
|
|
||||||
# Basic style options that define the overall prompt look.
|
|
||||||
typeset -g POWERLEVEL9K_BACKGROUND= # transparent background
|
|
||||||
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE= # no surrounding whitespace
|
|
||||||
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' # separate segments with a space
|
|
||||||
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= # no end-of-line symbol
|
|
||||||
typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION= # no segment icons
|
|
||||||
|
|
||||||
# Add an empty line before each prompt except the first. This doesn't emulate the bug
|
|
||||||
# in Pure that makes prompt drift down whenever you use the ALT-C binding from fzf or similar.
|
|
||||||
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
|
|
||||||
|
|
||||||
# Magenta prompt symbol if the last command succeeded.
|
|
||||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS}_FOREGROUND=$magenta
|
|
||||||
# Red prompt symbol if the last command failed.
|
|
||||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS}_FOREGROUND=$red
|
|
||||||
# Default prompt symbol.
|
|
||||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯'
|
|
||||||
# Prompt symbol in command vi mode.
|
|
||||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮'
|
|
||||||
# Prompt symbol in visual vi mode is the same as in command mode.
|
|
||||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='❮'
|
|
||||||
# Prompt symbol in overwrite vi mode is the same as in command mode.
|
|
||||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=false
|
|
||||||
|
|
||||||
# Grey Python Virtual Environment.
|
|
||||||
typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=$grey
|
|
||||||
# Don't show Python version.
|
|
||||||
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false
|
|
||||||
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
|
|
||||||
|
|
||||||
# Blue current directory.
|
|
||||||
typeset -g POWERLEVEL9K_DIR_FOREGROUND=$blue
|
|
||||||
|
|
||||||
# Context format when root: user@host. The first part white, the rest grey.
|
|
||||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE="%F{$white}%n%f%F{$grey}@%m%f"
|
|
||||||
# Context format when not root: user@host. The whole thing grey.
|
|
||||||
typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE="%F{$grey}%n@%m%f"
|
|
||||||
# Don't show context unless root or in SSH.
|
|
||||||
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_CONTENT_EXPANSION=
|
|
||||||
|
|
||||||
# Show previous command duration only if it's >= 5s.
|
|
||||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=5
|
|
||||||
# Don't show fractional seconds. Thus, 7s rather than 7.3s.
|
|
||||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
|
|
||||||
# Duration format: 1d 2h 3m 4s.
|
|
||||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
|
|
||||||
# Yellow previous command duration.
|
|
||||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=$yellow
|
|
||||||
|
|
||||||
# Grey Git prompt. This makes stale prompts indistinguishable from up-to-date ones.
|
|
||||||
typeset -g POWERLEVEL9K_VCS_FOREGROUND=$grey
|
|
||||||
|
|
||||||
# Disable async loading indicator to make directories that aren't Git repositories
|
|
||||||
# indistinguishable from large Git repositories without known state.
|
|
||||||
typeset -g POWERLEVEL9K_VCS_LOADING_TEXT=
|
|
||||||
|
|
||||||
# Don't wait for Git status even for a millisecond, so that prompt always updates
|
|
||||||
# asynchronously when Git state changes.
|
|
||||||
typeset -g POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS=0
|
|
||||||
|
|
||||||
# Cyan ahead/behind arrows.
|
|
||||||
typeset -g POWERLEVEL9K_VCS_{INCOMING,OUTGOING}_CHANGESFORMAT_FOREGROUND=$cyan
|
|
||||||
# Don't show remote branch, current tag or stashes.
|
|
||||||
typeset -g POWERLEVEL9K_VCS_GIT_HOOKS=(vcs-detect-changes git-untracked git-aheadbehind)
|
|
||||||
# Don't show the branh icon.
|
|
||||||
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
|
|
||||||
# When in detached HEAD state, show @commit where branch normally goes.
|
|
||||||
typeset -g POWERLEVEL9K_VCS_COMMIT_ICON='@'
|
|
||||||
# Don't show staged, unstaged, untracked indicators.
|
|
||||||
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED}_ICON=$'\b'
|
|
||||||
# Show '*' when there are staged, unstaged or untracked files.
|
|
||||||
typeset -g POWERLEVEL9K_VCS_DIRTY_ICON='*'
|
|
||||||
# Show '⇣' if local branch is behind remote.
|
|
||||||
typeset -g POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON='⇣'
|
|
||||||
# Show '⇡' if local branch is ahead of remote.
|
|
||||||
typeset -g POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON='⇡'
|
|
||||||
# Don't show the number of commits next to the ahead/behind arrows.
|
|
||||||
typeset -g POWERLEVEL9K_VCS_{COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=1
|
|
||||||
# Remove space between '⇣' and '⇡'.
|
|
||||||
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${P9K_CONTENT/⇣* ⇡/⇣⇡}'
|
|
||||||
|
|
||||||
# Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt
|
|
||||||
# when accepting a command line. Supported values:
|
|
||||||
#
|
|
||||||
# - off: Don't change prompt when accepting a command line.
|
|
||||||
# - always: Trim down prompt when accepting a command line.
|
|
||||||
# - same-dir: Trim down prompt when accepting a command line unless this is the first command
|
|
||||||
# typed after changing current working directory.
|
|
||||||
typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off
|
|
||||||
|
|
||||||
# Instant prompt mode.
|
|
||||||
#
|
|
||||||
# - off: Disable instant prompt. Choose this if you've tried instant prompt and found
|
|
||||||
# it incompatible with your zsh configuration files.
|
|
||||||
# - quiet: Enable instant prompt and don't print warnings when detecting console output
|
|
||||||
# during zsh initialization. Choose this if you've read and understood
|
|
||||||
# https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
|
|
||||||
# - verbose: Enable instant prompt and print a warning when detecting console output during
|
|
||||||
# zsh initialization. Choose this if you've never tried instant prompt, haven't
|
|
||||||
# seen the warning, or if you are unsure what this all means.
|
|
||||||
typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose
|
|
||||||
|
|
||||||
# Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized.
|
|
||||||
# For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload
|
|
||||||
# can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you
|
|
||||||
# really need it.
|
|
||||||
typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true
|
|
||||||
|
|
||||||
# If p10k is already loaded, reload configuration.
|
|
||||||
# This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.
|
|
||||||
(( ! $+functions[p10k] )) || p10k reload
|
|
||||||
}
|
|
||||||
|
|
||||||
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
|
|
||||||
'builtin' 'unset' 'p10k_config_opts'
|
|
File diff suppressed because it is too large
Load Diff
@ -1,674 +0,0 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 3, 29 June 2007
|
|
||||||
|
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The GNU General Public License is a free, copyleft license for
|
|
||||||
software and other kinds of works.
|
|
||||||
|
|
||||||
The licenses for most software and other practical works are designed
|
|
||||||
to take away your freedom to share and change the works. By contrast,
|
|
||||||
the GNU General Public License is intended to guarantee your freedom to
|
|
||||||
share and change all versions of a program--to make sure it remains free
|
|
||||||
software for all its users. We, the Free Software Foundation, use the
|
|
||||||
GNU General Public License for most of our software; it applies also to
|
|
||||||
any other work released this way by its authors. You can apply it to
|
|
||||||
your programs, too.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
|
||||||
have the freedom to distribute copies of free software (and charge for
|
|
||||||
them if you wish), that you receive source code or can get it if you
|
|
||||||
want it, that you can change the software or use pieces of it in new
|
|
||||||
free programs, and that you know you can do these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to prevent others from denying you
|
|
||||||
these rights or asking you to surrender the rights. Therefore, you have
|
|
||||||
certain responsibilities if you distribute copies of the software, or if
|
|
||||||
you modify it: responsibilities to respect the freedom of others.
|
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
|
||||||
gratis or for a fee, you must pass on to the recipients the same
|
|
||||||
freedoms that you received. You must make sure that they, too, receive
|
|
||||||
or can get the source code. And you must show them these terms so they
|
|
||||||
know their rights.
|
|
||||||
|
|
||||||
Developers that use the GNU GPL protect your rights with two steps:
|
|
||||||
(1) assert copyright on the software, and (2) offer you this License
|
|
||||||
giving you legal permission to copy, distribute and/or modify it.
|
|
||||||
|
|
||||||
For the developers' and authors' protection, the GPL clearly explains
|
|
||||||
that there is no warranty for this free software. For both users' and
|
|
||||||
authors' sake, the GPL requires that modified versions be marked as
|
|
||||||
changed, so that their problems will not be attributed erroneously to
|
|
||||||
authors of previous versions.
|
|
||||||
|
|
||||||
Some devices are designed to deny users access to install or run
|
|
||||||
modified versions of the software inside them, although the manufacturer
|
|
||||||
can do so. This is fundamentally incompatible with the aim of
|
|
||||||
protecting users' freedom to change the software. The systematic
|
|
||||||
pattern of such abuse occurs in the area of products for individuals to
|
|
||||||
use, which is precisely where it is most unacceptable. Therefore, we
|
|
||||||
have designed this version of the GPL to prohibit the practice for those
|
|
||||||
products. If such problems arise substantially in other domains, we
|
|
||||||
stand ready to extend this provision to those domains in future versions
|
|
||||||
of the GPL, as needed to protect the freedom of users.
|
|
||||||
|
|
||||||
Finally, every program is threatened constantly by software patents.
|
|
||||||
States should not allow patents to restrict development and use of
|
|
||||||
software on general-purpose computers, but in those that do, we wish to
|
|
||||||
avoid the special danger that patents applied to a free program could
|
|
||||||
make it effectively proprietary. To prevent this, the GPL assures that
|
|
||||||
patents cannot be used to render the program non-free.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
0. Definitions.
|
|
||||||
|
|
||||||
"This License" refers to version 3 of the GNU General Public License.
|
|
||||||
|
|
||||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
|
||||||
works, such as semiconductor masks.
|
|
||||||
|
|
||||||
"The Program" refers to any copyrightable work licensed under this
|
|
||||||
License. Each licensee is addressed as "you". "Licensees" and
|
|
||||||
"recipients" may be individuals or organizations.
|
|
||||||
|
|
||||||
To "modify" a work means to copy from or adapt all or part of the work
|
|
||||||
in a fashion requiring copyright permission, other than the making of an
|
|
||||||
exact copy. The resulting work is called a "modified version" of the
|
|
||||||
earlier work or a work "based on" the earlier work.
|
|
||||||
|
|
||||||
A "covered work" means either the unmodified Program or a work based
|
|
||||||
on the Program.
|
|
||||||
|
|
||||||
To "propagate" a work means to do anything with it that, without
|
|
||||||
permission, would make you directly or secondarily liable for
|
|
||||||
infringement under applicable copyright law, except executing it on a
|
|
||||||
computer or modifying a private copy. Propagation includes copying,
|
|
||||||
distribution (with or without modification), making available to the
|
|
||||||
public, and in some countries other activities as well.
|
|
||||||
|
|
||||||
To "convey" a work means any kind of propagation that enables other
|
|
||||||
parties to make or receive copies. Mere interaction with a user through
|
|
||||||
a computer network, with no transfer of a copy, is not conveying.
|
|
||||||
|
|
||||||
An interactive user interface displays "Appropriate Legal Notices"
|
|
||||||
to the extent that it includes a convenient and prominently visible
|
|
||||||
feature that (1) displays an appropriate copyright notice, and (2)
|
|
||||||
tells the user that there is no warranty for the work (except to the
|
|
||||||
extent that warranties are provided), that licensees may convey the
|
|
||||||
work under this License, and how to view a copy of this License. If
|
|
||||||
the interface presents a list of user commands or options, such as a
|
|
||||||
menu, a prominent item in the list meets this criterion.
|
|
||||||
|
|
||||||
1. Source Code.
|
|
||||||
|
|
||||||
The "source code" for a work means the preferred form of the work
|
|
||||||
for making modifications to it. "Object code" means any non-source
|
|
||||||
form of a work.
|
|
||||||
|
|
||||||
A "Standard Interface" means an interface that either is an official
|
|
||||||
standard defined by a recognized standards body, or, in the case of
|
|
||||||
interfaces specified for a particular programming language, one that
|
|
||||||
is widely used among developers working in that language.
|
|
||||||
|
|
||||||
The "System Libraries" of an executable work include anything, other
|
|
||||||
than the work as a whole, that (a) is included in the normal form of
|
|
||||||
packaging a Major Component, but which is not part of that Major
|
|
||||||
Component, and (b) serves only to enable use of the work with that
|
|
||||||
Major Component, or to implement a Standard Interface for which an
|
|
||||||
implementation is available to the public in source code form. A
|
|
||||||
"Major Component", in this context, means a major essential component
|
|
||||||
(kernel, window system, and so on) of the specific operating system
|
|
||||||
(if any) on which the executable work runs, or a compiler used to
|
|
||||||
produce the work, or an object code interpreter used to run it.
|
|
||||||
|
|
||||||
The "Corresponding Source" for a work in object code form means all
|
|
||||||
the source code needed to generate, install, and (for an executable
|
|
||||||
work) run the object code and to modify the work, including scripts to
|
|
||||||
control those activities. However, it does not include the work's
|
|
||||||
System Libraries, or general-purpose tools or generally available free
|
|
||||||
programs which are used unmodified in performing those activities but
|
|
||||||
which are not part of the work. For example, Corresponding Source
|
|
||||||
includes interface definition files associated with source files for
|
|
||||||
the work, and the source code for shared libraries and dynamically
|
|
||||||
linked subprograms that the work is specifically designed to require,
|
|
||||||
such as by intimate data communication or control flow between those
|
|
||||||
subprograms and other parts of the work.
|
|
||||||
|
|
||||||
The Corresponding Source need not include anything that users
|
|
||||||
can regenerate automatically from other parts of the Corresponding
|
|
||||||
Source.
|
|
||||||
|
|
||||||
The Corresponding Source for a work in source code form is that
|
|
||||||
same work.
|
|
||||||
|
|
||||||
2. Basic Permissions.
|
|
||||||
|
|
||||||
All rights granted under this License are granted for the term of
|
|
||||||
copyright on the Program, and are irrevocable provided the stated
|
|
||||||
conditions are met. This License explicitly affirms your unlimited
|
|
||||||
permission to run the unmodified Program. The output from running a
|
|
||||||
covered work is covered by this License only if the output, given its
|
|
||||||
content, constitutes a covered work. This License acknowledges your
|
|
||||||
rights of fair use or other equivalent, as provided by copyright law.
|
|
||||||
|
|
||||||
You may make, run and propagate covered works that you do not
|
|
||||||
convey, without conditions so long as your license otherwise remains
|
|
||||||
in force. You may convey covered works to others for the sole purpose
|
|
||||||
of having them make modifications exclusively for you, or provide you
|
|
||||||
with facilities for running those works, provided that you comply with
|
|
||||||
the terms of this License in conveying all material for which you do
|
|
||||||
not control copyright. Those thus making or running the covered works
|
|
||||||
for you must do so exclusively on your behalf, under your direction
|
|
||||||
and control, on terms that prohibit them from making any copies of
|
|
||||||
your copyrighted material outside their relationship with you.
|
|
||||||
|
|
||||||
Conveying under any other circumstances is permitted solely under
|
|
||||||
the conditions stated below. Sublicensing is not allowed; section 10
|
|
||||||
makes it unnecessary.
|
|
||||||
|
|
||||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
|
||||||
|
|
||||||
No covered work shall be deemed part of an effective technological
|
|
||||||
measure under any applicable law fulfilling obligations under article
|
|
||||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
|
||||||
similar laws prohibiting or restricting circumvention of such
|
|
||||||
measures.
|
|
||||||
|
|
||||||
When you convey a covered work, you waive any legal power to forbid
|
|
||||||
circumvention of technological measures to the extent such circumvention
|
|
||||||
is effected by exercising rights under this License with respect to
|
|
||||||
the covered work, and you disclaim any intention to limit operation or
|
|
||||||
modification of the work as a means of enforcing, against the work's
|
|
||||||
users, your or third parties' legal rights to forbid circumvention of
|
|
||||||
technological measures.
|
|
||||||
|
|
||||||
4. Conveying Verbatim Copies.
|
|
||||||
|
|
||||||
You may convey verbatim copies of the Program's source code as you
|
|
||||||
receive it, in any medium, provided that you conspicuously and
|
|
||||||
appropriately publish on each copy an appropriate copyright notice;
|
|
||||||
keep intact all notices stating that this License and any
|
|
||||||
non-permissive terms added in accord with section 7 apply to the code;
|
|
||||||
keep intact all notices of the absence of any warranty; and give all
|
|
||||||
recipients a copy of this License along with the Program.
|
|
||||||
|
|
||||||
You may charge any price or no price for each copy that you convey,
|
|
||||||
and you may offer support or warranty protection for a fee.
|
|
||||||
|
|
||||||
5. Conveying Modified Source Versions.
|
|
||||||
|
|
||||||
You may convey a work based on the Program, or the modifications to
|
|
||||||
produce it from the Program, in the form of source code under the
|
|
||||||
terms of section 4, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) The work must carry prominent notices stating that you modified
|
|
||||||
it, and giving a relevant date.
|
|
||||||
|
|
||||||
b) The work must carry prominent notices stating that it is
|
|
||||||
released under this License and any conditions added under section
|
|
||||||
7. This requirement modifies the requirement in section 4 to
|
|
||||||
"keep intact all notices".
|
|
||||||
|
|
||||||
c) You must license the entire work, as a whole, under this
|
|
||||||
License to anyone who comes into possession of a copy. This
|
|
||||||
License will therefore apply, along with any applicable section 7
|
|
||||||
additional terms, to the whole of the work, and all its parts,
|
|
||||||
regardless of how they are packaged. This License gives no
|
|
||||||
permission to license the work in any other way, but it does not
|
|
||||||
invalidate such permission if you have separately received it.
|
|
||||||
|
|
||||||
d) If the work has interactive user interfaces, each must display
|
|
||||||
Appropriate Legal Notices; however, if the Program has interactive
|
|
||||||
interfaces that do not display Appropriate Legal Notices, your
|
|
||||||
work need not make them do so.
|
|
||||||
|
|
||||||
A compilation of a covered work with other separate and independent
|
|
||||||
works, which are not by their nature extensions of the covered work,
|
|
||||||
and which are not combined with it such as to form a larger program,
|
|
||||||
in or on a volume of a storage or distribution medium, is called an
|
|
||||||
"aggregate" if the compilation and its resulting copyright are not
|
|
||||||
used to limit the access or legal rights of the compilation's users
|
|
||||||
beyond what the individual works permit. Inclusion of a covered work
|
|
||||||
in an aggregate does not cause this License to apply to the other
|
|
||||||
parts of the aggregate.
|
|
||||||
|
|
||||||
6. Conveying Non-Source Forms.
|
|
||||||
|
|
||||||
You may convey a covered work in object code form under the terms
|
|
||||||
of sections 4 and 5, provided that you also convey the
|
|
||||||
machine-readable Corresponding Source under the terms of this License,
|
|
||||||
in one of these ways:
|
|
||||||
|
|
||||||
a) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by the
|
|
||||||
Corresponding Source fixed on a durable physical medium
|
|
||||||
customarily used for software interchange.
|
|
||||||
|
|
||||||
b) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by a
|
|
||||||
written offer, valid for at least three years and valid for as
|
|
||||||
long as you offer spare parts or customer support for that product
|
|
||||||
model, to give anyone who possesses the object code either (1) a
|
|
||||||
copy of the Corresponding Source for all the software in the
|
|
||||||
product that is covered by this License, on a durable physical
|
|
||||||
medium customarily used for software interchange, for a price no
|
|
||||||
more than your reasonable cost of physically performing this
|
|
||||||
conveying of source, or (2) access to copy the
|
|
||||||
Corresponding Source from a network server at no charge.
|
|
||||||
|
|
||||||
c) Convey individual copies of the object code with a copy of the
|
|
||||||
written offer to provide the Corresponding Source. This
|
|
||||||
alternative is allowed only occasionally and noncommercially, and
|
|
||||||
only if you received the object code with such an offer, in accord
|
|
||||||
with subsection 6b.
|
|
||||||
|
|
||||||
d) Convey the object code by offering access from a designated
|
|
||||||
place (gratis or for a charge), and offer equivalent access to the
|
|
||||||
Corresponding Source in the same way through the same place at no
|
|
||||||
further charge. You need not require recipients to copy the
|
|
||||||
Corresponding Source along with the object code. If the place to
|
|
||||||
copy the object code is a network server, the Corresponding Source
|
|
||||||
may be on a different server (operated by you or a third party)
|
|
||||||
that supports equivalent copying facilities, provided you maintain
|
|
||||||
clear directions next to the object code saying where to find the
|
|
||||||
Corresponding Source. Regardless of what server hosts the
|
|
||||||
Corresponding Source, you remain obligated to ensure that it is
|
|
||||||
available for as long as needed to satisfy these requirements.
|
|
||||||
|
|
||||||
e) Convey the object code using peer-to-peer transmission, provided
|
|
||||||
you inform other peers where the object code and Corresponding
|
|
||||||
Source of the work are being offered to the general public at no
|
|
||||||
charge under subsection 6d.
|
|
||||||
|
|
||||||
A separable portion of the object code, whose source code is excluded
|
|
||||||
from the Corresponding Source as a System Library, need not be
|
|
||||||
included in conveying the object code work.
|
|
||||||
|
|
||||||
A "User Product" is either (1) a "consumer product", which means any
|
|
||||||
tangible personal property which is normally used for personal, family,
|
|
||||||
or household purposes, or (2) anything designed or sold for incorporation
|
|
||||||
into a dwelling. In determining whether a product is a consumer product,
|
|
||||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
|
||||||
product received by a particular user, "normally used" refers to a
|
|
||||||
typical or common use of that class of product, regardless of the status
|
|
||||||
of the particular user or of the way in which the particular user
|
|
||||||
actually uses, or expects or is expected to use, the product. A product
|
|
||||||
is a consumer product regardless of whether the product has substantial
|
|
||||||
commercial, industrial or non-consumer uses, unless such uses represent
|
|
||||||
the only significant mode of use of the product.
|
|
||||||
|
|
||||||
"Installation Information" for a User Product means any methods,
|
|
||||||
procedures, authorization keys, or other information required to install
|
|
||||||
and execute modified versions of a covered work in that User Product from
|
|
||||||
a modified version of its Corresponding Source. The information must
|
|
||||||
suffice to ensure that the continued functioning of the modified object
|
|
||||||
code is in no case prevented or interfered with solely because
|
|
||||||
modification has been made.
|
|
||||||
|
|
||||||
If you convey an object code work under this section in, or with, or
|
|
||||||
specifically for use in, a User Product, and the conveying occurs as
|
|
||||||
part of a transaction in which the right of possession and use of the
|
|
||||||
User Product is transferred to the recipient in perpetuity or for a
|
|
||||||
fixed term (regardless of how the transaction is characterized), the
|
|
||||||
Corresponding Source conveyed under this section must be accompanied
|
|
||||||
by the Installation Information. But this requirement does not apply
|
|
||||||
if neither you nor any third party retains the ability to install
|
|
||||||
modified object code on the User Product (for example, the work has
|
|
||||||
been installed in ROM).
|
|
||||||
|
|
||||||
The requirement to provide Installation Information does not include a
|
|
||||||
requirement to continue to provide support service, warranty, or updates
|
|
||||||
for a work that has been modified or installed by the recipient, or for
|
|
||||||
the User Product in which it has been modified or installed. Access to a
|
|
||||||
network may be denied when the modification itself materially and
|
|
||||||
adversely affects the operation of the network or violates the rules and
|
|
||||||
protocols for communication across the network.
|
|
||||||
|
|
||||||
Corresponding Source conveyed, and Installation Information provided,
|
|
||||||
in accord with this section must be in a format that is publicly
|
|
||||||
documented (and with an implementation available to the public in
|
|
||||||
source code form), and must require no special password or key for
|
|
||||||
unpacking, reading or copying.
|
|
||||||
|
|
||||||
7. Additional Terms.
|
|
||||||
|
|
||||||
"Additional permissions" are terms that supplement the terms of this
|
|
||||||
License by making exceptions from one or more of its conditions.
|
|
||||||
Additional permissions that are applicable to the entire Program shall
|
|
||||||
be treated as though they were included in this License, to the extent
|
|
||||||
that they are valid under applicable law. If additional permissions
|
|
||||||
apply only to part of the Program, that part may be used separately
|
|
||||||
under those permissions, but the entire Program remains governed by
|
|
||||||
this License without regard to the additional permissions.
|
|
||||||
|
|
||||||
When you convey a copy of a covered work, you may at your option
|
|
||||||
remove any additional permissions from that copy, or from any part of
|
|
||||||
it. (Additional permissions may be written to require their own
|
|
||||||
removal in certain cases when you modify the work.) You may place
|
|
||||||
additional permissions on material, added by you to a covered work,
|
|
||||||
for which you have or can give appropriate copyright permission.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, for material you
|
|
||||||
add to a covered work, you may (if authorized by the copyright holders of
|
|
||||||
that material) supplement the terms of this License with terms:
|
|
||||||
|
|
||||||
a) Disclaiming warranty or limiting liability differently from the
|
|
||||||
terms of sections 15 and 16 of this License; or
|
|
||||||
|
|
||||||
b) Requiring preservation of specified reasonable legal notices or
|
|
||||||
author attributions in that material or in the Appropriate Legal
|
|
||||||
Notices displayed by works containing it; or
|
|
||||||
|
|
||||||
c) Prohibiting misrepresentation of the origin of that material, or
|
|
||||||
requiring that modified versions of such material be marked in
|
|
||||||
reasonable ways as different from the original version; or
|
|
||||||
|
|
||||||
d) Limiting the use for publicity purposes of names of licensors or
|
|
||||||
authors of the material; or
|
|
||||||
|
|
||||||
e) Declining to grant rights under trademark law for use of some
|
|
||||||
trade names, trademarks, or service marks; or
|
|
||||||
|
|
||||||
f) Requiring indemnification of licensors and authors of that
|
|
||||||
material by anyone who conveys the material (or modified versions of
|
|
||||||
it) with contractual assumptions of liability to the recipient, for
|
|
||||||
any liability that these contractual assumptions directly impose on
|
|
||||||
those licensors and authors.
|
|
||||||
|
|
||||||
All other non-permissive additional terms are considered "further
|
|
||||||
restrictions" within the meaning of section 10. If the Program as you
|
|
||||||
received it, or any part of it, contains a notice stating that it is
|
|
||||||
governed by this License along with a term that is a further
|
|
||||||
restriction, you may remove that term. If a license document contains
|
|
||||||
a further restriction but permits relicensing or conveying under this
|
|
||||||
License, you may add to a covered work material governed by the terms
|
|
||||||
of that license document, provided that the further restriction does
|
|
||||||
not survive such relicensing or conveying.
|
|
||||||
|
|
||||||
If you add terms to a covered work in accord with this section, you
|
|
||||||
must place, in the relevant source files, a statement of the
|
|
||||||
additional terms that apply to those files, or a notice indicating
|
|
||||||
where to find the applicable terms.
|
|
||||||
|
|
||||||
Additional terms, permissive or non-permissive, may be stated in the
|
|
||||||
form of a separately written license, or stated as exceptions;
|
|
||||||
the above requirements apply either way.
|
|
||||||
|
|
||||||
8. Termination.
|
|
||||||
|
|
||||||
You may not propagate or modify a covered work except as expressly
|
|
||||||
provided under this License. Any attempt otherwise to propagate or
|
|
||||||
modify it is void, and will automatically terminate your rights under
|
|
||||||
this License (including any patent licenses granted under the third
|
|
||||||
paragraph of section 11).
|
|
||||||
|
|
||||||
However, if you cease all violation of this License, then your
|
|
||||||
license from a particular copyright holder is reinstated (a)
|
|
||||||
provisionally, unless and until the copyright holder explicitly and
|
|
||||||
finally terminates your license, and (b) permanently, if the copyright
|
|
||||||
holder fails to notify you of the violation by some reasonable means
|
|
||||||
prior to 60 days after the cessation.
|
|
||||||
|
|
||||||
Moreover, your license from a particular copyright holder is
|
|
||||||
reinstated permanently if the copyright holder notifies you of the
|
|
||||||
violation by some reasonable means, this is the first time you have
|
|
||||||
received notice of violation of this License (for any work) from that
|
|
||||||
copyright holder, and you cure the violation prior to 30 days after
|
|
||||||
your receipt of the notice.
|
|
||||||
|
|
||||||
Termination of your rights under this section does not terminate the
|
|
||||||
licenses of parties who have received copies or rights from you under
|
|
||||||
this License. If your rights have been terminated and not permanently
|
|
||||||
reinstated, you do not qualify to receive new licenses for the same
|
|
||||||
material under section 10.
|
|
||||||
|
|
||||||
9. Acceptance Not Required for Having Copies.
|
|
||||||
|
|
||||||
You are not required to accept this License in order to receive or
|
|
||||||
run a copy of the Program. Ancillary propagation of a covered work
|
|
||||||
occurring solely as a consequence of using peer-to-peer transmission
|
|
||||||
to receive a copy likewise does not require acceptance. However,
|
|
||||||
nothing other than this License grants you permission to propagate or
|
|
||||||
modify any covered work. These actions infringe copyright if you do
|
|
||||||
not accept this License. Therefore, by modifying or propagating a
|
|
||||||
covered work, you indicate your acceptance of this License to do so.
|
|
||||||
|
|
||||||
10. Automatic Licensing of Downstream Recipients.
|
|
||||||
|
|
||||||
Each time you convey a covered work, the recipient automatically
|
|
||||||
receives a license from the original licensors, to run, modify and
|
|
||||||
propagate that work, subject to this License. You are not responsible
|
|
||||||
for enforcing compliance by third parties with this License.
|
|
||||||
|
|
||||||
An "entity transaction" is a transaction transferring control of an
|
|
||||||
organization, or substantially all assets of one, or subdividing an
|
|
||||||
organization, or merging organizations. If propagation of a covered
|
|
||||||
work results from an entity transaction, each party to that
|
|
||||||
transaction who receives a copy of the work also receives whatever
|
|
||||||
licenses to the work the party's predecessor in interest had or could
|
|
||||||
give under the previous paragraph, plus a right to possession of the
|
|
||||||
Corresponding Source of the work from the predecessor in interest, if
|
|
||||||
the predecessor has it or can get it with reasonable efforts.
|
|
||||||
|
|
||||||
You may not impose any further restrictions on the exercise of the
|
|
||||||
rights granted or affirmed under this License. For example, you may
|
|
||||||
not impose a license fee, royalty, or other charge for exercise of
|
|
||||||
rights granted under this License, and you may not initiate litigation
|
|
||||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
|
||||||
any patent claim is infringed by making, using, selling, offering for
|
|
||||||
sale, or importing the Program or any portion of it.
|
|
||||||
|
|
||||||
11. Patents.
|
|
||||||
|
|
||||||
A "contributor" is a copyright holder who authorizes use under this
|
|
||||||
License of the Program or a work on which the Program is based. The
|
|
||||||
work thus licensed is called the contributor's "contributor version".
|
|
||||||
|
|
||||||
A contributor's "essential patent claims" are all patent claims
|
|
||||||
owned or controlled by the contributor, whether already acquired or
|
|
||||||
hereafter acquired, that would be infringed by some manner, permitted
|
|
||||||
by this License, of making, using, or selling its contributor version,
|
|
||||||
but do not include claims that would be infringed only as a
|
|
||||||
consequence of further modification of the contributor version. For
|
|
||||||
purposes of this definition, "control" includes the right to grant
|
|
||||||
patent sublicenses in a manner consistent with the requirements of
|
|
||||||
this License.
|
|
||||||
|
|
||||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
|
||||||
patent license under the contributor's essential patent claims, to
|
|
||||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
|
||||||
propagate the contents of its contributor version.
|
|
||||||
|
|
||||||
In the following three paragraphs, a "patent license" is any express
|
|
||||||
agreement or commitment, however denominated, not to enforce a patent
|
|
||||||
(such as an express permission to practice a patent or covenant not to
|
|
||||||
sue for patent infringement). To "grant" such a patent license to a
|
|
||||||
party means to make such an agreement or commitment not to enforce a
|
|
||||||
patent against the party.
|
|
||||||
|
|
||||||
If you convey a covered work, knowingly relying on a patent license,
|
|
||||||
and the Corresponding Source of the work is not available for anyone
|
|
||||||
to copy, free of charge and under the terms of this License, through a
|
|
||||||
publicly available network server or other readily accessible means,
|
|
||||||
then you must either (1) cause the Corresponding Source to be so
|
|
||||||
available, or (2) arrange to deprive yourself of the benefit of the
|
|
||||||
patent license for this particular work, or (3) arrange, in a manner
|
|
||||||
consistent with the requirements of this License, to extend the patent
|
|
||||||
license to downstream recipients. "Knowingly relying" means you have
|
|
||||||
actual knowledge that, but for the patent license, your conveying the
|
|
||||||
covered work in a country, or your recipient's use of the covered work
|
|
||||||
in a country, would infringe one or more identifiable patents in that
|
|
||||||
country that you have reason to believe are valid.
|
|
||||||
|
|
||||||
If, pursuant to or in connection with a single transaction or
|
|
||||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
|
||||||
covered work, and grant a patent license to some of the parties
|
|
||||||
receiving the covered work authorizing them to use, propagate, modify
|
|
||||||
or convey a specific copy of the covered work, then the patent license
|
|
||||||
you grant is automatically extended to all recipients of the covered
|
|
||||||
work and works based on it.
|
|
||||||
|
|
||||||
A patent license is "discriminatory" if it does not include within
|
|
||||||
the scope of its coverage, prohibits the exercise of, or is
|
|
||||||
conditioned on the non-exercise of one or more of the rights that are
|
|
||||||
specifically granted under this License. You may not convey a covered
|
|
||||||
work if you are a party to an arrangement with a third party that is
|
|
||||||
in the business of distributing software, under which you make payment
|
|
||||||
to the third party based on the extent of your activity of conveying
|
|
||||||
the work, and under which the third party grants, to any of the
|
|
||||||
parties who would receive the covered work from you, a discriminatory
|
|
||||||
patent license (a) in connection with copies of the covered work
|
|
||||||
conveyed by you (or copies made from those copies), or (b) primarily
|
|
||||||
for and in connection with specific products or compilations that
|
|
||||||
contain the covered work, unless you entered into that arrangement,
|
|
||||||
or that patent license was granted, prior to 28 March 2007.
|
|
||||||
|
|
||||||
Nothing in this License shall be construed as excluding or limiting
|
|
||||||
any implied license or other defenses to infringement that may
|
|
||||||
otherwise be available to you under applicable patent law.
|
|
||||||
|
|
||||||
12. No Surrender of Others' Freedom.
|
|
||||||
|
|
||||||
If conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot convey a
|
|
||||||
covered work so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you may
|
|
||||||
not convey it at all. For example, if you agree to terms that obligate you
|
|
||||||
to collect a royalty for further conveying from those to whom you convey
|
|
||||||
the Program, the only way you could satisfy both those terms and this
|
|
||||||
License would be to refrain entirely from conveying the Program.
|
|
||||||
|
|
||||||
13. Use with the GNU Affero General Public License.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, you have
|
|
||||||
permission to link or combine any covered work with a work licensed
|
|
||||||
under version 3 of the GNU Affero General Public License into a single
|
|
||||||
combined work, and to convey the resulting work. The terms of this
|
|
||||||
License will continue to apply to the part which is the covered work,
|
|
||||||
but the special requirements of the GNU Affero General Public License,
|
|
||||||
section 13, concerning interaction through a network will apply to the
|
|
||||||
combination as such.
|
|
||||||
|
|
||||||
14. Revised Versions of this License.
|
|
||||||
|
|
||||||
The Free Software Foundation may publish revised and/or new versions of
|
|
||||||
the GNU General Public License from time to time. Such new versions will
|
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
|
||||||
address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the
|
|
||||||
Program specifies that a certain numbered version of the GNU General
|
|
||||||
Public License "or any later version" applies to it, you have the
|
|
||||||
option of following the terms and conditions either of that numbered
|
|
||||||
version or of any later version published by the Free Software
|
|
||||||
Foundation. If the Program does not specify a version number of the
|
|
||||||
GNU General Public License, you may choose any version ever published
|
|
||||||
by the Free Software Foundation.
|
|
||||||
|
|
||||||
If the Program specifies that a proxy can decide which future
|
|
||||||
versions of the GNU General Public License can be used, that proxy's
|
|
||||||
public statement of acceptance of a version permanently authorizes you
|
|
||||||
to choose that version for the Program.
|
|
||||||
|
|
||||||
Later license versions may give you additional or different
|
|
||||||
permissions. However, no additional obligations are imposed on any
|
|
||||||
author or copyright holder as a result of your choosing to follow a
|
|
||||||
later version.
|
|
||||||
|
|
||||||
15. Disclaimer of Warranty.
|
|
||||||
|
|
||||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
|
||||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
|
||||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
|
||||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
|
||||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
|
||||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
16. Limitation of Liability.
|
|
||||||
|
|
||||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
|
||||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
|
||||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
|
||||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
|
||||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
|
||||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
|
||||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
|
||||||
SUCH DAMAGES.
|
|
||||||
|
|
||||||
17. Interpretation of Sections 15 and 16.
|
|
||||||
|
|
||||||
If the disclaimer of warranty and limitation of liability provided
|
|
||||||
above cannot be given local legal effect according to their terms,
|
|
||||||
reviewing courts shall apply local law that most closely approximates
|
|
||||||
an absolute waiver of all civil liability in connection with the
|
|
||||||
Program, unless a warranty or assumption of liability accompanies a
|
|
||||||
copy of the Program in return for a fee.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
|
||||||
possible use to the public, the best way to achieve this is to make it
|
|
||||||
free software which everyone can redistribute and change under these terms.
|
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
|
||||||
to attach them to the start of each source file to most effectively
|
|
||||||
state the exclusion of warranty; and each file should have at least
|
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
If the program does terminal interaction, make it output a short
|
|
||||||
notice like this when it starts in an interactive mode:
|
|
||||||
|
|
||||||
<program> Copyright (C) <year> <name of author>
|
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
||||||
This is free software, and you are welcome to redistribute it
|
|
||||||
under certain conditions; type `show c' for details.
|
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
|
||||||
parts of the General Public License. Of course, your program's commands
|
|
||||||
might be different; for a GUI interface, you would use an "about box".
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or school,
|
|
||||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
|
||||||
For more information on this, and how to apply and follow the GNU GPL, see
|
|
||||||
<https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
The GNU General Public License does not permit incorporating your program
|
|
||||||
into proprietary programs. If your program is a subroutine library, you
|
|
||||||
may consider it more useful to permit linking proprietary applications with
|
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
|
||||||
Public License instead of this License. But first, please read
|
|
||||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
|
@ -1 +0,0 @@
|
|||||||
This is a bundled copy of [gitstatus](https://github.com/romkatv/gitstatus) ZSH plugin.
|
|
Binary file not shown.
@ -1,629 +0,0 @@
|
|||||||
# Copyright 2019 Roman Perepelitsa.
|
|
||||||
#
|
|
||||||
# This file is part of GitStatus. It provides ZSH bindings.
|
|
||||||
#
|
|
||||||
# GitStatus is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# GitStatus is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with GitStatus. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# ------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# Example: Start gitstatusd, send it a request, wait for response and print it.
|
|
||||||
#
|
|
||||||
# source ~/gitstatus/gitstatus.plugin.zsh
|
|
||||||
# gitstatus_start MY
|
|
||||||
# gitstatus_query -d $PWD MY
|
|
||||||
# typeset -m 'VCS_STATUS_*'
|
|
||||||
#
|
|
||||||
# Output:
|
|
||||||
#
|
|
||||||
# VCS_STATUS_ACTION=''
|
|
||||||
# VCS_STATUS_COMMIT=c000eddcff0fb38df2d0137efe24d9d2d900f209
|
|
||||||
# VCS_STATUS_COMMITS_AHEAD=0
|
|
||||||
# VCS_STATUS_COMMITS_BEHIND=0
|
|
||||||
# VCS_STATUS_HAS_CONFLICTED=0
|
|
||||||
# VCS_STATUS_HAS_STAGED=0
|
|
||||||
# VCS_STATUS_HAS_UNSTAGED=1
|
|
||||||
# VCS_STATUS_HAS_UNTRACKED=1
|
|
||||||
# VCS_STATUS_INDEX_SIZE=33
|
|
||||||
# VCS_STATUS_LOCAL_BRANCH=master
|
|
||||||
# VCS_STATUS_NUM_CONFLICTED=0
|
|
||||||
# VCS_STATUS_NUM_STAGED=0
|
|
||||||
# VCS_STATUS_NUM_UNSTAGED=1
|
|
||||||
# VCS_STATUS_NUM_STAGED_NEW=0
|
|
||||||
# VCS_STATUS_NUM_STAGED_DELETED=0
|
|
||||||
# VCS_STATUS_NUM_UNSTAGED_DELETED=0
|
|
||||||
# VCS_STATUS_NUM_UNTRACKED=1
|
|
||||||
# VCS_STATUS_REMOTE_BRANCH=master
|
|
||||||
# VCS_STATUS_REMOTE_NAME=origin
|
|
||||||
# VCS_STATUS_REMOTE_URL=git@github.com:romkatv/powerlevel10k.git
|
|
||||||
# VCS_STATUS_RESULT=ok-sync
|
|
||||||
# VCS_STATUS_STASHES=0
|
|
||||||
# VCS_STATUS_TAG=''
|
|
||||||
# VCS_STATUS_WORKDIR=/home/romka/powerlevel10k
|
|
||||||
|
|
||||||
[[ -o 'interactive' ]] || 'return'
|
|
||||||
|
|
||||||
# Temporarily change options.
|
|
||||||
'builtin' 'local' '-a' '_gitstatus_opts'
|
|
||||||
[[ ! -o 'aliases' ]] || _gitstatus_opts+=('aliases')
|
|
||||||
[[ ! -o 'sh_glob' ]] || _gitstatus_opts+=('sh_glob')
|
|
||||||
[[ ! -o 'no_brace_expand' ]] || _gitstatus_opts+=('no_brace_expand')
|
|
||||||
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
|
|
||||||
|
|
||||||
autoload -Uz add-zsh-hook
|
|
||||||
zmodload zsh/datetime zsh/system
|
|
||||||
|
|
||||||
typeset -g _gitstatus_plugin_dir=${${(%):-%x}:A:h}
|
|
||||||
|
|
||||||
# Retrives status of a git repo from a directory under its working tree.
|
|
||||||
#
|
|
||||||
## Usage: gitstatus_query [OPTION]... NAME
|
|
||||||
#
|
|
||||||
# -d STR Directory to query. Defaults to the current directory. Has no effect if GIT_DIR
|
|
||||||
# is set.
|
|
||||||
# -c STR Callback function to call once the results are available. Called only after
|
|
||||||
# gitstatus_query returns 0 with VCS_STATUS_RESULT=tout.
|
|
||||||
# -t FLOAT Timeout in seconds. Will block for at most this long. If no results are
|
|
||||||
# available by then: if -c isn't specified, will return 1; otherwise will set
|
|
||||||
# VCS_STATUS_RESULT=tout and return 0.
|
|
||||||
# -p Don't compute anything that requires reading Git index. If this option is used,
|
|
||||||
# the following parameters will be 0: VCS_STATUS_INDEX_SIZE,
|
|
||||||
# VCS_STATUS_{NUM,HAS}_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED}.
|
|
||||||
#
|
|
||||||
# On success sets VCS_STATUS_RESULT to one of the following values:
|
|
||||||
#
|
|
||||||
# tout Timed out waiting for data; will call the user-specified callback later.
|
|
||||||
# norepo-sync The directory isn't a git repo.
|
|
||||||
# ok-sync The directory is a git repo.
|
|
||||||
#
|
|
||||||
# When the callback is called VCS_STATUS_RESULT is set to one of the following values:
|
|
||||||
#
|
|
||||||
# norepo-async The directory isn't a git repo.
|
|
||||||
# ok-async The directory is a git repo.
|
|
||||||
#
|
|
||||||
# If VCS_STATUS_RESULT is ok-sync or ok-async, additional variables are set:
|
|
||||||
#
|
|
||||||
# VCS_STATUS_WORKDIR Git repo working directory. Not empty.
|
|
||||||
# VCS_STATUS_COMMIT Commit hash that HEAD is pointing to. Either 40 hex digits or
|
|
||||||
# empty if there is no HEAD (empty repo).
|
|
||||||
# VCS_STATUS_LOCAL_BRANCH Local branch name or empty if not on a branch.
|
|
||||||
# VCS_STATUS_REMOTE_NAME The remote name, e.g. "upstream" or "origin".
|
|
||||||
# VCS_STATUS_REMOTE_BRANCH Upstream branch name. Can be empty.
|
|
||||||
# VCS_STATUS_REMOTE_URL Remote URL. Can be empty.
|
|
||||||
# VCS_STATUS_ACTION Repository state, A.K.A. action. Can be empty.
|
|
||||||
# VCS_STATUS_INDEX_SIZE The number of files in the index.
|
|
||||||
# VCS_STATUS_NUM_STAGED The number of staged changes.
|
|
||||||
# VCS_STATUS_NUM_CONFLICTED The number of conflicted changes.
|
|
||||||
# VCS_STATUS_NUM_UNSTAGED The number of unstaged changes.
|
|
||||||
# VCS_STATUS_NUM_UNTRACKED The number of untracked files.
|
|
||||||
# VCS_STATUS_HAS_STAGED 1 if there are staged changes, 0 otherwise.
|
|
||||||
# VCS_STATUS_HAS_CONFLICTED 1 if there are conflicted changes, 0 otherwise.
|
|
||||||
# VCS_STATUS_HAS_UNSTAGED 1 if there are unstaged changes, 0 if there aren't, -1 if
|
|
||||||
# unknown.
|
|
||||||
# VCS_STATUS_NUM_STAGED_NEW The number of staged new files. Note that renamed files
|
|
||||||
# are reported as deleted plus new.
|
|
||||||
# VCS_STATUS_NUM_STAGED_DELETED The number of staged deleted files. Note that renamed files
|
|
||||||
# are reported as deleted plus new.
|
|
||||||
# VCS_STATUS_NUM_UNSTAGED_DELETED The number of unstaged deleted files. Note that renamed files
|
|
||||||
# are reported as deleted plus new.
|
|
||||||
# VCS_STATUS_HAS_UNTRACKED 1 if there are untracked files, 0 if there aren't, -1 if
|
|
||||||
# unknown.
|
|
||||||
# VCS_STATUS_COMMITS_AHEAD Number of commits the current branch is ahead of upstream.
|
|
||||||
# Non-negative integer.
|
|
||||||
# VCS_STATUS_COMMITS_BEHIND Number of commits the current branch is behind upstream.
|
|
||||||
# Non-negative integer.
|
|
||||||
# VCS_STATUS_STASHES Number of stashes. Non-negative integer.
|
|
||||||
# VCS_STATUS_TAG The last tag (in lexicographical order) that points to the same
|
|
||||||
# commit as HEAD.
|
|
||||||
#
|
|
||||||
# The point of reporting -1 via VCS_STATUS_HAS_* is to allow the command to skip scanning files in
|
|
||||||
# large repos. See -m flag of gitstatus_start.
|
|
||||||
#
|
|
||||||
# gitstatus_query returns an error if gitstatus_start hasn't been called in the same shell or
|
|
||||||
# the call had failed.
|
|
||||||
#
|
|
||||||
# !!!!! WARNING: CONCURRENT CALLS WITH THE SAME NAME ARE NOT ALLOWED !!!!!
|
|
||||||
#
|
|
||||||
# It's illegal to call gitstatus_query if the last asynchronous call with the same NAME hasn't
|
|
||||||
# completed yet. If you need to issue concurrent requests, use different NAME arguments.
|
|
||||||
function gitstatus_query() {
|
|
||||||
emulate -L zsh
|
|
||||||
setopt err_return no_unset
|
|
||||||
|
|
||||||
local opt
|
|
||||||
local dir
|
|
||||||
local callback
|
|
||||||
local -F timeout=-1
|
|
||||||
local no_diff=0
|
|
||||||
while true; do
|
|
||||||
getopts "d:c:t:p" opt || break
|
|
||||||
case $opt in
|
|
||||||
d) dir=$OPTARG;;
|
|
||||||
c) callback=$OPTARG;;
|
|
||||||
t) timeout=$OPTARG;;
|
|
||||||
p) no_diff=1;;
|
|
||||||
?) return 1;;
|
|
||||||
done) break;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
(( OPTIND == ARGC )) || { echo "usage: gitstatus_query [OPTION]... NAME" >&2; return 1 }
|
|
||||||
local name=${*[$OPTIND]}
|
|
||||||
|
|
||||||
local daemon_pid_var=GITSTATUS_DAEMON_PID_${name}
|
|
||||||
(( ${(P)daemon_pid_var:-0} > 0 ))
|
|
||||||
|
|
||||||
# Verify that gitstatus_query is running in the same process that ran gitstatus_start.
|
|
||||||
local client_pid_var=_GITSTATUS_CLIENT_PID_${name}
|
|
||||||
[[ ${(P)client_pid_var} == $$ ]]
|
|
||||||
|
|
||||||
[[ -z ${GIT_DIR:-} ]] && {
|
|
||||||
[[ $dir == /* ]] || dir=${(%):-%/}/$dir
|
|
||||||
} || {
|
|
||||||
[[ $GIT_DIR == /* ]] && dir=:$GIT_DIR || dir=:${(%):-%/}/$GIT_DIR
|
|
||||||
}
|
|
||||||
|
|
||||||
local req_fd_var=_GITSTATUS_REQ_FD_${name}
|
|
||||||
local -i req_fd=${(P)req_fd_var}
|
|
||||||
local -r req_id="$EPOCHREALTIME"
|
|
||||||
echo -nE $req_id' '$callback$'\x1f'$dir$'\x1f'$no_diff$'\x1e' >&$req_fd
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
_gitstatus_process_response $name $timeout $req_id
|
|
||||||
[[ $VCS_STATUS_RESULT == *-async ]] || break
|
|
||||||
done
|
|
||||||
|
|
||||||
[[ $VCS_STATUS_RESULT != tout || -n $callback ]]
|
|
||||||
}
|
|
||||||
|
|
||||||
function _gitstatus_process_response() {
|
|
||||||
emulate -L zsh
|
|
||||||
setopt err_return no_unset
|
|
||||||
|
|
||||||
local name=$1
|
|
||||||
local -F timeout=$2
|
|
||||||
local req_id=$3
|
|
||||||
local resp_fd_var=_GITSTATUS_RESP_FD_${name}
|
|
||||||
local -i dirty_max_index_size=_GITSTATUS_DIRTY_MAX_INDEX_SIZE_${name}
|
|
||||||
|
|
||||||
typeset -g VCS_STATUS_RESULT
|
|
||||||
(( timeout >= 0 )) && local -a t=(-t $timeout) || local -a t=()
|
|
||||||
local -a resp
|
|
||||||
local IFS=$'\x1f'
|
|
||||||
read -rd $'\x1e' -u ${(P)resp_fd_var} $t -A resp || {
|
|
||||||
VCS_STATUS_RESULT=tout
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
local -a header=("${(@Q)${(z)resp[1]}}")
|
|
||||||
[[ ${header[1]} == $req_id ]] && local -i ours=1 || local -i ours=0
|
|
||||||
shift header
|
|
||||||
[[ ${resp[2]} == 1 ]] && {
|
|
||||||
(( ours )) && VCS_STATUS_RESULT=ok-sync || VCS_STATUS_RESULT=ok-async
|
|
||||||
typeset -g VCS_STATUS_WORKDIR="${resp[3]}"
|
|
||||||
typeset -g VCS_STATUS_COMMIT="${resp[4]}"
|
|
||||||
typeset -g VCS_STATUS_LOCAL_BRANCH="${resp[5]}"
|
|
||||||
typeset -g VCS_STATUS_REMOTE_BRANCH="${resp[6]}"
|
|
||||||
typeset -g VCS_STATUS_REMOTE_NAME="${resp[7]}"
|
|
||||||
typeset -g VCS_STATUS_REMOTE_URL="${resp[8]}"
|
|
||||||
typeset -g VCS_STATUS_ACTION="${resp[9]}"
|
|
||||||
typeset -gi VCS_STATUS_INDEX_SIZE="${resp[10]}"
|
|
||||||
typeset -gi VCS_STATUS_NUM_STAGED="${resp[11]}"
|
|
||||||
typeset -gi VCS_STATUS_NUM_UNSTAGED="${resp[12]}"
|
|
||||||
typeset -gi VCS_STATUS_NUM_CONFLICTED="${resp[13]}"
|
|
||||||
typeset -gi VCS_STATUS_NUM_UNTRACKED="${resp[14]}"
|
|
||||||
typeset -gi VCS_STATUS_COMMITS_AHEAD="${resp[15]}"
|
|
||||||
typeset -gi VCS_STATUS_COMMITS_BEHIND="${resp[16]}"
|
|
||||||
typeset -gi VCS_STATUS_STASHES="${resp[17]}"
|
|
||||||
typeset -g VCS_STATUS_TAG="${resp[18]}"
|
|
||||||
typeset -gi VCS_STATUS_NUM_UNSTAGED_DELETED="${resp[19]}"
|
|
||||||
typeset -gi VCS_STATUS_NUM_STAGED_NEW="${resp[20]:-0}"
|
|
||||||
typeset -gi VCS_STATUS_NUM_STAGED_DELETED="${resp[21]:-0}"
|
|
||||||
typeset -gi VCS_STATUS_HAS_STAGED=$((VCS_STATUS_NUM_STAGED > 0))
|
|
||||||
(( dirty_max_index_size >= 0 && VCS_STATUS_INDEX_SIZE > dirty_max_index_size )) && {
|
|
||||||
typeset -gi VCS_STATUS_HAS_UNSTAGED=-1
|
|
||||||
typeset -gi VCS_STATUS_HAS_CONFLICTED=-1
|
|
||||||
typeset -gi VCS_STATUS_HAS_UNTRACKED=-1
|
|
||||||
} || {
|
|
||||||
typeset -gi VCS_STATUS_HAS_UNSTAGED=$((VCS_STATUS_NUM_UNSTAGED > 0))
|
|
||||||
typeset -gi VCS_STATUS_HAS_CONFLICTED=$((VCS_STATUS_NUM_CONFLICTED > 0))
|
|
||||||
typeset -gi VCS_STATUS_HAS_UNTRACKED=$((VCS_STATUS_NUM_UNTRACKED > 0))
|
|
||||||
}
|
|
||||||
} || {
|
|
||||||
(( ours )) && VCS_STATUS_RESULT=norepo-sync || VCS_STATUS_RESULT=norepo-async
|
|
||||||
unset VCS_STATUS_WORKDIR
|
|
||||||
unset VCS_STATUS_COMMIT
|
|
||||||
unset VCS_STATUS_LOCAL_BRANCH
|
|
||||||
unset VCS_STATUS_REMOTE_BRANCH
|
|
||||||
unset VCS_STATUS_REMOTE_NAME
|
|
||||||
unset VCS_STATUS_REMOTE_URL
|
|
||||||
unset VCS_STATUS_ACTION
|
|
||||||
unset VCS_STATUS_INDEX_SIZE
|
|
||||||
unset VCS_STATUS_NUM_STAGED
|
|
||||||
unset VCS_STATUS_NUM_UNSTAGED
|
|
||||||
unset VCS_STATUS_NUM_CONFLICTED
|
|
||||||
unset VCS_STATUS_NUM_UNTRACKED
|
|
||||||
unset VCS_STATUS_HAS_STAGED
|
|
||||||
unset VCS_STATUS_HAS_UNSTAGED
|
|
||||||
unset VCS_STATUS_HAS_CONFLICTED
|
|
||||||
unset VCS_STATUS_HAS_UNTRACKED
|
|
||||||
unset VCS_STATUS_COMMITS_AHEAD
|
|
||||||
unset VCS_STATUS_COMMITS_BEHIND
|
|
||||||
unset VCS_STATUS_STASHES
|
|
||||||
unset VCS_STATUS_TAG
|
|
||||||
unset VCS_STATUS_NUM_UNSTAGED_DELETED
|
|
||||||
unset VCS_STATUS_NUM_STAGED_NEW
|
|
||||||
unset VCS_STATUS_NUM_STAGED_DELETED
|
|
||||||
}
|
|
||||||
|
|
||||||
(( ! ours )) && (( #header )) && emulate -L zsh && "${header[@]}" || true
|
|
||||||
}
|
|
||||||
|
|
||||||
# Starts gitstatusd in the background. Does nothing and succeeds if gitstatusd is already running.
|
|
||||||
#
|
|
||||||
# Usage: gitstatus_start [OPTION]... NAME
|
|
||||||
#
|
|
||||||
# -t FLOAT Fail the self-check on initialization if not getting a response from gitstatusd for
|
|
||||||
# this this many seconds. Defaults to 5.
|
|
||||||
#
|
|
||||||
# -s INT Report at most this many staged changes; negative value means infinity.
|
|
||||||
# Defaults to 1.
|
|
||||||
#
|
|
||||||
# -u INT Report at most this many unstaged changes; negative value means infinity.
|
|
||||||
# Defaults to 1.
|
|
||||||
#
|
|
||||||
# -c INT Report at most this many conflicted changes; negative value means infinity.
|
|
||||||
# Defaults to 1.
|
|
||||||
#
|
|
||||||
# -d INT Report at most this many untracked files; negative value means infinity.
|
|
||||||
# Defaults to 1.
|
|
||||||
#
|
|
||||||
# -m INT Report -1 unstaged, untracked and conflicted if there are more than this many
|
|
||||||
# files in the index. Negative value means infinity. Defaults to -1.
|
|
||||||
#
|
|
||||||
# -e Count files within untracked directories like `git status --untracked-files`.
|
|
||||||
#
|
|
||||||
# -U Unless this option is specified, report zero untracked files for repositories
|
|
||||||
# with status.showUntrackedFiles = false.
|
|
||||||
#
|
|
||||||
# -W Unless this option is specified, report zero untracked files for repositories
|
|
||||||
# with bash.showUntrackedFiles = false.
|
|
||||||
#
|
|
||||||
# -D Unless this option is specified, report zero staged, unstaged and conflicted
|
|
||||||
# changes for repositories with bash.showDirtyState = false.
|
|
||||||
function gitstatus_start() {
|
|
||||||
emulate -L zsh
|
|
||||||
setopt err_return no_unset no_bg_nice
|
|
||||||
|
|
||||||
local opt
|
|
||||||
local -F timeout=5
|
|
||||||
local -i max_num_staged=1
|
|
||||||
local -i max_num_unstaged=1
|
|
||||||
local -i max_num_conflicted=1
|
|
||||||
local -i max_num_untracked=1
|
|
||||||
local -i dirty_max_index_size=-1
|
|
||||||
local -i async
|
|
||||||
local -a extra_flags=()
|
|
||||||
while true; do
|
|
||||||
getopts "t:s:u:c:d:m:eaUWD" opt || break
|
|
||||||
case $opt in
|
|
||||||
a) async=1;;
|
|
||||||
t) timeout=$OPTARG;;
|
|
||||||
s) max_num_staged=$OPTARG;;
|
|
||||||
u) max_num_unstaged=$OPTARG;;
|
|
||||||
c) max_num_conflicted=$OPTARG;;
|
|
||||||
d) max_num_untracked=$OPTARG;;
|
|
||||||
m) dirty_max_index_size=$OPTARG;;
|
|
||||||
e) extra_flags+='--recurse-untracked-dirs';;
|
|
||||||
+e) extra_flags=(${(@)extra_flags:#--recurse-untracked-dirs});;
|
|
||||||
U) extra_flags+='--ignore-status-show-untracked-files';;
|
|
||||||
+U) extra_flags=(${(@)extra_flags:#--ignore-status-show-untracked-files});;
|
|
||||||
W) extra_flags+='--ignore-bash-show-untracked-files';;
|
|
||||||
+W) extra_flags=(${(@)extra_flags:#--ignore-bash-show-untracked-files});;
|
|
||||||
D) extra_flags+='--ignore-bash-show-dirty-state';;
|
|
||||||
+D) extra_flags=(${(@)extra_flags:#--ignore-bash-show-dirty-state});;
|
|
||||||
?) return 1;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
(( timeout > 0 )) || { echo "invalid -t: $timeout" >&2; return 1 }
|
|
||||||
(( OPTIND == ARGC )) || { echo "usage: gitstatus_start [OPTION]... NAME" >&2; return 1 }
|
|
||||||
local name=${*[$OPTIND]}
|
|
||||||
|
|
||||||
local lock_file req_fifo resp_fifo log_level
|
|
||||||
local log_file=/dev/null xtrace_file=/dev/null
|
|
||||||
local -i stderr_fd lock_fd req_fd resp_fd daemon_pid
|
|
||||||
local daemon_pid_var=GITSTATUS_DAEMON_PID_${name}
|
|
||||||
(( $+parameters[$daemon_pid_var] )) && {
|
|
||||||
(( ! async )) || return 0
|
|
||||||
daemon_pid=${(P)daemon_pid_var}
|
|
||||||
(( daemon_pid == -1 )) || return 0
|
|
||||||
local resp_fd_var=_GITSTATUS_RESP_FD_${name}
|
|
||||||
local log_file_var=GITSTATUS_DAEMON_LOG_${name}
|
|
||||||
local xtrace_file_var=GITSTATUS_XTRACE_${name}
|
|
||||||
resp_fd=${(P)resp_fd_var}
|
|
||||||
log_file=${(P)log_file_var}
|
|
||||||
xtrace_file=${(P)xtrace_file_var}
|
|
||||||
} || {
|
|
||||||
log_level=${GITSTATUS_LOG_LEVEL:-}
|
|
||||||
[[ -n $log_level || ${GITSTATUS_ENABLE_LOGGING:-0} != 1 ]] || log_level=INFO
|
|
||||||
[[ -z $log_level ]] || {
|
|
||||||
log_file=${TMPDIR:-/tmp}/gitstatus.$$.daemon-log.$EPOCHREALTIME.$RANDOM
|
|
||||||
xtrace_file=${TMPDIR:-/tmp}/gitstatus.$$.xtrace.$EPOCHREALTIME.$RANDOM
|
|
||||||
}
|
|
||||||
typeset -g GITSTATUS_DAEMON_LOG_${name}=$log_file
|
|
||||||
typeset -g GITSTATUS_XTRACE_${name}=$xtrace_file
|
|
||||||
}
|
|
||||||
|
|
||||||
function gitstatus_start_impl() {
|
|
||||||
[[ $xtrace_file == /dev/null ]] || {
|
|
||||||
exec {stderr_fd}>&2 2>>$xtrace_file
|
|
||||||
setopt xtrace
|
|
||||||
}
|
|
||||||
|
|
||||||
(( daemon_pid == -1 )) || {
|
|
||||||
local os
|
|
||||||
local daemon=${GITSTATUS_DAEMON:-}
|
|
||||||
[[ -n $daemon ]] || {
|
|
||||||
os="$(uname -s)" && [[ -n $os ]]
|
|
||||||
[[ $os != Linux || "$(uname -o)" != Android ]] || os=Android
|
|
||||||
[[ ${(L)os} != (mingw|msys)* ]] || os=MSYS_NT-10.0
|
|
||||||
local arch && arch="$(uname -m)" && [[ -n $arch ]]
|
|
||||||
daemon=$_gitstatus_plugin_dir/bin/gitstatusd-${os:l}-${arch:l}
|
|
||||||
}
|
|
||||||
[[ -x $daemon ]]
|
|
||||||
|
|
||||||
lock_file=${TMPDIR:-/tmp}/gitstatus.$$.lock.$EPOCHREALTIME.$RANDOM
|
|
||||||
echo -n >$lock_file
|
|
||||||
zsystem flock -f lock_fd $lock_file
|
|
||||||
|
|
||||||
req_fifo=${TMPDIR:-/tmp}/gitstatus.$$.req.$EPOCHREALTIME.$RANDOM
|
|
||||||
resp_fifo=${TMPDIR:-/tmp}/gitstatus.$$.resp.$EPOCHREALTIME.$RANDOM
|
|
||||||
mkfifo $req_fifo $resp_fifo
|
|
||||||
|
|
||||||
local -i threads=${GITSTATUS_NUM_THREADS:-0}
|
|
||||||
(( threads > 0)) || {
|
|
||||||
threads=8
|
|
||||||
[[ -n $os ]] || { os="$(uname -s)" && [[ -n $os ]] }
|
|
||||||
case $os in
|
|
||||||
FreeBSD) (( ! $+commands[sysctl] )) || threads=$(( 2 * $(sysctl -n hw.ncpu) ));;
|
|
||||||
*) (( ! $+commands[getconf] )) || threads=$(( 2 * $(getconf _NPROCESSORS_ONLN) ));;
|
|
||||||
esac
|
|
||||||
(( threads <= 32 )) || threads=32
|
|
||||||
}
|
|
||||||
|
|
||||||
local -a daemon_args=(
|
|
||||||
--lock-fd=3
|
|
||||||
--parent-pid=${(q)$}
|
|
||||||
--num-threads=${(q)threads}
|
|
||||||
--max-num-staged=${(q)max_num_staged}
|
|
||||||
--max-num-unstaged=${(q)max_num_unstaged}
|
|
||||||
--max-num-conflicted=${(q)max_num_conflicted}
|
|
||||||
--max-num-untracked=${(q)max_num_untracked}
|
|
||||||
--dirty-max-index-size=${(q)dirty_max_index_size}
|
|
||||||
--log-level=${(q)log_level:-INFO}
|
|
||||||
$extra_flags)
|
|
||||||
|
|
||||||
local cmd="
|
|
||||||
exec >&4
|
|
||||||
echo \$\$
|
|
||||||
${(q)daemon} $daemon_args
|
|
||||||
if [[ \$? != (0|10) && \$? -le 128 && -f ${(q)daemon}-static ]]; then
|
|
||||||
${(q)daemon}-static $daemon_args
|
|
||||||
fi
|
|
||||||
echo -nE $'bye\x1f0\x1e'"
|
|
||||||
local setsid=${commands[setsid]:-/usr/local/opt/util-linux/bin/setsid}
|
|
||||||
[[ -x $setsid ]] && setsid=${(q)setsid} || setsid=
|
|
||||||
# Try to use the same executable as the current zsh. Some people like having an ancient
|
|
||||||
# `zsh` in their PATH while using a newer version. zsh 5.0.2 hangs when enabling `monitor`.
|
|
||||||
#
|
|
||||||
# zsh -mc '' &! # hangs when using zsh 5.0.2
|
|
||||||
local zsh=${${:-/proc/self/exe}:A}
|
|
||||||
[[ -x $zsh ]] || zsh=zsh
|
|
||||||
cmd="cd /; read; unsetopt bg_nice; $setsid ${(q)zsh} -dfxc ${(q)cmd} &!; rm -f ${(q)req_fifo} ${(q)resp_fifo} ${(q)lock_file}"
|
|
||||||
# We use `zsh -c` instead of plain {} or () to work around bugs in zplug (it hangs on
|
|
||||||
# startup). Double fork is to daemonize, and so is `setsid`. Note that on macOS `setsid` has
|
|
||||||
# to be installed manually by running `brew install util-linux`.
|
|
||||||
$zsh -dfmxc $cmd <$req_fifo >$log_file 2>&1 3<$lock_file 4>$resp_fifo &!
|
|
||||||
|
|
||||||
sysopen -w -o cloexec,sync -u req_fd $req_fifo
|
|
||||||
sysopen -r -o cloexec -u resp_fd $resp_fifo
|
|
||||||
echo -nE $'0\nhello\x1f\x1e' >&$req_fd
|
|
||||||
}
|
|
||||||
|
|
||||||
(( async )) && {
|
|
||||||
daemon_pid=-1
|
|
||||||
} || {
|
|
||||||
local reply IFS=''
|
|
||||||
read -ru $resp_fd reply
|
|
||||||
[[ $reply == <1-> ]]
|
|
||||||
daemon_pid=reply
|
|
||||||
|
|
||||||
function _gitstatus_process_response_${name}() {
|
|
||||||
local name=${${(%):-%N}#_gitstatus_process_response_}
|
|
||||||
(( ARGC == 1 )) && {
|
|
||||||
_gitstatus_process_response $name 0 ''
|
|
||||||
true
|
|
||||||
} || {
|
|
||||||
gitstatus_stop $name
|
|
||||||
}
|
|
||||||
}
|
|
||||||
zle -F $resp_fd _gitstatus_process_response_${name}
|
|
||||||
|
|
||||||
read -r -d $'\x1e' -u $resp_fd -t $timeout reply
|
|
||||||
[[ $reply == $'hello\x1f0' ]]
|
|
||||||
|
|
||||||
function _gitstatus_cleanup_$$_${ZSH_SUBSHELL}_${daemon_pid}() {
|
|
||||||
emulate -L zsh
|
|
||||||
setopt err_return no_unset
|
|
||||||
local fname=${(%):-%N}
|
|
||||||
local prefix=_gitstatus_cleanup_$$_${ZSH_SUBSHELL}_
|
|
||||||
[[ $fname == ${prefix}* ]] || return 0
|
|
||||||
local -i daemon_pid=${fname#$prefix}
|
|
||||||
kill -- -$daemon_pid &>/dev/null || true
|
|
||||||
}
|
|
||||||
add-zsh-hook zshexit _gitstatus_cleanup_$$_${ZSH_SUBSHELL}_${daemon_pid}
|
|
||||||
}
|
|
||||||
|
|
||||||
(( ! stderr_fd )) || {
|
|
||||||
unsetopt xtrace
|
|
||||||
exec 2>&$stderr_fd {stderr_fd}>&-
|
|
||||||
stderr_fd=0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gitstatus_start_impl && {
|
|
||||||
typeset -gi GITSTATUS_DAEMON_PID_${name}=$daemon_pid
|
|
||||||
(( ! req_fd )) || {
|
|
||||||
typeset -gi _GITSTATUS_REQ_FD_${name}=$req_fd
|
|
||||||
typeset -gi _GITSTATUS_RESP_FD_${name}=$resp_fd
|
|
||||||
typeset -gi _GITSTATUS_LOCK_FD_${name}=$lock_fd
|
|
||||||
typeset -gi _GITSTATUS_CLIENT_PID_${name}=$$
|
|
||||||
typeset -gi _GITSTATUS_DIRTY_MAX_INDEX_SIZE_${name}=$dirty_max_index_size
|
|
||||||
}
|
|
||||||
unset -f gitstatus_start_impl
|
|
||||||
} || {
|
|
||||||
unsetopt err_return
|
|
||||||
add-zsh-hook -d zshexit _gitstatus_cleanup_$$_${ZSH_SUBSHELL}_${daemon_pid}
|
|
||||||
(( $+functions[_gitstatus_process_response_${name}] )) && {
|
|
||||||
zle -F $resp_fd
|
|
||||||
unfunction _gitstatus_process_response_${name}
|
|
||||||
}
|
|
||||||
(( resp_fd )) && exec {resp_fd}>&-
|
|
||||||
(( req_fd )) && exec {req_fd}>&-
|
|
||||||
(( lock_fd )) && zsystem flock -u $lock_fd
|
|
||||||
(( stderr_fd )) && { exec 2>&$stderr_fd {stderr_fd}>&- }
|
|
||||||
(( daemon_pid > 0 )) && kill -- -$daemon_pid &>/dev/null
|
|
||||||
|
|
||||||
rm -f $lock_file $req_fifo $resp_fifo
|
|
||||||
unset -f gitstatus_start_impl
|
|
||||||
|
|
||||||
unset GITSTATUS_DAEMON_PID_${name}
|
|
||||||
unset _GITSTATUS_REQ_FD_${name}
|
|
||||||
unset _GITSTATUS_RESP_FD_${name}
|
|
||||||
unset _GITSTATUS_LOCK_FD_${name}
|
|
||||||
unset _GITSTATUS_CLIENT_PID_${name}
|
|
||||||
unset _GITSTATUS_DIRTY_MAX_INDEX_SIZE_${name}
|
|
||||||
|
|
||||||
>&2 print -P '[%F{red}ERROR%f]: gitstatus failed to initialize.'
|
|
||||||
>&2 echo -E ''
|
|
||||||
>&2 echo -E ' Your git prompt may disappear or become slow.'
|
|
||||||
if [[ -s $xtrace_file ]]; then
|
|
||||||
>&2 echo -E ''
|
|
||||||
>&2 echo -E " The content of ${(q-)xtrace_file} (gitstatus_start_impl xtrace):"
|
|
||||||
>&2 print -P '%F{yellow}'
|
|
||||||
>&2 awk '{print " " $0}' <$xtrace_file
|
|
||||||
>&2 print -P '%F{red} ^ this command failed%f'
|
|
||||||
fi
|
|
||||||
if [[ -s $log_file ]]; then
|
|
||||||
>&2 echo -E ''
|
|
||||||
>&2 echo -E " The content of ${(q-)log_file} (gitstatus daemon log):"
|
|
||||||
>&2 print -P '%F{yellow}'
|
|
||||||
>&2 awk '{print " " $0}' <$log_file
|
|
||||||
>&2 print -nP '%f'
|
|
||||||
fi
|
|
||||||
if [[ ${GITSTATUS_LOG_LEVEL:-} == DEBUG ]]; then
|
|
||||||
>&2 echo -E ''
|
|
||||||
>&2 echo -E ' Your system information:'
|
|
||||||
>&2 print -P '%F{yellow}'
|
|
||||||
>&2 echo -E " zsh: $ZSH_VERSION"
|
|
||||||
>&2 echo -E " uname -a: $(uname -a)"
|
|
||||||
>&2 print -P '%f'
|
|
||||||
>&2 echo -E ' If you need help, open an issue and attach this whole error message to it:'
|
|
||||||
>&2 echo -E ''
|
|
||||||
>&2 print -P ' %F{green}https://github.com/romkatv/gitstatus/issues/new%f'
|
|
||||||
else
|
|
||||||
>&2 echo -E ''
|
|
||||||
>&2 echo -E ' Run the following command to retry with extra diagnostics:'
|
|
||||||
>&2 print -P '%F{green}'
|
|
||||||
local env="GITSTATUS_LOG_LEVEL=DEBUG"
|
|
||||||
if [[ -n ${GITSTATUS_NUM_THREADS:-} ]]; then
|
|
||||||
env+=" GITSTATUS_NUM_THREADS=${(q)GITSTATUS_NUM_THREADS}"
|
|
||||||
fi
|
|
||||||
if [[ -n ${GITSTATUS_DAEMON:-} ]]; then
|
|
||||||
env+=" GITSTATUS_DAEMON=${(q)GITSTATUS_DAEMON}"
|
|
||||||
fi
|
|
||||||
>&2 echo -nE " ${env} gitstatus_start ${(@q-)*}"
|
|
||||||
>&2 print -P '%f'
|
|
||||||
>&2 echo -E ''
|
|
||||||
local zshrc='~/.zshrc'
|
|
||||||
[[ -n ${ZDOTDIR:-} ]] && zshrc=${(D):-$ZDOTDIR/.zshrc}
|
|
||||||
>&2 echo -E " If this command produces no output, add the following parameter to $zshrc:"
|
|
||||||
>&2 echo -E ''
|
|
||||||
>&2 print -P '%F{green} GITSTATUS_LOG_LEVEL=DEBUG%f'
|
|
||||||
>&2 echo -E ''
|
|
||||||
>&2 echo -E ' With this parameter, gitstatus will print additional information on error.'
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Stops gitstatusd if it's running.
|
|
||||||
#
|
|
||||||
# Usage: gitstatus_stop NAME.
|
|
||||||
function gitstatus_stop() {
|
|
||||||
emulate -L zsh
|
|
||||||
setopt no_unset
|
|
||||||
(( ARGC == 1 )) || { echo "usage: gitstatus_stop NAME" >&2; return 1 }
|
|
||||||
|
|
||||||
local name=$1
|
|
||||||
|
|
||||||
local req_fd_var=_GITSTATUS_REQ_FD_${name}
|
|
||||||
local resp_fd_var=_GITSTATUS_RESP_FD_${name}
|
|
||||||
local lock_fd_var=_GITSTATUS_LOCK_FD_${name}
|
|
||||||
local daemon_pid_var=GITSTATUS_DAEMON_PID_${name}
|
|
||||||
local client_pid_var=_GITSTATUS_CLIENT_PID_${name}
|
|
||||||
local dirty_size_var=_GITSTATUS_DIRTY_MAX_INDEX_SIZE_${name}
|
|
||||||
|
|
||||||
[[ ${(P)daemon_pid_var:-} != -1 ]] || gitstatus_start -t 0 "$name" 2>/dev/null
|
|
||||||
|
|
||||||
local req_fd=${(P)req_fd_var:-}
|
|
||||||
local resp_fd=${(P)resp_fd_var:-}
|
|
||||||
local lock_fd=${(P)lock_fd_var:-}
|
|
||||||
local daemon_pid=${(P)daemon_pid_var:-0}
|
|
||||||
|
|
||||||
local cleanup_func=_gitstatus_cleanup_$$_${ZSH_SUBSHELL}_${daemon_pid}
|
|
||||||
|
|
||||||
(( $+functions[_gitstatus_process_response_${name}] )) && {
|
|
||||||
zle -F $resp_fd
|
|
||||||
unfunction _gitstatus_process_response_${name}
|
|
||||||
}
|
|
||||||
|
|
||||||
(( resp_fd )) && exec {resp_fd}>&-
|
|
||||||
(( req_fd )) && exec {req_fd}>&-
|
|
||||||
(( lock_fd )) && zsystem flock -u $lock_fd
|
|
||||||
(( daemon_pid > 0 )) && kill -- -$daemon_pid &>/dev/null
|
|
||||||
|
|
||||||
unset $req_fd_var $resp_fd_var $lock_fd_var $daemon_pid_var $client_pid_var $dirty_size_var
|
|
||||||
|
|
||||||
if (( $+functions[$cleanup_func] )); then
|
|
||||||
add-zsh-hook -d zshexit $cleanup_func
|
|
||||||
unfunction $cleanup_func
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
# Usage: gitstatus_check NAME.
|
|
||||||
#
|
|
||||||
# Returns 0 if and only if `gitstatus_start NAME` has succeeded previously.
|
|
||||||
# If it returns non-zero, gitstatus_query NAME is guaranteed to return non-zero.
|
|
||||||
function gitstatus_check() {
|
|
||||||
emulate -L zsh
|
|
||||||
(( ARGC == 1 )) || { echo "usage: gitstatus_check NAME" >&2; return 1 }
|
|
||||||
local daemon_pid_var=GITSTATUS_DAEMON_PID_${1}
|
|
||||||
(( ${(P)daemon_pid_var:-0} > 0 ))
|
|
||||||
}
|
|
||||||
|
|
||||||
(( ${#_gitstatus_opts} )) && setopt ${_gitstatus_opts[@]}
|
|
||||||
'builtin' 'unset' '_gitstatus_opts'
|
|
@ -1,28 +0,0 @@
|
|||||||
#!/usr/bin/zsh
|
|
||||||
|
|
||||||
emulate -L zsh
|
|
||||||
setopt err_exit no_unset pipe_fail extended_glob xtrace
|
|
||||||
|
|
||||||
: ${GITSTATUS_DIR:=${${(%):-%x}:A:h}}
|
|
||||||
: ${GITSTATUS_URL:=https://github.com/romkatv/gitstatus.git}
|
|
||||||
|
|
||||||
readonly GITSTATUS_DIR GITSTATUS_URL
|
|
||||||
readonly -a IGNORE=(pull-upstream.zsh README.md)
|
|
||||||
|
|
||||||
() {
|
|
||||||
local repo && repo="$(mktemp -d ${TMPDIR:-/tmp}/gitstatus-pull-upstream.XXXXXXXXXX)"
|
|
||||||
trap "rm -rf ${(q)repo}" EXIT
|
|
||||||
git clone --depth 1 $GITSTATUS_URL $repo
|
|
||||||
|
|
||||||
local dst
|
|
||||||
for dst in $GITSTATUS_DIR/**/*(.,@); do
|
|
||||||
local f=${dst#$GITSTATUS_DIR/}
|
|
||||||
(( ! ${IGNORE[(I)$f]} )) || continue
|
|
||||||
local src=$repo/$f
|
|
||||||
[[ -f $src ]] && {
|
|
||||||
mkdir -p ${dst:h} && cp -f $src $dst || return
|
|
||||||
} || {
|
|
||||||
rm -f $dst
|
|
||||||
}
|
|
||||||
done
|
|
||||||
}
|
|
@ -1,76 +0,0 @@
|
|||||||
typeset -gr __p9k_wizard_columns=55
|
|
||||||
typeset -gr __p9k_wizard_lines=21
|
|
||||||
typeset -gr __p9k_zd=${ZDOTDIR:-$HOME}
|
|
||||||
typeset -gr __p9k_zd_u=${${${(q)__p9k_zd}/#(#b)${(q)HOME}(|\/*)/'~'$match[1]}//\%/%%}
|
|
||||||
typeset -gr __p9k_cfg_basename=.p10k.zsh
|
|
||||||
typeset -gr __p9k_cfg_path_o=$__p9k_zd/$__p9k_cfg_basename
|
|
||||||
typeset -gr __p9k_cfg_path=${__p9k_cfg_path_o:A}
|
|
||||||
typeset -gr __p9k_cfg_path_u=$__p9k_zd_u/$__p9k_cfg_basename
|
|
||||||
typeset -gr __p9k_zshrc=${${:-$__p9k_zd/.zshrc}:A}
|
|
||||||
typeset -gr __p9k_zshrc_u=$__p9k_zd_u/.zshrc
|
|
||||||
typeset -gr __p9k_root_dir_u=${${${(q)__p9k_root_dir}/#(#b)${(q)HOME}(|\/*)/'~'$match[1]}//\%/%%}
|
|
||||||
|
|
||||||
function _p9k_can_configure() {
|
|
||||||
emulate -L zsh
|
|
||||||
setopt extended_glob no_prompt_{bang,subst} prompt_percent
|
|
||||||
[[ $1 == '-q' ]] && local -i q=1 || local -i q=0
|
|
||||||
function $0_error() {
|
|
||||||
(( q )) || print -rP "%1F[ERROR]%f %Bp10k configure%b: $1" >&2
|
|
||||||
}
|
|
||||||
{
|
|
||||||
[[ -o multibyte ]] || { $0_error "multibyte option is not set"; return 1 }
|
|
||||||
[[ -e $__p9k_zd ]] || { $0_error "$__p9k_zd_u does not exist"; return 1 }
|
|
||||||
[[ -d $__p9k_zd ]] || { $0_error "$__p9k_zd_u is not a directory"; return 1 }
|
|
||||||
[[ -w $__p9k_zd ]] || { $0_error "$__p9k_zd_u is not writable"; return 1 }
|
|
||||||
[[ ! -d $__p9k_cfg_path ]] || { $0_error "$__p9k_cfg_path_u is a directory"; return 1 }
|
|
||||||
[[ ! -d $__p9k_zshrc ]] || { $0_error "$__p9k_zshrc_u is a directory"; return 1 }
|
|
||||||
|
|
||||||
[[ ! -e $__p9k_cfg_path || -f $__p9k_cfg_path || -h $__p9k_cfg_path ]] || {
|
|
||||||
$0_error "$__p9k_cfg_path_u is a special file"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
[[ -r $__p9k_root_dir/config/p10k-lean.zsh ]] || {
|
|
||||||
$0_error "cannot read $__p9k_root_dir_u/config/p10k-lean.zsh"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
[[ -r $__p9k_root_dir/config/p10k-classic.zsh ]] || {
|
|
||||||
$0_error "cannot read $__p9k_root_dir_u/config/p10k-classic.zsh"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
[[ ! -e $__p9k_zshrc || -f $__p9k_zshrc || -h $__p9k_zshrc ]] || {
|
|
||||||
$0_error "$__p9k_zshrc_u a special file"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
[[ ! -e $__p9k_zshrc || -r $__p9k_zshrc ]] || {
|
|
||||||
$0_error "$__p9k_zshrc_u is not readable"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
[[ ! -e $__p9k_zshrc || -w $__p9k_zshrc ]] || {
|
|
||||||
$0_error "$__p9k_zshrc_u is not writable"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
(( LINES >= __p9k_wizard_lines && COLUMNS >= __p9k_wizard_columns )) || {
|
|
||||||
$0_error "terminal size too small; must be at least $__p9k_wizard_columns x $__p9k_wizard_lines"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
[[ -t 0 && -t 1 ]] || { $0_error "no TTY"; return 2 }
|
|
||||||
return 0
|
|
||||||
} always {
|
|
||||||
unfunction $0_error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function p9k_configure() {
|
|
||||||
emulate -L zsh
|
|
||||||
setopt no_hist_expand extended_glob no_prompt_bang prompt_{percent,subst} no_aliases
|
|
||||||
(
|
|
||||||
set -- -f
|
|
||||||
source $__p9k_root_dir/internal/wizard.zsh
|
|
||||||
)
|
|
||||||
local ret=$?
|
|
||||||
case $ret in
|
|
||||||
0) source $__p9k_cfg_path; _p9k__force_must_init=1;;
|
|
||||||
69) return 0;;
|
|
||||||
*) return $ret;;
|
|
||||||
esac
|
|
||||||
}
|
|
@ -1,627 +0,0 @@
|
|||||||
typeset -gA icons
|
|
||||||
|
|
||||||
function _p9k_init_icons() {
|
|
||||||
[[ $+_p9k_icon_mode == 1 && $_p9k_icon_mode == $POWERLEVEL9K_MODE ]] && return
|
|
||||||
typeset -g _p9k_icon_mode=$POWERLEVEL9K_MODE
|
|
||||||
zmodload zsh/langinfo
|
|
||||||
if [[ ${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then
|
|
||||||
typeset -g _p9k_locale=${${(@M)$(locale -a):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8}
|
|
||||||
else
|
|
||||||
typeset -g _p9k_locale=
|
|
||||||
fi
|
|
||||||
|
|
||||||
case $POWERLEVEL9K_MODE in
|
|
||||||
'flat'|'awesome-patched')
|
|
||||||
# Awesome-Patched Font required! See:
|
|
||||||
# https://github.com/gabrielelana/awesome-terminal-fonts/tree/patching-strategy/patched
|
|
||||||
icons=(
|
|
||||||
RULER_CHAR '\u2500' # ─
|
|
||||||
LEFT_SEGMENT_SEPARATOR '\uE0B0' #
|
|
||||||
RIGHT_SEGMENT_SEPARATOR '\uE0B2' #
|
|
||||||
LEFT_SEGMENT_END_SEPARATOR ' ' # Whitespace
|
|
||||||
LEFT_SUBSEGMENT_SEPARATOR '\uE0B1' #
|
|
||||||
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' #
|
|
||||||
CARRIAGE_RETURN_ICON '\u21B5 ' # ↵
|
|
||||||
ROOT_ICON '\uE801' #
|
|
||||||
SUDO_ICON '\uE0A2' #
|
|
||||||
RUBY_ICON '\uE847 ' #
|
|
||||||
AWS_ICON '\uE895 ' #
|
|
||||||
AWS_EB_ICON '\U1F331' # 🌱
|
|
||||||
BACKGROUND_JOBS_ICON '\uE82F ' #
|
|
||||||
TEST_ICON '\uE891 ' #
|
|
||||||
TODO_ICON '\u2611' # ☑
|
|
||||||
BATTERY_ICON '\uE894 ' #
|
|
||||||
DISK_ICON '\uE1AE ' #
|
|
||||||
OK_ICON '\u2714' # ✔
|
|
||||||
FAIL_ICON '\u2718' # ✘
|
|
||||||
SYMFONY_ICON 'SF'
|
|
||||||
NODE_ICON '\u2B22 ' # ⬢
|
|
||||||
MULTILINE_FIRST_PROMPT_PREFIX '\u256D\U2500' # ╭─
|
|
||||||
MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
|
|
||||||
MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
|
|
||||||
APPLE_ICON '\uE26E ' #
|
|
||||||
WINDOWS_ICON '\uE26F ' #
|
|
||||||
FREEBSD_ICON '\U1F608' # 😈
|
|
||||||
ANDROID_ICON '\uE270 ' #
|
|
||||||
LINUX_ICON '\uE271 ' #
|
|
||||||
LINUX_ARCH_ICON '\uE271 ' #
|
|
||||||
LINUX_DEBIAN_ICON '\uE271 ' #
|
|
||||||
LINUX_RASPBIAN_ICON '\uE271 ' #
|
|
||||||
LINUX_UBUNTU_ICON '\uE271 ' #
|
|
||||||
LINUX_CENTOS_ICON '\uE271 ' #
|
|
||||||
LINUX_COREOS_ICON '\uE271 ' #
|
|
||||||
LINUX_ELEMENTARY_ICON '\uE271 ' #
|
|
||||||
LINUX_MINT_ICON '\uE271 ' #
|
|
||||||
LINUX_FEDORA_ICON '\uE271 ' #
|
|
||||||
LINUX_GENTOO_ICON '\uE271 ' #
|
|
||||||
LINUX_MAGEIA_ICON '\uE271 ' #
|
|
||||||
LINUX_NIXOS_ICON '\uE271 ' #
|
|
||||||
LINUX_MANJARO_ICON '\uE271 ' #
|
|
||||||
LINUX_DEVUAN_ICON '\uE271 ' #
|
|
||||||
LINUX_ALPINE_ICON '\uE271 ' #
|
|
||||||
LINUX_AOSC_ICON '\uE271 ' #
|
|
||||||
LINUX_OPENSUSE_ICON '\uE271 ' #
|
|
||||||
LINUX_SABAYON_ICON '\uE271 ' #
|
|
||||||
LINUX_SLACKWARE_ICON '\uE271 ' #
|
|
||||||
SUNOS_ICON '\U1F31E' # 🌞
|
|
||||||
HOME_ICON '\uE12C ' #
|
|
||||||
HOME_SUB_ICON '\uE18D ' #
|
|
||||||
FOLDER_ICON '\uE818 ' #
|
|
||||||
NETWORK_ICON '\uE1AD ' #
|
|
||||||
ETC_ICON '\uE82F ' #
|
|
||||||
LOAD_ICON '\uE190 ' #
|
|
||||||
SWAP_ICON '\uE87D ' #
|
|
||||||
RAM_ICON '\uE1E2 ' #
|
|
||||||
SERVER_ICON '\uE895 ' #
|
|
||||||
VCS_UNTRACKED_ICON '\uE16C ' #
|
|
||||||
VCS_UNSTAGED_ICON '\uE17C ' #
|
|
||||||
VCS_STAGED_ICON '\uE168 ' #
|
|
||||||
VCS_STASH_ICON '\uE133 ' #
|
|
||||||
#VCS_INCOMING_CHANGES_ICON '\uE1EB ' #
|
|
||||||
#VCS_INCOMING_CHANGES_ICON '\uE80D ' #
|
|
||||||
VCS_INCOMING_CHANGES_ICON '\uE131 ' #
|
|
||||||
#VCS_OUTGOING_CHANGES_ICON '\uE1EC ' #
|
|
||||||
#VCS_OUTGOING_CHANGES_ICON '\uE80E ' #
|
|
||||||
VCS_OUTGOING_CHANGES_ICON '\uE132 ' #
|
|
||||||
VCS_TAG_ICON '\uE817 ' #
|
|
||||||
VCS_BOOKMARK_ICON '\uE87B' #
|
|
||||||
VCS_COMMIT_ICON '\uE821 ' #
|
|
||||||
VCS_BRANCH_ICON '\uE220 ' #
|
|
||||||
VCS_REMOTE_BRANCH_ICON '\u2192' # →
|
|
||||||
VCS_LOADING_ICON ''
|
|
||||||
VCS_GIT_ICON '\uE20E ' #
|
|
||||||
VCS_GIT_GITHUB_ICON '\uE20E ' #
|
|
||||||
VCS_GIT_BITBUCKET_ICON '\uE20E ' #
|
|
||||||
VCS_GIT_GITLAB_ICON '\uE20E ' #
|
|
||||||
VCS_HG_ICON '\uE1C3 ' #
|
|
||||||
VCS_SVN_ICON 'svn'
|
|
||||||
RUST_ICON 'R'
|
|
||||||
PYTHON_ICON '\uE63C ' # (doesn't always work)
|
|
||||||
SWIFT_ICON 'Swift'
|
|
||||||
GO_ICON 'Go'
|
|
||||||
PUBLIC_IP_ICON 'IP'
|
|
||||||
LOCK_ICON '\UE138' #
|
|
||||||
EXECUTION_TIME_ICON '\UE89C ' #
|
|
||||||
SSH_ICON 'ssh'
|
|
||||||
VPN_ICON '\UE138'
|
|
||||||
KUBERNETES_ICON '\U2388 ' # ⎈
|
|
||||||
DROPBOX_ICON '\UF16B ' # (doesn't always work)
|
|
||||||
DATE_ICON '\uE184 ' #
|
|
||||||
TIME_ICON '\uE12E ' #
|
|
||||||
JAVA_ICON '\U2615' # ☕︎
|
|
||||||
LARAVEL_ICON ''
|
|
||||||
RANGER_ICON '\u2B50' # ⭐
|
|
||||||
MIDNIGHT_COMMANDER_ICON 'mc'
|
|
||||||
VIM_ICON 'vim'
|
|
||||||
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
|
|
||||||
PROXY_ICON '\u2B82' # ⮂
|
|
||||||
DOTNET_ICON '.NET'
|
|
||||||
AZURE_ICON '\u2601' # ☁
|
|
||||||
DIRENV_ICON '\u25BC' # ▼
|
|
||||||
FLUTTER_ICON 'F'
|
|
||||||
GCLOUD_ICON 'G'
|
|
||||||
LUA_ICON 'lua'
|
|
||||||
PERL_ICON 'perl'
|
|
||||||
NNN_ICON 'nnn'
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
'awesome-fontconfig')
|
|
||||||
# fontconfig with awesome-font required! See
|
|
||||||
# https://github.com/gabrielelana/awesome-terminal-fonts
|
|
||||||
icons=(
|
|
||||||
RULER_CHAR '\u2500' # ─
|
|
||||||
LEFT_SEGMENT_SEPARATOR '\uE0B0' #
|
|
||||||
RIGHT_SEGMENT_SEPARATOR '\uE0B2' #
|
|
||||||
LEFT_SEGMENT_END_SEPARATOR ' ' # Whitespace
|
|
||||||
LEFT_SUBSEGMENT_SEPARATOR '\uE0B1' #
|
|
||||||
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' #
|
|
||||||
CARRIAGE_RETURN_ICON '\u21B5' # ↵
|
|
||||||
ROOT_ICON '\uF201 ' #
|
|
||||||
SUDO_ICON '\uF09C ' #
|
|
||||||
RUBY_ICON '\uF219 ' #
|
|
||||||
AWS_ICON '\uF270 ' #
|
|
||||||
AWS_EB_ICON '\U1F331' # 🌱
|
|
||||||
BACKGROUND_JOBS_ICON '\uF013 ' #
|
|
||||||
TEST_ICON '\uF291 ' #
|
|
||||||
TODO_ICON '\u2611' # ☑
|
|
||||||
BATTERY_ICON '\U1F50B' # 🔋
|
|
||||||
DISK_ICON '\uF0A0 ' #
|
|
||||||
OK_ICON '\u2714' # ✔
|
|
||||||
FAIL_ICON '\u2718' # ✘
|
|
||||||
SYMFONY_ICON 'SF'
|
|
||||||
NODE_ICON '\u2B22' # ⬢
|
|
||||||
MULTILINE_FIRST_PROMPT_PREFIX '\u256D\U2500' # ╭─
|
|
||||||
MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
|
|
||||||
MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
|
|
||||||
APPLE_ICON '\uF179 ' #
|
|
||||||
WINDOWS_ICON '\uF17A ' #
|
|
||||||
FREEBSD_ICON '\U1F608' # 😈
|
|
||||||
ANDROID_ICON '\uE17B ' # (doesn't always work)
|
|
||||||
LINUX_ICON '\uF17C ' #
|
|
||||||
LINUX_ARCH_ICON '\uF17C ' #
|
|
||||||
LINUX_DEBIAN_ICON '\uF17C ' #
|
|
||||||
LINUX_RASPBIAN_ICON '\uF17C ' #
|
|
||||||
LINUX_UBUNTU_ICON '\uF17C ' #
|
|
||||||
LINUX_CENTOS_ICON '\uF17C ' #
|
|
||||||
LINUX_COREOS_ICON '\uF17C ' #
|
|
||||||
LINUX_ELEMENTARY_ICON '\uF17C ' #
|
|
||||||
LINUX_MINT_ICON '\uF17C ' #
|
|
||||||
LINUX_FEDORA_ICON '\uF17C ' #
|
|
||||||
LINUX_GENTOO_ICON '\uF17C ' #
|
|
||||||
LINUX_MAGEIA_ICON '\uF17C ' #
|
|
||||||
LINUX_NIXOS_ICON '\uF17C ' #
|
|
||||||
LINUX_MANJARO_ICON '\uF17C ' #
|
|
||||||
LINUX_DEVUAN_ICON '\uF17C ' #
|
|
||||||
LINUX_ALPINE_ICON '\uF17C ' #
|
|
||||||
LINUX_AOSC_ICON '\uF17C ' #
|
|
||||||
LINUX_OPENSUSE_ICON '\uF17C ' #
|
|
||||||
LINUX_SABAYON_ICON '\uF17C ' #
|
|
||||||
LINUX_SLACKWARE_ICON '\uF17C ' #
|
|
||||||
SUNOS_ICON '\uF185 ' #
|
|
||||||
HOME_ICON '\uF015 ' #
|
|
||||||
HOME_SUB_ICON '\uF07C ' #
|
|
||||||
FOLDER_ICON '\uF115 ' #
|
|
||||||
ETC_ICON '\uF013 ' #
|
|
||||||
NETWORK_ICON '\uF09E ' #
|
|
||||||
LOAD_ICON '\uF080 ' #
|
|
||||||
SWAP_ICON '\uF0E4 ' #
|
|
||||||
RAM_ICON '\uF0E4 ' #
|
|
||||||
SERVER_ICON '\uF233 ' #
|
|
||||||
VCS_UNTRACKED_ICON '\uF059 ' #
|
|
||||||
VCS_UNSTAGED_ICON '\uF06A ' #
|
|
||||||
VCS_STAGED_ICON '\uF055 ' #
|
|
||||||
VCS_STASH_ICON '\uF01C ' #
|
|
||||||
VCS_INCOMING_CHANGES_ICON '\uF01A ' #
|
|
||||||
VCS_OUTGOING_CHANGES_ICON '\uF01B ' #
|
|
||||||
VCS_TAG_ICON '\uF217 ' #
|
|
||||||
VCS_BOOKMARK_ICON '\uF27B ' #
|
|
||||||
VCS_COMMIT_ICON '\uF221 ' #
|
|
||||||
VCS_BRANCH_ICON '\uF126 ' #
|
|
||||||
VCS_REMOTE_BRANCH_ICON '\u2192' # →
|
|
||||||
VCS_LOADING_ICON ''
|
|
||||||
VCS_GIT_ICON '\uF1D3 ' #
|
|
||||||
VCS_GIT_GITHUB_ICON '\uF113 ' #
|
|
||||||
VCS_GIT_BITBUCKET_ICON '\uF171 ' #
|
|
||||||
VCS_GIT_GITLAB_ICON '\uF296 ' #
|
|
||||||
VCS_HG_ICON '\uF0C3 ' #
|
|
||||||
VCS_SVN_ICON 'svn'
|
|
||||||
RUST_ICON '\uE6A8' #
|
|
||||||
PYTHON_ICON '\uE63C ' #
|
|
||||||
SWIFT_ICON 'Swift'
|
|
||||||
GO_ICON 'Go'
|
|
||||||
PUBLIC_IP_ICON 'IP'
|
|
||||||
LOCK_ICON '\UF023' #
|
|
||||||
EXECUTION_TIME_ICON '\uF253 ' #
|
|
||||||
SSH_ICON 'ssh'
|
|
||||||
VPN_ICON '\uF023'
|
|
||||||
KUBERNETES_ICON '\U2388' # ⎈
|
|
||||||
DROPBOX_ICON '\UF16B ' #
|
|
||||||
DATE_ICON '\uF073 ' #
|
|
||||||
TIME_ICON '\uF017 ' #
|
|
||||||
JAVA_ICON '\U2615' # ☕︎
|
|
||||||
LARAVEL_ICON ''
|
|
||||||
RANGER_ICON '\u2B50' # ⭐
|
|
||||||
MIDNIGHT_COMMANDER_ICON 'mc'
|
|
||||||
VIM_ICON 'vim'
|
|
||||||
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
|
|
||||||
PROXY_ICON '\u2B82' # ⮂
|
|
||||||
DOTNET_ICON '.NET'
|
|
||||||
AZURE_ICON '\u2601' # ☁
|
|
||||||
DIRENV_ICON '\u25BC' # ▼
|
|
||||||
FLUTTER_ICON 'F'
|
|
||||||
GCLOUD_ICON 'G'
|
|
||||||
LUA_ICON 'lua'
|
|
||||||
PERL_ICON 'perl'
|
|
||||||
NNN_ICON 'nnn'
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
'awesome-mapped-fontconfig')
|
|
||||||
# mapped fontconfig with awesome-font required! See
|
|
||||||
# https://github.com/gabrielelana/awesome-terminal-fonts
|
|
||||||
# don't forget to source the font maps in your startup script
|
|
||||||
if [ -z "$AWESOME_GLYPHS_LOADED" ]; then
|
|
||||||
echo "Powerlevel9k warning: Awesome-Font mappings have not been loaded.
|
|
||||||
Source a font mapping in your shell config, per the Awesome-Font docs
|
|
||||||
(https://github.com/gabrielelana/awesome-terminal-fonts),
|
|
||||||
Or use a different Powerlevel9k font configuration.";
|
|
||||||
fi
|
|
||||||
icons=(
|
|
||||||
RULER_CHAR '\u2500' # ─
|
|
||||||
LEFT_SEGMENT_SEPARATOR '\uE0B0' #
|
|
||||||
RIGHT_SEGMENT_SEPARATOR '\uE0B2' #
|
|
||||||
LEFT_SEGMENT_END_SEPARATOR ' ' # Whitespace
|
|
||||||
LEFT_SUBSEGMENT_SEPARATOR '\uE0B1' #
|
|
||||||
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' #
|
|
||||||
CARRIAGE_RETURN_ICON '\u21B5' # ↵
|
|
||||||
ROOT_ICON "${CODEPOINT_OF_OCTICONS_ZAP:+\\u$CODEPOINT_OF_OCTICONS_ZAP}"
|
|
||||||
SUDO_ICON "${CODEPOINT_OF_AWESOME_UNLOCK:+\\u$CODEPOINT_OF_AWESOME_UNLOCK }"
|
|
||||||
RUBY_ICON "${CODEPOINT_OF_OCTICONS_RUBY:+\\u$CODEPOINT_OF_OCTICONS_RUBY }"
|
|
||||||
AWS_ICON "${CODEPOINT_OF_AWESOME_SERVER:+\\u$CODEPOINT_OF_AWESOME_SERVER }"
|
|
||||||
AWS_EB_ICON '\U1F331' # 🌱
|
|
||||||
BACKGROUND_JOBS_ICON "${CODEPOINT_OF_AWESOME_COG:+\\u$CODEPOINT_OF_AWESOME_COG }"
|
|
||||||
TEST_ICON "${CODEPOINT_OF_AWESOME_BUG:+\\u$CODEPOINT_OF_AWESOME_BUG }"
|
|
||||||
TODO_ICON "${CODEPOINT_OF_AWESOME_CHECK_SQUARE_O:+\\u$CODEPOINT_OF_AWESOME_CHECK_SQUARE_O }"
|
|
||||||
BATTERY_ICON "${CODEPOINT_OF_AWESOME_BATTERY_FULL:+\\U$CODEPOINT_OF_AWESOME_BATTERY_FULL }"
|
|
||||||
DISK_ICON "${CODEPOINT_OF_AWESOME_HDD_O:+\\u$CODEPOINT_OF_AWESOME_HDD_O }"
|
|
||||||
OK_ICON "${CODEPOINT_OF_AWESOME_CHECK:+\\u$CODEPOINT_OF_AWESOME_CHECK }"
|
|
||||||
FAIL_ICON "${CODEPOINT_OF_AWESOME_TIMES:+\\u$CODEPOINT_OF_AWESOME_TIMES}"
|
|
||||||
SYMFONY_ICON 'SF'
|
|
||||||
NODE_ICON '\u2B22' # ⬢
|
|
||||||
MULTILINE_FIRST_PROMPT_PREFIX '\u256D\U2500' # ╭─
|
|
||||||
MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
|
|
||||||
MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
|
|
||||||
APPLE_ICON "${CODEPOINT_OF_AWESOME_APPLE:+\\u$CODEPOINT_OF_AWESOME_APPLE }"
|
|
||||||
FREEBSD_ICON '\U1F608' # 😈
|
|
||||||
LINUX_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_ARCH_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_DEBIAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_RASPBIAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_UBUNTU_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_CENTOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_COREOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_ELEMENTARY_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_MINT_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_FEDORA_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_GENTOO_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_MAGEIA_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_NIXOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_MANJARO_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_DEVUAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_ALPINE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_AOSC_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_OPENSUSE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_SABAYON_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
LINUX_SLACKWARE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
|
|
||||||
SUNOS_ICON "${CODEPOINT_OF_AWESOME_SUN_O:+\\u$CODEPOINT_OF_AWESOME_SUN_O }"
|
|
||||||
HOME_ICON "${CODEPOINT_OF_AWESOME_HOME:+\\u$CODEPOINT_OF_AWESOME_HOME }"
|
|
||||||
HOME_SUB_ICON "${CODEPOINT_OF_AWESOME_FOLDER_OPEN:+\\u$CODEPOINT_OF_AWESOME_FOLDER_OPEN }"
|
|
||||||
FOLDER_ICON "${CODEPOINT_OF_AWESOME_FOLDER_O:+\\u$CODEPOINT_OF_AWESOME_FOLDER_O }"
|
|
||||||
ETC_ICON "${CODEPOINT_OF_AWESOME_COG:+\\u$CODEPOINT_OF_AWESOME_COG }"
|
|
||||||
NETWORK_ICON "${CODEPOINT_OF_AWESOME_RSS:+\\u$CODEPOINT_OF_AWESOME_RSS }"
|
|
||||||
LOAD_ICON "${CODEPOINT_OF_AWESOME_BAR_CHART:+\\u$CODEPOINT_OF_AWESOME_BAR_CHART }"
|
|
||||||
SWAP_ICON "${CODEPOINT_OF_AWESOME_DASHBOARD:+\\u$CODEPOINT_OF_AWESOME_DASHBOARD }"
|
|
||||||
RAM_ICON "${CODEPOINT_OF_AWESOME_DASHBOARD:+\\u$CODEPOINT_OF_AWESOME_DASHBOARD }"
|
|
||||||
SERVER_ICON "${CODEPOINT_OF_AWESOME_SERVER:+\\u$CODEPOINT_OF_AWESOME_SERVER }"
|
|
||||||
VCS_UNTRACKED_ICON "${CODEPOINT_OF_AWESOME_QUESTION_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_QUESTION_CIRCLE }"
|
|
||||||
VCS_UNSTAGED_ICON "${CODEPOINT_OF_AWESOME_EXCLAMATION_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_EXCLAMATION_CIRCLE }"
|
|
||||||
VCS_STAGED_ICON "${CODEPOINT_OF_AWESOME_PLUS_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_PLUS_CIRCLE }"
|
|
||||||
VCS_STASH_ICON "${CODEPOINT_OF_AWESOME_INBOX:+\\u$CODEPOINT_OF_AWESOME_INBOX }"
|
|
||||||
VCS_INCOMING_CHANGES_ICON "${CODEPOINT_OF_AWESOME_ARROW_CIRCLE_DOWN:+\\u$CODEPOINT_OF_AWESOME_ARROW_CIRCLE_DOWN }"
|
|
||||||
VCS_OUTGOING_CHANGES_ICON "${CODEPOINT_OF_AWESOME_ARROW_CIRCLE_UP:+\\u$CODEPOINT_OF_AWESOME_ARROW_CIRCLE_UP }"
|
|
||||||
VCS_TAG_ICON "${CODEPOINT_OF_AWESOME_TAG:+\\u$CODEPOINT_OF_AWESOME_TAG }"
|
|
||||||
VCS_BOOKMARK_ICON "${CODEPOINT_OF_OCTICONS_BOOKMARK:+\\u$CODEPOINT_OF_OCTICONS_BOOKMARK}"
|
|
||||||
VCS_COMMIT_ICON "${CODEPOINT_OF_OCTICONS_GIT_COMMIT:+\\u$CODEPOINT_OF_OCTICONS_GIT_COMMIT }"
|
|
||||||
VCS_BRANCH_ICON "${CODEPOINT_OF_OCTICONS_GIT_BRANCH:+\\u$CODEPOINT_OF_OCTICONS_GIT_BRANCH }"
|
|
||||||
VCS_REMOTE_BRANCH_ICON "${CODEPOINT_OF_OCTICONS_REPO_PUSH:+\\u$CODEPOINT_OF_OCTICONS_REPO_PUSH }"
|
|
||||||
VCS_LOADING_ICON ''
|
|
||||||
VCS_GIT_ICON "${CODEPOINT_OF_AWESOME_GIT:+\\u$CODEPOINT_OF_AWESOME_GIT }"
|
|
||||||
VCS_GIT_GITHUB_ICON "${CODEPOINT_OF_AWESOME_GITHUB_ALT:+\\u$CODEPOINT_OF_AWESOME_GITHUB_ALT }"
|
|
||||||
VCS_GIT_BITBUCKET_ICON "${CODEPOINT_OF_AWESOME_BITBUCKET:+\\u$CODEPOINT_OF_AWESOME_BITBUCKET }"
|
|
||||||
VCS_GIT_GITLAB_ICON "${CODEPOINT_OF_AWESOME_GITLAB:+\\u$CODEPOINT_OF_AWESOME_GITLAB }"
|
|
||||||
VCS_HG_ICON "${CODEPOINT_OF_AWESOME_FLASK:+\\u$CODEPOINT_OF_AWESOME_FLASK }"
|
|
||||||
VCS_SVN_ICON 'svn'
|
|
||||||
RUST_ICON '\uE6A8' #
|
|
||||||
PYTHON_ICON '\U1F40D' # 🐍
|
|
||||||
SWIFT_ICON '\uE655 ' #
|
|
||||||
PUBLIC_IP_ICON "${CODEPOINT_OF_AWESOME_GLOBE:+\\u$CODEPOINT_OF_AWESOME_GLOBE }"
|
|
||||||
LOCK_ICON "${CODEPOINT_OF_AWESOME_LOCK:+\\u$CODEPOINT_OF_AWESOME_LOCK}"
|
|
||||||
EXECUTION_TIME_ICON "${CODEPOINT_OF_AWESOME_HOURGLASS_END:+\\u$CODEPOINT_OF_AWESOME_HOURGLASS_END }"
|
|
||||||
SSH_ICON 'ssh'
|
|
||||||
VPN_ICON "${CODEPOINT_OF_AWESOME_LOCK:+\\u$CODEPOINT_OF_AWESOME_LOCK}"
|
|
||||||
KUBERNETES_ICON '\U2388' # ⎈
|
|
||||||
DROPBOX_ICON "${CODEPOINT_OF_AWESOME_DROPBOX:+\\u$CODEPOINT_OF_AWESOME_DROPBOX }"
|
|
||||||
DATE_ICON '\uF073 ' #
|
|
||||||
TIME_ICON '\uF017 ' #
|
|
||||||
JAVA_ICON '\U2615' # ☕︎
|
|
||||||
LARAVEL_ICON ''
|
|
||||||
RANGER_ICON '\u2B50' # ⭐
|
|
||||||
MIDNIGHT_COMMANDER_ICON 'mc'
|
|
||||||
VIM_ICON 'vim'
|
|
||||||
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
|
|
||||||
PROXY_ICON '\u2B82' # ⮂
|
|
||||||
DOTNET_ICON '.NET'
|
|
||||||
AZURE_ICON '\u2601' # ☁
|
|
||||||
DIRENV_ICON '\u25BC' # ▼
|
|
||||||
FLUTTER_ICON 'F'
|
|
||||||
GCLOUD_ICON 'G'
|
|
||||||
LUA_ICON 'lua'
|
|
||||||
PERL_ICON 'perl'
|
|
||||||
NNN_ICON 'nnn'
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
'nerdfont-complete'|'nerdfont-fontconfig')
|
|
||||||
# nerd-font patched (complete) font required! See
|
|
||||||
# https://github.com/ryanoasis/nerd-fonts
|
|
||||||
# http://nerdfonts.com/#cheat-sheet
|
|
||||||
icons=(
|
|
||||||
RULER_CHAR '\u2500' # ─
|
|
||||||
LEFT_SEGMENT_SEPARATOR '\uE0B0' #
|
|
||||||
RIGHT_SEGMENT_SEPARATOR '\uE0B2' #
|
|
||||||
LEFT_SEGMENT_END_SEPARATOR ' ' # Whitespace
|
|
||||||
LEFT_SUBSEGMENT_SEPARATOR '\uE0B1' #
|
|
||||||
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' #
|
|
||||||
CARRIAGE_RETURN_ICON '\u21B5' # ↵
|
|
||||||
ROOT_ICON '\uE614' #
|
|
||||||
SUDO_ICON '\uF09C ' #
|
|
||||||
RUBY_ICON '\uF219 ' #
|
|
||||||
AWS_ICON '\uF270 ' #
|
|
||||||
AWS_EB_ICON '\UF1BD' #
|
|
||||||
BACKGROUND_JOBS_ICON '\uF013 ' #
|
|
||||||
TEST_ICON '\uF188 ' #
|
|
||||||
TODO_ICON '\u2611' # ☑
|
|
||||||
BATTERY_ICON '\UF240 ' #
|
|
||||||
DISK_ICON '\uF0A0 ' #
|
|
||||||
OK_ICON '\uF00C ' #
|
|
||||||
FAIL_ICON '\uF00D' #
|
|
||||||
SYMFONY_ICON '\uE757' #
|
|
||||||
NODE_ICON '\uE617 ' #
|
|
||||||
MULTILINE_FIRST_PROMPT_PREFIX '\u256D\U2500' # ╭─
|
|
||||||
MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
|
|
||||||
MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
|
|
||||||
APPLE_ICON '\uF179' #
|
|
||||||
WINDOWS_ICON '\uF17A ' #
|
|
||||||
FREEBSD_ICON '\UF30C ' #
|
|
||||||
ANDROID_ICON '\uF17B' #
|
|
||||||
LINUX_ARCH_ICON '\uF303' #
|
|
||||||
LINUX_CENTOS_ICON '\uF304 ' #
|
|
||||||
LINUX_COREOS_ICON '\uF305 ' #
|
|
||||||
LINUX_DEBIAN_ICON '\uF306' #
|
|
||||||
LINUX_RASPBIAN_ICON '\uF315' #
|
|
||||||
LINUX_ELEMENTARY_ICON '\uF309 ' #
|
|
||||||
LINUX_FEDORA_ICON '\uF30a ' #
|
|
||||||
LINUX_GENTOO_ICON '\uF30d ' #
|
|
||||||
LINUX_MAGEIA_ICON '\uF310' #
|
|
||||||
LINUX_MINT_ICON '\uF30e ' #
|
|
||||||
LINUX_NIXOS_ICON '\uF313 ' #
|
|
||||||
LINUX_MANJARO_ICON '\uF312 ' #
|
|
||||||
LINUX_DEVUAN_ICON '\uF307 ' #
|
|
||||||
LINUX_ALPINE_ICON '\uF300 ' #
|
|
||||||
LINUX_AOSC_ICON '\uF301 ' #
|
|
||||||
LINUX_OPENSUSE_ICON '\uF314 ' #
|
|
||||||
LINUX_SABAYON_ICON '\uF317 ' #
|
|
||||||
LINUX_SLACKWARE_ICON '\uF319 ' #
|
|
||||||
LINUX_UBUNTU_ICON '\uF31b ' #
|
|
||||||
LINUX_ICON '\uF17C' #
|
|
||||||
SUNOS_ICON '\uF185 ' #
|
|
||||||
HOME_ICON '\uF015 ' #
|
|
||||||
HOME_SUB_ICON '\uF07C ' #
|
|
||||||
FOLDER_ICON '\uF115 ' #
|
|
||||||
ETC_ICON '\uF013 ' #
|
|
||||||
NETWORK_ICON '\uF1EB ' #
|
|
||||||
LOAD_ICON '\uF080 ' #
|
|
||||||
SWAP_ICON '\uF464 ' #
|
|
||||||
RAM_ICON '\uF0E4 ' #
|
|
||||||
SERVER_ICON '\uF0AE ' #
|
|
||||||
VCS_UNTRACKED_ICON '\uF059 ' #
|
|
||||||
VCS_UNSTAGED_ICON '\uF06A ' #
|
|
||||||
VCS_STAGED_ICON '\uF055 ' #
|
|
||||||
VCS_STASH_ICON '\uF01C ' #
|
|
||||||
VCS_INCOMING_CHANGES_ICON '\uF01A ' #
|
|
||||||
VCS_OUTGOING_CHANGES_ICON '\uF01B ' #
|
|
||||||
VCS_TAG_ICON '\uF02B ' #
|
|
||||||
VCS_BOOKMARK_ICON '\uF461 ' #
|
|
||||||
VCS_COMMIT_ICON '\uE729 ' #
|
|
||||||
VCS_BRANCH_ICON '\uF126 ' #
|
|
||||||
VCS_REMOTE_BRANCH_ICON '\uE728 ' #
|
|
||||||
VCS_LOADING_ICON ''
|
|
||||||
VCS_GIT_ICON '\uF1D3 ' #
|
|
||||||
VCS_GIT_GITHUB_ICON '\uF113 ' #
|
|
||||||
VCS_GIT_BITBUCKET_ICON '\uE703 ' #
|
|
||||||
VCS_GIT_GITLAB_ICON '\uF296 ' #
|
|
||||||
VCS_HG_ICON '\uF0C3 ' #
|
|
||||||
VCS_SVN_ICON '\uE72D' #
|
|
||||||
RUST_ICON '\uE7A8' #
|
|
||||||
PYTHON_ICON '\UE73C ' #
|
|
||||||
SWIFT_ICON '\uE755' #
|
|
||||||
GO_ICON '\uE626' #
|
|
||||||
PUBLIC_IP_ICON '\UF0AC ' #
|
|
||||||
LOCK_ICON '\UF023' #
|
|
||||||
EXECUTION_TIME_ICON '\uF252 ' #
|
|
||||||
SSH_ICON '\uF489 ' #
|
|
||||||
VPN_ICON '\UF023'
|
|
||||||
KUBERNETES_ICON '\U2388' # ⎈
|
|
||||||
DROPBOX_ICON '\UF16B ' #
|
|
||||||
DATE_ICON '\uF073 ' #
|
|
||||||
TIME_ICON '\uF017 ' #
|
|
||||||
JAVA_ICON '\U2615' # ☕︎
|
|
||||||
LARAVEL_ICON '\ue73f' #
|
|
||||||
RANGER_ICON '\u2B50' # ⭐
|
|
||||||
MIDNIGHT_COMMANDER_ICON 'mc'
|
|
||||||
VIM_ICON '\uE62B' #
|
|
||||||
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
|
|
||||||
PROXY_ICON '\u2B82' # ⮂
|
|
||||||
DOTNET_ICON '\uE77F' #
|
|
||||||
AZURE_ICON '\uFD03' # ﴃ
|
|
||||||
DIRENV_ICON '\u25BC' # ▼
|
|
||||||
FLUTTER_ICON 'F'
|
|
||||||
GCLOUD_ICON '\uF7B7' #
|
|
||||||
LUA_ICON '\uE620' #
|
|
||||||
PERL_ICON '\uE769' #
|
|
||||||
NNN_ICON 'nnn'
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# Powerline-Patched Font required!
|
|
||||||
# See https://github.com/Lokaltog/powerline-fonts
|
|
||||||
icons=(
|
|
||||||
RULER_CHAR '\u2500' # ─
|
|
||||||
LEFT_SEGMENT_SEPARATOR '\uE0B0' #
|
|
||||||
RIGHT_SEGMENT_SEPARATOR '\uE0B2' #
|
|
||||||
LEFT_SEGMENT_END_SEPARATOR ' ' # Whitespace
|
|
||||||
LEFT_SUBSEGMENT_SEPARATOR '\uE0B1' #
|
|
||||||
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' #
|
|
||||||
CARRIAGE_RETURN_ICON '\u21B5' # ↵
|
|
||||||
ROOT_ICON '\u26A1' # ⚡
|
|
||||||
SUDO_ICON ''
|
|
||||||
RUBY_ICON 'Ruby'
|
|
||||||
AWS_ICON 'AWS'
|
|
||||||
AWS_EB_ICON '\U1F331' # 🌱
|
|
||||||
BACKGROUND_JOBS_ICON '\u2699' # ⚙
|
|
||||||
TEST_ICON ''
|
|
||||||
TODO_ICON '\u2206' # ∆
|
|
||||||
BATTERY_ICON '\U1F50B' # 🔋
|
|
||||||
DISK_ICON 'hdd'
|
|
||||||
OK_ICON '\u2714' # ✔
|
|
||||||
FAIL_ICON '\u2718' # ✘
|
|
||||||
SYMFONY_ICON 'SF'
|
|
||||||
NODE_ICON 'Node'
|
|
||||||
MULTILINE_FIRST_PROMPT_PREFIX '\u256D\U2500' # ╭─
|
|
||||||
MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
|
|
||||||
MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
|
|
||||||
APPLE_ICON 'OSX'
|
|
||||||
WINDOWS_ICON 'WIN'
|
|
||||||
FREEBSD_ICON 'BSD'
|
|
||||||
ANDROID_ICON 'And'
|
|
||||||
LINUX_ICON 'Lx'
|
|
||||||
LINUX_ARCH_ICON 'Arc'
|
|
||||||
LINUX_DEBIAN_ICON 'Deb'
|
|
||||||
LINUX_RASPBIAN_ICON 'RPi'
|
|
||||||
LINUX_UBUNTU_ICON 'Ubu'
|
|
||||||
LINUX_CENTOS_ICON 'Cen'
|
|
||||||
LINUX_COREOS_ICON 'Cor'
|
|
||||||
LINUX_ELEMENTARY_ICON 'Elm'
|
|
||||||
LINUX_MINT_ICON 'LMi'
|
|
||||||
LINUX_FEDORA_ICON 'Fed'
|
|
||||||
LINUX_GENTOO_ICON 'Gen'
|
|
||||||
LINUX_MAGEIA_ICON 'Mag'
|
|
||||||
LINUX_NIXOS_ICON 'Nix'
|
|
||||||
LINUX_MANJARO_ICON 'Man'
|
|
||||||
LINUX_DEVUAN_ICON 'Dev'
|
|
||||||
LINUX_ALPINE_ICON 'Alp'
|
|
||||||
LINUX_AOSC_ICON 'Aos'
|
|
||||||
LINUX_OPENSUSE_ICON 'OSu'
|
|
||||||
LINUX_SABAYON_ICON 'Sab'
|
|
||||||
LINUX_SLACKWARE_ICON 'Sla'
|
|
||||||
SUNOS_ICON 'Sun'
|
|
||||||
HOME_ICON ''
|
|
||||||
HOME_SUB_ICON ''
|
|
||||||
FOLDER_ICON ''
|
|
||||||
ETC_ICON '\u2699' # ⚙
|
|
||||||
NETWORK_ICON 'IP'
|
|
||||||
LOAD_ICON 'L'
|
|
||||||
SWAP_ICON 'SWP'
|
|
||||||
RAM_ICON 'RAM'
|
|
||||||
SERVER_ICON ''
|
|
||||||
VCS_UNTRACKED_ICON '?'
|
|
||||||
VCS_UNSTAGED_ICON '\u25CF' # ●
|
|
||||||
VCS_STAGED_ICON '\u271A' # ✚
|
|
||||||
VCS_STASH_ICON '\u235F' # ⍟
|
|
||||||
VCS_INCOMING_CHANGES_ICON '\u2193' # ↓
|
|
||||||
VCS_OUTGOING_CHANGES_ICON '\u2191' # ↑
|
|
||||||
VCS_TAG_ICON ''
|
|
||||||
VCS_BOOKMARK_ICON '\u263F' # ☿
|
|
||||||
VCS_COMMIT_ICON ''
|
|
||||||
VCS_BRANCH_ICON '\uE0A0 ' #
|
|
||||||
VCS_REMOTE_BRANCH_ICON '\u2192' # →
|
|
||||||
VCS_LOADING_ICON ''
|
|
||||||
VCS_GIT_ICON ''
|
|
||||||
VCS_GIT_GITHUB_ICON ''
|
|
||||||
VCS_GIT_BITBUCKET_ICON ''
|
|
||||||
VCS_GIT_GITLAB_ICON ''
|
|
||||||
VCS_HG_ICON ''
|
|
||||||
VCS_SVN_ICON ''
|
|
||||||
RUST_ICON 'R'
|
|
||||||
PYTHON_ICON 'Py'
|
|
||||||
SWIFT_ICON 'Swift'
|
|
||||||
GO_ICON 'Go'
|
|
||||||
PUBLIC_IP_ICON 'IP'
|
|
||||||
LOCK_ICON '\UE0A2'
|
|
||||||
EXECUTION_TIME_ICON ''
|
|
||||||
SSH_ICON 'ssh'
|
|
||||||
VPN_ICON 'vpn'
|
|
||||||
KUBERNETES_ICON '\U2388' # ⎈
|
|
||||||
DROPBOX_ICON 'Dropbox'
|
|
||||||
DATE_ICON ''
|
|
||||||
TIME_ICON ''
|
|
||||||
JAVA_ICON '\U2615' # ☕︎
|
|
||||||
LARAVEL_ICON ''
|
|
||||||
RANGER_ICON '\u2B50' # ⭐
|
|
||||||
MIDNIGHT_COMMANDER_ICON 'mc'
|
|
||||||
VIM_ICON 'vim'
|
|
||||||
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
|
|
||||||
PROXY_ICON '\u2194' # ↔
|
|
||||||
DOTNET_ICON '.NET'
|
|
||||||
AZURE_ICON '\u2601' # ☁
|
|
||||||
DIRENV_ICON '\u25BC' # ▼
|
|
||||||
FLUTTER_ICON 'F'
|
|
||||||
GCLOUD_ICON 'G'
|
|
||||||
LUA_ICON 'lua'
|
|
||||||
PERL_ICON 'perl'
|
|
||||||
NNN_ICON 'nnn'
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Override the above icon settings with any user-defined variables.
|
|
||||||
case $POWERLEVEL9K_MODE in
|
|
||||||
'flat')
|
|
||||||
icons[LEFT_SEGMENT_SEPARATOR]=''
|
|
||||||
icons[RIGHT_SEGMENT_SEPARATOR]=''
|
|
||||||
icons[LEFT_SUBSEGMENT_SEPARATOR]='|'
|
|
||||||
icons[RIGHT_SUBSEGMENT_SEPARATOR]='|'
|
|
||||||
;;
|
|
||||||
'compatible')
|
|
||||||
icons[LEFT_SEGMENT_SEPARATOR]='\u2B80' # ⮀
|
|
||||||
icons[RIGHT_SEGMENT_SEPARATOR]='\u2B82' # ⮂
|
|
||||||
icons[VCS_BRANCH_ICON]='@'
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
# Sadly, this is a part of public API. Its use is emphatically discouraged.
|
|
||||||
function _p9k_print_icon() {
|
|
||||||
emulate -L zsh
|
|
||||||
setopt no_hist_expand extended_glob no_prompt_bang prompt_{percent,subst}
|
|
||||||
_p9k_init_icons
|
|
||||||
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
|
|
||||||
local icon_name=$1
|
|
||||||
local var_name=POWERLEVEL9K_${icon_name}
|
|
||||||
if [[ -n "${(tP)var_name}" ]]; then
|
|
||||||
echo -n "${(P)var_name}"
|
|
||||||
else
|
|
||||||
echo -n "${icons[$icon_name]}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Prints a list of configured icons.
|
|
||||||
#
|
|
||||||
# * $1 string - If "original", then the original icons are printed,
|
|
||||||
# otherwise "print_icon" is used, which takes the users
|
|
||||||
# overrides into account.
|
|
||||||
function _p9k_get_icon_names() {
|
|
||||||
emulate -L zsh
|
|
||||||
setopt no_hist_expand extended_glob no_prompt_bang prompt_{percent,subst}
|
|
||||||
_p9k_init_icons
|
|
||||||
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
|
|
||||||
# Iterate over a ordered list of keys of the icons array
|
|
||||||
for key in ${(@kon)icons}; do
|
|
||||||
echo -n "POWERLEVEL9K_$key: "
|
|
||||||
if [[ "${1}" == "original" ]]; then
|
|
||||||
# print the original icons as they are defined in the array above
|
|
||||||
echo "${icons[$key]}"
|
|
||||||
else
|
|
||||||
# print the icons as they are configured by the user
|
|
||||||
echo "$(print_icon "$key")"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,573 +0,0 @@
|
|||||||
{"version": 2, "width": 127, "height": 45, "timestamp": 1559376160, "env": {"SHELL": "/usr/bin/zsh", "TERM": "xterm-256color"}, "title": "p9k vs p10k"}
|
|
||||||
[0.53704, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[1.802793, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.54 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
|
|
||||||
[2.645571, "i", "c"]
|
|
||||||
[2.645863, "o", "c"]
|
|
||||||
[2.749229, "i", "a"]
|
|
||||||
[2.749471, "o", "\bca"]
|
|
||||||
[2.821008, "i", "t"]
|
|
||||||
[2.821208, "o", "t"]
|
|
||||||
[2.917345, "i", " "]
|
|
||||||
[2.917563, "o", " "]
|
|
||||||
[3.141259, "i", "~"]
|
|
||||||
[3.141483, "o", "~"]
|
|
||||||
[3.317344, "i", "/"]
|
|
||||||
[3.31756, "o", "/"]
|
|
||||||
[3.501341, "i", "."]
|
|
||||||
[3.501574, "o", "."]
|
|
||||||
[3.709525, "i", "z"]
|
|
||||||
[3.709787, "o", "z"]
|
|
||||||
[4.285646, "i", "s"]
|
|
||||||
[4.28589, "o", "s"]
|
|
||||||
[4.40539, "i", "h"]
|
|
||||||
[4.405619, "o", "h"]
|
|
||||||
[4.517287, "i", "r"]
|
|
||||||
[4.517532, "o", "r"]
|
|
||||||
[4.741459, "i", "c"]
|
|
||||||
[4.741702, "o", "c"]
|
|
||||||
[5.957417, "i", "\r"]
|
|
||||||
[5.957699, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[5.963966, "o", "export NVM_DIR=~/nvm\r\nsource $NVM_DIR/nvm.sh\r\n\r\nPOWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(load todo background_jobs kubecontext nvm dir vcs)\r\nPOWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()\r\nPOWERLEVEL9K_DIR_PATH_ABSOLUTE=true\r\nPOWERLEVEL9K_SHORTEN_STRATEGY=truncate_with_package_name\r\n\r\nsource ~/powerlevel9k/powerlevel9k.zsh-theme\r\n"]
|
|
||||||
[5.964191, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[6.960979, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.53 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
|
|
||||||
[7.341627, "i", "e"]
|
|
||||||
[7.341903, "o", "e"]
|
|
||||||
[7.557579, "i", "c"]
|
|
||||||
[7.557797, "o", "\bec"]
|
|
||||||
[7.629363, "i", "h"]
|
|
||||||
[7.629586, "o", "h"]
|
|
||||||
[7.757141, "i", "o"]
|
|
||||||
[7.757369, "o", "o"]
|
|
||||||
[7.837404, "i", " "]
|
|
||||||
[7.83764, "o", " "]
|
|
||||||
[7.965308, "i", "o"]
|
|
||||||
[7.965505, "o", "o"]
|
|
||||||
[8.085223, "i", "r"]
|
|
||||||
[8.08542, "o", "r"]
|
|
||||||
[8.181345, "i", "i"]
|
|
||||||
[8.181584, "o", "i"]
|
|
||||||
[8.285333, "i", "g"]
|
|
||||||
[8.285535, "o", "g"]
|
|
||||||
[8.357376, "i", "i"]
|
|
||||||
[8.357591, "o", "i"]
|
|
||||||
[8.501418, "i", "n"]
|
|
||||||
[8.501621, "o", "n"]
|
|
||||||
[8.581417, "i", "a"]
|
|
||||||
[8.581623, "o", "a"]
|
|
||||||
[8.661315, "i", "l"]
|
|
||||||
[8.661516, "o", "l"]
|
|
||||||
[8.789288, "i", " "]
|
|
||||||
[8.78952, "o", " "]
|
|
||||||
[8.973335, "i", "p"]
|
|
||||||
[8.97356, "o", "p"]
|
|
||||||
[9.125345, "i", "o"]
|
|
||||||
[9.125551, "o", "o"]
|
|
||||||
[9.253231, "i", "w"]
|
|
||||||
[9.253426, "o", "w"]
|
|
||||||
[9.301294, "i", "e"]
|
|
||||||
[9.301469, "o", "e"]
|
|
||||||
[9.373118, "i", "r"]
|
|
||||||
[9.373317, "o", "r"]
|
|
||||||
[9.516979, "i", "l"]
|
|
||||||
[9.517165, "o", "l"]
|
|
||||||
[9.557044, "i", "e"]
|
|
||||||
[9.557246, "o", "e"]
|
|
||||||
[9.741259, "i", "v"]
|
|
||||||
[9.741461, "o", "v"]
|
|
||||||
[9.797193, "i", "e"]
|
|
||||||
[9.797413, "o", "e"]
|
|
||||||
[9.868882, "i", "l"]
|
|
||||||
[9.869078, "o", "l"]
|
|
||||||
[10.036815, "i", "9"]
|
|
||||||
[10.037002, "o", "9"]
|
|
||||||
[10.180929, "i", "k"]
|
|
||||||
[10.181134, "o", "k"]
|
|
||||||
[10.413048, "i", "\r"]
|
|
||||||
[10.413272, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[10.413438, "o", "original powerlevel9k\r\n"]
|
|
||||||
[10.413519, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[11.421676, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.53 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
|
|
||||||
[11.573397, "i", "l"]
|
|
||||||
[11.573648, "o", "l"]
|
|
||||||
[11.773387, "i", "s"]
|
|
||||||
[11.773623, "o", "\bls"]
|
|
||||||
[12.013242, "i", "\r"]
|
|
||||||
[12.013481, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[12.015871, "o", "azure-pipelines.yml cgmanifest.json gulpfile.js product.json resources test\t\t tslint.json\r\nbuild\t\t CONTRIBUTING.md LICENSE.txt README.md\t scripts ThirdPartyNotices.txt yarn.lock\r\ncglicenses.json extensions package.json remote\t src\t tsfmt.json\r\n"]
|
|
||||||
[12.016178, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[12.36554, "i", "p"]
|
|
||||||
[12.365781, "o", "p"]
|
|
||||||
[12.493436, "i", "w"]
|
|
||||||
[12.493666, "o", "w"]
|
|
||||||
[12.693192, "i", "d"]
|
|
||||||
[12.693423, "o", "d"]
|
|
||||||
[13.00701, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.53 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
|
|
||||||
[13.007104, "o", "p\bpwd"]
|
|
||||||
[13.453428, "i", "\r"]
|
|
||||||
[13.45367, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[13.453791, "o", "/home/romka/projects/vscode\r\n"]
|
|
||||||
[13.453887, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[14.349251, "i", "\r"]
|
|
||||||
[14.349349, "o", "\r\n"]
|
|
||||||
[14.456024, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.53 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h\u001b[?2004l\r\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[14.485142, "i", "\r"]
|
|
||||||
[14.485402, "o", "\r\n"]
|
|
||||||
[14.637102, "i", "\r"]
|
|
||||||
[14.637302, "o", "\r\n"]
|
|
||||||
[14.797341, "i", "\r"]
|
|
||||||
[14.797434, "o", "\r\n"]
|
|
||||||
[14.94944, "i", "\r"]
|
|
||||||
[14.949542, "o", "\r\n"]
|
|
||||||
[15.109413, "i", "e"]
|
|
||||||
[15.109507, "o", "e"]
|
|
||||||
[15.309269, "i", "c"]
|
|
||||||
[15.309362, "o", "c"]
|
|
||||||
[15.397125, "i", "h"]
|
|
||||||
[15.39722, "o", "h"]
|
|
||||||
[15.493601, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h\u001b[?2004l\r\r\n"]
|
|
||||||
[15.493698, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[15.509382, "i", "o"]
|
|
||||||
[15.509602, "o", "o"]
|
|
||||||
[15.653098, "i", " "]
|
|
||||||
[15.653296, "o", " "]
|
|
||||||
[16.501217, "i", "a"]
|
|
||||||
[16.501314, "o", "a"]
|
|
||||||
[16.511071, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h\u001b[?2004l\r\r\n"]
|
|
||||||
[16.511154, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[16.701189, "i", " "]
|
|
||||||
[16.701425, "o", " "]
|
|
||||||
[17.093404, "i", "b"]
|
|
||||||
[17.093502, "o", "b"]
|
|
||||||
[17.221118, "i", "i"]
|
|
||||||
[17.221356, "o", "i"]
|
|
||||||
[17.300863, "i", "t"]
|
|
||||||
[17.301097, "o", "t"]
|
|
||||||
[17.532571, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h\u001b[?2004l\r\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[17.877348, "i", " "]
|
|
||||||
[17.877587, "o", " "]
|
|
||||||
[18.205341, "i", "s"]
|
|
||||||
[18.205619, "o", "s"]
|
|
||||||
[18.325276, "i", "l"]
|
|
||||||
[18.3255, "o", "l"]
|
|
||||||
[18.469261, "i", "o"]
|
|
||||||
[18.469534, "o", "o"]
|
|
||||||
[18.533346, "i", "w"]
|
|
||||||
[18.533582, "o", "w"]
|
|
||||||
[18.547089, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h\u001b[?2004l\r\r\n"]
|
|
||||||
[18.547178, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[19.565682, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m "]
|
|
||||||
[19.565787, "o", "\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004he\becho a bi"]
|
|
||||||
[19.565836, "o", "t sl"]
|
|
||||||
[19.566076, "o", "ow"]
|
|
||||||
[19.589236, "i", " "]
|
|
||||||
[19.589418, "o", " "]
|
|
||||||
[19.749008, "i", "h"]
|
|
||||||
[19.749231, "o", "h"]
|
|
||||||
[19.876872, "i", "u"]
|
|
||||||
[19.877089, "o", "u"]
|
|
||||||
[20.053127, "i", "h"]
|
|
||||||
[20.053343, "o", "h"]
|
|
||||||
[20.7413, "i", "\r"]
|
|
||||||
[20.741536, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[20.741719, "o", "a bit slow huh\r\n"]
|
|
||||||
[20.741768, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[21.727487, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
|
|
||||||
[22.829268, "i", "\r"]
|
|
||||||
[22.829523, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[22.829632, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[22.973134, "i", "\r"]
|
|
||||||
[22.973394, "o", "\r\n"]
|
|
||||||
[23.10913, "i", "\r"]
|
|
||||||
[23.109377, "o", "\r\n"]
|
|
||||||
[23.237105, "i", "\r"]
|
|
||||||
[23.237321, "o", "\r\n"]
|
|
||||||
[23.348944, "i", "\r"]
|
|
||||||
[23.349046, "o", "\r\n"]
|
|
||||||
[23.837798, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h\u001b[?2004l\r\r\n"]
|
|
||||||
[23.837904, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[24.832648, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
|
|
||||||
[24.832756, "o", "\u001b[?2004l\r\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[25.832667, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h\u001b[?2004l\r\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[26.181402, "i", "\u0003"]
|
|
||||||
[26.181692, "o", "^C"]
|
|
||||||
[26.182089, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m"]
|
|
||||||
[26.182196, "o", "\u001b[K\u001b[105C\u001b[39m\u001b[0m\u001b[49m$(build_right_prompt)$reset_color\r\u001b[?2004h"]
|
|
||||||
[27.445169, "i", "c"]
|
|
||||||
[27.445436, "o", "c"]
|
|
||||||
[27.612934, "i", "d"]
|
|
||||||
[27.613158, "o", "\rcd"]
|
|
||||||
[27.756896, "i", " "]
|
|
||||||
[27.757162, "o", " "]
|
|
||||||
[28.165022, "i", "s"]
|
|
||||||
[28.165255, "o", "s"]
|
|
||||||
[28.268955, "i", "r"]
|
|
||||||
[28.269166, "o", "r"]
|
|
||||||
[28.484901, "i", "c"]
|
|
||||||
[28.485152, "o", "c"]
|
|
||||||
[29.637189, "i", "\r"]
|
|
||||||
[29.63745, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[29.637628, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[30.143699, "o", "truncatePath:4: bad math expression: illegal character: \\\r\n"]
|
|
||||||
[30.646309, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
|
|
||||||
[32.013179, "i", "\r"]
|
|
||||||
[32.013428, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[32.013549, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[32.517756, "o", "truncatePath:4: bad math expression: illegal character: \\\r\n"]
|
|
||||||
[32.973297, "i", "w"]
|
|
||||||
[32.973372, "o", "w"]
|
|
||||||
[33.03069, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
|
|
||||||
[33.030753, "o", "w"]
|
|
||||||
[33.125041, "i", "t"]
|
|
||||||
[33.125269, "o", "\bwt"]
|
|
||||||
[33.269129, "i", "f"]
|
|
||||||
[33.269353, "o", "f"]
|
|
||||||
[33.653444, "i", "\r"]
|
|
||||||
[33.653708, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[33.654751, "o", "zsh: command not found: wtf\r\n"]
|
|
||||||
[33.655067, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[34.154929, "o", "truncatePath:4: bad math expression: illegal character: \\\r\n"]
|
|
||||||
[34.663887, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.52 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
|
|
||||||
[34.725177, "i", "c"]
|
|
||||||
[34.725427, "o", "c"]
|
|
||||||
[34.924913, "i", "d"]
|
|
||||||
[34.925115, "o", "\bcd"]
|
|
||||||
[35.077086, "i", " "]
|
|
||||||
[35.07735, "o", " "]
|
|
||||||
[35.292953, "i", "."]
|
|
||||||
[35.293177, "o", "."]
|
|
||||||
[35.42103, "i", "."]
|
|
||||||
[35.421273, "o", "."]
|
|
||||||
[35.629217, "i", "\r"]
|
|
||||||
[35.629483, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[35.629712, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[36.638245, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[42m \u001b[30mL \u001b[30m0.56 \u001b[48;5;244m\u001b[32m \u001b[30m☑ \u001b[30m7 \u001b[45m\u001b[38;5;244m \u001b[37m⎈ \u001b[37mminikube \u001b[45m\u001b[30m \u001b[30m⬢ \u001b[30m12.3.1 \u001b[44m\u001b[35m \u001b[30mcode-oss-dev \u001b[42m\u001b[34m \u001b[30m master \u001b[49m\u001b[32m\u001b[39m \u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[K\u001b[00m\u001b[60D\u001b[?2004h"]
|
|
||||||
[37.477061, "i", "s"]
|
|
||||||
[37.47733, "o", "s"]
|
|
||||||
[37.588878, "i", "o"]
|
|
||||||
[37.589089, "o", "\bso"]
|
|
||||||
[37.700765, "i", "u"]
|
|
||||||
[37.700985, "o", "u"]
|
|
||||||
[37.796705, "i", "r"]
|
|
||||||
[37.796949, "o", "r"]
|
|
||||||
[37.988864, "i", "c"]
|
|
||||||
[37.989098, "o", "c"]
|
|
||||||
[38.180799, "i", "e"]
|
|
||||||
[38.181013, "o", "e"]
|
|
||||||
[38.420809, "i", " "]
|
|
||||||
[38.421035, "o", " "]
|
|
||||||
[38.604822, "i", "~"]
|
|
||||||
[38.605035, "o", "~"]
|
|
||||||
[38.764974, "i", "/"]
|
|
||||||
[38.765208, "o", "/"]
|
|
||||||
[39.197038, "i", "o"]
|
|
||||||
[39.197274, "o", "o"]
|
|
||||||
[39.36479, "i", "w"]
|
|
||||||
[39.365033, "o", "w"]
|
|
||||||
[39.404619, "i", "e"]
|
|
||||||
[39.404787, "o", "e"]
|
|
||||||
[39.500881, "i", "r"]
|
|
||||||
[39.501076, "o", "r"]
|
|
||||||
[39.981133, "i", ""]
|
|
||||||
[39.981387, "o", "\b \b"]
|
|
||||||
[40.100922, "i", ""]
|
|
||||||
[40.101164, "o", "\b \b"]
|
|
||||||
[40.244966, "i", ""]
|
|
||||||
[40.245181, "o", "\b \b"]
|
|
||||||
[40.781038, "i", ""]
|
|
||||||
[40.781341, "o", "\b \b"]
|
|
||||||
[41.397117, "i", "p"]
|
|
||||||
[41.397357, "o", "p"]
|
|
||||||
[41.549006, "i", "o"]
|
|
||||||
[41.549223, "o", "o"]
|
|
||||||
[41.66894, "i", "\t"]
|
|
||||||
[41.669987, "o", "werlevel"]
|
|
||||||
[42.39715, "i", "1"]
|
|
||||||
[42.397388, "o", "1"]
|
|
||||||
[42.637011, "i", "\t"]
|
|
||||||
[42.637557, "o", "0k"]
|
|
||||||
[43.317189, "i", "/"]
|
|
||||||
[43.317426, "o", "/"]
|
|
||||||
[43.50879, "i", "p"]
|
|
||||||
[43.508993, "o", "p"]
|
|
||||||
[43.669076, "i", "o"]
|
|
||||||
[43.669314, "o", "o"]
|
|
||||||
[43.74891, "i", "\t"]
|
|
||||||
[43.749325, "o", "werlevel"]
|
|
||||||
[44.077215, "i", "1"]
|
|
||||||
[44.077486, "o", "1"]
|
|
||||||
[44.340992, "i", "\t"]
|
|
||||||
[44.341411, "o", "0k.zsh-theme\u001b[1m \u001b[0m"]
|
|
||||||
[45.261252, "i", "\r"]
|
|
||||||
[45.261515, "o", "\b\u001b[0m \b\u001b[?2004l\r\r\n"]
|
|
||||||
[45.287095, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[45.595079, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[46.077089, "i", "e"]
|
|
||||||
[46.077322, "o", "e"]
|
|
||||||
[46.276969, "i", "c"]
|
|
||||||
[46.277208, "o", "\bec"]
|
|
||||||
[46.348751, "i", "h"]
|
|
||||||
[46.348969, "o", "h"]
|
|
||||||
[46.508875, "i", "o"]
|
|
||||||
[46.509094, "o", "o"]
|
|
||||||
[46.604929, "i", " "]
|
|
||||||
[46.605148, "o", " "]
|
|
||||||
[46.740751, "i", "t"]
|
|
||||||
[46.740977, "o", "t"]
|
|
||||||
[46.828853, "i", "h"]
|
|
||||||
[46.829071, "o", "h"]
|
|
||||||
[46.908719, "i", "e"]
|
|
||||||
[46.90893, "o", "e"]
|
|
||||||
[47.068923, "i", " "]
|
|
||||||
[47.069147, "o", " "]
|
|
||||||
[47.205066, "i", "s"]
|
|
||||||
[47.205306, "o", "s"]
|
|
||||||
[47.373022, "i", "a"]
|
|
||||||
[47.373266, "o", "a"]
|
|
||||||
[47.516846, "i", "m"]
|
|
||||||
[47.517072, "o", "m"]
|
|
||||||
[47.588891, "i", "e"]
|
|
||||||
[47.589101, "o", "e"]
|
|
||||||
[47.732787, "i", " "]
|
|
||||||
[47.733003, "o", " "]
|
|
||||||
[47.908991, "i", "c"]
|
|
||||||
[47.909219, "o", "c"]
|
|
||||||
[47.98101, "i", "o"]
|
|
||||||
[47.981233, "o", "o"]
|
|
||||||
[48.132892, "i", "n"]
|
|
||||||
[48.133112, "o", "n"]
|
|
||||||
[48.501069, "i", "f"]
|
|
||||||
[48.501307, "o", "f"]
|
|
||||||
[48.605085, "i", "i"]
|
|
||||||
[48.605318, "o", "i"]
|
|
||||||
[48.692956, "i", "g"]
|
|
||||||
[48.693179, "o", "g"]
|
|
||||||
[48.836976, "i", "\r"]
|
|
||||||
[48.837202, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[48.837389, "o", "the same config\r\n"]
|
|
||||||
[48.837478, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[48.848952, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[49.301199, "i", "e"]
|
|
||||||
[49.301437, "o", "e"]
|
|
||||||
[49.492908, "i", "c"]
|
|
||||||
[49.49313, "o", "\bec"]
|
|
||||||
[49.540911, "i", "h"]
|
|
||||||
[49.541102, "o", "h"]
|
|
||||||
[49.644811, "i", "o"]
|
|
||||||
[49.64501, "o", "o"]
|
|
||||||
[49.732905, "i", " "]
|
|
||||||
[49.733092, "o", " "]
|
|
||||||
[49.805042, "i", "t"]
|
|
||||||
[49.805265, "o", "t"]
|
|
||||||
[49.884917, "i", "h"]
|
|
||||||
[49.885119, "o", "h"]
|
|
||||||
[49.9726, "i", "e"]
|
|
||||||
[49.972829, "o", "e"]
|
|
||||||
[50.036777, "i", " "]
|
|
||||||
[50.036994, "o", " "]
|
|
||||||
[50.132761, "i", "s"]
|
|
||||||
[50.132964, "o", "s"]
|
|
||||||
[50.300762, "i", "a"]
|
|
||||||
[50.300978, "o", "a"]
|
|
||||||
[50.420838, "i", "m"]
|
|
||||||
[50.421037, "o", "m"]
|
|
||||||
[50.476859, "i", "e"]
|
|
||||||
[50.477044, "o", "e"]
|
|
||||||
[50.556939, "i", " "]
|
|
||||||
[50.557134, "o", " "]
|
|
||||||
[50.692809, "i", "p"]
|
|
||||||
[50.693014, "o", "p"]
|
|
||||||
[50.756686, "i", "r"]
|
|
||||||
[50.756859, "o", "r"]
|
|
||||||
[50.86083, "i", "o"]
|
|
||||||
[50.861015, "o", "o"]
|
|
||||||
[51.325156, "i", "m"]
|
|
||||||
[51.325389, "o", "m"]
|
|
||||||
[51.524926, "i", "p"]
|
|
||||||
[51.525147, "o", "p"]
|
|
||||||
[51.645054, "i", "t"]
|
|
||||||
[51.645277, "o", "t"]
|
|
||||||
[51.821133, "i", "\r"]
|
|
||||||
[51.82137, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[51.82155, "o", "the same prompt\r\n"]
|
|
||||||
[51.82163, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[51.833309, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.53 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[52.373203, "i", "e"]
|
|
||||||
[52.373441, "o", "e"]
|
|
||||||
[52.549106, "i", "c"]
|
|
||||||
[52.549339, "o", "\bec"]
|
|
||||||
[52.612882, "i", "h"]
|
|
||||||
[52.613054, "o", "h"]
|
|
||||||
[52.732732, "i", "o"]
|
|
||||||
[52.732936, "o", "o"]
|
|
||||||
[52.81272, "i", " "]
|
|
||||||
[52.812893, "o", " "]
|
|
||||||
[52.892775, "i", "b"]
|
|
||||||
[52.892965, "o", "b"]
|
|
||||||
[52.988718, "i", "u"]
|
|
||||||
[52.988905, "o", "u"]
|
|
||||||
[53.068771, "i", "t"]
|
|
||||||
[53.068984, "o", "t"]
|
|
||||||
[53.16478, "i", " "]
|
|
||||||
[53.164995, "o", " "]
|
|
||||||
[53.26088, "i", "f"]
|
|
||||||
[53.261093, "o", "f"]
|
|
||||||
[53.364842, "i", "a"]
|
|
||||||
[53.365037, "o", "a"]
|
|
||||||
[53.548877, "i", "s"]
|
|
||||||
[53.549081, "o", "s"]
|
|
||||||
[53.620878, "i", "t"]
|
|
||||||
[53.621084, "o", "t"]
|
|
||||||
[53.828977, "i", "!"]
|
|
||||||
[53.829212, "o", "!"]
|
|
||||||
[54.00484, "i", "\r"]
|
|
||||||
[54.005073, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[54.005239, "o", "but fast!\r\n"]
|
|
||||||
[54.005328, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[54.01702, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.55 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[54.941013, "i", "l"]
|
|
||||||
[54.941252, "o", "l"]
|
|
||||||
[54.996943, "i", "s"]
|
|
||||||
[54.997163, "o", "\bls"]
|
|
||||||
[55.212915, "i", "\r"]
|
|
||||||
[55.213166, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[55.215862, "o", "azure-pipelines.yml cgmanifest.json gulpfile.js product.json resources test\t\t tslint.json\r\nbuild\t\t CONTRIBUTING.md LICENSE.txt README.md\t scripts ThirdPartyNotices.txt yarn.lock\r\ncglicenses.json extensions package.json remote\t src\t tsfmt.json\r\n"]
|
|
||||||
[55.21612, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[55.22789, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.55 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[55.701246, "i", "p"]
|
|
||||||
[55.701481, "o", "p"]
|
|
||||||
[55.780794, "i", "w"]
|
|
||||||
[55.781022, "o", "\bpw"]
|
|
||||||
[55.924905, "i", "d"]
|
|
||||||
[55.925126, "o", "d"]
|
|
||||||
[56.045009, "i", "\r"]
|
|
||||||
[56.04525, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[56.045413, "o", "/home/romka/projects/vscode\r\n"]
|
|
||||||
[56.045495, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[56.057015, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.55 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[56.24519, "i", "c"]
|
|
||||||
[56.24544, "o", "c"]
|
|
||||||
[56.421036, "i", "d"]
|
|
||||||
[56.421263, "o", "\bcd"]
|
|
||||||
[56.524989, "i", " "]
|
|
||||||
[56.525211, "o", " "]
|
|
||||||
[56.645023, "i", "s"]
|
|
||||||
[56.645242, "o", "s"]
|
|
||||||
[56.684883, "i", "r"]
|
|
||||||
[56.685114, "o", "r"]
|
|
||||||
[56.876966, "i", "c"]
|
|
||||||
[56.877193, "o", "c"]
|
|
||||||
[56.972829, "i", "\r"]
|
|
||||||
[56.973067, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[56.973332, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[56.985413, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.55 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev/\u001b[0m\u001b[30m\u001b[44m\u001b[30msrc \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[56C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[56D\u001b[?2004h"]
|
|
||||||
[57.205194, "i", "c"]
|
|
||||||
[57.205449, "o", "c"]
|
|
||||||
[57.373149, "i", "d"]
|
|
||||||
[57.373389, "o", "\bcd"]
|
|
||||||
[57.47697, "i", " "]
|
|
||||||
[57.477182, "o", " "]
|
|
||||||
[57.620957, "i", "."]
|
|
||||||
[57.621177, "o", "."]
|
|
||||||
[57.756947, "i", "."]
|
|
||||||
[57.757161, "o", "."]
|
|
||||||
[57.941039, "i", "\r"]
|
|
||||||
[57.941263, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[57.941513, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[57.953015, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.55 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[58.581266, "i", "\r"]
|
|
||||||
[58.581538, "o", "\u001b[?2004l\r\r\n\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[58.593219, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.55 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.081009, "i", "\r"]
|
|
||||||
[59.081281, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.081429, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.093237, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.110986, "i", "\r"]
|
|
||||||
[59.111193, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.111314, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.12356, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.143273, "i", "\r"]
|
|
||||||
[59.143485, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.143613, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.155374, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.173369, "i", "\r"]
|
|
||||||
[59.17359, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.173683, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.185113, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.20241, "i", "\r"]
|
|
||||||
[59.202603, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.202716, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.214455, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.233834, "i", "\r"]
|
|
||||||
[59.234018, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.234128, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.24564, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.262345, "i", "\r"]
|
|
||||||
[59.262542, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.262655, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.274662, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.292442, "i", "\r"]
|
|
||||||
[59.292644, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.292742, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.30501, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.322867, "i", "\r"]
|
|
||||||
[59.323066, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.323163, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.335113, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.352291, "i", "\r"]
|
|
||||||
[59.352496, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.352635, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.364051, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.383162, "i", "\r"]
|
|
||||||
[59.383361, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.383485, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.395, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.414121, "i", "\r"]
|
|
||||||
[59.414333, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.414437, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.425938, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.444624, "i", "\r"]
|
|
||||||
[59.444904, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.445057, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.456824, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.474566, "i", "\r"]
|
|
||||||
[59.474735, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.474827, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.486114, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.504654, "i", "\r"]
|
|
||||||
[59.504847, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.504961, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.516844, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.534681, "i", "\r"]
|
|
||||||
[59.534897, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.534989, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.547367, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.564722, "i", "\r"]
|
|
||||||
[59.564909, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.565018, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.576476, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.59495, "i", "\r"]
|
|
||||||
[59.595135, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.595259, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.606554, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.625117, "i", "\r"]
|
|
||||||
[59.625332, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.625445, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.637157, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.656009, "i", "\r"]
|
|
||||||
[59.656191, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.656301, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.667971, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.68654, "i", "\r"]
|
|
||||||
[59.686754, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.686864, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.698208, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.718816, "i", "\r"]
|
|
||||||
[59.719023, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.719125, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.730853, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[59.750483, "i", "\r"]
|
|
||||||
[59.750685, "o", "\u001b[?2004l\r\r\n"]
|
|
||||||
[59.750823, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
|
|
||||||
[59.762142, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[39m\u001b[0m\u001b[49m\u001b[0m\u001b[42m \u001b[30mL \u001b[0m\u001b[30m\u001b[42m\u001b[30m0.54 \u001b[32m\u001b[0m\u001b[32m\u001b[42m\u001b[48;5;244m \u001b[30m☑ \u001b[0m\u001b[30m\u001b[48;5;244m\u001b[30m7 \u001b[38;5;244m\u001b[0m\u001b[38;5;244m\u001b[48;5;244m\u001b[45m \u001b[37m⎈ \u001b[0m\u001b[37m\u001b[45m\u001b[37mminikube \u001b[0m\u001b[37m\u001b[45m\u001b[45m\u001b[0m\u001b[37m\u001b[45m\u001b[30m \u001b[30m⬢ \u001b[0m\u001b[30m\u001b[45m\u001b[30m12.3.1 \u001b[35m\u001b[0m\u001b[35m\u001b[45m\u001b[44m \u001b[0m\u001b[35m\u001b[44m\u001b[30mcode-oss-dev \u001b[34m\u001b[0m\u001b[34m\u001b[44m\u001b[42m \u001b[0m\u001b[34m\u001b[42m\u001b[30m\u001b[0m\u001b[30m\u001b[42m\u001b[30m master \u001b[49m\u001b[0m\u001b[30m\u001b[32m\u001b[39m \u001b[39m\u001b[49m\u001b[0m\u001b[K\u001b[60C\u001b[39m\u001b[0m\u001b[49m\u001b[39m\u001b[0m\u001b[49m\u001b[60D\u001b[?2004h"]
|
|
||||||
[60.412948, "i", "\u0004"]
|
|
||||||
[60.413188, "o", "\u001b[?2004l\r\r\n"]
|
|
Binary file not shown.
Before Width: | Height: | Size: 61 KiB |
@ -1,46 +0,0 @@
|
|||||||
# vim:ft=zsh ts=2 sw=2 sts=2 et fenc=utf-8
|
|
||||||
################################################################
|
|
||||||
# Powerlevel10k Theme
|
|
||||||
# https://github.com/romkatv/powerlevel10k
|
|
||||||
#
|
|
||||||
# Forked from Powerlevel9k Theme
|
|
||||||
# https://github.com/bhilburn/powerlevel9k
|
|
||||||
#
|
|
||||||
# Which in turn was forked from Agnoster Theme
|
|
||||||
# https://github.com/robbyrussell/oh-my-zsh/blob/74177c5320b2a1b2f8c4c695c05984b57fd7c6ea/themes/agnoster.zsh-theme
|
|
||||||
################################################################
|
|
||||||
|
|
||||||
# Temporarily change options.
|
|
||||||
'builtin' 'local' '-a' '__p9k_src_opts'
|
|
||||||
[[ ! -o 'aliases' ]] || __p9k_src_opts+=('aliases')
|
|
||||||
[[ ! -o 'sh_glob' ]] || __p9k_src_opts+=('sh_glob')
|
|
||||||
[[ ! -o 'no_brace_expand' ]] || __p9k_src_opts+=('no_brace_expand')
|
|
||||||
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
|
|
||||||
|
|
||||||
(( $+__p9k_root_dir )) || typeset -gr __p9k_root_dir=${POWERLEVEL9K_INSTALLATION_DIR:-${${(%):-%x}:A:h}}
|
|
||||||
|
|
||||||
() {
|
|
||||||
emulate -L zsh
|
|
||||||
setopt no_hist_expand extended_glob no_prompt_bang no_prompt_subst prompt_percent no_aliases
|
|
||||||
if (( $+__p9k_sourced )); then
|
|
||||||
prompt_powerlevel9k_setup
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
typeset -gr __p9k_dump_file=${XDG_CACHE_HOME:-~/.cache}/p10k-dump-${(%):-%n}.zsh
|
|
||||||
if [[ $__p9k_dump_file != $__p9k_instant_prompt_dump_file ]] && (( ! $+functions[_p9k_preinit] )) && source $__p9k_dump_file 2>/dev/null && (( $+functions[_p9k_preinit] )); then
|
|
||||||
_p9k_preinit
|
|
||||||
fi
|
|
||||||
typeset -gr __p9k_sourced=1
|
|
||||||
if [[ -w $__p9k_root_dir && -w $__p9k_root_dir/internal && -w $__p9k_root_dir/gitstatus && ${(%):-%#} == % ]]; then
|
|
||||||
local f
|
|
||||||
for f in $__p9k_root_dir/{powerlevel9k.zsh-theme,powerlevel10k.zsh-theme,internal/p10k.zsh,internal/icons.zsh,internal/configure.zsh,gitstatus/gitstatus.plugin.zsh}; do
|
|
||||||
[[ $f.zwc -nt $f ]] || zcompile $f
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
source $__p9k_root_dir/internal/p10k.zsh || true
|
|
||||||
}
|
|
||||||
|
|
||||||
(( ! $+__p9k_instant_prompt_active )) || unsetopt local_options prompt_cr prompt_sp
|
|
||||||
|
|
||||||
(( ${#__p9k_src_opts} )) && setopt ${__p9k_src_opts[@]}
|
|
||||||
'builtin' 'unset' '__p9k_src_opts'
|
|
@ -1 +0,0 @@
|
|||||||
'builtin' 'source' "${POWERLEVEL9K_INSTALLATION_DIR:-${${(%):-%x}:A:h}}/powerlevel10k.zsh-theme"
|
|
@ -1 +0,0 @@
|
|||||||
'builtin' 'source' "${POWERLEVEL9K_INSTALLATION_DIR:-${${(%):-%x}:A:h}}/powerlevel10k.zsh-theme"
|
|
@ -1 +0,0 @@
|
|||||||
'builtin' 'source' "${POWERLEVEL9K_INSTALLATION_DIR:-${${(%):-%x}:A:h}}/powerlevel10k.zsh-theme"
|
|
@ -1,10 +0,0 @@
|
|||||||
## Bazaar integration
|
|
||||||
## Just works with the GIT integration just add $(bzr_prompt_info) to the PROMPT
|
|
||||||
function bzr_prompt_info() {
|
|
||||||
BZR_CB=`bzr nick 2> /dev/null | grep -v "ERROR" | cut -d ":" -f2 | awk -F / '{print "bzr::"$1}'`
|
|
||||||
if [ -n "$BZR_CB" ]; then
|
|
||||||
BZR_DIRTY=""
|
|
||||||
[[ -n `bzr status` ]] && BZR_DIRTY=" %{$fg[red]%} * %{$fg[green]%}"
|
|
||||||
echo "$ZSH_THEME_SCM_PROMPT_PREFIX$BZR_CB$BZR_DIRTY$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
|
||||||
fi
|
|
||||||
}
|
|
@ -1,86 +0,0 @@
|
|||||||
# System clipboard integration
|
|
||||||
#
|
|
||||||
# This file has support for doing system clipboard copy and paste operations
|
|
||||||
# from the command line in a generic cross-platform fashion.
|
|
||||||
#
|
|
||||||
# On OS X and Windows, the main system clipboard or "pasteboard" is used. On other
|
|
||||||
# Unix-like OSes, this considers the X Windows CLIPBOARD selection to be the
|
|
||||||
# "system clipboard", and the X Windows `xclip` command must be installed.
|
|
||||||
|
|
||||||
# clipcopy - Copy data to clipboard
|
|
||||||
#
|
|
||||||
# Usage:
|
|
||||||
#
|
|
||||||
# <command> | clipcopy - copies stdin to clipboard
|
|
||||||
#
|
|
||||||
# clipcopy <file> - copies a file's contents to clipboard
|
|
||||||
#
|
|
||||||
function clipcopy() {
|
|
||||||
emulate -L zsh
|
|
||||||
local file=$1
|
|
||||||
if [[ $OSTYPE == darwin* ]]; then
|
|
||||||
if [[ -z $file ]]; then
|
|
||||||
pbcopy
|
|
||||||
else
|
|
||||||
cat $file | pbcopy
|
|
||||||
fi
|
|
||||||
elif [[ $OSTYPE == (cygwin|msys)* ]]; then
|
|
||||||
if [[ -z $file ]]; then
|
|
||||||
cat > /dev/clipboard
|
|
||||||
else
|
|
||||||
cat $file > /dev/clipboard
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if (( $+commands[xclip] )); then
|
|
||||||
if [[ -z $file ]]; then
|
|
||||||
xclip -in -selection clipboard
|
|
||||||
else
|
|
||||||
xclip -in -selection clipboard $file
|
|
||||||
fi
|
|
||||||
elif (( $+commands[xsel] )); then
|
|
||||||
if [[ -z $file ]]; then
|
|
||||||
xsel --clipboard --input
|
|
||||||
else
|
|
||||||
cat "$file" | xsel --clipboard --input
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
print "clipcopy: Platform $OSTYPE not supported or xclip/xsel not installed" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# clippaste - "Paste" data from clipboard to stdout
|
|
||||||
#
|
|
||||||
# Usage:
|
|
||||||
#
|
|
||||||
# clippaste - writes clipboard's contents to stdout
|
|
||||||
#
|
|
||||||
# clippaste | <command> - pastes contents and pipes it to another process
|
|
||||||
#
|
|
||||||
# clippaste > <file> - paste contents to a file
|
|
||||||
#
|
|
||||||
# Examples:
|
|
||||||
#
|
|
||||||
# # Pipe to another process
|
|
||||||
# clippaste | grep foo
|
|
||||||
#
|
|
||||||
# # Paste to a file
|
|
||||||
# clippaste > file.txt
|
|
||||||
function clippaste() {
|
|
||||||
emulate -L zsh
|
|
||||||
if [[ $OSTYPE == darwin* ]]; then
|
|
||||||
pbpaste
|
|
||||||
elif [[ $OSTYPE == (cygwin|msys)* ]]; then
|
|
||||||
cat /dev/clipboard
|
|
||||||
else
|
|
||||||
if (( $+commands[xclip] )); then
|
|
||||||
xclip -out -selection clipboard
|
|
||||||
elif (( $+commands[xsel] )); then
|
|
||||||
xsel --clipboard --output
|
|
||||||
else
|
|
||||||
print "clipcopy: Platform $OSTYPE not supported or xclip/xsel not installed" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
@ -1,44 +0,0 @@
|
|||||||
# Handle completions insecurities (i.e., completion-dependent directories with
|
|
||||||
# insecure ownership or permissions) by:
|
|
||||||
#
|
|
||||||
# * Human-readably notifying the user of these insecurities.
|
|
||||||
function handle_completion_insecurities() {
|
|
||||||
# List of the absolute paths of all unique insecure directories, split on
|
|
||||||
# newline from compaudit()'s output resembling:
|
|
||||||
#
|
|
||||||
# There are insecure directories:
|
|
||||||
# /usr/share/zsh/site-functions
|
|
||||||
# /usr/share/zsh/5.0.6/functions
|
|
||||||
# /usr/share/zsh
|
|
||||||
# /usr/share/zsh/5.0.6
|
|
||||||
#
|
|
||||||
# Since the ignorable first line is printed to stderr and thus not captured,
|
|
||||||
# stderr is squelched to prevent this output from leaking to the user.
|
|
||||||
local -aU insecure_dirs
|
|
||||||
insecure_dirs=( ${(f@):-"$(compaudit 2>/dev/null)"} )
|
|
||||||
|
|
||||||
# If no such directories exist, get us out of here.
|
|
||||||
[[ -z "${insecure_dirs}" ]] && return
|
|
||||||
|
|
||||||
# List ownership and permissions of all insecure directories.
|
|
||||||
print "[oh-my-zsh] Insecure completion-dependent directories detected:"
|
|
||||||
ls -ld "${(@)insecure_dirs}"
|
|
||||||
|
|
||||||
cat <<EOD
|
|
||||||
|
|
||||||
[oh-my-zsh] For safety, we will not load completions from these directories until
|
|
||||||
[oh-my-zsh] you fix their permissions and ownership and restart zsh.
|
|
||||||
[oh-my-zsh] See the above list for directories with group or other writability.
|
|
||||||
|
|
||||||
[oh-my-zsh] To fix your permissions you can do so by disabling
|
|
||||||
[oh-my-zsh] the write permission of "group" and "others" and making sure that the
|
|
||||||
[oh-my-zsh] owner of these directories is either root or your current user.
|
|
||||||
[oh-my-zsh] The following command may help:
|
|
||||||
[oh-my-zsh] compaudit | xargs chmod g-w,o-w
|
|
||||||
|
|
||||||
[oh-my-zsh] If the above didn't help or you want to skip the verification of
|
|
||||||
[oh-my-zsh] insecure directories you can set the variable ZSH_DISABLE_COMPFIX to
|
|
||||||
[oh-my-zsh] "true" before oh-my-zsh is sourced in your zshrc file.
|
|
||||||
|
|
||||||
EOD
|
|
||||||
}
|
|
@ -1,73 +0,0 @@
|
|||||||
# fixme - the load process here seems a bit bizarre
|
|
||||||
zmodload -i zsh/complist
|
|
||||||
|
|
||||||
WORDCHARS=''
|
|
||||||
|
|
||||||
unsetopt menu_complete # do not autoselect the first completion entry
|
|
||||||
unsetopt flowcontrol
|
|
||||||
setopt auto_menu # show completion menu on successive tab press
|
|
||||||
setopt complete_in_word
|
|
||||||
setopt always_to_end
|
|
||||||
|
|
||||||
# should this be in keybindings?
|
|
||||||
bindkey -M menuselect '^o' accept-and-infer-next-history
|
|
||||||
zstyle ':completion:*:*:*:*:*' menu select
|
|
||||||
|
|
||||||
# case insensitive (all), partial-word and substring completion
|
|
||||||
if [[ "$CASE_SENSITIVE" = true ]]; then
|
|
||||||
zstyle ':completion:*' matcher-list 'r:|=*' 'l:|=* r:|=*'
|
|
||||||
else
|
|
||||||
if [[ "$HYPHEN_INSENSITIVE" = true ]]; then
|
|
||||||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z-_}={A-Za-z_-}' 'r:|=*' 'l:|=* r:|=*'
|
|
||||||
else
|
|
||||||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|=*' 'l:|=* r:|=*'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
unset CASE_SENSITIVE HYPHEN_INSENSITIVE
|
|
||||||
|
|
||||||
# Complete . and .. special directories
|
|
||||||
zstyle ':completion:*' special-dirs true
|
|
||||||
|
|
||||||
zstyle ':completion:*' list-colors ''
|
|
||||||
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
|
|
||||||
|
|
||||||
if [[ "$OSTYPE" = solaris* ]]; then
|
|
||||||
zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm"
|
|
||||||
else
|
|
||||||
zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm -w -w"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# disable named-directories autocompletion
|
|
||||||
zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories
|
|
||||||
|
|
||||||
# Use caching so that commands like apt and dpkg complete are useable
|
|
||||||
zstyle ':completion::complete:*' use-cache 1
|
|
||||||
zstyle ':completion::complete:*' cache-path $ZSH_CACHE_DIR
|
|
||||||
|
|
||||||
# Don't complete uninteresting users
|
|
||||||
zstyle ':completion:*:*:*:users' ignored-patterns \
|
|
||||||
adm amanda apache at avahi avahi-autoipd beaglidx bin cacti canna \
|
|
||||||
clamav daemon dbus distcache dnsmasq dovecot fax ftp games gdm \
|
|
||||||
gkrellmd gopher hacluster haldaemon halt hsqldb ident junkbust kdm \
|
|
||||||
ldap lp mail mailman mailnull man messagebus mldonkey mysql nagios \
|
|
||||||
named netdump news nfsnobody nobody nscd ntp nut nx obsrun openvpn \
|
|
||||||
operator pcap polkitd postfix postgres privoxy pulse pvm quagga radvd \
|
|
||||||
rpc rpcuser rpm rtkit scard shutdown squid sshd statd svn sync tftp \
|
|
||||||
usbmux uucp vcsa wwwrun xfs '_*'
|
|
||||||
|
|
||||||
# ... unless we really want to.
|
|
||||||
zstyle '*' single-ignored show
|
|
||||||
|
|
||||||
if [[ $COMPLETION_WAITING_DOTS = true ]]; then
|
|
||||||
expand-or-complete-with-dots() {
|
|
||||||
# toggle line-wrapping off and back on again
|
|
||||||
[[ -n "$terminfo[rmam]" && -n "$terminfo[smam]" ]] && echoti rmam
|
|
||||||
print -Pn "%{%F{red}......%f%}"
|
|
||||||
[[ -n "$terminfo[rmam]" && -n "$terminfo[smam]" ]] && echoti smam
|
|
||||||
|
|
||||||
zle expand-or-complete
|
|
||||||
zle redisplay
|
|
||||||
}
|
|
||||||
zle -N expand-or-complete-with-dots
|
|
||||||
bindkey "^I" expand-or-complete-with-dots
|
|
||||||
fi
|
|
@ -1,14 +0,0 @@
|
|||||||
if [[ "$ENABLE_CORRECTION" == "true" ]]; then
|
|
||||||
alias cp='nocorrect cp'
|
|
||||||
alias ebuild='nocorrect ebuild'
|
|
||||||
alias gist='nocorrect gist'
|
|
||||||
alias heroku='nocorrect heroku'
|
|
||||||
alias hpodder='nocorrect hpodder'
|
|
||||||
alias man='nocorrect man'
|
|
||||||
alias mkdir='nocorrect mkdir'
|
|
||||||
alias mv='nocorrect mv'
|
|
||||||
alias mysql='nocorrect mysql'
|
|
||||||
alias sudo='nocorrect sudo'
|
|
||||||
|
|
||||||
setopt correct_all
|
|
||||||
fi
|
|
@ -1,353 +0,0 @@
|
|||||||
# diagnostics.zsh
|
|
||||||
#
|
|
||||||
# Diagnostic and debugging support for oh-my-zsh
|
|
||||||
|
|
||||||
# omz_diagnostic_dump()
|
|
||||||
#
|
|
||||||
# Author: Andrew Janke <andrew@apjanke.net>
|
|
||||||
#
|
|
||||||
# Usage:
|
|
||||||
#
|
|
||||||
# omz_diagnostic_dump [-v] [-V] [file]
|
|
||||||
#
|
|
||||||
# NOTE: This is a work in progress. Its interface and behavior are going to change,
|
|
||||||
# and probably in non-back-compatible ways.
|
|
||||||
#
|
|
||||||
# Outputs a bunch of information about the state and configuration of
|
|
||||||
# oh-my-zsh, zsh, and the user's system. This is intended to provide a
|
|
||||||
# bunch of context for diagnosing your own or a third party's problems, and to
|
|
||||||
# be suitable for posting to public bug reports.
|
|
||||||
#
|
|
||||||
# The output is human-readable and its format may change over time. It is not
|
|
||||||
# suitable for parsing. All the output is in one single file so it can be posted
|
|
||||||
# as a gist or bug comment on GitHub. GitHub doesn't support attaching tarballs
|
|
||||||
# or other files to bugs; otherwise, this would probably have an option to produce
|
|
||||||
# tarballs that contain copies of the config and customization files instead of
|
|
||||||
# catting them all in to one file.
|
|
||||||
#
|
|
||||||
# This is intended to be widely portable, and run anywhere that oh-my-zsh does.
|
|
||||||
# Feel free to report any portability issues as bugs.
|
|
||||||
#
|
|
||||||
# This is written in a defensive style so it still works (and can detect) cases when
|
|
||||||
# basic functionality like echo and which have been redefined. In particular, almost
|
|
||||||
# everything is invoked with "builtin" or "command", to work in the face of user
|
|
||||||
# redefinitions.
|
|
||||||
#
|
|
||||||
# OPTIONS
|
|
||||||
#
|
|
||||||
# [file] Specifies the output file. If not given, a file in the current directory
|
|
||||||
# is selected automatically.
|
|
||||||
#
|
|
||||||
# -v Increase the verbosity of the dump output. May be specified multiple times.
|
|
||||||
# Verbosity levels:
|
|
||||||
# 0 - Basic info, shell state, omz configuration, git state
|
|
||||||
# 1 - (default) Adds key binding info and configuration file contents
|
|
||||||
# 2 - Adds zcompdump file contents
|
|
||||||
#
|
|
||||||
# -V Reduce the verbosity of the dump output. May be specified multiple times.
|
|
||||||
#
|
|
||||||
# TODO:
|
|
||||||
# * Multi-file capture
|
|
||||||
# * Add automatic gist uploading
|
|
||||||
# * Consider whether to move default output file location to TMPDIR. More robust
|
|
||||||
# but less user friendly.
|
|
||||||
#
|
|
||||||
|
|
||||||
autoload -Uz is-at-least
|
|
||||||
|
|
||||||
function omz_diagnostic_dump() {
|
|
||||||
emulate -L zsh
|
|
||||||
|
|
||||||
builtin echo "Generating diagnostic dump; please be patient..."
|
|
||||||
|
|
||||||
local thisfcn=omz_diagnostic_dump
|
|
||||||
local -A opts
|
|
||||||
local opt_verbose opt_noverbose opt_outfile
|
|
||||||
local timestamp=$(date +%Y%m%d-%H%M%S)
|
|
||||||
local outfile=omz_diagdump_$timestamp.txt
|
|
||||||
builtin zparseopts -A opts -D -- "v+=opt_verbose" "V+=opt_noverbose"
|
|
||||||
local verbose n_verbose=${#opt_verbose} n_noverbose=${#opt_noverbose}
|
|
||||||
(( verbose = 1 + n_verbose - n_noverbose ))
|
|
||||||
|
|
||||||
if [[ ${#*} > 0 ]]; then
|
|
||||||
opt_outfile=$1
|
|
||||||
fi
|
|
||||||
if [[ ${#*} > 1 ]]; then
|
|
||||||
builtin echo "$thisfcn: error: too many arguments" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
if [[ -n "$opt_outfile" ]]; then
|
|
||||||
outfile="$opt_outfile"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Always write directly to a file so terminal escape sequences are
|
|
||||||
# captured cleanly
|
|
||||||
_omz_diag_dump_one_big_text &> "$outfile"
|
|
||||||
if [[ $? != 0 ]]; then
|
|
||||||
builtin echo "$thisfcn: error while creating diagnostic dump; see $outfile for details"
|
|
||||||
fi
|
|
||||||
|
|
||||||
builtin echo
|
|
||||||
builtin echo Diagnostic dump file created at: "$outfile"
|
|
||||||
builtin echo
|
|
||||||
builtin echo To share this with OMZ developers, post it as a gist on GitHub
|
|
||||||
builtin echo at "https://gist.github.com" and share the link to the gist.
|
|
||||||
builtin echo
|
|
||||||
builtin echo "WARNING: This dump file contains all your zsh and omz configuration files,"
|
|
||||||
builtin echo "so don't share it publicly if there's sensitive information in them."
|
|
||||||
builtin echo
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function _omz_diag_dump_one_big_text() {
|
|
||||||
local program programs progfile md5
|
|
||||||
|
|
||||||
builtin echo oh-my-zsh diagnostic dump
|
|
||||||
builtin echo
|
|
||||||
builtin echo $outfile
|
|
||||||
builtin echo
|
|
||||||
|
|
||||||
# Basic system and zsh information
|
|
||||||
command date
|
|
||||||
command uname -a
|
|
||||||
builtin echo OSTYPE=$OSTYPE
|
|
||||||
builtin echo ZSH_VERSION=$ZSH_VERSION
|
|
||||||
builtin echo User: $USER
|
|
||||||
builtin echo umask: $(umask)
|
|
||||||
builtin echo
|
|
||||||
_omz_diag_dump_os_specific_version
|
|
||||||
builtin echo
|
|
||||||
|
|
||||||
# Installed programs
|
|
||||||
programs=(sh zsh ksh bash sed cat grep ls find git posh)
|
|
||||||
local progfile="" extra_str="" sha_str=""
|
|
||||||
for program in $programs; do
|
|
||||||
extra_str="" sha_str=""
|
|
||||||
progfile=$(builtin which $program)
|
|
||||||
if [[ $? == 0 ]]; then
|
|
||||||
if [[ -e $progfile ]]; then
|
|
||||||
if builtin whence shasum &>/dev/null; then
|
|
||||||
sha_str=($(command shasum $progfile))
|
|
||||||
sha_str=$sha_str[1]
|
|
||||||
extra_str+=" SHA $sha_str"
|
|
||||||
fi
|
|
||||||
if [[ -h "$progfile" ]]; then
|
|
||||||
extra_str+=" ( -> ${progfile:A} )"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
builtin printf '%-9s %-20s %s\n' "$program is" "$progfile" "$extra_str"
|
|
||||||
else
|
|
||||||
builtin echo "$program: not found"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
builtin echo
|
|
||||||
builtin echo Command Versions:
|
|
||||||
builtin echo "zsh: $(zsh --version)"
|
|
||||||
builtin echo "this zsh session: $ZSH_VERSION"
|
|
||||||
builtin echo "bash: $(bash --version | command grep bash)"
|
|
||||||
builtin echo "git: $(git --version)"
|
|
||||||
builtin echo "grep: $(grep --version)"
|
|
||||||
builtin echo
|
|
||||||
|
|
||||||
# Core command definitions
|
|
||||||
_omz_diag_dump_check_core_commands || return 1
|
|
||||||
builtin echo
|
|
||||||
|
|
||||||
# ZSH Process state
|
|
||||||
builtin echo Process state:
|
|
||||||
builtin echo pwd: $PWD
|
|
||||||
if builtin whence pstree &>/dev/null; then
|
|
||||||
builtin echo Process tree for this shell:
|
|
||||||
pstree -p $$
|
|
||||||
else
|
|
||||||
ps -fT
|
|
||||||
fi
|
|
||||||
builtin set | command grep -a '^\(ZSH\|plugins\|TERM\|LC_\|LANG\|precmd\|chpwd\|preexec\|FPATH\|TTY\|DISPLAY\|PATH\)\|OMZ'
|
|
||||||
builtin echo
|
|
||||||
#TODO: Should this include `env` instead of or in addition to `export`?
|
|
||||||
builtin echo Exported:
|
|
||||||
builtin echo $(builtin export | command sed 's/=.*//')
|
|
||||||
builtin echo
|
|
||||||
builtin echo Locale:
|
|
||||||
command locale
|
|
||||||
builtin echo
|
|
||||||
|
|
||||||
# Zsh installation and configuration
|
|
||||||
builtin echo Zsh configuration:
|
|
||||||
builtin echo setopt: $(builtin setopt)
|
|
||||||
builtin echo
|
|
||||||
builtin echo zstyle:
|
|
||||||
builtin zstyle
|
|
||||||
builtin echo
|
|
||||||
builtin echo 'compaudit output:'
|
|
||||||
compaudit
|
|
||||||
builtin echo
|
|
||||||
builtin echo '$fpath directories:'
|
|
||||||
command ls -lad $fpath
|
|
||||||
builtin echo
|
|
||||||
|
|
||||||
# Oh-my-zsh installation
|
|
||||||
builtin echo oh-my-zsh installation:
|
|
||||||
command ls -ld ~/.z*
|
|
||||||
command ls -ld ~/.oh*
|
|
||||||
builtin echo
|
|
||||||
builtin echo oh-my-zsh git state:
|
|
||||||
(cd $ZSH && builtin echo "HEAD: $(git rev-parse HEAD)" && git remote -v && git status | command grep "[^[:space:]]")
|
|
||||||
if [[ $verbose -ge 1 ]]; then
|
|
||||||
(cd $ZSH && git reflog --date=default | command grep pull)
|
|
||||||
fi
|
|
||||||
builtin echo
|
|
||||||
if [[ -e $ZSH_CUSTOM ]]; then
|
|
||||||
local custom_dir=$ZSH_CUSTOM
|
|
||||||
if [[ -h $custom_dir ]]; then
|
|
||||||
custom_dir=$(cd $custom_dir && pwd -P)
|
|
||||||
fi
|
|
||||||
builtin echo "oh-my-zsh custom dir:"
|
|
||||||
builtin echo " $ZSH_CUSTOM ($custom_dir)"
|
|
||||||
(cd ${custom_dir:h} && command find ${custom_dir:t} -name .git -prune -o -print)
|
|
||||||
builtin echo
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Key binding and terminal info
|
|
||||||
if [[ $verbose -ge 1 ]]; then
|
|
||||||
builtin echo "bindkey:"
|
|
||||||
builtin bindkey
|
|
||||||
builtin echo
|
|
||||||
builtin echo "infocmp:"
|
|
||||||
command infocmp -L
|
|
||||||
builtin echo
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Configuration file info
|
|
||||||
local zdotdir=${ZDOTDIR:-$HOME}
|
|
||||||
builtin echo "Zsh configuration files:"
|
|
||||||
local cfgfile cfgfiles
|
|
||||||
# Some files for bash that zsh does not use are intentionally included
|
|
||||||
# to help with diagnosing behavior differences between bash and zsh
|
|
||||||
cfgfiles=( /etc/zshenv /etc/zprofile /etc/zshrc /etc/zlogin /etc/zlogout
|
|
||||||
$zdotdir/.zshenv $zdotdir/.zprofile $zdotdir/.zshrc $zdotdir/.zlogin $zdotdir/.zlogout
|
|
||||||
~/.zsh.pre-oh-my-zsh
|
|
||||||
/etc/bashrc /etc/profile ~/.bashrc ~/.profile ~/.bash_profile ~/.bash_logout )
|
|
||||||
command ls -lad $cfgfiles 2>&1
|
|
||||||
builtin echo
|
|
||||||
if [[ $verbose -ge 1 ]]; then
|
|
||||||
for cfgfile in $cfgfiles; do
|
|
||||||
_omz_diag_dump_echo_file_w_header $cfgfile
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
builtin echo
|
|
||||||
builtin echo "Zsh compdump files:"
|
|
||||||
local dumpfile dumpfiles
|
|
||||||
command ls -lad $zdotdir/.zcompdump*
|
|
||||||
dumpfiles=( $zdotdir/.zcompdump*(N) )
|
|
||||||
if [[ $verbose -ge 2 ]]; then
|
|
||||||
for dumpfile in $dumpfiles; do
|
|
||||||
_omz_diag_dump_echo_file_w_header $dumpfile
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function _omz_diag_dump_check_core_commands() {
|
|
||||||
builtin echo "Core command check:"
|
|
||||||
local redefined name builtins externals reserved_words
|
|
||||||
redefined=()
|
|
||||||
# All the zsh non-module builtin commands
|
|
||||||
# These are taken from the zsh reference manual for 5.0.2
|
|
||||||
# Commands from modules should not be included.
|
|
||||||
# (For back-compatibility, if any of these are newish, they should be removed,
|
|
||||||
# or at least made conditional on the version of the current running zsh.)
|
|
||||||
# "history" is also excluded because OMZ is known to redefine that
|
|
||||||
reserved_words=( do done esac then elif else fi for case if while function
|
|
||||||
repeat time until select coproc nocorrect foreach end '!' '[[' '{' '}'
|
|
||||||
)
|
|
||||||
builtins=( alias autoload bg bindkey break builtin bye cd chdir command
|
|
||||||
comparguments compcall compctl compdescribe compfiles compgroups compquote comptags
|
|
||||||
comptry compvalues continue dirs disable disown echo echotc echoti emulate
|
|
||||||
enable eval exec exit false fc fg functions getln getopts hash
|
|
||||||
jobs kill let limit log logout noglob popd print printf
|
|
||||||
pushd pushln pwd r read rehash return sched set setopt shift
|
|
||||||
source suspend test times trap true ttyctl type ulimit umask unalias
|
|
||||||
unfunction unhash unlimit unset unsetopt vared wait whence where which zcompile
|
|
||||||
zle zmodload zparseopts zregexparse zstyle )
|
|
||||||
if is-at-least 5.1; then
|
|
||||||
reserved_word+=( declare export integer float local readonly typeset )
|
|
||||||
else
|
|
||||||
builtins+=( declare export integer float local readonly typeset )
|
|
||||||
fi
|
|
||||||
builtins_fatal=( builtin command local )
|
|
||||||
externals=( zsh )
|
|
||||||
for name in $reserved_words; do
|
|
||||||
if [[ $(builtin whence -w $name) != "$name: reserved" ]]; then
|
|
||||||
builtin echo "reserved word '$name' has been redefined"
|
|
||||||
builtin which $name
|
|
||||||
redefined+=$name
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
for name in $builtins; do
|
|
||||||
if [[ $(builtin whence -w $name) != "$name: builtin" ]]; then
|
|
||||||
builtin echo "builtin '$name' has been redefined"
|
|
||||||
builtin which $name
|
|
||||||
redefined+=$name
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
for name in $externals; do
|
|
||||||
if [[ $(builtin whence -w $name) != "$name: command" ]]; then
|
|
||||||
builtin echo "command '$name' has been redefined"
|
|
||||||
builtin which $name
|
|
||||||
redefined+=$name
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ -n "$redefined" ]]; then
|
|
||||||
builtin echo "SOME CORE COMMANDS HAVE BEEN REDEFINED: $redefined"
|
|
||||||
else
|
|
||||||
builtin echo "All core commands are defined normally"
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function _omz_diag_dump_echo_file_w_header() {
|
|
||||||
local file=$1
|
|
||||||
if [[ ( -f $file || -h $file ) ]]; then
|
|
||||||
builtin echo "========== $file =========="
|
|
||||||
if [[ -h $file ]]; then
|
|
||||||
builtin echo "========== ( => ${file:A} ) =========="
|
|
||||||
fi
|
|
||||||
command cat $file
|
|
||||||
builtin echo "========== end $file =========="
|
|
||||||
builtin echo
|
|
||||||
elif [[ -d $file ]]; then
|
|
||||||
builtin echo "File '$file' is a directory"
|
|
||||||
elif [[ ! -e $file ]]; then
|
|
||||||
builtin echo "File '$file' does not exist"
|
|
||||||
else
|
|
||||||
command ls -lad "$file"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function _omz_diag_dump_os_specific_version() {
|
|
||||||
local osname osver version_file version_files
|
|
||||||
case "$OSTYPE" in
|
|
||||||
darwin*)
|
|
||||||
osname=$(command sw_vers -productName)
|
|
||||||
osver=$(command sw_vers -productVersion)
|
|
||||||
builtin echo "OS Version: $osname $osver build $(sw_vers -buildVersion)"
|
|
||||||
;;
|
|
||||||
cygwin)
|
|
||||||
command systeminfo | command head -4 | command tail -2
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if builtin which lsb_release >/dev/null; then
|
|
||||||
builtin echo "OS Release: $(command lsb_release -s -d)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
version_files=( /etc/*-release(N) /etc/*-version(N) /etc/*_version(N) )
|
|
||||||
for version_file in $version_files; do
|
|
||||||
builtin echo "$version_file:"
|
|
||||||
command cat "$version_file"
|
|
||||||
builtin echo
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
|||||||
# Changing/making/removing directory
|
|
||||||
setopt auto_pushd
|
|
||||||
setopt pushd_ignore_dups
|
|
||||||
setopt pushdminus
|
|
||||||
|
|
||||||
alias -g ...='../..'
|
|
||||||
alias -g ....='../../..'
|
|
||||||
alias -g .....='../../../..'
|
|
||||||
alias -g ......='../../../../..'
|
|
||||||
|
|
||||||
alias -- -='cd -'
|
|
||||||
alias 1='cd -'
|
|
||||||
alias 2='cd -2'
|
|
||||||
alias 3='cd -3'
|
|
||||||
alias 4='cd -4'
|
|
||||||
alias 5='cd -5'
|
|
||||||
alias 6='cd -6'
|
|
||||||
alias 7='cd -7'
|
|
||||||
alias 8='cd -8'
|
|
||||||
alias 9='cd -9'
|
|
||||||
|
|
||||||
alias md='mkdir -p'
|
|
||||||
alias rd=rmdir
|
|
||||||
|
|
||||||
function d () {
|
|
||||||
if [[ -n $1 ]]; then
|
|
||||||
dirs "$@"
|
|
||||||
else
|
|
||||||
dirs -v | head -10
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
compdef _dirs d
|
|
||||||
|
|
||||||
# List directory contents
|
|
||||||
alias lsa='ls -lah'
|
|
||||||
alias l='ls -lah'
|
|
||||||
alias ll='ls -lh'
|
|
||||||
alias la='ls -lAh'
|
|
@ -1,224 +0,0 @@
|
|||||||
function zsh_stats() {
|
|
||||||
fc -l 1 | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n20
|
|
||||||
}
|
|
||||||
|
|
||||||
function uninstall_oh_my_zsh() {
|
|
||||||
env ZSH=$ZSH sh $ZSH/tools/uninstall.sh
|
|
||||||
}
|
|
||||||
|
|
||||||
function upgrade_oh_my_zsh() {
|
|
||||||
env ZSH=$ZSH sh $ZSH/tools/upgrade.sh
|
|
||||||
}
|
|
||||||
|
|
||||||
function take() {
|
|
||||||
mkdir -p $@ && cd ${@:$#}
|
|
||||||
}
|
|
||||||
|
|
||||||
function open_command() {
|
|
||||||
local open_cmd
|
|
||||||
|
|
||||||
# define the open command
|
|
||||||
case "$OSTYPE" in
|
|
||||||
darwin*) open_cmd='open' ;;
|
|
||||||
cygwin*) open_cmd='cygstart' ;;
|
|
||||||
linux*) [[ "$(uname -r)" != *icrosoft* ]] && open_cmd='nohup xdg-open' || {
|
|
||||||
open_cmd='cmd.exe /c start ""'
|
|
||||||
[[ -e "$1" ]] && { 1="$(wslpath -w "${1:a}")" || return 1 }
|
|
||||||
} ;;
|
|
||||||
msys*) open_cmd='start ""' ;;
|
|
||||||
*) echo "Platform $OSTYPE not supported"
|
|
||||||
return 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
${=open_cmd} "$@" &>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Get the value of an alias.
|
|
||||||
#
|
|
||||||
# Arguments:
|
|
||||||
# 1. alias - The alias to get its value from
|
|
||||||
# STDOUT:
|
|
||||||
# The value of alias $1 (if it has one).
|
|
||||||
# Return value:
|
|
||||||
# 0 if the alias was found,
|
|
||||||
# 1 if it does not exist
|
|
||||||
#
|
|
||||||
function alias_value() {
|
|
||||||
(( $+aliases[$1] )) && echo $aliases[$1]
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Try to get the value of an alias,
|
|
||||||
# otherwise return the input.
|
|
||||||
#
|
|
||||||
# Arguments:
|
|
||||||
# 1. alias - The alias to get its value from
|
|
||||||
# STDOUT:
|
|
||||||
# The value of alias $1, or $1 if there is no alias $1.
|
|
||||||
# Return value:
|
|
||||||
# Always 0
|
|
||||||
#
|
|
||||||
function try_alias_value() {
|
|
||||||
alias_value "$1" || echo "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Set variable "$1" to default value "$2" if "$1" is not yet defined.
|
|
||||||
#
|
|
||||||
# Arguments:
|
|
||||||
# 1. name - The variable to set
|
|
||||||
# 2. val - The default value
|
|
||||||
# Return value:
|
|
||||||
# 0 if the variable exists, 3 if it was set
|
|
||||||
#
|
|
||||||
function default() {
|
|
||||||
(( $+parameters[$1] )) && return 0
|
|
||||||
typeset -g "$1"="$2" && return 3
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Set environment variable "$1" to default value "$2" if "$1" is not yet defined.
|
|
||||||
#
|
|
||||||
# Arguments:
|
|
||||||
# 1. name - The env variable to set
|
|
||||||
# 2. val - The default value
|
|
||||||
# Return value:
|
|
||||||
# 0 if the env variable exists, 3 if it was set
|
|
||||||
#
|
|
||||||
function env_default() {
|
|
||||||
(( ${${(@f):-$(typeset +xg)}[(I)$1]} )) && return 0
|
|
||||||
export "$1=$2" && return 3
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# Required for $langinfo
|
|
||||||
zmodload zsh/langinfo
|
|
||||||
|
|
||||||
# URL-encode a string
|
|
||||||
#
|
|
||||||
# Encodes a string using RFC 2396 URL-encoding (%-escaped).
|
|
||||||
# See: https://www.ietf.org/rfc/rfc2396.txt
|
|
||||||
#
|
|
||||||
# By default, reserved characters and unreserved "mark" characters are
|
|
||||||
# not escaped by this function. This allows the common usage of passing
|
|
||||||
# an entire URL in, and encoding just special characters in it, with
|
|
||||||
# the expectation that reserved and mark characters are used appropriately.
|
|
||||||
# The -r and -m options turn on escaping of the reserved and mark characters,
|
|
||||||
# respectively, which allows arbitrary strings to be fully escaped for
|
|
||||||
# embedding inside URLs, where reserved characters might be misinterpreted.
|
|
||||||
#
|
|
||||||
# Prints the encoded string on stdout.
|
|
||||||
# Returns nonzero if encoding failed.
|
|
||||||
#
|
|
||||||
# Usage:
|
|
||||||
# omz_urlencode [-r] [-m] [-P] <string>
|
|
||||||
#
|
|
||||||
# -r causes reserved characters (;/?:@&=+$,) to be escaped
|
|
||||||
#
|
|
||||||
# -m causes "mark" characters (_.!~*''()-) to be escaped
|
|
||||||
#
|
|
||||||
# -P causes spaces to be encoded as '%20' instead of '+'
|
|
||||||
function omz_urlencode() {
|
|
||||||
emulate -L zsh
|
|
||||||
zparseopts -D -E -a opts r m P
|
|
||||||
|
|
||||||
local in_str=$1
|
|
||||||
local url_str=""
|
|
||||||
local spaces_as_plus
|
|
||||||
if [[ -z $opts[(r)-P] ]]; then spaces_as_plus=1; fi
|
|
||||||
local str="$in_str"
|
|
||||||
|
|
||||||
# URLs must use UTF-8 encoding; convert str to UTF-8 if required
|
|
||||||
local encoding=$langinfo[CODESET]
|
|
||||||
local safe_encodings
|
|
||||||
safe_encodings=(UTF-8 utf8 US-ASCII)
|
|
||||||
if [[ -z ${safe_encodings[(r)$encoding]} ]]; then
|
|
||||||
str=$(echo -E "$str" | iconv -f $encoding -t UTF-8)
|
|
||||||
if [[ $? != 0 ]]; then
|
|
||||||
echo "Error converting string from $encoding to UTF-8" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use LC_CTYPE=C to process text byte-by-byte
|
|
||||||
local i byte ord LC_ALL=C
|
|
||||||
export LC_ALL
|
|
||||||
local reserved=';/?:@&=+$,'
|
|
||||||
local mark='_.!~*''()-'
|
|
||||||
local dont_escape="[A-Za-z0-9"
|
|
||||||
if [[ -z $opts[(r)-r] ]]; then
|
|
||||||
dont_escape+=$reserved
|
|
||||||
fi
|
|
||||||
# $mark must be last because of the "-"
|
|
||||||
if [[ -z $opts[(r)-m] ]]; then
|
|
||||||
dont_escape+=$mark
|
|
||||||
fi
|
|
||||||
dont_escape+="]"
|
|
||||||
|
|
||||||
# Implemented to use a single printf call and avoid subshells in the loop,
|
|
||||||
# for performance (primarily on Windows).
|
|
||||||
local url_str=""
|
|
||||||
for (( i = 1; i <= ${#str}; ++i )); do
|
|
||||||
byte="$str[i]"
|
|
||||||
if [[ "$byte" =~ "$dont_escape" ]]; then
|
|
||||||
url_str+="$byte"
|
|
||||||
else
|
|
||||||
if [[ "$byte" == " " && -n $spaces_as_plus ]]; then
|
|
||||||
url_str+="+"
|
|
||||||
else
|
|
||||||
ord=$(( [##16] #byte ))
|
|
||||||
url_str+="%$ord"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo -E "$url_str"
|
|
||||||
}
|
|
||||||
|
|
||||||
# URL-decode a string
|
|
||||||
#
|
|
||||||
# Decodes a RFC 2396 URL-encoded (%-escaped) string.
|
|
||||||
# This decodes the '+' and '%' escapes in the input string, and leaves
|
|
||||||
# other characters unchanged. Does not enforce that the input is a
|
|
||||||
# valid URL-encoded string. This is a convenience to allow callers to
|
|
||||||
# pass in a full URL or similar strings and decode them for human
|
|
||||||
# presentation.
|
|
||||||
#
|
|
||||||
# Outputs the encoded string on stdout.
|
|
||||||
# Returns nonzero if encoding failed.
|
|
||||||
#
|
|
||||||
# Usage:
|
|
||||||
# omz_urldecode <urlstring> - prints decoded string followed by a newline
|
|
||||||
function omz_urldecode {
|
|
||||||
emulate -L zsh
|
|
||||||
local encoded_url=$1
|
|
||||||
|
|
||||||
# Work bytewise, since URLs escape UTF-8 octets
|
|
||||||
local caller_encoding=$langinfo[CODESET]
|
|
||||||
local LC_ALL=C
|
|
||||||
export LC_ALL
|
|
||||||
|
|
||||||
# Change + back to ' '
|
|
||||||
local tmp=${encoded_url:gs/+/ /}
|
|
||||||
# Protect other escapes to pass through the printf unchanged
|
|
||||||
tmp=${tmp:gs/\\/\\\\/}
|
|
||||||
# Handle %-escapes by turning them into `\xXX` printf escapes
|
|
||||||
tmp=${tmp:gs/%/\\x/}
|
|
||||||
local decoded
|
|
||||||
eval "decoded=\$'$tmp'"
|
|
||||||
|
|
||||||
# Now we have a UTF-8 encoded string in the variable. We need to re-encode
|
|
||||||
# it if caller is in a non-UTF-8 locale.
|
|
||||||
local safe_encodings
|
|
||||||
safe_encodings=(UTF-8 utf8 US-ASCII)
|
|
||||||
if [[ -z ${safe_encodings[(r)$caller_encoding]} ]]; then
|
|
||||||
decoded=$(echo -E "$decoded" | iconv -f UTF-8 -t $caller_encoding)
|
|
||||||
if [[ $? != 0 ]]; then
|
|
||||||
echo "Error converting string from UTF-8 to $caller_encoding" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -E "$decoded"
|
|
||||||
}
|
|
@ -1,201 +0,0 @@
|
|||||||
# Outputs current branch info in prompt format
|
|
||||||
function git_prompt_info() {
|
|
||||||
local ref
|
|
||||||
if [[ "$(command git config --get oh-my-zsh.hide-status 2>/dev/null)" != "1" ]]; then
|
|
||||||
ref=$(command git symbolic-ref HEAD 2> /dev/null) || \
|
|
||||||
ref=$(command git rev-parse --short HEAD 2> /dev/null) || return 0
|
|
||||||
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Checks if working tree is dirty
|
|
||||||
function parse_git_dirty() {
|
|
||||||
local STATUS
|
|
||||||
local -a FLAGS
|
|
||||||
FLAGS=('--porcelain')
|
|
||||||
if [[ "$(command git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then
|
|
||||||
if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then
|
|
||||||
FLAGS+='--untracked-files=no'
|
|
||||||
fi
|
|
||||||
case "$GIT_STATUS_IGNORE_SUBMODULES" in
|
|
||||||
git)
|
|
||||||
# let git decide (this respects per-repo config in .gitmodules)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# if unset: ignore dirty submodules
|
|
||||||
# other values are passed to --ignore-submodules
|
|
||||||
FLAGS+="--ignore-submodules=${GIT_STATUS_IGNORE_SUBMODULES:-dirty}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
STATUS=$(command git status ${FLAGS} 2> /dev/null | tail -n1)
|
|
||||||
fi
|
|
||||||
if [[ -n $STATUS ]]; then
|
|
||||||
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
|
|
||||||
else
|
|
||||||
echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Gets the difference between the local and remote branches
|
|
||||||
function git_remote_status() {
|
|
||||||
local remote ahead behind git_remote_status git_remote_status_detailed
|
|
||||||
remote=${$(command git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/}
|
|
||||||
if [[ -n ${remote} ]]; then
|
|
||||||
ahead=$(command git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
|
|
||||||
behind=$(command git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l)
|
|
||||||
|
|
||||||
if [[ $ahead -eq 0 ]] && [[ $behind -eq 0 ]]; then
|
|
||||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE"
|
|
||||||
elif [[ $ahead -gt 0 ]] && [[ $behind -eq 0 ]]; then
|
|
||||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE"
|
|
||||||
git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}"
|
|
||||||
elif [[ $behind -gt 0 ]] && [[ $ahead -eq 0 ]]; then
|
|
||||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE"
|
|
||||||
git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}"
|
|
||||||
elif [[ $ahead -gt 0 ]] && [[ $behind -gt 0 ]]; then
|
|
||||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE"
|
|
||||||
git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ]]; then
|
|
||||||
git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX$remote$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo $git_remote_status
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Outputs the name of the current branch
|
|
||||||
# Usage example: git pull origin $(git_current_branch)
|
|
||||||
# Using '--quiet' with 'symbolic-ref' will not cause a fatal error (128) if
|
|
||||||
# it's not a symbolic ref, but in a Git repo.
|
|
||||||
function git_current_branch() {
|
|
||||||
local ref
|
|
||||||
ref=$(command git symbolic-ref --quiet HEAD 2> /dev/null)
|
|
||||||
local ret=$?
|
|
||||||
if [[ $ret != 0 ]]; then
|
|
||||||
[[ $ret == 128 ]] && return # no git repo.
|
|
||||||
ref=$(command git rev-parse --short HEAD 2> /dev/null) || return
|
|
||||||
fi
|
|
||||||
echo ${ref#refs/heads/}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# Gets the number of commits ahead from remote
|
|
||||||
function git_commits_ahead() {
|
|
||||||
if command git rev-parse --git-dir &>/dev/null; then
|
|
||||||
local commits="$(git rev-list --count @{upstream}..HEAD 2>/dev/null)"
|
|
||||||
if [[ -n "$commits" && "$commits" != 0 ]]; then
|
|
||||||
echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$commits$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Gets the number of commits behind remote
|
|
||||||
function git_commits_behind() {
|
|
||||||
if command git rev-parse --git-dir &>/dev/null; then
|
|
||||||
local commits="$(git rev-list --count HEAD..@{upstream} 2>/dev/null)"
|
|
||||||
if [[ -n "$commits" && "$commits" != 0 ]]; then
|
|
||||||
echo "$ZSH_THEME_GIT_COMMITS_BEHIND_PREFIX$commits$ZSH_THEME_GIT_COMMITS_BEHIND_SUFFIX"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Outputs if current branch is ahead of remote
|
|
||||||
function git_prompt_ahead() {
|
|
||||||
if [[ -n "$(command git rev-list origin/$(git_current_branch)..HEAD 2> /dev/null)" ]]; then
|
|
||||||
echo "$ZSH_THEME_GIT_PROMPT_AHEAD"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Outputs if current branch is behind remote
|
|
||||||
function git_prompt_behind() {
|
|
||||||
if [[ -n "$(command git rev-list HEAD..origin/$(git_current_branch) 2> /dev/null)" ]]; then
|
|
||||||
echo "$ZSH_THEME_GIT_PROMPT_BEHIND"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Outputs if current branch exists on remote or not
|
|
||||||
function git_prompt_remote() {
|
|
||||||
if [[ -n "$(command git show-ref origin/$(git_current_branch) 2> /dev/null)" ]]; then
|
|
||||||
echo "$ZSH_THEME_GIT_PROMPT_REMOTE_EXISTS"
|
|
||||||
else
|
|
||||||
echo "$ZSH_THEME_GIT_PROMPT_REMOTE_MISSING"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Formats prompt string for current git commit short SHA
|
|
||||||
function git_prompt_short_sha() {
|
|
||||||
local SHA
|
|
||||||
SHA=$(command git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Formats prompt string for current git commit long SHA
|
|
||||||
function git_prompt_long_sha() {
|
|
||||||
local SHA
|
|
||||||
SHA=$(command git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Get the status of the working tree
|
|
||||||
function git_prompt_status() {
|
|
||||||
local INDEX STATUS
|
|
||||||
INDEX=$(command git status --porcelain -b 2> /dev/null)
|
|
||||||
STATUS=""
|
|
||||||
if $(echo "$INDEX" | command grep -E '^\?\? ' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
|
|
||||||
fi
|
|
||||||
if $(echo "$INDEX" | grep '^A ' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
|
|
||||||
elif $(echo "$INDEX" | grep '^M ' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
|
|
||||||
elif $(echo "$INDEX" | grep '^MM ' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
|
|
||||||
fi
|
|
||||||
if $(echo "$INDEX" | grep '^ M ' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
|
|
||||||
elif $(echo "$INDEX" | grep '^AM ' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
|
|
||||||
elif $(echo "$INDEX" | grep '^MM ' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
|
|
||||||
elif $(echo "$INDEX" | grep '^ T ' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
|
|
||||||
fi
|
|
||||||
if $(echo "$INDEX" | grep '^R ' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$STATUS"
|
|
||||||
fi
|
|
||||||
if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
|
||||||
elif $(echo "$INDEX" | grep '^D ' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
|
||||||
elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
|
||||||
fi
|
|
||||||
if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$STATUS"
|
|
||||||
fi
|
|
||||||
if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
|
|
||||||
fi
|
|
||||||
if $(echo "$INDEX" | grep '^## [^ ]\+ .*ahead' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_AHEAD$STATUS"
|
|
||||||
fi
|
|
||||||
if $(echo "$INDEX" | grep '^## [^ ]\+ .*behind' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_BEHIND$STATUS"
|
|
||||||
fi
|
|
||||||
if $(echo "$INDEX" | grep '^## [^ ]\+ .*diverged' &> /dev/null); then
|
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_DIVERGED$STATUS"
|
|
||||||
fi
|
|
||||||
echo $STATUS
|
|
||||||
}
|
|
||||||
|
|
||||||
# Outputs the name of the current user
|
|
||||||
# Usage example: $(git_current_user_name)
|
|
||||||
function git_current_user_name() {
|
|
||||||
command git config user.name 2>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# Outputs the email of the current user
|
|
||||||
# Usage example: $(git_current_user_email)
|
|
||||||
function git_current_user_email() {
|
|
||||||
command git config user.email 2>/dev/null
|
|
||||||
}
|
|
@ -1,28 +0,0 @@
|
|||||||
# is x grep argument available?
|
|
||||||
grep-flag-available() {
|
|
||||||
echo | grep $1 "" >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
GREP_OPTIONS=""
|
|
||||||
|
|
||||||
# color grep results
|
|
||||||
if grep-flag-available --color=auto; then
|
|
||||||
GREP_OPTIONS+=" --color=auto"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ignore VCS folders (if the necessary grep flags are available)
|
|
||||||
VCS_FOLDERS="{.bzr,CVS,.git,.hg,.svn}"
|
|
||||||
|
|
||||||
if grep-flag-available --exclude-dir=.cvs; then
|
|
||||||
GREP_OPTIONS+=" --exclude-dir=$VCS_FOLDERS"
|
|
||||||
elif grep-flag-available --exclude=.cvs; then
|
|
||||||
GREP_OPTIONS+=" --exclude=$VCS_FOLDERS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# export grep settings
|
|
||||||
alias grep="grep $GREP_OPTIONS"
|
|
||||||
|
|
||||||
# clean up
|
|
||||||
unset GREP_OPTIONS
|
|
||||||
unset VCS_FOLDERS
|
|
||||||
unfunction grep-flag-available
|
|
@ -1,40 +0,0 @@
|
|||||||
## History wrapper
|
|
||||||
function omz_history {
|
|
||||||
local clear list
|
|
||||||
zparseopts -E c=clear l=list
|
|
||||||
|
|
||||||
if [[ -n "$clear" ]]; then
|
|
||||||
# if -c provided, clobber the history file
|
|
||||||
echo -n >| "$HISTFILE"
|
|
||||||
echo >&2 History file deleted. Reload the session to see its effects.
|
|
||||||
elif [[ -n "$list" ]]; then
|
|
||||||
# if -l provided, run as if calling `fc' directly
|
|
||||||
builtin fc "$@"
|
|
||||||
else
|
|
||||||
# unless a number is provided, show all history events (starting from 1)
|
|
||||||
[[ ${@[-1]-} = *[0-9]* ]] && builtin fc -l "$@" || builtin fc -l "$@" 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Timestamp format
|
|
||||||
case ${HIST_STAMPS-} in
|
|
||||||
"mm/dd/yyyy") alias history='omz_history -f' ;;
|
|
||||||
"dd.mm.yyyy") alias history='omz_history -E' ;;
|
|
||||||
"yyyy-mm-dd") alias history='omz_history -i' ;;
|
|
||||||
"") alias history='omz_history' ;;
|
|
||||||
*) alias history="omz_history -t '$HIST_STAMPS'" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
## History file configuration
|
|
||||||
[ -z "$HISTFILE" ] && HISTFILE="$HOME/.zsh_history"
|
|
||||||
HISTSIZE=50000
|
|
||||||
SAVEHIST=10000
|
|
||||||
|
|
||||||
## History command configuration
|
|
||||||
setopt extended_history # record timestamp of command in HISTFILE
|
|
||||||
setopt hist_expire_dups_first # delete duplicates first when HISTFILE size exceeds HISTSIZE
|
|
||||||
setopt hist_ignore_dups # ignore duplicated commands history list
|
|
||||||
setopt hist_ignore_space # ignore commands that start with space
|
|
||||||
setopt hist_verify # show command with history expansion to user before running it
|
|
||||||
setopt inc_append_history # add commands to HISTFILE in order of execution
|
|
||||||
setopt share_history # share command history data
|
|
@ -1,93 +0,0 @@
|
|||||||
# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html
|
|
||||||
# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Zle-Builtins
|
|
||||||
# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Standard-Widgets
|
|
||||||
|
|
||||||
# Make sure that the terminal is in application mode when zle is active, since
|
|
||||||
# only then values from $terminfo are valid
|
|
||||||
if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
|
|
||||||
function zle-line-init() {
|
|
||||||
echoti smkx
|
|
||||||
}
|
|
||||||
function zle-line-finish() {
|
|
||||||
echoti rmkx
|
|
||||||
}
|
|
||||||
zle -N zle-line-init
|
|
||||||
zle -N zle-line-finish
|
|
||||||
fi
|
|
||||||
|
|
||||||
bindkey -e # Use emacs key bindings
|
|
||||||
|
|
||||||
bindkey '\ew' kill-region # [Esc-w] - Kill from the cursor to the mark
|
|
||||||
bindkey -s '\el' 'ls\n' # [Esc-l] - run command: ls
|
|
||||||
bindkey '^r' history-incremental-search-backward # [Ctrl-r] - Search backward incrementally for a specified string. The string may begin with ^ to anchor the search to the beginning of the line.
|
|
||||||
if [[ "${terminfo[kpp]}" != "" ]]; then
|
|
||||||
bindkey "${terminfo[kpp]}" up-line-or-history # [PageUp] - Up a line of history
|
|
||||||
fi
|
|
||||||
if [[ "${terminfo[knp]}" != "" ]]; then
|
|
||||||
bindkey "${terminfo[knp]}" down-line-or-history # [PageDown] - Down a line of history
|
|
||||||
fi
|
|
||||||
|
|
||||||
# start typing + [Up-Arrow] - fuzzy find history forward
|
|
||||||
if [[ "${terminfo[kcuu1]}" != "" ]]; then
|
|
||||||
autoload -U up-line-or-beginning-search
|
|
||||||
zle -N up-line-or-beginning-search
|
|
||||||
bindkey "${terminfo[kcuu1]}" up-line-or-beginning-search
|
|
||||||
fi
|
|
||||||
# start typing + [Down-Arrow] - fuzzy find history backward
|
|
||||||
if [[ "${terminfo[kcud1]}" != "" ]]; then
|
|
||||||
autoload -U down-line-or-beginning-search
|
|
||||||
zle -N down-line-or-beginning-search
|
|
||||||
bindkey "${terminfo[kcud1]}" down-line-or-beginning-search
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "${terminfo[khome]}" != "" ]]; then
|
|
||||||
bindkey "${terminfo[khome]}" beginning-of-line # [Home] - Go to beginning of line
|
|
||||||
fi
|
|
||||||
if [[ "${terminfo[kend]}" != "" ]]; then
|
|
||||||
bindkey "${terminfo[kend]}" end-of-line # [End] - Go to end of line
|
|
||||||
fi
|
|
||||||
|
|
||||||
bindkey ' ' magic-space # [Space] - do history expansion
|
|
||||||
|
|
||||||
bindkey '^[[1;5C' forward-word # [Ctrl-RightArrow] - move forward one word
|
|
||||||
bindkey '^[[1;5D' backward-word # [Ctrl-LeftArrow] - move backward one word
|
|
||||||
|
|
||||||
if [[ "${terminfo[kcbt]}" != "" ]]; then
|
|
||||||
bindkey "${terminfo[kcbt]}" reverse-menu-complete # [Shift-Tab] - move through the completion menu backwards
|
|
||||||
fi
|
|
||||||
|
|
||||||
bindkey '^?' backward-delete-char # [Backspace] - delete backward
|
|
||||||
if [[ "${terminfo[kdch1]}" != "" ]]; then
|
|
||||||
bindkey "${terminfo[kdch1]}" delete-char # [Delete] - delete forward
|
|
||||||
else
|
|
||||||
bindkey "^[[3~" delete-char
|
|
||||||
bindkey "^[3;5~" delete-char
|
|
||||||
bindkey "\e[3~" delete-char
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Edit the current command line in $EDITOR
|
|
||||||
autoload -U edit-command-line
|
|
||||||
zle -N edit-command-line
|
|
||||||
bindkey '\C-x\C-e' edit-command-line
|
|
||||||
|
|
||||||
# file rename magick
|
|
||||||
bindkey "^[m" copy-prev-shell-word
|
|
||||||
|
|
||||||
# consider emacs keybindings:
|
|
||||||
|
|
||||||
#bindkey -e ## emacs key bindings
|
|
||||||
#
|
|
||||||
#bindkey '^[[A' up-line-or-search
|
|
||||||
#bindkey '^[[B' down-line-or-search
|
|
||||||
#bindkey '^[^[[C' emacs-forward-word
|
|
||||||
#bindkey '^[^[[D' emacs-backward-word
|
|
||||||
#
|
|
||||||
#bindkey -s '^X^Z' '%-^M'
|
|
||||||
#bindkey '^[e' expand-cmd-path
|
|
||||||
#bindkey '^[^I' reverse-menu-complete
|
|
||||||
#bindkey '^X^N' accept-and-infer-next-history
|
|
||||||
#bindkey '^W' kill-region
|
|
||||||
#bindkey '^I' complete-word
|
|
||||||
## Fix weird sequence that rxvt produces
|
|
||||||
#bindkey -s '^[[Z' '\t'
|
|
||||||
#
|
|
@ -1,35 +0,0 @@
|
|||||||
autoload -Uz is-at-least
|
|
||||||
|
|
||||||
# *-magic is known buggy in some versions; disable if so
|
|
||||||
if [[ $DISABLE_MAGIC_FUNCTIONS != true ]]; then
|
|
||||||
for d in $fpath; do
|
|
||||||
if [[ -e "$d/url-quote-magic" ]]; then
|
|
||||||
if is-at-least 5.1; then
|
|
||||||
autoload -Uz bracketed-paste-magic
|
|
||||||
zle -N bracketed-paste bracketed-paste-magic
|
|
||||||
fi
|
|
||||||
autoload -Uz url-quote-magic
|
|
||||||
zle -N self-insert url-quote-magic
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
## jobs
|
|
||||||
setopt long_list_jobs
|
|
||||||
|
|
||||||
env_default 'PAGER' 'less'
|
|
||||||
env_default 'LESS' '-R'
|
|
||||||
|
|
||||||
## super user alias
|
|
||||||
alias _='sudo '
|
|
||||||
|
|
||||||
## more intelligent acking for ubuntu users
|
|
||||||
if which ack-grep &> /dev/null; then
|
|
||||||
alias afind='ack-grep -il'
|
|
||||||
else
|
|
||||||
alias afind='ack -il'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# recognize comments
|
|
||||||
setopt interactivecomments
|
|
@ -1,9 +0,0 @@
|
|||||||
# get the node.js version
|
|
||||||
function nvm_prompt_info() {
|
|
||||||
[[ -f "$NVM_DIR/nvm.sh" ]] || return
|
|
||||||
local nvm_prompt
|
|
||||||
nvm_prompt=$(node -v 2>/dev/null)
|
|
||||||
[[ "${nvm_prompt}x" == "x" ]] && return
|
|
||||||
nvm_prompt=${nvm_prompt:1}
|
|
||||||
echo "${ZSH_THEME_NVM_PROMPT_PREFIX}${nvm_prompt}${ZSH_THEME_NVM_PROMPT_SUFFIX}"
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
# *_prompt_info functions for usage in your prompt
|
|
||||||
#
|
|
||||||
# Plugin creators, please add your *_prompt_info function to the list
|
|
||||||
# of dummy implementations to help theme creators not receiving errors
|
|
||||||
# without the need of implementing conditional clauses.
|
|
||||||
#
|
|
||||||
# See also lib/bzr.zsh, lib/git.zsh and lib/nvm.zsh for
|
|
||||||
# git_prompt_info, bzr_prompt_info and nvm_prompt_info
|
|
||||||
|
|
||||||
# Dummy implementations that return false to prevent command_not_found
|
|
||||||
# errors with themes, that implement these functions
|
|
||||||
# Real implementations will be used when the respective plugins are loaded
|
|
||||||
function chruby_prompt_info \
|
|
||||||
rbenv_prompt_info \
|
|
||||||
hg_prompt_info \
|
|
||||||
pyenv_prompt_info \
|
|
||||||
svn_prompt_info \
|
|
||||||
vi_mode_prompt_info \
|
|
||||||
virtualenv_prompt_info \
|
|
||||||
jenv_prompt_info \
|
|
||||||
{
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# oh-my-zsh supports an rvm prompt by default
|
|
||||||
# get the name of the rvm ruby version
|
|
||||||
function rvm_prompt_info() {
|
|
||||||
[ -f $HOME/.rvm/bin/rvm-prompt ] || return 1
|
|
||||||
local rvm_prompt
|
|
||||||
rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${=ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null)
|
|
||||||
[[ -z "${rvm_prompt}" ]] && return 1
|
|
||||||
echo "${ZSH_THEME_RUBY_PROMPT_PREFIX}${rvm_prompt}${ZSH_THEME_RUBY_PROMPT_SUFFIX}"
|
|
||||||
}
|
|
||||||
|
|
||||||
ZSH_THEME_RVM_PROMPT_OPTIONS="i v g"
|
|
||||||
|
|
||||||
|
|
||||||
# use this to enable users to see their ruby version, no matter which
|
|
||||||
# version management system they use
|
|
||||||
function ruby_prompt_info() {
|
|
||||||
echo $(rvm_prompt_info || rbenv_prompt_info || chruby_prompt_info)
|
|
||||||
}
|
|
@ -1,37 +0,0 @@
|
|||||||
#! /bin/zsh
|
|
||||||
# A script to make using 256 colors in zsh less painful.
|
|
||||||
# P.C. Shyamshankar <sykora@lucentbeing.com>
|
|
||||||
# Copied from https://github.com/sykora/etc/blob/master/zsh/functions/spectrum/
|
|
||||||
|
|
||||||
typeset -AHg FX FG BG
|
|
||||||
|
|
||||||
FX=(
|
|
||||||
reset "%{[00m%}"
|
|
||||||
bold "%{[01m%}" no-bold "%{[22m%}"
|
|
||||||
italic "%{[03m%}" no-italic "%{[23m%}"
|
|
||||||
underline "%{[04m%}" no-underline "%{[24m%}"
|
|
||||||
blink "%{[05m%}" no-blink "%{[25m%}"
|
|
||||||
reverse "%{[07m%}" no-reverse "%{[27m%}"
|
|
||||||
)
|
|
||||||
|
|
||||||
for color in {000..255}; do
|
|
||||||
FG[$color]="%{[38;5;${color}m%}"
|
|
||||||
BG[$color]="%{[48;5;${color}m%}"
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab oris}
|
|
||||||
|
|
||||||
# Show all 256 colors with color number
|
|
||||||
function spectrum_ls() {
|
|
||||||
for code in {000..255}; do
|
|
||||||
print -P -- "$code: %{$FG[$code]%}$ZSH_SPECTRUM_TEXT%{$reset_color%}"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Show all 256 colors where the background is set to specific color
|
|
||||||
function spectrum_bls() {
|
|
||||||
for code in {000..255}; do
|
|
||||||
print -P -- "$code: %{$BG[$code]%}$ZSH_SPECTRUM_TEXT%{$reset_color%}"
|
|
||||||
done
|
|
||||||
}
|
|
@ -1,106 +0,0 @@
|
|||||||
# Set terminal window and tab/icon title
|
|
||||||
#
|
|
||||||
# usage: title short_tab_title [long_window_title]
|
|
||||||
#
|
|
||||||
# See: http://www.faqs.org/docs/Linux-mini/Xterm-Title.html#ss3.1
|
|
||||||
# Fully supports screen, iterm, and probably most modern xterm and rxvt
|
|
||||||
# (In screen, only short_tab_title is used)
|
|
||||||
# Limited support for Apple Terminal (Terminal can't set window and tab separately)
|
|
||||||
function title {
|
|
||||||
emulate -L zsh
|
|
||||||
setopt prompt_subst
|
|
||||||
|
|
||||||
[[ "$EMACS" == *term* ]] && return
|
|
||||||
|
|
||||||
# if $2 is unset use $1 as default
|
|
||||||
# if it is set and empty, leave it as is
|
|
||||||
: ${2=$1}
|
|
||||||
|
|
||||||
case "$TERM" in
|
|
||||||
cygwin|xterm*|putty*|rxvt*|ansi)
|
|
||||||
print -Pn "\e]2;$2:q\a" # set window name
|
|
||||||
print -Pn "\e]1;$1:q\a" # set tab name
|
|
||||||
;;
|
|
||||||
screen*|tmux*)
|
|
||||||
print -Pn "\ek$1:q\e\\" # set screen hardstatus
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
|
|
||||||
print -Pn "\e]2;$2:q\a" # set window name
|
|
||||||
print -Pn "\e]1;$1:q\a" # set tab name
|
|
||||||
else
|
|
||||||
# Try to use terminfo to set the title
|
|
||||||
# If the feature is available set title
|
|
||||||
if [[ -n "$terminfo[fsl]" ]] && [[ -n "$terminfo[tsl]" ]]; then
|
|
||||||
echoti tsl
|
|
||||||
print -Pn "$1"
|
|
||||||
echoti fsl
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD
|
|
||||||
ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~"
|
|
||||||
# Avoid duplication of directory in terminals with independent dir display
|
|
||||||
if [[ "$TERM_PROGRAM" == Apple_Terminal ]]; then
|
|
||||||
ZSH_THEME_TERM_TITLE_IDLE="%n@%m"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Runs before showing the prompt
|
|
||||||
function omz_termsupport_precmd {
|
|
||||||
emulate -L zsh
|
|
||||||
|
|
||||||
if [[ "$DISABLE_AUTO_TITLE" == true ]]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE
|
|
||||||
}
|
|
||||||
|
|
||||||
# Runs before executing the command
|
|
||||||
function omz_termsupport_preexec {
|
|
||||||
emulate -L zsh
|
|
||||||
setopt extended_glob
|
|
||||||
|
|
||||||
if [[ "$DISABLE_AUTO_TITLE" == true ]]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
# cmd name only, or if this is sudo or ssh, the next cmd
|
|
||||||
local CMD=${1[(wr)^(*=*|sudo|ssh|mosh|rake|-*)]:gs/%/%%}
|
|
||||||
local LINE="${2:gs/%/%%}"
|
|
||||||
|
|
||||||
title '$CMD' '%100>...>$LINE%<<'
|
|
||||||
}
|
|
||||||
|
|
||||||
autoload -U add-zsh-hook
|
|
||||||
add-zsh-hook precmd omz_termsupport_precmd
|
|
||||||
add-zsh-hook preexec omz_termsupport_preexec
|
|
||||||
|
|
||||||
|
|
||||||
# Keep Apple Terminal.app's current working directory updated
|
|
||||||
# Based on this answer: https://superuser.com/a/315029
|
|
||||||
# With extra fixes to handle multibyte chars and non-UTF-8 locales
|
|
||||||
|
|
||||||
if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then
|
|
||||||
# Emits the control sequence to notify Terminal.app of the cwd
|
|
||||||
# Identifies the directory using a file: URI scheme, including
|
|
||||||
# the host name to disambiguate local vs. remote paths.
|
|
||||||
function update_terminalapp_cwd() {
|
|
||||||
emulate -L zsh
|
|
||||||
|
|
||||||
# Percent-encode the pathname.
|
|
||||||
local URL_PATH="$(omz_urlencode -P $PWD)"
|
|
||||||
[[ $? != 0 ]] && return 1
|
|
||||||
|
|
||||||
# Undocumented Terminal.app-specific control sequence
|
|
||||||
printf '\e]7;%s\a' "file://$HOST$URL_PATH"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Use a precmd hook instead of a chpwd hook to avoid contaminating output
|
|
||||||
add-zsh-hook precmd update_terminalapp_cwd
|
|
||||||
# Run once to get initial cwd set
|
|
||||||
update_terminalapp_cwd
|
|
||||||
fi
|
|
@ -1,54 +0,0 @@
|
|||||||
# ls colors
|
|
||||||
autoload -U colors && colors
|
|
||||||
|
|
||||||
# Enable ls colors
|
|
||||||
export LSCOLORS="Gxfxcxdxbxegedabagacad"
|
|
||||||
|
|
||||||
# TODO organise this chaotic logic
|
|
||||||
|
|
||||||
if [[ "$DISABLE_LS_COLORS" != "true" ]]; then
|
|
||||||
# Find the option for using colors in ls, depending on the version
|
|
||||||
if [[ "$OSTYPE" == netbsd* ]]; then
|
|
||||||
# On NetBSD, test if "gls" (GNU ls) is installed (this one supports colors);
|
|
||||||
# otherwise, leave ls as is, because NetBSD's ls doesn't support -G
|
|
||||||
gls --color -d . &>/dev/null && alias ls='gls --color=tty'
|
|
||||||
elif [[ "$OSTYPE" == openbsd* ]]; then
|
|
||||||
# On OpenBSD, "gls" (ls from GNU coreutils) and "colorls" (ls from base,
|
|
||||||
# with color and multibyte support) are available from ports. "colorls"
|
|
||||||
# will be installed on purpose and can't be pulled in by installing
|
|
||||||
# coreutils, so prefer it to "gls".
|
|
||||||
gls --color -d . &>/dev/null && alias ls='gls --color=tty'
|
|
||||||
colorls -G -d . &>/dev/null && alias ls='colorls -G'
|
|
||||||
elif [[ "$OSTYPE" == (darwin|freebsd)* ]]; then
|
|
||||||
# this is a good alias, it works by default just using $LSCOLORS
|
|
||||||
ls -G . &>/dev/null && alias ls='ls -G'
|
|
||||||
|
|
||||||
# only use coreutils ls if there is a dircolors customization present ($LS_COLORS or .dircolors file)
|
|
||||||
# otherwise, gls will use the default color scheme which is ugly af
|
|
||||||
[[ -n "$LS_COLORS" || -f "$HOME/.dircolors" ]] && gls --color -d . &>/dev/null && alias ls='gls --color=tty'
|
|
||||||
else
|
|
||||||
# For GNU ls, we use the default ls color theme. They can later be overwritten by themes.
|
|
||||||
if [[ -z "$LS_COLORS" ]]; then
|
|
||||||
(( $+commands[dircolors] )) && eval "$(dircolors -b)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
ls --color -d . &>/dev/null && alias ls='ls --color=tty' || { ls -G . &>/dev/null && alias ls='ls -G' }
|
|
||||||
|
|
||||||
# Take advantage of $LS_COLORS for completion as well.
|
|
||||||
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
setopt auto_cd
|
|
||||||
setopt multios
|
|
||||||
setopt prompt_subst
|
|
||||||
|
|
||||||
[[ -n "$WINDOW" ]] && SCREEN_NO="%B$WINDOW%b " || SCREEN_NO=""
|
|
||||||
|
|
||||||
# git theming default: Variables for theming the git info prompt
|
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX="git:(" # Prefix at the very beginning of the prompt, before the branch name
|
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX=")" # At the very end of the prompt
|
|
||||||
ZSH_THEME_GIT_PROMPT_DIRTY="*" # Text to display if the branch is dirty
|
|
||||||
ZSH_THEME_GIT_PROMPT_CLEAN="" # Text to display if the branch is clean
|
|
||||||
ZSH_THEME_RUBY_PROMPT_PREFIX="("
|
|
||||||
ZSH_THEME_RUBY_PROMPT_SUFFIX=")"
|
|
@ -1,121 +0,0 @@
|
|||||||
# Set ZSH_CACHE_DIR to the path where cache files should be created
|
|
||||||
# or else we will use the default cache/
|
|
||||||
if [[ -z "$ZSH_CACHE_DIR" ]]; then
|
|
||||||
ZSH_CACHE_DIR="$ZSH/cache"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Migrate .zsh-update file to $ZSH_CACHE_DIR
|
|
||||||
if [ -f ~/.zsh-update ] && [ ! -f ${ZSH_CACHE_DIR}/.zsh-update ]; then
|
|
||||||
mv ~/.zsh-update ${ZSH_CACHE_DIR}/.zsh-update
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for updates on initial load...
|
|
||||||
if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then
|
|
||||||
env ZSH=$ZSH ZSH_CACHE_DIR=$ZSH_CACHE_DIR DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh -f $ZSH/tools/check_for_upgrade.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Initializes Oh My Zsh
|
|
||||||
|
|
||||||
# add a function path
|
|
||||||
fpath=($ZSH/functions $ZSH/completions $fpath)
|
|
||||||
|
|
||||||
# Load all stock functions (from $fpath files) called below.
|
|
||||||
autoload -U compaudit compinit
|
|
||||||
|
|
||||||
# Set ZSH_CUSTOM to the path where your custom config files
|
|
||||||
# and plugins exists, or else we will use the default custom/
|
|
||||||
if [[ -z "$ZSH_CUSTOM" ]]; then
|
|
||||||
ZSH_CUSTOM="$ZSH/custom"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
is_plugin() {
|
|
||||||
local base_dir=$1
|
|
||||||
local name=$2
|
|
||||||
builtin test -f $base_dir/plugins/$name/$name.plugin.zsh \
|
|
||||||
|| builtin test -f $base_dir/plugins/$name/_$name
|
|
||||||
}
|
|
||||||
|
|
||||||
# Add all defined plugins to fpath. This must be done
|
|
||||||
# before running compinit.
|
|
||||||
for plugin ($plugins); do
|
|
||||||
if is_plugin $ZSH_CUSTOM $plugin; then
|
|
||||||
fpath=($ZSH_CUSTOM/plugins/$plugin $fpath)
|
|
||||||
elif is_plugin $ZSH $plugin; then
|
|
||||||
fpath=($ZSH/plugins/$plugin $fpath)
|
|
||||||
else
|
|
||||||
echo "[oh-my-zsh] plugin '$plugin' not found"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Figure out the SHORT hostname
|
|
||||||
if [[ "$OSTYPE" = darwin* ]]; then
|
|
||||||
# macOS's $HOST changes with dhcp, etc. Use ComputerName if possible.
|
|
||||||
SHORT_HOST=$(scutil --get ComputerName 2>/dev/null) || SHORT_HOST=${HOST/.*/}
|
|
||||||
else
|
|
||||||
SHORT_HOST=${HOST/.*/}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Save the location of the current completion dump file.
|
|
||||||
if [ -z "$ZSH_COMPDUMP" ]; then
|
|
||||||
ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $ZSH_DISABLE_COMPFIX != true ]]; then
|
|
||||||
source $ZSH/lib/compfix.zsh
|
|
||||||
# If completion insecurities exist, warn the user
|
|
||||||
handle_completion_insecurities
|
|
||||||
# Load only from secure directories
|
|
||||||
compinit -i -C -d "${ZSH_COMPDUMP}"
|
|
||||||
else
|
|
||||||
# If the user wants it, load from all found directories
|
|
||||||
compinit -u -C -d "${ZSH_COMPDUMP}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Load all of the config files in ~/oh-my-zsh that end in .zsh
|
|
||||||
# TIP: Add files you don't want in git to .gitignore
|
|
||||||
for config_file ($ZSH/lib/*.zsh); do
|
|
||||||
custom_config_file="${ZSH_CUSTOM}/lib/${config_file:t}"
|
|
||||||
[ -f "${custom_config_file}" ] && config_file=${custom_config_file}
|
|
||||||
source $config_file
|
|
||||||
done
|
|
||||||
|
|
||||||
# Load all of the plugins that were defined in ~/.zshrc
|
|
||||||
for plugin ($plugins); do
|
|
||||||
if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then
|
|
||||||
source $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh
|
|
||||||
elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then
|
|
||||||
source $ZSH/plugins/$plugin/$plugin.plugin.zsh
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Load all of your custom configurations from custom/
|
|
||||||
for config_file ($ZSH_CUSTOM/*.zsh(N)); do
|
|
||||||
source $config_file
|
|
||||||
done
|
|
||||||
unset config_file
|
|
||||||
|
|
||||||
# Load the theme
|
|
||||||
if [[ "$ZSH_THEME" == "random" ]]; then
|
|
||||||
if [[ "${(t)ZSH_THEME_RANDOM_CANDIDATES}" = "array" ]] && [[ "${#ZSH_THEME_RANDOM_CANDIDATES[@]}" -gt 0 ]]; then
|
|
||||||
themes=($ZSH/themes/${^ZSH_THEME_RANDOM_CANDIDATES}.zsh-theme)
|
|
||||||
else
|
|
||||||
themes=($ZSH/themes/*zsh-theme)
|
|
||||||
fi
|
|
||||||
N=${#themes[@]}
|
|
||||||
((N=(RANDOM%N)+1))
|
|
||||||
RANDOM_THEME=${themes[$N]}
|
|
||||||
source "$RANDOM_THEME"
|
|
||||||
echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
|
|
||||||
else
|
|
||||||
if [ ! "$ZSH_THEME" = "" ]; then
|
|
||||||
if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]; then
|
|
||||||
source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme"
|
|
||||||
elif [ -f "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" ]; then
|
|
||||||
source "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme"
|
|
||||||
else
|
|
||||||
source "$ZSH/themes/$ZSH_THEME.zsh-theme"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
@ -1,8 +0,0 @@
|
|||||||
# adb autocomplete plugin
|
|
||||||
|
|
||||||
* Adds autocomplete options for all adb commands.
|
|
||||||
* Add autocomplete for `adb -s`
|
|
||||||
|
|
||||||
## Requirements
|
|
||||||
|
|
||||||
In order to make this work, you will need to have the Android adb tools set up in your path.
|
|
@ -1,67 +0,0 @@
|
|||||||
#compdef adb
|
|
||||||
#autoload
|
|
||||||
|
|
||||||
# in order to make this work, you will need to have the android adb tools
|
|
||||||
|
|
||||||
# adb zsh completion, based on homebrew completion
|
|
||||||
|
|
||||||
local -a _1st_arguments
|
|
||||||
_1st_arguments=(
|
|
||||||
'bugreport:return all information from the device that should be included in a bug report.'
|
|
||||||
'connect:connect to a device via TCP/IP Port 5555 is default.'
|
|
||||||
'devices:list all connected devices'
|
|
||||||
'disconnect:disconnect from a TCP/IP device. Port 5555 is default.'
|
|
||||||
'emu:run emulator console command'
|
|
||||||
'forward:forward socket connections'
|
|
||||||
'get-devpath:print the device path'
|
|
||||||
'get-serialno:print the serial number of the device'
|
|
||||||
'get-state:print the current state of the device: offline | bootloader | device'
|
|
||||||
'help:show the help message'
|
|
||||||
'install:push this package file to the device and install it'
|
|
||||||
'jdwp:list PIDs of processes hosting a JDWP transport'
|
|
||||||
'keygen:generate adb public/private key'
|
|
||||||
'kill-server:kill the server if it is running'
|
|
||||||
'logcat:view device log'
|
|
||||||
'pull:copy file/dir from device'
|
|
||||||
'push:copy file/dir to device'
|
|
||||||
'reboot:reboots the device, optionally into the bootloader or recovery program'
|
|
||||||
'reboot-bootloader:reboots the device into the bootloader'
|
|
||||||
'remount:remounts the partitions on the device read-write'
|
|
||||||
'root:restarts the adbd daemon with root permissions'
|
|
||||||
'sideload:push a ZIP to device and install it'
|
|
||||||
'shell:run remote shell interactively'
|
|
||||||
'sync:copy host->device only if changed (-l means list but dont copy)'
|
|
||||||
'start-server:ensure that there is a server running'
|
|
||||||
'tcpip:restart host adb in tcpip mode'
|
|
||||||
'uninstall:remove this app package from the device'
|
|
||||||
'usb:restart the adbd daemon listing on USB'
|
|
||||||
'version:show version num'
|
|
||||||
'wait-for-device:block until device is online'
|
|
||||||
)
|
|
||||||
|
|
||||||
local expl
|
|
||||||
local -a pkgs installed_pkgs
|
|
||||||
|
|
||||||
_arguments \
|
|
||||||
'-s[devices]:specify device:->specify_device' \
|
|
||||||
'*:: :->subcmds' && return 0
|
|
||||||
|
|
||||||
case "$state" in
|
|
||||||
specify_device)
|
|
||||||
_values -C 'devices' ${$(adb devices -l|awk 'NR>1&& $1 \
|
|
||||||
{sub(/ +/," ",$0); \
|
|
||||||
gsub(":","\\:",$1); \
|
|
||||||
for(i=1;i<=NF;i++) {
|
|
||||||
if($i ~ /model:/) { split($i,m,":") } \
|
|
||||||
else if($i ~ /product:/) { split($i,p,":") } } \
|
|
||||||
printf "%s[%s(%s)] ",$1, p[2], m[2]}'):-""}
|
|
||||||
return
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if (( CURRENT == 1 )); then
|
|
||||||
_describe -t commands "adb subcommand" _1st_arguments
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
_files
|
|
@ -1,46 +0,0 @@
|
|||||||
# alias-finder plugin
|
|
||||||
|
|
||||||
This plugin searches the defined aliases and outputs any that match the command inputted. This makes learning new aliases easier.
|
|
||||||
|
|
||||||
To use it, add `alias-finder` to the `plugins` array of your zshrc file:
|
|
||||||
```
|
|
||||||
plugins=(... alias-finder)
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
To see if there is an alias defined for the command, pass it as an argument to `alias-finder`. This can also run automatically before each command you input - add `ZSH_ALIAS_FINDER_AUTOMATIC=true` to your zshrc if you want this.
|
|
||||||
|
|
||||||
## Options
|
|
||||||
|
|
||||||
- Use `--longer` or `-l` to allow the aliases to be longer than the input (match aliases if they contain the input).
|
|
||||||
- Use `--exact` or `-e` to avoid matching aliases that are shorter than the input.
|
|
||||||
|
|
||||||
## Examples
|
|
||||||
```
|
|
||||||
$ alias-finder "git pull"
|
|
||||||
gl='git pull'
|
|
||||||
g=git
|
|
||||||
```
|
|
||||||
```
|
|
||||||
$ alias-finder "web_search google oh my zsh"
|
|
||||||
google='web_search google'
|
|
||||||
```
|
|
||||||
```
|
|
||||||
$ alias-finder "git commit -v"
|
|
||||||
gc="git commit -v"
|
|
||||||
g=git
|
|
||||||
```
|
|
||||||
```
|
|
||||||
$ alias-finder -e "git commit -v"
|
|
||||||
gc='git commit -v'
|
|
||||||
```
|
|
||||||
```
|
|
||||||
$ alias-finder -l "git commit -v"
|
|
||||||
gc='git commit -v'
|
|
||||||
'gc!'='git commit -v --amend'
|
|
||||||
gca='git commit -v -a'
|
|
||||||
'gca!'='git commit -v -a --amend'
|
|
||||||
'gcan!'='git commit -v -a --no-edit --amend'
|
|
||||||
'gcans!'='git commit -v -a -s --no-edit --amend'
|
|
||||||
'gcn!'='git commit -v --no-edit --amend'
|
|
||||||
```
|
|
@ -1,47 +0,0 @@
|
|||||||
alias-finder() {
|
|
||||||
local cmd="" exact="" longer="" wordStart="" wordEnd="" multiWordEnd=""
|
|
||||||
for i in $@; do
|
|
||||||
case $i in
|
|
||||||
-e|--exact) exact=true;;
|
|
||||||
-l|--longer) longer=true;;
|
|
||||||
*)
|
|
||||||
if [[ -z $cmd ]]; then
|
|
||||||
cmd=$i
|
|
||||||
else
|
|
||||||
cmd="$cmd $i"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
cmd=$(sed 's/[].\|$(){}?+*^[]/\\&/g' <<< $cmd) # adds escaping for grep
|
|
||||||
if (( $(wc -l <<< $cmd) == 1 )); then
|
|
||||||
while [[ $cmd != "" ]]; do
|
|
||||||
if [[ $longer = true ]]; then
|
|
||||||
wordStart="'{0,1}"
|
|
||||||
else
|
|
||||||
wordEnd="$"
|
|
||||||
multiWordEnd="'$"
|
|
||||||
fi
|
|
||||||
if [[ $cmd == *" "* ]]; then
|
|
||||||
local finder="'$cmd$multiWordEnd"
|
|
||||||
else
|
|
||||||
local finder=$wordStart$cmd$wordEnd
|
|
||||||
fi
|
|
||||||
alias | grep -E "=$finder"
|
|
||||||
if [[ $exact = true || $longer = true ]]; then
|
|
||||||
break
|
|
||||||
else
|
|
||||||
cmd=$(sed -E 's/ {0,1}[^ ]*$//' <<< $cmd) # removes last word
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
preexec_alias-finder() {
|
|
||||||
if [[ $ZSH_ALIAS_FINDER_AUTOMATIC = true ]]; then
|
|
||||||
alias-finder $1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
autoload -U add-zsh-hook
|
|
||||||
add-zsh-hook preexec preexec_alias-finder
|
|
@ -1,34 +0,0 @@
|
|||||||
# ansible plugin
|
|
||||||
|
|
||||||
## Introduction
|
|
||||||
|
|
||||||
The `ansible plugin` adds several aliases for useful [ansible](https://docs.ansible.com/ansible/latest/index.html) commands and [aliases](#aliases).
|
|
||||||
|
|
||||||
To use it, add `ansible` to the plugins array of your zshrc file:
|
|
||||||
|
|
||||||
```
|
|
||||||
plugins=(... ansible)
|
|
||||||
```
|
|
||||||
|
|
||||||
## Aliases
|
|
||||||
|
|
||||||
| Command | Description |
|
|
||||||
|:-------------------------------------------|:--------------------------------------------------------------------|
|
|
||||||
| `ansible-version` / `aver` | Show the version on ansible installed in this host |
|
|
||||||
| `ansible-role-init <role name>` / `arinit` | Creates the Ansible Role as per Ansible Galaxy standard |
|
|
||||||
| `a` | command `ansible` |
|
|
||||||
| `aconf` | command `ansible-config` |
|
|
||||||
| `acon` | command `ansible-console` |
|
|
||||||
| `ainv` | command `ansible-inventory` |
|
|
||||||
| `aplaybook` | command `ansible-playbook` |
|
|
||||||
| `ainv` | command `ansible-inventory` |
|
|
||||||
| `adoc` | command `ansible-doc` |
|
|
||||||
| `agal` | command `ansible-galaxy` |
|
|
||||||
| `apull` | command `ansible-pull` |
|
|
||||||
| `aval` | command `ansible-vault` |
|
|
||||||
|
|
||||||
## Maintainer
|
|
||||||
|
|
||||||
### [Deepankumar](https://github.com/deepan10)
|
|
||||||
|
|
||||||
[https://github.com/deepan10/oh-my-zsh/tree/features/ansible-plugin](https://github.com/deepan10/oh-my-zsh/tree/features/ansible-plugin)
|
|
@ -1,28 +0,0 @@
|
|||||||
# Functions
|
|
||||||
function ansible-version(){
|
|
||||||
ansible --version
|
|
||||||
}
|
|
||||||
|
|
||||||
function ansible-role-init(){
|
|
||||||
if ! [ -z $1] ; then
|
|
||||||
echo "Ansible Role : $1 Creating...."
|
|
||||||
ansible-galaxy init $1
|
|
||||||
tree $1
|
|
||||||
else
|
|
||||||
echo "Usage : ansible-role-init <role name>"
|
|
||||||
echo "Example : ansible-role-init role1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Alias
|
|
||||||
alias a='ansible '
|
|
||||||
alias aconf='ansible-config '
|
|
||||||
alias acon='ansible-console '
|
|
||||||
alias aver='ansible-version'
|
|
||||||
alias arinit='ansible-role-init'
|
|
||||||
alias aplaybook='ansible-playbook '
|
|
||||||
alias ainv='ansible-inventory '
|
|
||||||
alias adoc='ansible-doc '
|
|
||||||
alias agal='ansible-galaxy '
|
|
||||||
alias apull='ansible-pull '
|
|
||||||
alias aval='ansible-vault'
|
|
@ -1,12 +0,0 @@
|
|||||||
# Ant
|
|
||||||
|
|
||||||
This plugin provides completion for [Ant](https://ant.apache.org/).
|
|
||||||
|
|
||||||
To use it add ant to the plugins array in your zshrc file.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
plugins=(... ant)
|
|
||||||
```
|
|
||||||
|
|
||||||
It caches ant targets in a file named `.ant_targets`, you might want to add that to
|
|
||||||
your `.gitignore` file.
|
|
@ -1,16 +0,0 @@
|
|||||||
_ant_does_target_list_need_generating () {
|
|
||||||
[ ! -f .ant_targets ] && return 0;
|
|
||||||
[ build.xml -nt .ant_targets ] && return 0;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
_ant () {
|
|
||||||
if [ -f build.xml ]; then
|
|
||||||
if _ant_does_target_list_need_generating; then
|
|
||||||
ant -p | awk -F " " 'NR > 5 { print lastTarget }{lastTarget = $1}' > .ant_targets
|
|
||||||
fi
|
|
||||||
compadd -- `cat .ant_targets`
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
compdef _ant ant
|
|
@ -1,19 +0,0 @@
|
|||||||
## APACHE2 MACPORTS PLUGIN
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### FEATURES
|
|
||||||
|
|
||||||
| Alias | Function | Description |
|
|
||||||
|:--------------:|:-------------------------------------------------------------------------------|----------------------:|
|
|
||||||
| apache2restart | sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart | Restart apache daemon |
|
|
||||||
| apache2start | sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start | Start apache daemon |
|
|
||||||
| apache2stop | sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper stop | Stop apache daemon |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### CONTRIBUTORS
|
|
||||||
- Alexander Rinass (alex@rinass.net)
|
|
||||||
|
|
||||||
---
|
|
@ -1,6 +0,0 @@
|
|||||||
# commands to control local apache2 server installation
|
|
||||||
# paths are for osx installation via macports
|
|
||||||
|
|
||||||
alias apache2start='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start'
|
|
||||||
alias apache2stop='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper stop'
|
|
||||||
alias apache2restart='sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart'
|
|
@ -1,5 +0,0 @@
|
|||||||
## arcanist
|
|
||||||
|
|
||||||
**Maintainer:** [@emzar](https://github.com/emzar)
|
|
||||||
|
|
||||||
This plugin adds many useful aliases for [arcanist](https://github.com/phacility/arcanist).
|
|
@ -1,21 +0,0 @@
|
|||||||
#
|
|
||||||
# Aliases
|
|
||||||
# (sorted alphabetically)
|
|
||||||
#
|
|
||||||
|
|
||||||
alias ara='arc amend'
|
|
||||||
alias arb='arc branch'
|
|
||||||
alias arco='arc cover'
|
|
||||||
alias arci='arc commit'
|
|
||||||
|
|
||||||
alias ard='arc diff'
|
|
||||||
alias ardnu='arc diff --nounit'
|
|
||||||
alias ardnupc='arc diff --nounit --plan-changes'
|
|
||||||
alias ardpc='arc diff --plan-changes'
|
|
||||||
|
|
||||||
alias are='arc export'
|
|
||||||
alias arh='arc help'
|
|
||||||
alias arl='arc land'
|
|
||||||
alias arli='arc lint'
|
|
||||||
alias arls='arc list'
|
|
||||||
alias arpa='arc patch'
|
|
@ -1,146 +0,0 @@
|
|||||||
# Archlinux plugin
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
#### YAY
|
|
||||||
|
|
||||||
| Alias | Command | Description |
|
|
||||||
|---------|------------------------------------|---------------------------------------------------------------------|
|
|
||||||
| yaconf | yay -Pg | Print current configuration |
|
|
||||||
| yain | yay -S | Install packages from the repositories |
|
|
||||||
| yains | yay -U | Install a package from a local file |
|
|
||||||
| yainsd | yay -S --asdeps | Install packages as dependencies of another package |
|
|
||||||
| yaloc | yay -Qi | Display information about a package in the local database |
|
|
||||||
| yalocs | yay -Qs | Search for packages in the local database |
|
|
||||||
| yalst | yay -Qe | List installed packages including from AUR (tagged as "local") |
|
|
||||||
| yamir | yay -Syy | Force refresh of all package lists after updating mirrorlist |
|
|
||||||
| yaorph | yay -Qtd | Remove orphans using yay |
|
|
||||||
| yare | yay -R | Remove packages, keeping its settings and dependencies |
|
|
||||||
| yarem | yay -Rns | Remove packages, including its settings and unneeded dependencies |
|
|
||||||
| yarep | yay -Si | Display information about a package in the repositories |
|
|
||||||
| yareps | yay -Ss | Search for packages in the repositories |
|
|
||||||
| yaupg | yay -Syu | Sync with repositories before upgrading packages |
|
|
||||||
| yasu | yay -Syu --no-confirm | Same as `yaupg`, but without confirmation |
|
|
||||||
|
|
||||||
#### TRIZEN
|
|
||||||
|
|
||||||
| Alias | Command | Description |
|
|
||||||
|---------|------------------------------------|---------------------------------------------------------------------|
|
|
||||||
| trconf | trizen -C | Fix all configuration files with vimdiff |
|
|
||||||
| trin | trizen -S | Install packages from the repositories |
|
|
||||||
| trins | trizen -U | Install a package from a local file |
|
|
||||||
| trinsd | trizen -S --asdeps | Install packages as dependencies of another package |
|
|
||||||
| trloc | trizen -Qi | Display information about a package in the local database |
|
|
||||||
| trlocs | trizen -Qs | Search for packages in the local database |
|
|
||||||
| trlst | trizen -Qe | List installed packages including from AUR (tagged as "local") |
|
|
||||||
| trmir | trizen -Syy | Force refresh of all package lists after updating mirrorlist |
|
|
||||||
| trorph | trizen -Qtd | Remove orphans using yaourt |
|
|
||||||
| trre | trizen -R | Remove packages, keeping its settings and dependencies |
|
|
||||||
| trrem | trizen -Rns | Remove packages, including its settings and unneeded dependencies |
|
|
||||||
| trrep | trizen -Si | Display information about a package in the repositories |
|
|
||||||
| trreps | trizen -Ss | Search for packages in the repositories |
|
|
||||||
| trupd | trizen -Sy && sudo abs && sudo aur | Update and refresh local package, ABS and AUR databases |
|
|
||||||
| trupd | trizen -Sy && sudo abs | Update and refresh the local package and ABS databases |
|
|
||||||
| trupd | trizen -Sy && sudo aur | Update and refresh the local package and AUR databases |
|
|
||||||
| trupd | trizen -Sy | Update and refresh the local package database |
|
|
||||||
| trupg | trizen -Syua | Sync with repositories before upgrading all packages (from AUR too) |
|
|
||||||
| trsu | trizen -Syua --no-confirm | Same as `trupg`, but without confirmation |
|
|
||||||
| upgrade | trizen -Syu | Sync with repositories before upgrading packages |
|
|
||||||
|
|
||||||
#### YAOURT
|
|
||||||
|
|
||||||
| Alias | Command | Description |
|
|
||||||
|---------|------------------------------------|---------------------------------------------------------------------|
|
|
||||||
| yaconf | yaourt -C | Fix all configuration files with vimdiff |
|
|
||||||
| yain | yaourt -S | Install packages from the repositories |
|
|
||||||
| yains | yaourt -U | Install a package from a local file |
|
|
||||||
| yainsd | yaourt -S --asdeps | Install packages as dependencies of another package |
|
|
||||||
| yaloc | yaourt -Qi | Display information about a package in the local database |
|
|
||||||
| yalocs | yaourt -Qs | Search for packages in the local database |
|
|
||||||
| yalst | yaourt -Qe | List installed packages including from AUR (tagged as "local") |
|
|
||||||
| yamir | yaourt -Syy | Force refresh of all package lists after updating mirrorlist |
|
|
||||||
| yaorph | yaourt -Qtd | Remove orphans using yaourt |
|
|
||||||
| yare | yaourt -R | Remove packages, keeping its settings and dependencies |
|
|
||||||
| yarem | yaourt -Rns | Remove packages, including its settings and unneeded dependencies |
|
|
||||||
| yarep | yaourt -Si | Display information about a package in the repositories |
|
|
||||||
| yareps | yaourt -Ss | Search for packages in the repositories |
|
|
||||||
| yaupd | yaourt -Sy && sudo abs && sudo aur | Update and refresh local package, ABS and AUR databases |
|
|
||||||
| yaupd | yaourt -Sy && sudo abs | Update and refresh the local package and ABS databases |
|
|
||||||
| yaupd | yaourt -Sy && sudo aur | Update and refresh the local package and AUR databases |
|
|
||||||
| yaupd | yaourt -Sy | Update and refresh the local package database |
|
|
||||||
| yaupg | yaourt -Syua | Sync with repositories before upgrading all packages (from AUR too) |
|
|
||||||
| yasu | yaourt -Syua --no-confirm | Same as `yaupg`, but without confirmation |
|
|
||||||
| upgrade | yaourt -Syu | Sync with repositories before upgrading packages |
|
|
||||||
|
|
||||||
#### PACAUR
|
|
||||||
|
|
||||||
| Alias | Command | Description |
|
|
||||||
|---------|------------------------------------|---------------------------------------------------------------------|
|
|
||||||
| pain | pacaur -S | Install packages from the repositories |
|
|
||||||
| pains | pacaur -U | Install a package from a local file |
|
|
||||||
| painsd | pacaur -S --asdeps | Install packages as dependencies of another package |
|
|
||||||
| paloc | pacaur -Qi | Display information about a package in the local database |
|
|
||||||
| palocs | pacaur -Qs | Search for packages in the local database |
|
|
||||||
| palst | pacaur -Qe | List installed packages including from AUR (tagged as "local") |
|
|
||||||
| pamir | pacaur -Syy | Force refresh of all package lists after updating mirrorlist |
|
|
||||||
| paorph | pacaur -Qtd | Remove orphans using pacaur |
|
|
||||||
| pare | pacaur -R | Remove packages, keeping its settings and dependencies |
|
|
||||||
| parem | pacaur -Rns | Remove packages, including its settings and unneeded dependencies |
|
|
||||||
| parep | pacaur -Si | Display information about a package in the repositories |
|
|
||||||
| pareps | pacaur -Ss | Search for packages in the repositories |
|
|
||||||
| paupd | pacaur -Sy && sudo abs && sudo aur | Update and refresh local package, ABS and AUR databases |
|
|
||||||
| paupd | pacaur -Sy && sudo abs | Update and refresh the local package and ABS databases |
|
|
||||||
| paupd | pacaur -Sy && sudo aur | Update and refresh the local package and AUR databases |
|
|
||||||
| paupd | pacaur -Sy | Update and refresh the local package database |
|
|
||||||
| paupg | pacaur -Syua | Sync with repositories before upgrading all packages (from AUR too) |
|
|
||||||
| pasu | pacaur -Syua --no-confirm | Same as `paupg`, but without confirmation |
|
|
||||||
| upgrade | pacaur -Syu | Sync with repositories before upgrading packages |
|
|
||||||
|
|
||||||
#### PACMAN
|
|
||||||
|
|
||||||
| Alias | Command | Description |
|
|
||||||
|--------------|-----------------------------------------|--------------------------------------------------------------|
|
|
||||||
| pacin | sudo pacman -S | Install packages from the repositories |
|
|
||||||
| pacins | sudo pacman -U | Install a package from a local file |
|
|
||||||
| pacinsd | sudo pacman -S --asdeps | Install packages as dependencies of another package |
|
|
||||||
| pacloc | pacman -Qi | Display information about a package in the local database |
|
|
||||||
| paclocs | pacman -Qs | Search for packages in the local database |
|
|
||||||
| paclsorphans | sudo pacman -Qdt | List all orphaned packages |
|
|
||||||
| pacmir | sudo pacman -Syy | Force refresh of all package lists after updating mirrorlist |
|
|
||||||
| pacre | sudo pacman -R | Remove packages, keeping its settings and dependencies |
|
|
||||||
| pacrem | sudo pacman -Rns | Remove packages, including its settings and dependencies |
|
|
||||||
| pacrep | pacman -Si | Display information about a package in the repositories |
|
|
||||||
| pacreps | pacman -Ss | Search for packages in the repositories |
|
|
||||||
| pacrmorphans | sudo pacman -Rs $(pacman -Qtdq) | Delete all orphaned packages |
|
|
||||||
| pacupd | sudo pacman -Sy && sudo abs && sudo aur | Update and refresh the local package, ABS and AUR databases |
|
|
||||||
| pacupd | sudo pacman -Sy && sudo abs | Update and refresh the local package and ABS databases |
|
|
||||||
| pacupd | sudo pacman -Sy && sudo aur | Update and refresh the local package and AUR databases |
|
|
||||||
| pacupd | sudo pacman -Sy | Update and refresh the local package database |
|
|
||||||
| pacupg | sudo pacman -Syu | Sync with repositories before upgrading packages |
|
|
||||||
| upgrade | sudo pacman -Syu | Sync with repositories before upgrading packages |
|
|
||||||
| pacfileupg | sudo pacman -Fy | Download fresh package databases from the server |
|
|
||||||
| pacfiles | pacman -Fs | Search package file names for matching strings |
|
|
||||||
| pacls | pacman -Ql | List files in a package |
|
|
||||||
| pacown | pacman -Qo | Show which package owns a file |
|
|
||||||
|
|
||||||
| Function | Description |
|
|
||||||
|----------------|------------------------------------------------------|
|
|
||||||
| pacdisowned | List all disowned files in your system |
|
|
||||||
| paclist | List all installed packages with a short description |
|
|
||||||
| pacmanallkeys | Get all keys for developers and trusted users |
|
|
||||||
| pacmansignkeys | Locally trust all keys passed as parameters |
|
|
||||||
| pacweb | Open the website of an ArchLinux package |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Contributors
|
|
||||||
|
|
||||||
- Benjamin Boudreau - dreurmail@gmail.com
|
|
||||||
- Celso Miranda - contacto@celsomiranda.net
|
|
||||||
- KhasMek - Boushh@gmail.com
|
|
||||||
- Martin Putniorz - mputniorz@gmail.com
|
|
||||||
- MatthR3D - matthr3d@gmail.com
|
|
||||||
- ornicar - thibault.duplessis@gmail.com
|
|
||||||
- Juraj Fiala - doctorjellyface@riseup.net
|
|
||||||
- Majora320 (Moses Miller) - Majora320@gmail.com
|
|
||||||
- Ybalrid (Arthur Brainville) - ybalrid@ybalrid.info
|
|
@ -1,219 +0,0 @@
|
|||||||
if (( $+commands[trizen] )); then
|
|
||||||
alias trconf='trizen -C'
|
|
||||||
alias trupg='trizen -Syua'
|
|
||||||
alias trsu='trizen -Syua --noconfirm'
|
|
||||||
alias trin='trizen -S'
|
|
||||||
alias trins='trizen -U'
|
|
||||||
alias trre='trizen -R'
|
|
||||||
alias trrem='trizen -Rns'
|
|
||||||
alias trrep='trizen -Si'
|
|
||||||
alias trreps='trizen -Ss'
|
|
||||||
alias trloc='trizen -Qi'
|
|
||||||
alias trlocs='trizen -Qs'
|
|
||||||
alias trlst='trizen -Qe'
|
|
||||||
alias trorph='trizen -Qtd'
|
|
||||||
alias trinsd='trizen -S --asdeps'
|
|
||||||
alias trmir='trizen -Syy'
|
|
||||||
|
|
||||||
|
|
||||||
if (( $+commands[abs] && $+commands[aur] )); then
|
|
||||||
alias trupd='trizen -Sy && sudo abs && sudo aur'
|
|
||||||
elif (( $+commands[abs] )); then
|
|
||||||
alias trupd='trizen -Sy && sudo abs'
|
|
||||||
elif (( $+commands[aur] )); then
|
|
||||||
alias trupd='trizen -Sy && sudo aur'
|
|
||||||
else
|
|
||||||
alias trupd='trizen -Sy'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if (( $+commands[yaourt] )); then
|
|
||||||
alias yaconf='yaourt -C'
|
|
||||||
alias yaupg='yaourt -Syua'
|
|
||||||
alias yasu='yaourt -Syua --noconfirm'
|
|
||||||
alias yain='yaourt -S'
|
|
||||||
alias yains='yaourt -U'
|
|
||||||
alias yare='yaourt -R'
|
|
||||||
alias yarem='yaourt -Rns'
|
|
||||||
alias yarep='yaourt -Si'
|
|
||||||
alias yareps='yaourt -Ss'
|
|
||||||
alias yaloc='yaourt -Qi'
|
|
||||||
alias yalocs='yaourt -Qs'
|
|
||||||
alias yalst='yaourt -Qe'
|
|
||||||
alias yaorph='yaourt -Qtd'
|
|
||||||
alias yainsd='yaourt -S --asdeps'
|
|
||||||
alias yamir='yaourt -Syy'
|
|
||||||
|
|
||||||
|
|
||||||
if (( $+commands[abs] && $+commands[aur] )); then
|
|
||||||
alias yaupd='yaourt -Sy && sudo abs && sudo aur'
|
|
||||||
elif (( $+commands[abs] )); then
|
|
||||||
alias yaupd='yaourt -Sy && sudo abs'
|
|
||||||
elif (( $+commands[aur] )); then
|
|
||||||
alias yaupd='yaourt -Sy && sudo aur'
|
|
||||||
else
|
|
||||||
alias yaupd='yaourt -Sy'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if (( $+commands[yay] )); then
|
|
||||||
alias yaconf='yay -Pg'
|
|
||||||
alias yaupg='yay -Syu'
|
|
||||||
alias yasu='yay -Syu --noconfirm'
|
|
||||||
alias yain='yay -S'
|
|
||||||
alias yains='yay -U'
|
|
||||||
alias yare='yay -R'
|
|
||||||
alias yarem='yay -Rns'
|
|
||||||
alias yarep='yay -Si'
|
|
||||||
alias yareps='yay -Ss'
|
|
||||||
alias yaloc='yay -Qi'
|
|
||||||
alias yalocs='yay -Qs'
|
|
||||||
alias yalst='yay -Qe'
|
|
||||||
alias yaorph='yay -Qtd'
|
|
||||||
alias yainsd='yay -S --asdeps'
|
|
||||||
alias yamir='yay -Syy'
|
|
||||||
|
|
||||||
|
|
||||||
if (( $+commands[abs] && $+commands[aur] )); then
|
|
||||||
alias yaupd='yay -Sy && sudo abs && sudo aur'
|
|
||||||
elif (( $+commands[abs] )); then
|
|
||||||
alias yaupd='yay -Sy && sudo abs'
|
|
||||||
elif (( $+commands[aur] )); then
|
|
||||||
alias yaupd='yay -Sy && sudo aur'
|
|
||||||
else
|
|
||||||
alias yaupd='yay -Sy'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if (( $+commands[pacaur] )); then
|
|
||||||
alias paupg='pacaur -Syu'
|
|
||||||
alias pasu='pacaur -Syu --noconfirm'
|
|
||||||
alias pain='pacaur -S'
|
|
||||||
alias pains='pacaur -U'
|
|
||||||
alias pare='pacaur -R'
|
|
||||||
alias parem='pacaur -Rns'
|
|
||||||
alias parep='pacaur -Si'
|
|
||||||
alias pareps='pacaur -Ss'
|
|
||||||
alias paloc='pacaur -Qi'
|
|
||||||
alias palocs='pacaur -Qs'
|
|
||||||
alias palst='pacaur -Qe'
|
|
||||||
alias paorph='pacaur -Qtd'
|
|
||||||
alias painsd='pacaur -S --asdeps'
|
|
||||||
alias pamir='pacaur -Syy'
|
|
||||||
|
|
||||||
if (( $+commands[abs] && $+commands[aur] )); then
|
|
||||||
alias paupd='pacaur -Sy && sudo abs && sudo aur'
|
|
||||||
elif (( $+commands[abs] )); then
|
|
||||||
alias paupd='pacaur -Sy && sudo abs'
|
|
||||||
elif (( $+commands[aur] )); then
|
|
||||||
alias paupd='pacaur -Sy && sudo aur'
|
|
||||||
else
|
|
||||||
alias paupd='pacaur -Sy'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if (( $+commands[trizen] )); then
|
|
||||||
function upgrade() {
|
|
||||||
trizen -Syu
|
|
||||||
}
|
|
||||||
elif (( $+commands[pacaur] )); then
|
|
||||||
function upgrade() {
|
|
||||||
pacaur -Syu
|
|
||||||
}
|
|
||||||
elif (( $+commands[yaourt] )); then
|
|
||||||
function upgrade() {
|
|
||||||
yaourt -Syu
|
|
||||||
}
|
|
||||||
elif (( $+commands[yay] )); then
|
|
||||||
function upgrade() {
|
|
||||||
yay -Syu
|
|
||||||
}
|
|
||||||
else
|
|
||||||
function upgrade() {
|
|
||||||
sudo pacman -Syu
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips
|
|
||||||
alias pacupg='sudo pacman -Syu'
|
|
||||||
alias pacin='sudo pacman -S'
|
|
||||||
alias pacins='sudo pacman -U'
|
|
||||||
alias pacre='sudo pacman -R'
|
|
||||||
alias pacrem='sudo pacman -Rns'
|
|
||||||
alias pacrep='pacman -Si'
|
|
||||||
alias pacreps='pacman -Ss'
|
|
||||||
alias pacloc='pacman -Qi'
|
|
||||||
alias paclocs='pacman -Qs'
|
|
||||||
alias pacinsd='sudo pacman -S --asdeps'
|
|
||||||
alias pacmir='sudo pacman -Syy'
|
|
||||||
alias paclsorphans='sudo pacman -Qdt'
|
|
||||||
alias pacrmorphans='sudo pacman -Rs $(pacman -Qtdq)'
|
|
||||||
alias pacfileupg='sudo pacman -Fy'
|
|
||||||
alias pacfiles='pacman -Fs'
|
|
||||||
alias pacls='pacman -Ql'
|
|
||||||
alias pacown='pacman -Qo'
|
|
||||||
|
|
||||||
|
|
||||||
if (( $+commands[abs] && $+commands[aur] )); then
|
|
||||||
alias pacupd='sudo pacman -Sy && sudo abs && sudo aur'
|
|
||||||
elif (( $+commands[abs] )); then
|
|
||||||
alias pacupd='sudo pacman -Sy && sudo abs'
|
|
||||||
elif (( $+commands[aur] )); then
|
|
||||||
alias pacupd='sudo pacman -Sy && sudo aur'
|
|
||||||
else
|
|
||||||
alias pacupd='sudo pacman -Sy'
|
|
||||||
fi
|
|
||||||
|
|
||||||
function paclist() {
|
|
||||||
# Source: https://bbs.archlinux.org/viewtopic.php?id=93683
|
|
||||||
LC_ALL=C pacman -Qei $(pacman -Qu | cut -d " " -f 1) | \
|
|
||||||
awk 'BEGIN {FS=":"} /^Name/{printf("\033[1;36m%s\033[1;37m", $2)} /^Description/{print $2}'
|
|
||||||
}
|
|
||||||
|
|
||||||
function pacdisowned() {
|
|
||||||
emulate -L zsh
|
|
||||||
|
|
||||||
tmp=${TMPDIR-/tmp}/pacman-disowned-$UID-$$
|
|
||||||
db=$tmp/db
|
|
||||||
fs=$tmp/fs
|
|
||||||
|
|
||||||
mkdir "$tmp"
|
|
||||||
trap 'rm -rf "$tmp"' EXIT
|
|
||||||
|
|
||||||
pacman -Qlq | sort -u > "$db"
|
|
||||||
|
|
||||||
find /bin /etc /lib /sbin /usr ! -name lost+found \
|
|
||||||
\( -type d -printf '%p/\n' -o -print \) | sort > "$fs"
|
|
||||||
|
|
||||||
comm -23 "$fs" "$db"
|
|
||||||
}
|
|
||||||
|
|
||||||
function pacmanallkeys() {
|
|
||||||
emulate -L zsh
|
|
||||||
curl -s https://www.archlinux.org/people/{developers,trustedusers}/ | \
|
|
||||||
awk -F\" '(/pgp.mit.edu/) { sub(/.*search=0x/,""); print $1}' | \
|
|
||||||
xargs sudo pacman-key --recv-keys
|
|
||||||
}
|
|
||||||
|
|
||||||
function pacmansignkeys() {
|
|
||||||
emulate -L zsh
|
|
||||||
for key in $*; do
|
|
||||||
sudo pacman-key --recv-keys $key
|
|
||||||
sudo pacman-key --lsign-key $key
|
|
||||||
printf 'trust\n3\n' | sudo gpg --homedir /etc/pacman.d/gnupg \
|
|
||||||
--no-permission-warning --command-fd 0 --edit-key $key
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
if (( $+commands[xdg-open] )); then
|
|
||||||
function pacweb() {
|
|
||||||
pkg="$1"
|
|
||||||
infos="$(pacman -Si "$pkg")"
|
|
||||||
if [[ -z "$infos" ]]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
repo="$(grep '^Repo' <<< "$infos" | grep -oP '[^ ]+$')"
|
|
||||||
arch="$(grep '^Arch' <<< "$infos" | grep -oP '[^ ]+$')"
|
|
||||||
xdg-open "https://www.archlinux.org/packages/$repo/$arch/$pkg/" &>/dev/null
|
|
||||||
}
|
|
||||||
fi
|
|
@ -1,27 +0,0 @@
|
|||||||
## asdf
|
|
||||||
|
|
||||||
**Maintainer:** [@RobLoach](https://github.com/RobLoach)
|
|
||||||
|
|
||||||
Adds integration with [asdf](https://github.com/asdf-vm/asdf), the extendable version manager, with support for Ruby, Node.js, Elixir, Erlang and more.
|
|
||||||
|
|
||||||
### Installation
|
|
||||||
|
|
||||||
1. Enable the plugin by adding it to your `plugins` definition in `~/.zshrc`.
|
|
||||||
|
|
||||||
```
|
|
||||||
plugins=(asdf)
|
|
||||||
```
|
|
||||||
|
|
||||||
2. [Install asdf](https://github.com/asdf-vm/asdf#setup) by running the following:
|
|
||||||
```
|
|
||||||
git clone https://github.com/asdf-vm/asdf.git ~/.asdf
|
|
||||||
```
|
|
||||||
|
|
||||||
### Usage
|
|
||||||
|
|
||||||
See the [asdf usage documentation](https://github.com/asdf-vm/asdf#usage) for information on how to use asdf:
|
|
||||||
|
|
||||||
```
|
|
||||||
asdf plugin-add nodejs git@github.com:asdf-vm/asdf-nodejs.git
|
|
||||||
asdf install nodejs 5.9.1
|
|
||||||
```
|
|
@ -1,19 +0,0 @@
|
|||||||
# Find where asdf should be installed
|
|
||||||
ASDF_DIR="${ASDF_DIR:-$HOME/.asdf}"
|
|
||||||
ASDF_COMPLETIONS="$ASDF_DIR/completions"
|
|
||||||
|
|
||||||
# If not found, check for Homebrew package
|
|
||||||
if [[ ! -f "$ASDF_DIR/asdf.sh" ]] && (( $+commands[brew] )); then
|
|
||||||
ASDF_DIR="$(brew --prefix asdf)"
|
|
||||||
ASDF_COMPLETIONS="$ASDF_DIR/etc/bash_completion.d"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Load command
|
|
||||||
if [[ -f "$ASDF_DIR/asdf.sh" ]]; then
|
|
||||||
. "$ASDF_DIR/asdf.sh"
|
|
||||||
|
|
||||||
# Load completions
|
|
||||||
if [[ -f "$ASDF_COMPLETIONS/asdf.bash" ]]; then
|
|
||||||
. "$ASDF_COMPLETIONS/asdf.bash"
|
|
||||||
fi
|
|
||||||
fi
|
|
@ -1,14 +0,0 @@
|
|||||||
# Autoenv plugin
|
|
||||||
|
|
||||||
This plugin loads the [Autoenv](https://github.com/inishchith/autoenv).
|
|
||||||
|
|
||||||
To use it, add `autoenv` to the plugins array in your zshrc file:
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
plugins=(... autoenv)
|
|
||||||
```
|
|
||||||
## Requirements
|
|
||||||
|
|
||||||
In order to make this work, you will need to have the autoenv installed.
|
|
||||||
|
|
||||||
More info on the usage and install: https://github.com/inishchith/autoenv
|
|
@ -1,43 +0,0 @@
|
|||||||
# Activates autoenv or reports its failure
|
|
||||||
() {
|
|
||||||
if ! type autoenv_init >/dev/null; then
|
|
||||||
for d (~/.autoenv ~/.local/bin /usr/local/opt/autoenv /usr/local/bin); do
|
|
||||||
if [[ -e $d/activate.sh ]]; then
|
|
||||||
autoenv_dir=$d
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [[ -z $autoenv_dir ]]; then
|
|
||||||
cat <<END >&2
|
|
||||||
-------- AUTOENV ---------
|
|
||||||
Could not locate autoenv installation.
|
|
||||||
Please check if autoenv is correctly installed.
|
|
||||||
In the meantime the autoenv plugin is DISABLED.
|
|
||||||
--------------------------
|
|
||||||
END
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
source $autoenv_dir/activate.sh
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
[[ $? != 0 ]] && return $?
|
|
||||||
|
|
||||||
# The use_env call below is a reusable command to activate/create a new Python
|
|
||||||
# virtualenv, requiring only a single declarative line of code in your .env files.
|
|
||||||
# It only performs an action if the requested virtualenv is not the current one.
|
|
||||||
|
|
||||||
use_env() {
|
|
||||||
typeset venv
|
|
||||||
venv="$1"
|
|
||||||
if [[ "${VIRTUAL_ENV:t}" != "$venv" ]]; then
|
|
||||||
if workon | grep -q "$venv"; then
|
|
||||||
workon "$venv"
|
|
||||||
else
|
|
||||||
echo -n "Create virtualenv $venv now? (Yn) "
|
|
||||||
read answer
|
|
||||||
if [[ "$answer" == "Y" ]]; then
|
|
||||||
mkvirtualenv "$venv"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
# Autojump plugin
|
|
||||||
|
|
||||||
This plugin loads the [autojump navigation tool](https://github.com/wting/autojump).
|
|
||||||
|
|
||||||
To use it, add `autojump` to the plugins array in your zshrc file:
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
plugins=(... autojump)
|
|
||||||
```
|
|
||||||
|
|
||||||
More info on the usage: https://github.com/wting/autojump
|
|
@ -1,34 +0,0 @@
|
|||||||
declare -a autojump_paths
|
|
||||||
autojump_paths=(
|
|
||||||
$HOME/.autojump/etc/profile.d/autojump.zsh # manual installation
|
|
||||||
$HOME/.autojump/share/autojump/autojump.zsh # manual installation
|
|
||||||
$HOME/.nix-profile/etc/profile.d/autojump.sh # NixOS installation
|
|
||||||
/run/current-system/sw/share/autojump/autojump.zsh # NixOS installation
|
|
||||||
/usr/share/autojump/autojump.zsh # Debian and Ubuntu package
|
|
||||||
/etc/profile.d/autojump.zsh # manual installation
|
|
||||||
/etc/profile.d/autojump.sh # Gentoo installation
|
|
||||||
/usr/local/share/autojump/autojump.zsh # FreeBSD installation
|
|
||||||
/opt/local/etc/profile.d/autojump.sh # macOS with MacPorts
|
|
||||||
/usr/local/etc/profile.d/autojump.sh # macOS with Homebrew (default)
|
|
||||||
)
|
|
||||||
|
|
||||||
for file in $autojump_paths; do
|
|
||||||
if [[ -f "$file" ]]; then
|
|
||||||
source "$file"
|
|
||||||
found=1
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# if no path found, try Homebrew
|
|
||||||
if (( ! found && $+commands[brew] )); then
|
|
||||||
file=$(brew --prefix)/etc/profile.d/autojump.sh
|
|
||||||
if [[ -f "$file" ]]; then
|
|
||||||
source "$file"
|
|
||||||
found=1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
(( ! found )) && echo '[oh-my-zsh] autojump script not found'
|
|
||||||
|
|
||||||
unset autojump_paths file found
|
|
@ -1,8 +0,0 @@
|
|||||||
# autopep8 plugin
|
|
||||||
|
|
||||||
This plugin adds completion for [autopep8](https://pypi.org/project/autopep8/), a tool that automatically formats Python code to conform to the [PEP 8](http://www.python.org/dev/peps/pep-0008/) style guide.
|
|
||||||
|
|
||||||
To use it, add autopep8 to the plugins array of your zshrc file:
|
|
||||||
```
|
|
||||||
plugins=(... autopep8)
|
|
||||||
```
|
|
@ -1,32 +0,0 @@
|
|||||||
#compdef autopep8
|
|
||||||
#
|
|
||||||
# this is zsh completion function file.
|
|
||||||
# generated by genzshcomp(ver: 0.5.1)
|
|
||||||
#
|
|
||||||
|
|
||||||
typeset -A opt_args
|
|
||||||
local context state line
|
|
||||||
|
|
||||||
_arguments -s -S \
|
|
||||||
"--help[show this help message and exit]:" \
|
|
||||||
"-h[show this help message and exit]:" \
|
|
||||||
"--version[show program's version number and exit]:" \
|
|
||||||
"--verbose[print verbose messages; multiple -v result in more verbose messages]" \
|
|
||||||
"-v[print verbose messages; multiple -v result in more verbose messages]" \
|
|
||||||
"--diff[print the diff for the fixed source]" \
|
|
||||||
"-d[print the diff for the fixed source]" \
|
|
||||||
"--in-place[make changes to files in place]" \
|
|
||||||
"-i[make changes to files in place]" \
|
|
||||||
"--recursive[run recursively; must be used with --in-place or --diff]" \
|
|
||||||
"-r[run recursively; must be used with --in-place or --diff]" \
|
|
||||||
"--jobs[number of parallel jobs; match CPU count if value is less than 1]::n number of parallel jobs; match CPU count if value is:_files" \
|
|
||||||
"-j[number of parallel jobs; match CPU count if value is less than 1]::n number of parallel jobs; match CPU count if value is:_files" \
|
|
||||||
"--pep8-passes[maximum number of additional pep8 passes (default: 100)]::n:_files" \
|
|
||||||
"-p[maximum number of additional pep8 passes (default: 100)]::n:_files" \
|
|
||||||
"-a[-a result in more aggressive changes]::result:_files" \
|
|
||||||
"--exclude[exclude files/directories that match these comma- separated globs]::globs:_files" \
|
|
||||||
"--list-fixes[list codes for fixes; used by --ignore and --select]" \
|
|
||||||
"--ignore[do not fix these errors/warnings (default E226,E24)]::errors:_files" \
|
|
||||||
"--select[fix only these errors/warnings (e.g. E4,W)]::errors:_files" \
|
|
||||||
"--max-line-length[set maximum allowed line length (default: 79)]::n:_files" \
|
|
||||||
"*::args:_files"
|
|
@ -1,38 +0,0 @@
|
|||||||
# aws
|
|
||||||
|
|
||||||
This plugin provides completion support for [awscli](https://docs.aws.amazon.com/cli/latest/reference/index.html)
|
|
||||||
and a few utilities to manage AWS profiles and display them in the prompt.
|
|
||||||
|
|
||||||
To use it, add `aws` to the plugins array in your zshrc file.
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
plugins=(... aws)
|
|
||||||
```
|
|
||||||
|
|
||||||
## Plugin commands
|
|
||||||
|
|
||||||
* `asp [<profile>]`: sets `$AWS_PROFILE` and `$AWS_DEFAULT_PROFILE` (legacy) to `<profile>`.
|
|
||||||
It also sets `$AWS_EB_PROFILE` to `<profile>` for the Elastic Beanstalk CLI.
|
|
||||||
Run `asp` without arguments to clear the profile.
|
|
||||||
|
|
||||||
* `agp`: gets the current value of `$AWS_PROFILE`.
|
|
||||||
|
|
||||||
* `aws_change_access_key`: changes the AWS access key of a profile.
|
|
||||||
|
|
||||||
* `aws_profiles`: lists the available profiles in the `$AWS_CONFIG_FILE` (default: `~/.aws/config`).
|
|
||||||
Used to provide completion for the `asp` function.
|
|
||||||
|
|
||||||
## Plugin options
|
|
||||||
|
|
||||||
* Set `SHOW_AWS_PROMPT=false` in your zshrc file if you want to prevent the plugin from modifying your RPROMPT.
|
|
||||||
Some themes might overwrite the value of RPROMPT instead of appending to it, so they'll need to be fixed to
|
|
||||||
see the AWS profile prompt.
|
|
||||||
|
|
||||||
## Theme
|
|
||||||
|
|
||||||
The plugin creates an `aws_prompt_info` function that you can use in your theme, which displays
|
|
||||||
the current `$AWS_PROFILE`. It uses two variables to control how that is shown:
|
|
||||||
|
|
||||||
- ZSH_THEME_AWS_PREFIX: sets the prefix of the AWS_PROFILE. Defaults to `<aws:`.
|
|
||||||
|
|
||||||
- ZSH_THEME_AWS_SUFFIX: sets the suffix of the AWS_PROFILE. Defaults to `>`.
|
|
@ -1,96 +0,0 @@
|
|||||||
function agp() {
|
|
||||||
echo $AWS_PROFILE
|
|
||||||
}
|
|
||||||
|
|
||||||
# AWS profile selection
|
|
||||||
function asp() {
|
|
||||||
if [[ -z "$1" ]]; then
|
|
||||||
unset AWS_DEFAULT_PROFILE AWS_PROFILE AWS_EB_PROFILE
|
|
||||||
echo AWS profile cleared.
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
local available_profiles=($(aws_profiles))
|
|
||||||
if [[ -z "${available_profiles[(r)$1]}" ]]; then
|
|
||||||
echo "${fg[red]}Profile '$1' not found in '${AWS_CONFIG_FILE:-$HOME/.aws/config}'" >&2
|
|
||||||
echo "Available profiles: ${(j:, :)available_profiles:-no profiles found}${reset_color}" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
export AWS_DEFAULT_PROFILE=$1
|
|
||||||
export AWS_PROFILE=$1
|
|
||||||
export AWS_EB_PROFILE=$1
|
|
||||||
}
|
|
||||||
|
|
||||||
function aws_change_access_key() {
|
|
||||||
if [[ -z "$1" ]]; then
|
|
||||||
echo "usage: $0 <profile>"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo Insert the credentials when asked.
|
|
||||||
asp "$1" || return 1
|
|
||||||
aws iam create-access-key
|
|
||||||
aws configure --profile "$1"
|
|
||||||
|
|
||||||
echo You can now safely delete the old access key running \`aws iam delete-access-key --access-key-id ID\`
|
|
||||||
echo Your current keys are:
|
|
||||||
aws iam list-access-keys
|
|
||||||
}
|
|
||||||
|
|
||||||
function aws_profiles() {
|
|
||||||
[[ -r "${AWS_CONFIG_FILE:-$HOME/.aws/config}" ]] || return 1
|
|
||||||
grep '\[profile' "${AWS_CONFIG_FILE:-$HOME/.aws/config}"|sed -e 's/.*profile \([a-zA-Z0-9_\.-]*\).*/\1/'
|
|
||||||
}
|
|
||||||
|
|
||||||
function _aws_profiles() {
|
|
||||||
reply=($(aws_profiles))
|
|
||||||
}
|
|
||||||
compctl -K _aws_profiles asp aws_change_access_key
|
|
||||||
|
|
||||||
# AWS prompt
|
|
||||||
function aws_prompt_info() {
|
|
||||||
[[ -z $AWS_PROFILE ]] && return
|
|
||||||
echo "${ZSH_THEME_AWS_PREFIX:=<aws:}${AWS_PROFILE}${ZSH_THEME_AWS_SUFFIX:=>}"
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ "$SHOW_AWS_PROMPT" != false ]; then
|
|
||||||
RPROMPT='$(aws_prompt_info)'"$RPROMPT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Load awscli completions
|
|
||||||
|
|
||||||
function _awscli-homebrew-installed() {
|
|
||||||
# check if Homebrew is installed
|
|
||||||
(( $+commands[brew] )) || return 1
|
|
||||||
|
|
||||||
# speculatively check default brew prefix
|
|
||||||
if [ -h /usr/local/opt/awscli ]; then
|
|
||||||
_brew_prefix=/usr/local/opt/awscli
|
|
||||||
else
|
|
||||||
# ok, it is not in the default prefix
|
|
||||||
# this call to brew is expensive (about 400 ms), so at least let's make it only once
|
|
||||||
_brew_prefix=$(brew --prefix awscli)
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# get aws_zsh_completer.sh location from $PATH
|
|
||||||
_aws_zsh_completer_path="$commands[aws_zsh_completer.sh]"
|
|
||||||
|
|
||||||
# otherwise check common locations
|
|
||||||
if [[ -z $_aws_zsh_completer_path ]]; then
|
|
||||||
# Homebrew
|
|
||||||
if _awscli-homebrew-installed; then
|
|
||||||
_aws_zsh_completer_path=$_brew_prefix/libexec/bin/aws_zsh_completer.sh
|
|
||||||
# Ubuntu
|
|
||||||
elif [[ -e /usr/share/zsh/vendor-completions/_awscli ]]; then
|
|
||||||
_aws_zsh_completer_path=/usr/share/zsh/vendor-completions/_awscli
|
|
||||||
# RPM
|
|
||||||
else
|
|
||||||
_aws_zsh_completer_path=/usr/share/zsh/site-functions/aws_zsh_completer.sh
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
[[ -r $_aws_zsh_completer_path ]] && source $_aws_zsh_completer_path
|
|
||||||
unset _aws_zsh_completer_path _brew_prefix
|
|
@ -1,13 +0,0 @@
|
|||||||
# Battery Plugin
|
|
||||||
|
|
||||||
This plugin adds some functions you can use to display battery information in your custom theme.
|
|
||||||
|
|
||||||
To use, add `battery` to the list of plugins in your `.zshrc` file:
|
|
||||||
|
|
||||||
`plugins=(... battery)`
|
|
||||||
|
|
||||||
Then, add the `battery_pct_prompt` function to your custom theme. For example:
|
|
||||||
|
|
||||||
```
|
|
||||||
RPROMPT='$(battery_pct_prompt)'
|
|
||||||
```
|
|
@ -1,209 +0,0 @@
|
|||||||
###########################################
|
|
||||||
# Battery plugin for oh-my-zsh #
|
|
||||||
# Original Author: Peter hoeg (peterhoeg) #
|
|
||||||
# Email: peter@speartail.com #
|
|
||||||
###########################################
|
|
||||||
# Author: Sean Jones (neuralsandwich) #
|
|
||||||
# Email: neuralsandwich@gmail.com #
|
|
||||||
# Modified to add support for Apple Mac #
|
|
||||||
###########################################
|
|
||||||
# Author: J (927589452) #
|
|
||||||
# Modified to add support for FreeBSD #
|
|
||||||
###########################################
|
|
||||||
|
|
||||||
if [[ "$OSTYPE" = darwin* ]] ; then
|
|
||||||
|
|
||||||
function battery_pct() {
|
|
||||||
local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
|
|
||||||
typeset -F maxcapacity=$(echo $smart_battery_status | grep '^.*"MaxCapacity"\ =\ ' | sed -e 's/^.*"MaxCapacity"\ =\ //')
|
|
||||||
typeset -F currentcapacity=$(echo $smart_battery_status | grep '^.*"CurrentCapacity"\ =\ ' | sed -e 's/^.*CurrentCapacity"\ =\ //')
|
|
||||||
integer i=$(((currentcapacity/maxcapacity) * 100))
|
|
||||||
echo $i
|
|
||||||
}
|
|
||||||
|
|
||||||
function plugged_in() {
|
|
||||||
[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ Yes') -eq 1 ]
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_pct_remaining() {
|
|
||||||
if plugged_in ; then
|
|
||||||
echo "External Power"
|
|
||||||
else
|
|
||||||
battery_pct
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_time_remaining() {
|
|
||||||
local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
|
|
||||||
if [[ $(echo $smart_battery_status | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
|
||||||
timeremaining=$(echo $smart_battery_status | grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //')
|
|
||||||
if [ $timeremaining -gt 720 ] ; then
|
|
||||||
echo "::"
|
|
||||||
else
|
|
||||||
echo "~$((timeremaining / 60)):$((timeremaining % 60))"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "∞"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_pct_prompt () {
|
|
||||||
if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
|
||||||
b=$(battery_pct_remaining)
|
|
||||||
if [ $b -gt 50 ] ; then
|
|
||||||
color='green'
|
|
||||||
elif [ $b -gt 20 ] ; then
|
|
||||||
color='yellow'
|
|
||||||
else
|
|
||||||
color='red'
|
|
||||||
fi
|
|
||||||
echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}"
|
|
||||||
else
|
|
||||||
echo "∞"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_is_charging() {
|
|
||||||
[[ $(ioreg -rc "AppleSmartBattery"| grep '^.*"IsCharging"\ =\ ' | sed -e 's/^.*"IsCharging"\ =\ //') == "Yes" ]]
|
|
||||||
}
|
|
||||||
|
|
||||||
elif [[ "$OSTYPE" = freebsd* ]] ; then
|
|
||||||
|
|
||||||
function battery_is_charging() {
|
|
||||||
[[ $(sysctl -n hw.acpi.battery.state) -eq 2 ]]
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_pct() {
|
|
||||||
if (( $+commands[sysctl] )) ; then
|
|
||||||
echo "$(sysctl -n hw.acpi.battery.life)"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_pct_remaining() {
|
|
||||||
if [ ! $(battery_is_charging) ] ; then
|
|
||||||
battery_pct
|
|
||||||
else
|
|
||||||
echo "External Power"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_time_remaining() {
|
|
||||||
remaining_time=$(sysctl -n hw.acpi.battery.time)
|
|
||||||
if [[ $remaining_time -ge 0 ]] ; then
|
|
||||||
# calculation from https://www.unix.com/shell-programming-and-scripting/23695-convert-minutes-hours-minutes-seconds.html
|
|
||||||
((hour=$remaining_time/60))
|
|
||||||
((minute=$remaining_time-$hour*60))
|
|
||||||
echo $hour:$minute
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_pct_prompt() {
|
|
||||||
b=$(battery_pct_remaining)
|
|
||||||
if [ ! $(battery_is_charging) ] ; then
|
|
||||||
if [ $b -gt 50 ] ; then
|
|
||||||
color='green'
|
|
||||||
elif [ $b -gt 20 ] ; then
|
|
||||||
color='yellow'
|
|
||||||
else
|
|
||||||
color='red'
|
|
||||||
fi
|
|
||||||
echo "%{$fg[$color]%}$(battery_pct_remaining)%%%{$reset_color%}"
|
|
||||||
else
|
|
||||||
echo "∞"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
elif [[ "$OSTYPE" = linux* ]] ; then
|
|
||||||
|
|
||||||
function battery_is_charging() {
|
|
||||||
! [[ $(acpi 2>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]]
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_pct() {
|
|
||||||
if (( $+commands[acpi] )) ; then
|
|
||||||
echo "$(acpi 2>/dev/null | cut -f2 -d ',' | tr -cd '[:digit:]')"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_pct_remaining() {
|
|
||||||
if [ ! $(battery_is_charging) ] ; then
|
|
||||||
battery_pct
|
|
||||||
else
|
|
||||||
echo "External Power"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_time_remaining() {
|
|
||||||
if [[ $(acpi 2>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
|
|
||||||
echo $(acpi 2>/dev/null | cut -f3 -d ',')
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_pct_prompt() {
|
|
||||||
b=$(battery_pct_remaining)
|
|
||||||
if [[ $(acpi 2>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
|
|
||||||
if [ $b -gt 50 ] ; then
|
|
||||||
color='green'
|
|
||||||
elif [ $b -gt 20 ] ; then
|
|
||||||
color='yellow'
|
|
||||||
else
|
|
||||||
color='red'
|
|
||||||
fi
|
|
||||||
echo "%{$fg[$color]%}$(battery_pct_remaining)%%%{$reset_color%}"
|
|
||||||
else
|
|
||||||
echo "∞"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
# Empty functions so we don't cause errors in prompts
|
|
||||||
function battery_pct_remaining() {
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_time_remaining() {
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_pct_prompt() {
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
|
|
||||||
function battery_level_gauge() {
|
|
||||||
local gauge_slots=${BATTERY_GAUGE_SLOTS:-10};
|
|
||||||
local green_threshold=${BATTERY_GREEN_THRESHOLD:-6};
|
|
||||||
local yellow_threshold=${BATTERY_YELLOW_THRESHOLD:-4};
|
|
||||||
local color_green=${BATTERY_COLOR_GREEN:-%F{green}};
|
|
||||||
local color_yellow=${BATTERY_COLOR_YELLOW:-%F{yellow}};
|
|
||||||
local color_red=${BATTERY_COLOR_RED:-%F{red}};
|
|
||||||
local color_reset=${BATTERY_COLOR_RESET:-%{%f%k%b%}};
|
|
||||||
local battery_prefix=${BATTERY_GAUGE_PREFIX:-'['};
|
|
||||||
local battery_suffix=${BATTERY_GAUGE_SUFFIX:-']'};
|
|
||||||
local filled_symbol=${BATTERY_GAUGE_FILLED_SYMBOL:-'▶'};
|
|
||||||
local empty_symbol=${BATTERY_GAUGE_EMPTY_SYMBOL:-'▷'};
|
|
||||||
local charging_color=${BATTERY_CHARGING_COLOR:-$color_yellow};
|
|
||||||
local charging_symbol=${BATTERY_CHARGING_SYMBOL:-'⚡'};
|
|
||||||
|
|
||||||
local battery_remaining_percentage=$(battery_pct);
|
|
||||||
|
|
||||||
if [[ $battery_remaining_percentage =~ [0-9]+ ]]; then
|
|
||||||
local filled=$(((( $battery_remaining_percentage + $gauge_slots - 1) / $gauge_slots)));
|
|
||||||
local empty=$(($gauge_slots - $filled));
|
|
||||||
|
|
||||||
if [[ $filled -gt $green_threshold ]]; then local gauge_color=$color_green;
|
|
||||||
elif [[ $filled -gt $yellow_threshold ]]; then local gauge_color=$color_yellow;
|
|
||||||
else local gauge_color=$color_red;
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
local filled=$gauge_slots;
|
|
||||||
local empty=0;
|
|
||||||
filled_symbol=${BATTERY_UNKNOWN_SYMBOL:-'.'};
|
|
||||||
fi
|
|
||||||
|
|
||||||
local charging=' ' && battery_is_charging && charging=$charging_symbol;
|
|
||||||
|
|
||||||
printf ${charging_color//\%/\%\%}$charging${color_reset//\%/\%\%}${battery_prefix//\%/\%\%}${gauge_color//\%/\%\%}
|
|
||||||
printf ${filled_symbol//\%/\%\%}'%.0s' {1..$filled}
|
|
||||||
[[ $filled -lt $gauge_slots ]] && printf ${empty_symbol//\%/\%\%}'%.0s' {1..$empty}
|
|
||||||
printf ${color_reset//\%/\%\%}${battery_suffix//\%/\%\%}${color_reset//\%/\%\%}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
|||||||
## bbedit
|
|
||||||
|
|
||||||
Plugin for BBEdit, an HTML and text editor for Mac OS X
|
|
||||||
|
|
||||||
### Requirements
|
|
||||||
|
|
||||||
* [BBEdit](https://www.barebones.com/products/bbedit/)
|
|
||||||
* [BBEdit Command-Line Tools](https://www.barebones.com/support/bbedit/cmd-line-tools.html)
|
|
||||||
|
|
||||||
### Usage
|
|
||||||
|
|
||||||
* If the `bb` command is called without an argument, launch BBEdit
|
|
||||||
|
|
||||||
* If `bb` is passed a directory, cd to it and open it in BBEdit
|
|
||||||
|
|
||||||
* If `bb` is passed a file, open it in BBEdit
|
|
||||||
|
|
||||||
* If `bbpb` create a new BBEdit document with the contents of the clipboard
|
|
||||||
|
|
||||||
* If `bbd` alias for BBEdit diff tool
|
|
@ -1,21 +0,0 @@
|
|||||||
alias bbpb='pbpaste | bbedit --clean --view-top'
|
|
||||||
|
|
||||||
alias bbd=bbdiff
|
|
||||||
|
|
||||||
#
|
|
||||||
# If the bb command is called without an argument, launch BBEdit
|
|
||||||
# If bb is passed a directory, cd to it and open it in BBEdit
|
|
||||||
# If bb is passed a file, open it in BBEdit
|
|
||||||
#
|
|
||||||
function bb() {
|
|
||||||
if [[ -z "$1" ]]
|
|
||||||
then
|
|
||||||
bbedit --launch
|
|
||||||
else
|
|
||||||
bbedit "$1"
|
|
||||||
if [[ -d "$1" ]]
|
|
||||||
then
|
|
||||||
cd "$1"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
# bgnotify zsh plugin
|
|
||||||
|
|
||||||
cross-platform background notifications for long running commands! Supports OSX and Ubuntu linux.
|
|
||||||
|
|
||||||
Standalone homepage: [t413/zsh-background-notify](https://github.com/t413/zsh-background-notify)
|
|
||||||
|
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
## How to use!
|
|
||||||
|
|
||||||
Just add bgnotify to your plugins list in your `.zshrc`
|
|
||||||
|
|
||||||
- On OS X you'll need [terminal-notifier](https://github.com/alloy/terminal-notifier)
|
|
||||||
* `brew install terminal-notifier` (or `gem install terminal-notifier`)
|
|
||||||
- On ubuntu you're already all set!
|
|
||||||
- On windows you can use [notifu](https://www.paralint.com/projects/notifu/) or the Cygwin Ports libnotify package
|
|
||||||
|
|
||||||
|
|
||||||
## Screenshots
|
|
||||||
|
|
||||||
**Linux**
|
|
||||||
|
|
||||||
![screenshot from 2014-11-07 15 58 36](https://cloud.githubusercontent.com/assets/326829/4962187/256b465c-66da-11e4-927d-cc2fc105e31f.png)
|
|
||||||
|
|
||||||
**OS X**
|
|
||||||
|
|
||||||
![screenshot 2014-11-08 14 15 12](https://cloud.githubusercontent.com/assets/326829/4965780/19fa3eac-6795-11e4-8ed6-0355711123a9.png)
|
|
||||||
|
|
||||||
**Windows**
|
|
||||||
|
|
||||||
![screenshot from 2014-11-07 15 55 00](https://cloud.githubusercontent.com/assets/326829/4962159/a2625ca0-66d9-11e4-9e91-c5834913190e.png)
|
|
||||||
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
One can configure a few things:
|
|
||||||
|
|
||||||
- `bgnotify_threshold` sets the notification threshold time (default 6 seconds)
|
|
||||||
- `function bgnotify_formatted` lets you change the notification
|
|
||||||
|
|
||||||
Use these by adding a function definition before the your call to source. Example:
|
|
||||||
|
|
||||||
~~~ sh
|
|
||||||
bgnotify_threshold=4 ## set your own notification threshold
|
|
||||||
|
|
||||||
function bgnotify_formatted {
|
|
||||||
## $1=exit_status, $2=command, $3=elapsed_time
|
|
||||||
[ $1 -eq 0 ] && title="Holy Smokes Batman!" || title="Holy Graf Zeppelin!"
|
|
||||||
bgnotify "$title -- after $3 s" "$2";
|
|
||||||
}
|
|
||||||
|
|
||||||
plugins=(git bgnotify) ## add to plugins list
|
|
||||||
source $ZSH/oh-my-zsh.sh ## existing source call
|
|
||||||
~~~
|
|
@ -1,77 +0,0 @@
|
|||||||
#!/usr/bin/env zsh
|
|
||||||
|
|
||||||
## setup ##
|
|
||||||
|
|
||||||
[[ -o interactive ]] || return #interactive only!
|
|
||||||
zmodload zsh/datetime || { print "can't load zsh/datetime"; return } # faster than date()
|
|
||||||
autoload -Uz add-zsh-hook || { print "can't add zsh hook!"; return }
|
|
||||||
|
|
||||||
(( ${+bgnotify_threshold} )) || bgnotify_threshold=5 #default 10 seconds
|
|
||||||
|
|
||||||
|
|
||||||
## definitions ##
|
|
||||||
|
|
||||||
if ! (type bgnotify_formatted | grep -q 'function'); then ## allow custom function override
|
|
||||||
function bgnotify_formatted { ## args: (exit_status, command, elapsed_seconds)
|
|
||||||
elapsed="$(( $3 % 60 ))s"
|
|
||||||
(( $3 >= 60 )) && elapsed="$((( $3 % 3600) / 60 ))m $elapsed"
|
|
||||||
(( $3 >= 3600 )) && elapsed="$(( $3 / 3600 ))h $elapsed"
|
|
||||||
[ $1 -eq 0 ] && bgnotify "#win (took $elapsed)" "$2" || bgnotify "#fail (took $elapsed)" "$2"
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
|
|
||||||
currentWindowId () {
|
|
||||||
if hash osascript 2>/dev/null; then #osx
|
|
||||||
osascript -e 'tell application (path to frontmost application as text) to id of front window' 2&> /dev/null || echo "0"
|
|
||||||
elif (hash notify-send 2>/dev/null || hash kdialog 2>/dev/null); then #ubuntu!
|
|
||||||
xprop -root 2> /dev/null | awk '/NET_ACTIVE_WINDOW/{print $5;exit} END{exit !$5}' || echo "0"
|
|
||||||
else
|
|
||||||
echo $EPOCHSECONDS #fallback for windows
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
bgnotify () { ## args: (title, subtitle)
|
|
||||||
if hash terminal-notifier 2>/dev/null; then #osx
|
|
||||||
[[ "$TERM_PROGRAM" == 'iTerm.app' ]] && term_id='com.googlecode.iterm2';
|
|
||||||
[[ "$TERM_PROGRAM" == 'Apple_Terminal' ]] && term_id='com.apple.terminal';
|
|
||||||
## now call terminal-notifier, (hopefully with $term_id!)
|
|
||||||
[ -z "$term_id" ] && terminal-notifier -message "$2" -title "$1" >/dev/null ||
|
|
||||||
terminal-notifier -message "$2" -title "$1" -activate "$term_id" -sender "$term_id" >/dev/null
|
|
||||||
elif hash growlnotify 2>/dev/null; then #osx growl
|
|
||||||
growlnotify -m "$1" "$2"
|
|
||||||
elif hash notify-send 2>/dev/null; then #ubuntu gnome!
|
|
||||||
notify-send "$1" "$2"
|
|
||||||
elif hash kdialog 2>/dev/null; then #ubuntu kde!
|
|
||||||
kdialog --title "$1" --passivepopup "$2" 5
|
|
||||||
elif hash notifu 2>/dev/null; then #cygwyn support!
|
|
||||||
notifu /m "$2" /p "$1"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
## Zsh hooks ##
|
|
||||||
|
|
||||||
bgnotify_begin() {
|
|
||||||
bgnotify_timestamp=$EPOCHSECONDS
|
|
||||||
bgnotify_lastcmd="$1"
|
|
||||||
bgnotify_windowid=$(currentWindowId)
|
|
||||||
}
|
|
||||||
|
|
||||||
bgnotify_end() {
|
|
||||||
didexit=$?
|
|
||||||
elapsed=$(( EPOCHSECONDS - bgnotify_timestamp ))
|
|
||||||
past_threshold=$(( elapsed >= bgnotify_threshold ))
|
|
||||||
if (( bgnotify_timestamp > 0 )) && (( past_threshold )); then
|
|
||||||
if [ $(currentWindowId) != "$bgnotify_windowid" ]; then
|
|
||||||
print -n "\a"
|
|
||||||
bgnotify_formatted "$didexit" "$bgnotify_lastcmd" "$elapsed"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
bgnotify_timestamp=0 #reset it to 0!
|
|
||||||
}
|
|
||||||
|
|
||||||
## only enable if a local (non-ssh) connection
|
|
||||||
if [ -z "$SSH_CLIENT" ] && [ -z "$SSH_TTY" ]; then
|
|
||||||
add-zsh-hook preexec bgnotify_begin
|
|
||||||
add-zsh-hook precmd bgnotify_end
|
|
||||||
fi
|
|
@ -1,6 +0,0 @@
|
|||||||
## Boot2docker autocomplete plugin
|
|
||||||
|
|
||||||
- Adds autocomplete options for all boot2docker commands.
|
|
||||||
|
|
||||||
|
|
||||||
Maintainer : Manfred Touron ([@moul](https://github.com/moul))
|
|
@ -1,73 +0,0 @@
|
|||||||
#compdef boot2docker
|
|
||||||
|
|
||||||
# Boot2docker autocompletion for oh-my-zsh
|
|
||||||
# Requires: Boot2docker installed
|
|
||||||
# Author: Manfred Touron (@moul)
|
|
||||||
|
|
||||||
local -a _1st_arguments
|
|
||||||
_1st_arguments=(
|
|
||||||
"init":"Create a new Boot2Docker VM."
|
|
||||||
"up":"Start VM from any states."
|
|
||||||
"start":"Start VM from any states."
|
|
||||||
"boot":"Start VM from any states."
|
|
||||||
"ssh":"[ssh-command] Login to VM via SSH."
|
|
||||||
"save":"Suspend VM and save state to disk."
|
|
||||||
"suspend":"Suspend VM and save state to disk."
|
|
||||||
"down":"Gracefully shutdown the VM."
|
|
||||||
"stop":"Gracefully shutdown the VM."
|
|
||||||
"halt":"Gracefully shutdown the VM."
|
|
||||||
"restart":"Gracefully reboot the VM."
|
|
||||||
"poweroff":"Forcefully power off the VM (may corrupt disk image)."
|
|
||||||
"reset":"Forcefully power cycle the VM (may corrupt disk image)."
|
|
||||||
"delete":"Delete Boot2Docker VM and its disk image."
|
|
||||||
"destroy":"Delete Boot2Docker VM and its disk image."
|
|
||||||
"config":"Show selected profile file settings."
|
|
||||||
"cfg":"Show selected profile file settings."
|
|
||||||
"info":"Display detailed information of VM."
|
|
||||||
"ip":"Display the IP address of the VM's Host-only network."
|
|
||||||
"socket":"Display the DOCKER_HOST socket to connect to."
|
|
||||||
"shellinit":"Display the shell command to set up the Docker client."
|
|
||||||
"status":"Display current state of VM."
|
|
||||||
"download":"Download Boot2Docker ISO image."
|
|
||||||
"upgrade":"Upgrade the Boot2Docker ISO image (restart if running)."
|
|
||||||
"version":"Display version information."
|
|
||||||
)
|
|
||||||
|
|
||||||
_arguments \
|
|
||||||
'(--basevmdk)--basevmdk[Path to VMDK to use as base for persistent partition]' \
|
|
||||||
'(--cpus)'{-c,--cpus}'[number of CPUs for boot2docker.]' \
|
|
||||||
'(--clobber)--clobber[overwrite Docker client binary on boot2docker upgrade]' \
|
|
||||||
'(--dhcp)--dhcp[enable VirtualBox host-only network DHCP.]' \
|
|
||||||
'(--dhcpip)--dhcpip[VirtualBox host-only network DHCP server address.]' \
|
|
||||||
'(-s --disksize)'{-s,--disksize}'[boot2docker disk image size (in MB).]' \
|
|
||||||
'(--dockerport)--dockerport[host Docker port (forward to port 2376 in VM). (deprecated - use with care)]' \
|
|
||||||
'(--driver)--driver[hypervisor driver.]' \
|
|
||||||
'(--force-upgrade-download)--force-upgrade-download[always download on boot2docker upgrade, never skip.]' \
|
|
||||||
'(--hostip)--hostip[VirtualBox host-only network IP address.]' \
|
|
||||||
'(--iso)--iso[path to boot2docker ISO image.]' \
|
|
||||||
'(--iso-url)--iso-url[/api.github.com/repos/boot2docker/boot2docker/releases": source URL to provision the boot2docker ISO image.]' \
|
|
||||||
'(--lowerip)--lowerip[VirtualBox host-only network DHCP lower bound.]' \
|
|
||||||
'(--memory)'{-m,--memory}'[virtual machine memory size (in MB).]' \
|
|
||||||
'(--netmask)--netmask[VirtualBox host-only network mask.]' \
|
|
||||||
'(--no-dummy)--no-dummy[Example parameter for the dummy driver.]' \
|
|
||||||
'(--retries)--retries[number of port knocking retries during 'start']' \
|
|
||||||
'(--serial)--serial[try serial console to get IP address (experimental)]' \
|
|
||||||
'(--serialfile)--serialfile[path to the serial socket/pipe.]' \
|
|
||||||
'(--ssh)--ssh[path to SSH client utility.]' \
|
|
||||||
'(--ssh-keygen)--ssh-keygen[path to ssh-keygen utility.]' \
|
|
||||||
'(--sshkey)--sshkey[path to SSH key to use.]' \
|
|
||||||
'(--sshport)--sshport[host SSH port (forward to port 22 in VM).]' \
|
|
||||||
'(--upperip)--upperip[VirtualBox host-only network DHCP upper bound.]' \
|
|
||||||
'(--vbm)--vbm[path to VirtualBox management utility.]' \
|
|
||||||
'(--vbox-share)--vbox-share[(defaults to "/Users=Users" if no shares are specified; use "disable" to explicitly prevent any shares from being created) List of directories to share during "up|start|boot" via VirtualBox Guest Additions, with optional labels]' \
|
|
||||||
'(--verbose)'{-v,--verbose}'[display verbose command invocations.]' \
|
|
||||||
'(--vm)--vm[virtual machine name.]' \
|
|
||||||
'(--waittime)--waittime[Time in milliseconds to wait between port knocking retries during 'start']' \
|
|
||||||
'*:: :->subcmds' && return 0
|
|
||||||
|
|
||||||
#_arguments '*:: :->command'
|
|
||||||
|
|
||||||
if (( CURRENT == 1 )); then
|
|
||||||
_describe -t commands "boot2docker command" _1st_arguments
|
|
||||||
return
|
|
||||||
fi
|
|
@ -1,18 +0,0 @@
|
|||||||
# Bower plugin
|
|
||||||
|
|
||||||
This plugin adds completion for [Bower](https://bower.io/) and a few useful aliases for common Bower commands.
|
|
||||||
|
|
||||||
To use it, add `bower` to the plugins array in your zshrc file:
|
|
||||||
|
|
||||||
```
|
|
||||||
plugins=(... bower)
|
|
||||||
```
|
|
||||||
|
|
||||||
## Aliases
|
|
||||||
|
|
||||||
| Alias | Command | Description |
|
|
||||||
|-------|-----------------|--------------------------------------------------------|
|
|
||||||
| bi | `bower install` | Installs the project dependencies listed in bower.json |
|
|
||||||
| bl | `bower list` | List local packages and possible updates |
|
|
||||||
| bs | `bower search` | Finds all packages or a specific package. |
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
# Credits to npm's awesome completion utility.
|
|
||||||
#
|
|
||||||
# Bower completion script, based on npm completion script.
|
|
||||||
|
|
||||||
###-begin-bower-completion-###
|
|
||||||
#
|
|
||||||
# Installation: bower completion >> ~/.bashrc (or ~/.zshrc)
|
|
||||||
# Or, maybe: bower completion > /usr/local/etc/bash_completion.d/bower
|
|
||||||
#
|
|
||||||
|
|
||||||
COMP_WORDBREAKS=${COMP_WORDBREAKS/=/}
|
|
||||||
COMP_WORDBREAKS=${COMP_WORDBREAKS/@/}
|
|
||||||
export COMP_WORDBREAKS
|
|
||||||
|
|
||||||
if type complete &>/dev/null; then
|
|
||||||
_bower_completion () {
|
|
||||||
local si="$IFS"
|
|
||||||
IFS=$'\n' COMPREPLY=($(COMP_CWORD="$COMP_CWORD" \
|
|
||||||
COMP_LINE="$COMP_LINE" \
|
|
||||||
COMP_POINT="$COMP_POINT" \
|
|
||||||
bower completion -- "${COMP_WORDS[@]}" \
|
|
||||||
2>/dev/null)) || return $?
|
|
||||||
IFS="$si"
|
|
||||||
}
|
|
||||||
complete -F _bower_completion bower
|
|
||||||
elif type compdef &>/dev/null; then
|
|
||||||
_bower_completion() {
|
|
||||||
si=$IFS
|
|
||||||
compadd -- $(COMP_CWORD=$((CURRENT-1)) \
|
|
||||||
COMP_LINE=$BUFFER \
|
|
||||||
COMP_POINT=0 \
|
|
||||||
bower completion -- "${words[@]}" \
|
|
||||||
2>/dev/null)
|
|
||||||
IFS=$si
|
|
||||||
}
|
|
||||||
compdef _bower_completion bower
|
|
||||||
elif type compctl &>/dev/null; then
|
|
||||||
_bower_completion () {
|
|
||||||
local cword line point words si
|
|
||||||
read -Ac words
|
|
||||||
read -cn cword
|
|
||||||
let cword-=1
|
|
||||||
read -l line
|
|
||||||
read -ln point
|
|
||||||
si="$IFS"
|
|
||||||
IFS=$'\n' reply=($(COMP_CWORD="$cword" \
|
|
||||||
COMP_LINE="$line" \
|
|
||||||
COMP_POINT="$point" \
|
|
||||||
bower completion -- "${words[@]}" \
|
|
||||||
2>/dev/null)) || return $?
|
|
||||||
IFS="$si"
|
|
||||||
}
|
|
||||||
compctl -K _bower_completion bower
|
|
||||||
fi
|
|
||||||
###-end-bower-completion-###
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
|||||||
alias bi="bower install"
|
|
||||||
alias bl="bower list"
|
|
||||||
alias bs="bower search"
|
|
||||||
|
|
||||||
_bower_installed_packages () {
|
|
||||||
bower_package_list=$(bower ls --no-color 2>/dev/null| awk 'NR>3{print p}{p=$0}'| cut -d ' ' -f 2|sed 's/#.*//')
|
|
||||||
}
|
|
||||||
_bower ()
|
|
||||||
{
|
|
||||||
local -a _1st_arguments _no_color _dopts _save_dev _force_lastest _production
|
|
||||||
local expl
|
|
||||||
typeset -A opt_args
|
|
||||||
|
|
||||||
_no_color=('--no-color[Do not print colors (available in all commands)]')
|
|
||||||
|
|
||||||
_dopts=(
|
|
||||||
'(--save)--save[Save installed packages into the project"s bower.json dependencies]'
|
|
||||||
'(--force)--force[Force fetching remote resources even if a local copy exists on disk]'
|
|
||||||
)
|
|
||||||
|
|
||||||
_save_dev=('(--save-dev)--save-dev[Save installed packages into the project"s bower.json devDependencies]')
|
|
||||||
|
|
||||||
_force_lastest=('(--force-latest)--force-latest[Force latest version on conflict]')
|
|
||||||
|
|
||||||
_production=('(--production)--production[Do not install project devDependencies]')
|
|
||||||
|
|
||||||
_1st_arguments=(
|
|
||||||
'cache-clean:Clean the Bower cache, or the specified package caches' \
|
|
||||||
'help:Display help information about Bower' \
|
|
||||||
'info:Version info and description of a particular package' \
|
|
||||||
'init:Interactively create a bower.json file' \
|
|
||||||
'install:Install a package locally' \
|
|
||||||
'link:Symlink a package folder' \
|
|
||||||
'lookup:Look up a package URL by name' \
|
|
||||||
'register:Register a package' \
|
|
||||||
'search:Search for a package by name' \
|
|
||||||
'uninstall:Remove a package' \
|
|
||||||
'update:Update a package' \
|
|
||||||
{ls,list}:'[List all installed packages]'
|
|
||||||
)
|
|
||||||
_arguments \
|
|
||||||
$_no_color \
|
|
||||||
'*:: :->subcmds' && return 0
|
|
||||||
|
|
||||||
if (( CURRENT == 1 )); then
|
|
||||||
_describe -t commands "bower subcommand" _1st_arguments
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$words[1]" in
|
|
||||||
install)
|
|
||||||
_arguments \
|
|
||||||
$_dopts \
|
|
||||||
$_save_dev \
|
|
||||||
$_force_lastest \
|
|
||||||
$_no_color \
|
|
||||||
$_production
|
|
||||||
;;
|
|
||||||
update)
|
|
||||||
_arguments \
|
|
||||||
$_dopts \
|
|
||||||
$_no_color \
|
|
||||||
$_force_lastest
|
|
||||||
_bower_installed_packages
|
|
||||||
compadd "$@" $(echo $bower_package_list)
|
|
||||||
;;
|
|
||||||
uninstall)
|
|
||||||
_arguments \
|
|
||||||
$_no_color \
|
|
||||||
$_dopts
|
|
||||||
_bower_installed_packages
|
|
||||||
compadd "$@" $(echo $bower_package_list)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
_arguments \
|
|
||||||
$_no_color \
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
compdef _bower bower
|
|
@ -1,33 +0,0 @@
|
|||||||
# Branch
|
|
||||||
|
|
||||||
Displays the current Git or Mercurial branch fast.
|
|
||||||
|
|
||||||
## Speed test
|
|
||||||
|
|
||||||
### Mercurial
|
|
||||||
|
|
||||||
```shell
|
|
||||||
$ time hg branch
|
|
||||||
0.11s user 0.14s system 70% cpu 0.355 total
|
|
||||||
```
|
|
||||||
|
|
||||||
### Branch plugin
|
|
||||||
|
|
||||||
```shell
|
|
||||||
$ time zsh /tmp/branch_prompt_info_test.zsh
|
|
||||||
0.00s user 0.01s system 78% cpu 0.014 total
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
Edit your theme file (eg.: `~/.oh-my-zsh/theme/robbyrussell.zsh-theme`)
|
|
||||||
adding `$(branch_prompt_info)` in your prompt like this:
|
|
||||||
|
|
||||||
```diff
|
|
||||||
- PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
|
|
||||||
+ PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)$(branch_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
|
|
||||||
```
|
|
||||||
|
|
||||||
## Maintainer
|
|
||||||
|
|
||||||
Victor Torres (<vpaivatorres@gmail.com>)
|
|
@ -1,31 +0,0 @@
|
|||||||
# Branch: displays the current Git or Mercurial branch fast.
|
|
||||||
# Victor Torres <vpaivatorres@gmail.com>
|
|
||||||
# Oct 2, 2015
|
|
||||||
|
|
||||||
function branch_prompt_info() {
|
|
||||||
# Defines path as current directory
|
|
||||||
local current_dir=$PWD
|
|
||||||
# While current path is not root path
|
|
||||||
while [[ $current_dir != '/' ]]
|
|
||||||
do
|
|
||||||
# Git repository
|
|
||||||
if [[ -d "${current_dir}/.git" ]]
|
|
||||||
then
|
|
||||||
echo '±' ${"$(<"$current_dir/.git/HEAD")"##*/}
|
|
||||||
return;
|
|
||||||
fi
|
|
||||||
# Mercurial repository
|
|
||||||
if [[ -d "${current_dir}/.hg" ]]
|
|
||||||
then
|
|
||||||
if [[ -f "$current_dir/.hg/branch" ]]
|
|
||||||
then
|
|
||||||
echo '☿' $(<"$current_dir/.hg/branch")
|
|
||||||
else
|
|
||||||
echo '☿ default'
|
|
||||||
fi
|
|
||||||
return;
|
|
||||||
fi
|
|
||||||
# Defines path as parent directory and keeps looking for :)
|
|
||||||
current_dir="${current_dir:h}"
|
|
||||||
done
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
# brew plugin
|
|
||||||
|
|
||||||
The plugin adds several aliases for common [brew](https://brew.sh) commands.
|
|
||||||
|
|
||||||
To use it, add `brew` to the plugins array of your zshrc file:
|
|
||||||
```
|
|
||||||
plugins=(... brew)
|
|
||||||
```
|
|
||||||
|
|
||||||
## Aliases
|
|
||||||
|
|
||||||
| Alias | Command | Description |
|
|
||||||
|--------|----------------------|---------------|
|
|
||||||
| brewp | `brew pin` | Pin a specified formulae, preventing them from being upgraded when issuing the brew upgrade <formulae> command. |
|
|
||||||
| brews | `brew list -1` | List installed formulae, one entry per line, or the installed files for a given formulae. |
|
|
||||||
| brewsp | `brew list --pinned` | Show the versions of pinned formulae, or only the specified (pinned) formulae if formulae are given. |
|
|
||||||
| bubo | `brew update && brew outdated` | Fetch the newest version of Homebrew and all formulae, then list outdated formulae. |
|
|
||||||
| bubc | `brew upgrade && brew cleanup` | Upgrade outdated, unpinned brews (with existing install options), then removes stale lock files and outdated downloads for formulae and casks, and removes old versions of installed formulae. |
|
|
||||||
| bubu | `bubo && bubc` | Updates Homebrew, lists outdated formulae, upgrades oudated and unpinned formulae, and removes stale and outdated downloads and versions. |
|
|
||||||
| bcubo | `brew update && brew cask outdated` | Fetch the newest version of Homebrew and all formulae, then list outdated casks. |
|
|
||||||
| bcubc | `brew cask reinstall $(brew cask outdated) && brew cleanup` | Updates outdated casks, then runs cleanup. |
|
|
@ -1,24 +0,0 @@
|
|||||||
alias brewp='brew pin'
|
|
||||||
alias brews='brew list -1'
|
|
||||||
alias brewsp='brew list --pinned'
|
|
||||||
alias bubo='brew update && brew outdated'
|
|
||||||
alias bubc='brew upgrade && brew cleanup'
|
|
||||||
alias bubu='bubo && bubc'
|
|
||||||
alias bcubo='brew update && brew cask outdated'
|
|
||||||
alias bcubc='brew cask reinstall $(brew cask outdated) && brew cleanup'
|
|
||||||
|
|
||||||
if command mkdir "$ZSH_CACHE_DIR/.brew-completion-message" 2>/dev/null; then
|
|
||||||
print -P '%F{yellow}'Oh My Zsh brew plugin:
|
|
||||||
cat <<-'EOF'
|
|
||||||
|
|
||||||
With the advent of their 1.0 release, Homebrew has decided to bundle
|
|
||||||
the zsh completion as part of the brew installation, so we no longer
|
|
||||||
ship it with the brew plugin; now it only has brew aliases.
|
|
||||||
|
|
||||||
If you find that brew completion no longer works, make sure you have
|
|
||||||
your Homebrew installation fully up to date.
|
|
||||||
|
|
||||||
You will only see this message once.
|
|
||||||
EOF
|
|
||||||
print -P '%f'
|
|
||||||
fi
|
|
@ -1,52 +0,0 @@
|
|||||||
# Bundler
|
|
||||||
|
|
||||||
- adds completion for basic bundler commands
|
|
||||||
- adds short aliases for common bundler commands
|
|
||||||
- `be` aliased to `bundle exec`.
|
|
||||||
It also supports aliases (if `rs` is `rails server`, `be rs` will bundle-exec `rails server`).
|
|
||||||
- `bl` aliased to `bundle list`
|
|
||||||
- `bp` aliased to `bundle package`
|
|
||||||
- `bo` aliased to `bundle open`
|
|
||||||
- `bout` aliased to `bundle outdated`
|
|
||||||
- `bu` aliased to `bundle update`
|
|
||||||
- `bi` aliased to `bundle install --jobs=<cpu core count>` (only for bundler `>= 1.4.0`)
|
|
||||||
- adds a wrapper for common gems:
|
|
||||||
- looks for a binstub under `./bin/` and executes it (if present)
|
|
||||||
- calls `bundle exec <gem executable>` otherwise
|
|
||||||
|
|
||||||
Common gems wrapped by default (by name of the executable):
|
|
||||||
`annotate`, `cap`, `capify`, `cucumber`, `foodcritic`, `guard`, `hanami`, `irb`, `jekyll`, `kitchen`, `knife`, `middleman`, `nanoc`, `pry`, `puma`, `rackup`, `rainbows`, `rake`, `rspec`, `rubocop`, `shotgun`, `sidekiq`, `spec`, `spork`, `spring`, `strainer`, `tailor`, `taps`, `thin`, `thor`, `unicorn` and `unicorn_rails`.
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
Please use the exact name of the executable and not the gem name.
|
|
||||||
|
|
||||||
### Add additional gems to be wrapped
|
|
||||||
|
|
||||||
Add this before the plugin-list in your `.zshrc`:
|
|
||||||
```sh
|
|
||||||
BUNDLED_COMMANDS=(rubocop)
|
|
||||||
plugins=(... bundler ...)
|
|
||||||
```
|
|
||||||
This will add the wrapper for the `rubocop` gem (i.e. the executable).
|
|
||||||
|
|
||||||
|
|
||||||
### Exclude gems from being wrapped
|
|
||||||
|
|
||||||
Add this before the plugin-list in your `.zshrc`:
|
|
||||||
```sh
|
|
||||||
UNBUNDLED_COMMANDS=(foreman spin)
|
|
||||||
plugins=(... bundler ...)
|
|
||||||
```
|
|
||||||
This will exclude the `foreman` and `spin` gems (i.e. their executable) from being wrapped.
|
|
||||||
|
|
||||||
## Excluded gems
|
|
||||||
|
|
||||||
These gems should not be called with `bundle exec`. Please see [issue #2923](https://github.com/ohmyzsh/ohmyzsh/pull/2923) on GitHub for clarification.
|
|
||||||
|
|
||||||
`berks`
|
|
||||||
`foreman`
|
|
||||||
`mailcatcher`
|
|
||||||
`rails`
|
|
||||||
`ruby`
|
|
||||||
`spin`
|
|
@ -1,104 +0,0 @@
|
|||||||
#compdef bundle
|
|
||||||
|
|
||||||
local curcontext="$curcontext" state line _gems _opts ret=1
|
|
||||||
|
|
||||||
_arguments -C -A "-v" -A "--version" \
|
|
||||||
'(- 1 *)'{-v,--version}'[display version information]' \
|
|
||||||
'1: :->cmds' \
|
|
||||||
'*:: :->args' && ret=0
|
|
||||||
|
|
||||||
case $state in
|
|
||||||
cmds)
|
|
||||||
_values "bundle command" \
|
|
||||||
"install[Install the gems specified by the Gemfile or Gemfile.lock]" \
|
|
||||||
"update[Update dependencies to their latest versions]" \
|
|
||||||
"package[Package the .gem files required by your application]" \
|
|
||||||
"exec[Execute a script in the context of the current bundle]" \
|
|
||||||
"config[Specify and read configuration options for bundler]" \
|
|
||||||
"check[Determine whether the requirements for your application are installed]" \
|
|
||||||
"list[Show all of the gems in the current bundle]" \
|
|
||||||
"show[Show the source location of a particular gem in the bundle]" \
|
|
||||||
"outdated[Show all of the outdated gems in the current bundle]" \
|
|
||||||
"console[Start an IRB session in the context of the current bundle]" \
|
|
||||||
"open[Open an installed gem in the editor]" \
|
|
||||||
"viz[Generate a visual representation of your dependencies]" \
|
|
||||||
"init[Generate a simple Gemfile, placed in the current directory]" \
|
|
||||||
"gem[Create a simple gem, suitable for development with bundler]" \
|
|
||||||
"platform[Displays platform compatibility information]" \
|
|
||||||
"clean[Cleans up unused gems in your bundler directory]" \
|
|
||||||
"help[Describe available tasks or one specific task]"
|
|
||||||
ret=0
|
|
||||||
;;
|
|
||||||
args)
|
|
||||||
case $line[1] in
|
|
||||||
help)
|
|
||||||
_values 'commands' \
|
|
||||||
'install' \
|
|
||||||
'update' \
|
|
||||||
'package' \
|
|
||||||
'exec' \
|
|
||||||
'config' \
|
|
||||||
'check' \
|
|
||||||
'list' \
|
|
||||||
'show' \
|
|
||||||
'outdated' \
|
|
||||||
'console' \
|
|
||||||
'open' \
|
|
||||||
'viz' \
|
|
||||||
'init' \
|
|
||||||
'gem' \
|
|
||||||
'platform' \
|
|
||||||
'help' && ret=0
|
|
||||||
;;
|
|
||||||
install)
|
|
||||||
_arguments \
|
|
||||||
'(--no-color)--no-color[disable colorization in output]' \
|
|
||||||
'(--local)--local[do not attempt to connect to rubygems.org]' \
|
|
||||||
'(--quiet)--quiet[only output warnings and errors]' \
|
|
||||||
'(--gemfile)--gemfile=-[use the specified gemfile instead of Gemfile]:gemfile' \
|
|
||||||
'(--system)--system[install to the system location]' \
|
|
||||||
'(--deployment)--deployment[install using defaults tuned for deployment environments]' \
|
|
||||||
'(--frozen)--frozen[do not allow the Gemfile.lock to be updated after this install]' \
|
|
||||||
'(--path)--path=-[specify a different path than the system default]:path:_files' \
|
|
||||||
'(--binstubs)--binstubs=-[generate bin stubs for bundled gems to ./bin]:directory:_files' \
|
|
||||||
'(--without)--without=-[exclude gems that are part of the specified named group]:groups'
|
|
||||||
ret=0
|
|
||||||
;;
|
|
||||||
exec)
|
|
||||||
_normal && ret=0
|
|
||||||
;;
|
|
||||||
clean)
|
|
||||||
_arguments \
|
|
||||||
'(--force)--force[forces clean even if --path is not set]' \
|
|
||||||
'(--dry-run)--dry-run[only print out changes, do not actually clean gems]' \
|
|
||||||
'(--no-color)--no-color[Disable colorization in output]' \
|
|
||||||
'(--verbose)--verbose[Enable verbose output mode]'
|
|
||||||
ret=0
|
|
||||||
;;
|
|
||||||
outdated)
|
|
||||||
_arguments \
|
|
||||||
'(--pre)--pre[Check for newer pre-release gems]' \
|
|
||||||
'(--source)--source[Check against a specific source]' \
|
|
||||||
'(--local)--local[Do not attempt to fetch gems remotely and use the gem cache instead]' \
|
|
||||||
'(--no-color)--no-color[Disable colorization in output]' \
|
|
||||||
'(--verbose)--verbose[Enable verbose output mode]'
|
|
||||||
ret=0
|
|
||||||
;;
|
|
||||||
(open|show)
|
|
||||||
_gems=( $(bundle show 2> /dev/null | sed -e '/^ \*/!d; s/^ \* \([^ ]*\) .*/\1/') )
|
|
||||||
if [[ $_gems != "" ]]; then
|
|
||||||
_values 'gems' $_gems && ret=0
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
_opts=( $(bundle help $line[1] | sed -e '/^ \[-/!d; s/^ \[\(-[^=]*\)=.*/\1/') )
|
|
||||||
_opts+=( $(bundle help $line[1] | sed -e '/^ -/!d; s/^ \(-.\), \[\(-[^=]*\)=.*/\1 \2/') )
|
|
||||||
if [[ $_opts != "" ]]; then
|
|
||||||
_values 'options' $_opts && ret=0
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
return ret
|
|
@ -1,116 +0,0 @@
|
|||||||
alias be="bundle exec"
|
|
||||||
alias bl="bundle list"
|
|
||||||
alias bp="bundle package"
|
|
||||||
alias bo="bundle open"
|
|
||||||
alias bout="bundle outdated"
|
|
||||||
alias bu="bundle update"
|
|
||||||
alias bi="bundle_install"
|
|
||||||
alias bcn="bundle clean"
|
|
||||||
|
|
||||||
bundled_commands=(
|
|
||||||
annotate
|
|
||||||
cap
|
|
||||||
capify
|
|
||||||
cucumber
|
|
||||||
foodcritic
|
|
||||||
guard
|
|
||||||
hanami
|
|
||||||
irb
|
|
||||||
jekyll
|
|
||||||
kitchen
|
|
||||||
knife
|
|
||||||
middleman
|
|
||||||
nanoc
|
|
||||||
pry
|
|
||||||
puma
|
|
||||||
rackup
|
|
||||||
rainbows
|
|
||||||
rake
|
|
||||||
rspec
|
|
||||||
rubocop
|
|
||||||
shotgun
|
|
||||||
sidekiq
|
|
||||||
spec
|
|
||||||
spork
|
|
||||||
spring
|
|
||||||
strainer
|
|
||||||
tailor
|
|
||||||
taps
|
|
||||||
thin
|
|
||||||
thor
|
|
||||||
unicorn
|
|
||||||
unicorn_rails
|
|
||||||
)
|
|
||||||
|
|
||||||
# Remove $UNBUNDLED_COMMANDS from the bundled_commands list
|
|
||||||
for cmd in $UNBUNDLED_COMMANDS; do
|
|
||||||
bundled_commands=(${bundled_commands#$cmd});
|
|
||||||
done
|
|
||||||
|
|
||||||
# Add $BUNDLED_COMMANDS to the bundled_commands list
|
|
||||||
for cmd in $BUNDLED_COMMANDS; do
|
|
||||||
bundled_commands+=($cmd);
|
|
||||||
done
|
|
||||||
|
|
||||||
## Functions
|
|
||||||
|
|
||||||
bundle_install() {
|
|
||||||
if ! _bundler-installed; then
|
|
||||||
echo "Bundler is not installed"
|
|
||||||
elif ! _within-bundled-project; then
|
|
||||||
echo "Can't 'bundle install' outside a bundled project"
|
|
||||||
else
|
|
||||||
local bundler_version=`bundle version | cut -d' ' -f3`
|
|
||||||
if [[ $bundler_version > '1.4.0' || $bundler_version = '1.4.0' ]]; then
|
|
||||||
if [[ "$OSTYPE" = (darwin|freebsd)* ]]
|
|
||||||
then
|
|
||||||
local cores_num="$(sysctl -n hw.ncpu)"
|
|
||||||
else
|
|
||||||
local cores_num="$(nproc)"
|
|
||||||
fi
|
|
||||||
bundle install --jobs=$cores_num $@
|
|
||||||
else
|
|
||||||
bundle install $@
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
_bundler-installed() {
|
|
||||||
which bundle > /dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
_within-bundled-project() {
|
|
||||||
local check_dir="$PWD"
|
|
||||||
while [ "$check_dir" != "/" ]; do
|
|
||||||
[ -f "$check_dir/Gemfile" -o -f "$check_dir/gems.rb" ] && return
|
|
||||||
check_dir="$(dirname $check_dir)"
|
|
||||||
done
|
|
||||||
false
|
|
||||||
}
|
|
||||||
|
|
||||||
_binstubbed() {
|
|
||||||
[ -f "./bin/${1}" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
_run-with-bundler() {
|
|
||||||
if _bundler-installed && _within-bundled-project; then
|
|
||||||
if _binstubbed $1; then
|
|
||||||
./bin/${^^@}
|
|
||||||
else
|
|
||||||
bundle exec $@
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
$@
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
## Main program
|
|
||||||
for cmd in $bundled_commands; do
|
|
||||||
eval "function unbundled_$cmd () { $cmd \$@ }"
|
|
||||||
eval "function bundled_$cmd () { _run-with-bundler $cmd \$@}"
|
|
||||||
alias $cmd=bundled_$cmd
|
|
||||||
|
|
||||||
if which _$cmd > /dev/null 2>&1; then
|
|
||||||
compdef _$cmd bundled_$cmd=$cmd
|
|
||||||
fi
|
|
||||||
done
|
|
@ -1,9 +0,0 @@
|
|||||||
# Cabal
|
|
||||||
|
|
||||||
This plugin provides completion for [Cabal](https://www.haskell.org/cabal/), a build tool for Haskell. It
|
|
||||||
also provides a function `cabal_sandbox_info` that prints whether the current working directory is in a sandbox.
|
|
||||||
|
|
||||||
To use it, add cabal to the plugins array of your zshrc file:
|
|
||||||
```
|
|
||||||
plugins=(... cabal)
|
|
||||||
```
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user