6.3k sao GitHub và vẫn tăng — b-ryan/powerline-shell là dự án Python mà TopGit đang theo dõi trên nền tảng. A beautiful and useful prompt for your shell
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
A beautiful and useful prompt generator for Bash, ZSH, Fish, and tcsh:
Shows some important details about the git/svn/hg/fossil branch (see below)
Changes color if the last command exited with a failure code
If you're too deep into a directory tree, shortens the displayed path with an ellipsis
Shows the current Python virtualenv environment
It's easy to customize and extend. See below for details.
The generated prompts are designed to resemble
powerline, but otherwise this project
has no relation to powerline.
Table of Contentsgenerated with DocToc
Version Control
Setup
Bash
ZSH
Fish
tcsh
Customization
Config File
Adding, Removing and Re-arranging segments
Generic Segments
Segment Separator
Themes
Segment Configuration
Contributing new types of segments
Troubleshooting
Version Control
All of the version control systems supported by powerline shell give you a
quick look into the state of your repo:
The current branch is displayed and changes background color when the
branch is dirty.
When the local branch differs from the remote, the difference in number
of commits is shown along with ⇡ or ⇣ indicating whether a git push
or pull is pending.
If files are modified or in conflict, the situation is summarized with the
following symbols:
✎ -- a file has been modified (but not staged for commit, in git)
✔ -- a file is staged for commit (git) or added for tracking
✼ -- a file has conflicts
? -- a file is untracked
Each of these will have a number next to it if more than one file matches.
The segment can start with a symbol representing the version control system in
use. To show that symbol, the configuration file must have a variable vcs
with an option show_symbol set to true (see
Segment Configuration).
Setup
This script uses ANSI color codes to display colors in a terminal. These are
notoriously non-portable, so may not work for you out of the box, but try
setting your $TERM to xterm-256color.
Patch the font you use for your terminal: see
powerline-fonts
If you struggle too much to get working fonts in your terminal, you can use
"compatible" mode.
If you're using old patched fonts, you have to use the older symbols.
Basically reverse this
commit in
your copy.
Install using pip:
pip install powerline-shell
(You can use the
--user option to
install for just your user, if you'd like. But you may need to fiddle with your
PATH to get this working properly.)
Or, install from the git repository:
git clone https://github.com/b-ryan/powerline-shell
cd powerline-shell
python setup.py install
Setup your shell prompt using the instructions for your shell below.
Bash
Add the following to your .bashrc file:
function _update_ps1() {
PS1=$(powerline-shell $?)
}
if [[ $TERM != linux && ! $PROMPT_COMMAND =~ _update_ps1 ]]; then
PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi
Note: On macOS, you must add this to one of .bash_profile, .bash_login,
or .profile. macOS will execute the files in the aforementioned order and
will stop execution at the first file it finds. For more information on the
order of precedence, see the section INVOCATION in man bash.
ZSH
Add the following to your .zshrc:
function powerline_precmd() {
PS1="$(powerline-shell --shell zsh $?)"
}
function install_powerline_precmd() {
for s in "${precmd_functions[@]}"; do
if [ "$s" = "powerline_precmd" ]; then
return
fi
done
precmd_functions+=(powerline_precmd)
}
if [ "$TERM" != "linux" -a -x "$(command -v powerline-shell)" ]; then
install_powerline_precmd
fi
Fish
Redefine fish_prompt in ~/.config/fish/config.fish:
function fish_prompt
powerline-shell --shell bare $status
end
tcsh
Add the following to your .tcshrc:
alias precmd 'set prompt="`powerline-shell --shell tcsh $?`"'
Customization
Config File
Powerline-shell is customizable through the use of a config file. This file is
expected to be located at ~/.config/powerline-shell/config.json. You can
generate the default config at this location using:
(As an example, my config file is located here:
here)
Adding, Removing and Re-arranging segments
Once you have generated your config file, you can now start adding or removing
"segments" - the building blocks of your shell. The list of segments available
can be seen
here.
You can also create custom segments. Start by copying an existing segment like
this.
Make sure to change any relative imports to absolute imports. Ie. change things
like:
from ..utils import BasicSegment
to
from powerline_shell.utils import BasicSegment
Then change the add_to_powerline function to do what you want. You can then
use this segment in your configuration by putting the path to your segment in
the segments section, like:
"segments": [
"~/path/to/segment.py"
]
Generic Segments
There are two special segments available. stdout accepts an arbitrary command
and the output of the command will be put into your prompt. env takes an
environment variable and the value of the variable will be set in your prompt.
For example, your config could look like this:
By default, a unicode character (resembling the > symbol) is used to separate
each segment. This can be changed by changing the "mode" option in the config
file. The available modes are:
patched - The default.
compatible - Attempts to use characters that may already be available using
your chosen font.
flat - No separator is used between segments, giving each segment a
rectangular appearance (and also saves space).
Themes
The powerline_shell/themes directory stores themes for your prompt, which are
basically color values used by segments. The default.py defines a default
theme which can be used standalone, and every other theme falls back to it if
they miss colors for any segments.
If you want to create a custom theme, start by copying one of the existing
themes, like the
basic.
and update your ~/.config/powerline-shell/config.json, setting the "theme"
to the path of the file. For example your configuration might have:
"theme": "~/mythemes/my-great-theme.py"
You can then modify the color codes to your liking. Theme colors are specified
using Xterm-256 color codes.
A script for testing color combinations is provided at colortest.py. Note
that the colors you see may vary depending on your terminal. When designing a
theme, please test your theme on multiple terminals, especially with default
settings.
Segment Configuration
Some segments support additional configuration. The options for the segment are
nested under the name of the segment itself. For example, all of the options
for the cwd segment are set in ~/.config/powerline-shell/config.json like:
{
"segments": [...],
"cwd": {
options go here
}
"theme": "theme-name",
"vcs": {
options go here
}
}
The options for the cwd segment are:
mode: If plain, then simple text will be used to show the cwd. If
dironly, only the current directory will be shown. Otherwise expands the
cwd into individual directories.
max_depth: Maximum number of directories to show in path.
max_dir_size: Maximum number of characters displayed for each directory in
the path.
full_cwd: If true, the last directory will not be shortened when
max_dir_size is used.
The hostname segment provides one option:
colorize: If true, the hostname will be colorized based on a hash of
itself.
The vcs segment provides one option:
show_symbol: If true, the version control system segment will start with
a symbol representing the specific version control system in use in the
current directory.
The options for the battery segment are:
always_show_percentage: If true, show percentage when fully charged on AC.
low_threshold: Threshold percentage for low-battery indicator color.
The options for the time segment are:
format: Format string as used by strftime function, e.g. %H:%M.
Contributing new types of segments
The powerline_shell/segments directory contains python scripts which are
injected as is into a single file powerline_shell_base.py. Each segment
script defines a function that inserts one or more segments into the prompt. If
you want to add a new segment, simply create a new file in the segments
directory.
Make sure that your script does not introduce new globals which might conflict
with other scripts. Your script should fail silently and run quickly in any
scenario.
Make sure you introduce new default colors in themes/default.py for every new
segment you create. Test your segment with this theme first.
You should add tests for your segment as best you are able. Unit and
integration tests are both welcome. Run your tests by running the test.sh
script. It uses docker to manage dependencies and the environment.
Alternatively, you can run the nosetests command after installing the
requirements in requirements-dev.txt.
Troubleshooting
See the FAQ. If you
continue to have issues, please open an
issue.
b-ryan/powerline-shell có 6.3k sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/b-ryan/powerline-shell. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
b-ryan/powerline-shell có phải mã nguồn mở không?
Có — b-ryan/powerline-shell phát hành theo license MIT, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/b-ryan/powerline-shell.
b-ryan/powerline-shell có website riêng không?
TopGit chưa ghi nhận URL trang chủ cho b-ryan/powerline-shell. Phần README ở tab phía trên thường có link demo, hoặc xem mô tả GitHub của repo.
b-ryan/powerline-shell là gì?
b-ryan/powerline-shell (b-ryan/powerline-shell) là dự án Python trên GitHub. Theo mô tả gốc: A beautiful and useful prompt for your shell
b-ryan/powerline-shell so với các dự án Backend khác thế nào?
b-ryan/powerline-shell được TopGit xếp vào nhóm Backend, với 6.3k sao GitHub và viết bằng Python. Xem trang chủ đề Backend trên TopGit để so sánh với các dự án tương tự theo số sao và mức độ hoạt động.
Cùng nhóm Backend còn repo nào?
b-ryan/powerline-shell thuộc nhóm Backend trên TopGit, cùng 9 topic GitHub. Trang Trending và Topics liệt kê các repo cùng số sao và cùng ngôn ngữ để so sánh.
Đọc thêm về b-ryan/powerline-shell ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/b-ryan/powerline-shell là nguồn chính thức.
Đọc đầy đủ README ở tab phía trên.
Muốn nghe thêm một ý kiến về powerline-shell?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về powerline-shell.