مولد سريع جميل ومفيد لـ Bash وZSH وFish وtcsh:
تم تصميم المطالبات التي تم إنشاؤها لتشبه خطوط الكهرباء، ولكن بخلاف ذلك فإن هذا المشروع ليس له علاقة بخط الطاقة.
جدول المحتويات الذي تم إنشاؤه باستخدام DocToc
تمنحك جميع أنظمة التحكم في الإصدار التي يدعمها Powerline Shell نظرة سريعة على حالة الريبو الخاص بك:
⇡
أو ⇣
للإشارة إلى ما إذا كانت عملية دفع أو سحب git معلقة.في حالة تعديل الملفات أو تعارضها يتم تلخيص الموقف بالرموز التالية:
✎
-- تم تعديل الملف (لكن لم يتم إعداده للالتزام، في git)✔
- يتم تنظيم الملف للالتزام (git) أو إضافته للتتبع✼
-- الملف به تعارضات?
- لم يتم تعقب الملفسيكون لكل منها رقم بجوارها في حالة تطابق أكثر من ملف واحد.
يمكن أن يبدأ المقطع برمز يمثل نظام التحكم في الإصدار المستخدم. لإظهار هذا الرمز، يجب أن يحتوي ملف التكوين على متغير vcs
مع تعيين الخيار show_symbol
على true
(راجع تكوين المقطع).
يستخدم هذا البرنامج النصي رموز الألوان ANSI لعرض الألوان في الوحدة الطرفية. من المعروف أنها غير محمولة، لذا قد لا تناسبك خارج الصندوق، ولكن حاول تعيين $TERM الخاص بك على xterm-256color
.
قم بتصحيح الخط الذي تستخدمه لجهازك الطرفي: راجع خطوط باورلاين
التثبيت باستخدام النقطة:
pip install powerline-shell
( يمكنك استخدام خيار --user
للتثبيت للمستخدم الخاص بك فقط، إذا كنت ترغب في ذلك. ولكن قد تحتاج إلى التلاعب بـ PATH
الخاص بك حتى يعمل هذا بشكل صحيح. )
git clone https://github.com/b-ryan/powerline-shell
cd powerline-shell
python setup.py install
أضف ما يلي إلى ملف .bashrc
الخاص بك:
function _update_ps1() {
PS1=$(powerline-shell $?)
}
if [[ $TERM != linux && ! $PROMPT_COMMAND =~ _update_ps1 ]]; then
PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi
ملاحظة: في نظام التشغيل macOS، يجب عليك إضافة هذا إلى أحد .bash_profile
أو .bash_login
أو .profile
. سيقوم macOS بتنفيذ الملفات بالترتيب المذكور أعلاه وسيتوقف عن التنفيذ عند أول ملف يعثر عليه. لمزيد من المعلومات حول ترتيب الأسبقية، راجع قسم الاستدعاء في man bash
.
أضف ما يلي إلى .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_prompt
في ~/.config/fish/config.fish:
function fish_prompt
powerline-shell --shell bare $status
end
أضف ما يلي إلى .tcshrc
الخاص بك:
alias precmd 'set prompt="`powerline-shell --shell tcsh $?`"'
Powerline-Shell قابل للتخصيص من خلال استخدام ملف التكوين. من المتوقع أن يكون هذا الملف موجودًا في ~/.config/powerline-shell/config.json
. يمكنك إنشاء التكوين الافتراضي في هذا الموقع باستخدام:
mkdir -p ~/.config/powerline-shell &&
powerline-shell --generate-config > ~/.config/powerline-shell/config.json
(على سبيل المثال، ملف التكوين الخاص بي موجود هنا: هنا)
بمجرد إنشاء ملف التكوين الخاص بك، يمكنك الآن البدء في إضافة أو إزالة "الأجزاء" - وهي العناصر الأساسية في الصدفة الخاصة بك. يمكن الاطلاع على قائمة القطاعات المتاحة هنا.
يمكنك أيضًا إنشاء شرائح مخصصة. ابدأ بنسخ شريحة موجودة مثل هذا. تأكد من تغيير أي واردات نسبية إلى واردات مطلقة. أي. تغيير أشياء مثل:
from .. utils import BasicSegment
ل
from powerline_shell . utils import BasicSegment
ثم قم بتغيير وظيفة add_to_powerline
لتفعل ما تريد. يمكنك بعد ذلك استخدام هذه الشريحة في التكوين الخاص بك عن طريق وضع المسار إلى شريحتك في قسم الشرائح، مثل:
"segments" : [
" ~/path/to/segment.py "
]
هناك جزأين خاصين متاحين. يقبل stdout
أمرًا عشوائيًا وسيتم وضع مخرجات الأمر في الموجه الخاص بك. يأخذ env
متغير بيئة وسيتم تعيين قيمة المتغير في الموجه الخاص بك. على سبيل المثال، يمكن أن يبدو التكوين الخاص بك كما يلي:
{
"segments": [
"cwd",
"git",
{
"type": "stdout",
"command": ["echo", "hi"],
"fg_color": 22,
"bg_color": 161
},
{
"type": "env",
"var": "DOCKER_MACHINE_NAME"
},
]
}
افتراضيًا، يتم استخدام حرف Unicode (يشبه الرمز >) لفصل كل مقطع. يمكن تغيير ذلك عن طريق تغيير خيار "الوضع" في ملف التكوين. الأوضاع المتاحة هي:
patched
- الافتراضي.compatible
- محاولات استخدام الأحرف التي قد تكون متاحة بالفعل باستخدام الخط الذي اخترته.flat
- لا يتم استخدام أي فاصل بين المقاطع، مما يمنح كل قطعة مظهرًا مستطيلًا (ويوفر أيضًا المساحة). يقوم دليل powerline_shell/themes
بتخزين السمات الخاصة بالموجه الخاص بك، وهي في الأساس قيم ألوان تستخدمها المقاطع. يحدد default.py
سمة افتراضية يمكن استخدامها بشكل مستقل، ويعود إليها كل سمة أخرى إذا فقدت ألوانًا لأي مقاطع.
إذا كنت تريد إنشاء سمة مخصصة، فابدأ بنسخ أحد السمات الموجودة، مثل السمة الأساسية. وقم بتحديث ~/.config/powerline-shell/config.json
، وقم بتعيين "theme"
على مسار الملف. على سبيل المثال، قد يحتوي التكوين الخاص بك على:
"theme": "~/mythemes/my-great-theme.py"
ويمكنك بعد ذلك تعديل رموز الألوان حسب رغبتك. يتم تحديد ألوان السمات باستخدام رموز الألوان Xterm-256.
يتوفر برنامج نصي لاختبار مجموعات الألوان على colortest.py
. لاحظ أن الألوان التي تراها قد تختلف حسب جهازك الطرفي. عند تصميم سمة، يرجى اختبار السمة الخاصة بك على محطات متعددة، خاصة مع الإعدادات الافتراضية.
تدعم بعض القطاعات تكوينًا إضافيًا. يتم تضمين خيارات المقطع تحت اسم المقطع نفسه. على سبيل المثال، يتم تعيين كافة الخيارات الخاصة بمقطع cwd
في ~/.config/powerline-shell/config.json
مثل:
{
"segments": [...],
"cwd": {
options go here
}
"theme": "theme-name",
"vcs": {
options go here
}
}
الخيارات الخاصة بمقطع cwd
هي:
mode
: إذا كان plain
، فسيتم استخدام نص بسيط لإظهار ملف cwd. إذا dironly
، سيتم عرض الدليل الحالي فقط. وبخلاف ذلك، يتم توسيع cwd إلى أدلة فردية.max_depth
: الحد الأقصى لعدد الأدلة التي سيتم عرضها في المسار.max_dir_size
: الحد الأقصى لعدد الأحرف المعروضة لكل دليل في المسار.full_cwd
: إذا كان صحيحًا، فلن يتم تقصير الدليل الأخير عند استخدام max_dir_size
. يوفر مقطع hostname
خيارًا واحدًا:
colorize
: إذا كان صحيحًا، فسيتم تلوين اسم المضيف بناءً على علامة التجزئة الخاصة به. يوفر مقطع vcs
خيارًا واحدًا:
show_symbol
: إذا كان true
، فسيبدأ مقطع نظام التحكم في الإصدار برمز يمثل نظام التحكم في الإصدار المحدد المستخدم في الدليل الحالي. الخيارات الخاصة بقطاع battery
هي:
always_show_percentage
: إذا كان صحيحًا، قم بإظهار النسبة المئوية عند شحنها بالكامل على التيار المتردد.low_threshold
: نسبة العتبة للون مؤشر انخفاض البطارية. خيارات الجزء time
هي:
format
: تنسيق السلسلة كما تستخدمها الدالة strftime، على سبيل المثال %H:%M
. يحتوي دليل powerline_shell/segments
على نصوص python النصية التي يتم إدخالها كما هي في ملف واحد powerline_shell_base.py
. يحدد كل برنامج نصي للقطعة وظيفة تقوم بإدراج مقطع واحد أو أكثر في الموجه. إذا كنت تريد إضافة شريحة جديدة، فما عليك سوى إنشاء ملف جديد في دليل الشرائح.
تأكد من أن البرنامج النصي الخاص بك لا يقدم عوالم عالمية جديدة قد تتعارض مع البرامج النصية الأخرى. يجب أن يفشل البرنامج النصي الخاص بك بصمت وأن يتم تشغيله بسرعة في أي سيناريو.
تأكد من إدخال ألوان افتراضية جديدة في themes/default.py
لكل شريحة جديدة تقوم بإنشائها. اختبر الجزء الخاص بك مع هذا الموضوع أولاً.
يجب عليك إضافة اختبارات لشريحتك بأفضل ما تستطيع. نرحب باختبارات الوحدة والتكامل. قم بإجراء اختباراتك عن طريق تشغيل البرنامج النصي test.sh
يستخدم docker
لإدارة التبعيات والبيئة. وبدلاً من ذلك، يمكنك تشغيل الأمر nosetests
بعد تثبيت المتطلبات في requirements-dev.txt
.
راجع الأسئلة الشائعة. إذا كنت لا تزال تواجه مشاكل، يرجى فتح قضية.