انجمن‌های فارسی اوبونتو

جامعه کاربران => کافه اوبونتو => نویسنده: EnriqueTTE در 04 فروردین 1402، 12:09 ق‌ظ

عنوان: ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: EnriqueTTE در 04 فروردین 1402، 12:09 ق‌ظ
شاید از ظاهر اون نوشته پیش‌فرضی که داخل ترمینال موقع اجرای دستورات می‌بینید خسته شده باشید و بخواید تغییرش بدید. ممکنه مثل من از zsh و fish خوشتون نیاد و باهاشون مشکل داشته باشید(اشتباه نکنید من خیلی از دانیال بهزادی تقلید نمیکنم مثل بعضیا!). صرفا از تجربه‌ای که از استفاده از این دوتا shell داشتم، باهاشون مشکل دارم.

خیلی وقته با چیزی آشنا شدم که باهاش میشه ظاهر پوسته(درست میگم؟) رو تغییر داد. بدون اینکه پوسته رو تغییر بدید به zsh, fish یا هرچیز دیگه!

اسم این برنامه، بسته یا هرچیزی که اسمشو میذارید Starship هستش!
اینجا (https://starship.rs/guide) میتونید راهنمای نصب و تنظیم روی سیستم عامل‌ها و پوسته های مختلف رو ببینید.
اینجا (https://starship.rs/config/) هم میتونید راهنمای شخصی سازی هارو ببینید.

دوتا ویژگی خوبی که داره:
1: هیچ تاثیر یا اختلالی در عملکرد پوسته(bash, zsh, fish) ایجاد نمیکنه.
2: شخصی سازی های زیادی میشه باهاش انجام داد. فقط با نصب و اضافه کردن یک خط به فایل کانفیگ پوسته.

نکته: باید یه فونت ایموجی روی سیستم نصب باشه(من noto-fonts-emoji-apple رو از AUR نصب کردم. با بقیه فونت‌ها کار نمیکنه برای من!).

### نصب
برای آرچ:
pacman -S starship
برای Termux!!:
pkg install starship
متاسفانه برای نصب در اوبونتو، دبیان . سایر توزیع‌ها باید از اسنپ یا اسکریپت نصب استفاده کنید:
curl -sS https://starship.rs/install.sh | sh
حالا که نصب کردیم باید اونو فعال کنیم
بسته به اینکه از چه پوسته‌ای استفاده میکنید، یکی ازین کدهارو در آخر فایل تنظیم پوسته خودتون قرار بدید:

bash(~/.bashrc)
eval "$(starship init bash)"
zsh(~/.zshrc)
eval "$(starship init zsh)"
fish(~/.config/fish/config.fish)
starship init fish | source
برای پوسته‌های دیگه هم میشه استفاده کرد که داخل سایتش نوشته.

### تصاویر
رنگ هایی که می‌بینید ممکنه با وقتی نصب میکنید یکم فرق داشته باشه. به تنظیمات ترمینال بستگی داره.

این حالت پیش‌فرضه. وقتی داخل home هستید، داخل دایرکتوری دیگه هستید و وقتی یک دستور خطا برمی‌گردونه(ارور میده)

(https://forum.ubuntu-ir.org/index.php?action=dlattach;topic=156641.0;attach=55356;image)

این چیزیه که من واسه خودم درست کردم.

(https://forum.ubuntu-ir.org/index.php?action=dlattach;topic=156641.0;attach=55358;image)

بصورت پیش‌فرض از زبان های زیادی(حتی گیت) پشتیبانی میکنه. من واسه خودم فقط پایتون رو تنظیم کردم.

تنظیمات رو در ارسال بعدی میگم.
عنوان: پاسخ : ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: مجتبی باغبان در 04 فروردین 1402، 12:57 ق‌ظ
قشنگ شده
عنوان: پاسخ : ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: EnriqueTTE در 04 فروردین 1402، 01:34 ق‌ظ
برای تنظیم کردن استارشیپ کافیه فایل زیر رو ایجاد کنید(اگر وجود نداره) و چیزایی که دوست دارید رو اونجا قرار بدید.
~/.config/starship.toml
اینجا من قصد ندارم خیلی درباره تنظیم کردنش حرف بزنم، فقط چیزای ساده رو میگم. برای تنظیمات بیشتر به سایتش مراجعه کنید.

اول با prompt شروع کنیم. اینو رو داخل فایل قرار بدید(اگر میخواید از ظاهر پیش‌فرض استفاده کنید، ازین قسمت رد بشید)
format = '''
[┌───────────────────>](bold green)
[│](bold green)$directory
[└─>](bold green) '''

تغییرات رو ذخیره کنید. می‌بینید که ظاهر پوسته عوض شده!
همین الان میتونید رنگ هارو عوض کنید یا شکل رو تغییر بدید. اگر میخواید از کاراکتر های خاص استفاده کنید  این صفحه ویکی‌پدیا (https://en.wikipedia.org/wiki/Box-drawing_character) منبع خوبیه. فقط کافیه کاراکتر موردنظر رو کپی کنید و جای دلخواه قرار بدید.

برای رنگ میتونید ازین رنگ‌ها بصورت مستفیم استفاده کنید:
black, red, green, blue, yellow, purple, cyan, white
برای ظاهر هم میتونید ازینا استفاده کنید:
bold, italic, underline, dimmed, inverted, blink, hidden, strikethrough

مثلا میتونید اینجوری تعیین کنید: (italic purple) و البته با کد هگزادسیمال ( bold fg:#123456)

با قرار دادن این خط میتونید تنظیم کنید که یک خط خالی قبل از هر prompt نمایش داده بشه یا نه
add_newline = false
اگر لپ‌تاپ یا موبایل دارید و میخواید باطری رو داخل prompt ببینید اینهارو اضافه کنید
[battery]
disabled = false
full_symbol = '🔋 '
charging_symbol = '⚡️ '
discharging_symbol = '💀 '

[[battery.display]]
threshold = 70
style = 'bold red'

شکل ایموجی‌ها و ظاهر رو به دلخواه میتونید تغییر بدید. مفدار threshold تعیین‌کننده حداکثر مقداری هست که ماژول باطری فعال میشه(باطری نمایش داده میشه) که من اینجا 70 گذاشتم. یعنی اگر باظری زیر 70 درصد بود نمایش بده.

برای تغییر کاراکتری که وضعیت اجرای دستور قبلی رو نمایش میده، کد زیر رو قرار بدید
[character]
success_symbol = '[➜](bold green) '
error_symbol = '[✗](bold red) '
میتونید برای حالت اجرای درست و اجرای با خطا از کاراکترهای یکسان یا متفاوت به دلخواه استفاده کنید.

برای تغییر نمایش مسیری که داخلش هستید از کد زیر استفاده کنید
[directory]
truncation_length = 3
truncation_symbol = '…/'
truncation_length تعیین کننده عمقی هست که اسم دایرکتوری‌ها نمایش داده میشه. اینجا اگر بیشتر از 3 دایرکتوری از home پایین‌تر رفته باشید، مقدار truncation_symbol رو نمایش میده و بعد 3 دایرکتوری آخر رو.
مثلا اینجوری میشه:
~/.cache/yay/jcal/.git   ==>    …/jcal/.git
میتونید برای نمایش home از کاراکتر دلخواه استفاده کنید، کافیه همینجا متغیر home_symbol رو تنظیم کنید.

اگر میخواید زمان رو نمایش بدید:
[time]
disabled = false
format = '🕙[\[ $time \]]($style) '
time_format = '%T'

اگر میخواید زمان اجرای دستور قبلی رو ببینید:
[cmd_duration]
disabled = false
format = "[took](yellow) [$duration]($style)"
min_time = 250
show_notifications = true
min_time_to_notify = 8_000

اینحا مقدار min_time به میلی ثانیه هست و تعیین کننده حداقل زمانیه که این ماژول فعال میشه.
مقدار min_time_to_notify مقداری هست که بعد از اون براتون یک اعلان میاد که دستوری که داشتید اجرا میکردید تموم شده. باید show_notifications رو true بذارید تا اعلان نمایش داده بشه.

اگر ظاهر اصلی prompt رو تغییر داده باشید متوجه میشید که تغییراتی که اعمال کردید نمایش داده نمیشن!!‌ دلیلش اینه که باید محل قرارگیری ماژول هارو تعیین کنید. برای اینکار کافیه در قسمت format که اول این ارسال گفنم، در جای دلخواه اسم ماژول رو قرار بدید. یادتون نره قبلش علامت $ رو بذارید.
مثلا:
format = '''
[┌───────────────────>](bold green)$cmd_duration
[│](bold green)$directory
[└─>](bold green)$time$battery '''

تمام ماژول هایی که گفتم، متغیر style رو دارن که با تنظیم کردنش میتونید ظاهر اون ماژول رو تغییر بدید. همون bold green
دقت کنید بعضی ماژول‌ها بصورت پیش‌فرض فعال نیستن و باید با قرار دادن disabled = false فعالشون کنید.
تنظیمات خیلی بیشتری میتونید اعمال کنید. خیلی از ماژول‌ها رو فقط کافیه اسمشون رو در جای دلخواه قرار بدید تا کار کنه.
اگر میخواید یک symbol تعریف کنید و همونجا ظاهرش رو تعیین کنید(مثل کاری که برای character انجام دادیم) شکل، نوشته یا علامت هارو باید بین "[]" قرار بدید و استایل موردنظر رو بین "()". در غیر اینصورت شکل رو بصورت یک رشته عادی تعریف کنید و ظاهر رو داخل متغیر style.

اینجا (https://paste.ubuntu.ir/gxibi) میتونید تنظیمات من رو ببینید.
عنوان: پاسخ : ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: سودو در 04 فروردین 1402، 02:31 ق‌ظ
کاربردی‌ بود، بوک‌مارک شد.
عنوان: پاسخ : ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: thmkhtry در 04 فروردین 1402، 08:58 ق‌ظ
خب چرا تا وقتی میشه توی  bashrc همین کارو کرد بسته اضافه نصب کنیم؟
عنوان: پاسخ : ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: 🇬🇧بریتانیای کبیر🇬🇧 در 04 فروردین 1402، 09:04 ق‌ظ
در اینترنت پر از پرامپت های مختلف و قشنگه که راحت میشه کپی پیست کرد در bashrc./~ یا آدم بره خودش یاد بگیره ( چه بهتر) و خودش اینکار را بکنه
عنوان: پاسخ : ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: thmkhtry در 04 فروردین 1402، 09:06 ق‌ظ
در اینترنت پر از ثرامپت های مختلف و قشنگه که راحت میشه کپی پیست کرد در bashrc./~ یا آدم لره خودش یاد بگیره ( چه بهتر) و خودش اینکار را بکنه
دقیقا منم همینو میگم.
عنوان: پاسخ : ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: دانیال بهزادی در 04 فروردین 1402، 08:08 ب‌ظ
خوبه ویکی شه.
عنوان: پاسخ : ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: EnriqueTTE در 05 فروردین 1402، 12:31 ب‌ظ
خب شما میتونید با نصب بسته links یا links2 داخل ترمینال وبگردی کنید، چرا مرورگر نصب میکنید؟
جواب تقریبا یکسانه، راحت تره، انعطاف بیشتری داره، کارای بیشتری میشه باهاش کرد و کلی چیز دیگه.

جواب بعدی اینه سلیقه‌است. کسی هم مجبور نیست نصب کنه. چیز جالبی بود خواستم با بقیه به اشتراک بذارم.

خودم قبلا خیلی با PS1 ور رفتم تا ظاهر بش رو بصورت دلخواهم دربیارم. از وقتی با استارشیپ آشنا شدم خب دیدم خیلی راحت تره، نیازی نیست بجای بش چیز دیگه استفاده کنم. تنظیم کردنش بهتره چون اگر فقط یکم انگلیسی بلد باشی میفهمی چی به چیه. یجا اشتباه کرده باشی با استارشیپ راحت میشه اشتباه رو پیدا کرد. شخصا یبار PS1 رو تغییر دادم و یه اشتباهی کردم، مجبور شدم واسش یه موضوع ایجاد کنم، درست شد اما نفهمیدم کجا رو اشتباه کرده بودم!!

اینهمه هم مدیر فایل داریم nautilus, dophin, thunar, pcmanfm و ... خب وقتی یدونه کار میکنه چرا اینهمه مدیر فایل ساختن؟؟ جواب: سلیقه. من با thunar اوکیم. تو nautilus استفاده کن.
این سلیقه منه، قطعا همه سلیقه یکسانی با من ندارن. دلم میخواست به اشتراک بذارم  :)
عنوان: پاسخ : ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: EnriqueTTE در 05 فروردین 1402، 12:31 ب‌ظ
خوبه ویکی شه.
چگونه و توسط چه کسانی ویکی میشود؟؟
عنوان: پاسخ : ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: 🇬🇧بریتانیای کبیر🇬🇧 در 05 فروردین 1402، 12:35 ب‌ظ
هرکی که عضو انجمنه میتونه ویکی رو درست و تغیر بده و منظور در اینجا خودته £)
عنوان: پاسخ : ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: esmaeelE در 05 فروردین 1402، 03:20 ب‌ظ
خوبه ویکی شه.
چگونه و توسط چه کسانی ویکی میشود؟؟

* چگونه ویکی نویس شویم (https://wiki.ubuntu.ir/wiki/%DA%86%DA%AF%D9%88%D9%86%D9%87_%D9%88%DB%8C%DA%A9%DB%8C_%D9%86%D9%88%DB%8C%D8%B3_%D8%B4%D9%88%DB%8C%D9%85)

* کمک به گسترش اوبونتو (https://wiki.ubuntu.ir/wiki/%DA%A9%D9%85%DA%A9_%D8%A8%D9%87_%DA%AF%D8%B3%D8%AA%D8%B1%D8%B4_%D8%A7%D9%88%D8%A8%D9%88%D9%86%D8%AA%D9%88#.D9.81.D8.B9.D8.A7.D9.84.DB.8C.D8.AA.E2.80.8C.D9.87.D8.A7.DB.8C_.D9.85.D8.AC.D8.A7.D8.B2.DB.8C)

عنوان: پاسخ : ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: محمدرضا حقیری در 05 فروردین 1402، 08:59 ب‌ظ
من سه چهار سالی میشه که شل اصلیم رو گذاشتم zsh و دو سال اخیر هم اجبار بوده (بخاطر این مک لعنت الله) اما دم شما گرم! دنبال چنین چیزی بودم برای بش، چون هنوز که هنوزه کاربر گنو/لینوکس هستم و نمی‌خواستم اونجا zsh داشته باشم دیگه (:
عنوان: پاسخ : ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: EnriqueTTE در 06 فروردین 1402، 08:38 ب‌ظ
هر کدوم از دوستان اگر سوالی داشت جواب میدم.
سوالایی مثل اینکه چجوری فلان شکل رو درست کنم، میخوام این چیزو اضافه کنم و ...

ویکی رو هم خواهم نوشت.
عنوان: پاسخ : ظاهر جدید برای prompt بدون تغییر shell
ارسال شده توسط: thmkhtry در 07 اردیبهشت 1402، 07:22 ب‌ظ
میدونم یکم قدیمی شده ولی من کانفیگ نکرده استفاده اش میکنم چیز خوبیه و جالبه در کل.