كيفية تثبيت Windows Terminal: نظرة شاملة تطبيقية

تطوير البرمجيات هو عمل حساس. في نهاية اليوم، العمل بأكمله يتعلق بكتابة تعليمات بلغة غريبة لمترجم متطلب ودود للتوقف عن كل شيء عملت عليه. حسنًا، حان الوقت لتثبيت ويندوز تيرمنال واكتشاف طريقة أفضل.

في هذا الدليل النهائي، ستتعلم عن واحدة من أفضل وحدات التحكم للمطورين؛ ويندوز تيرمنال. ستحصل على استعراض كامل لتقريبًا كل ميزات ويندوز تيرمنال. ستتعلم كيف يمكن أن يساعدك في الحصول على الأشياء في ويندوز من خلال سطر الأوامر.

يعزز ويندوز تيرمنال تجربة وحدة التحكم بميزات حديثة مثل التبويبات والألواح وحتى الصور الخلفية. يمكنك حتى تشغيل قذيفة لينكس الكاملة جنبًا إلى جنب مع ويندوز باورشيل أو cmd.exe دون الحاجة للتبديل بين جلسات الوحدة.

سيكون هذا المقال تجولًا في قدرات العديد من ميزات ويندوز تيرمنال. سيكون دليلًا تعليميًا عمليًا طوال الوقت، لذا كن مستعدًا للعمل!

المتطلبات المسبقة

متطلبات تثبيت واستخدام ويندوز تيرمنال نفسها بسيطة جدًا. كل ما تحتاجه هو جهاز يعمل بنظام ويندوز 10 بإصدار 1903 (مايو 2019) أو الأحدث. إذا كنت ترغب في متابعة جميع العروض في هذا المقال، فستحتاج أيضًا إلى تثبيت بعض الأدوات الأخرى:

الطرفية مقابل وحدة التحكم مقابل القذيفة

نظرًا لأننا سنغطي العديد من المصطلحات في هذه المقالة، فمن المهم أولاً فهم بعض الاختلافات في المصطلحات حتى لا تحتار.

على الرغم من أن المفاهيم متشابهة، إلا أنه من المهم أن نلاحظ أن الطرفية ليست وحدة التحكم وليست القذيفة. لكل منها هدفه الخاص. يحتوي سكوت هانسيلمان على مقال رائع حول تعريف كل مصطلح، ولكن هنا سنستخدمهم في هذه المقالة كالتالي:

  • الطرفية: تطبيق Windows Terminal.
  • وحدة التحكم: أي تطبيق مضيف لوحدة التحكم الذي ليس هو Windows Terminal.
  • القذيفة: البرنامج بين الطرفية ونظام التشغيل. (pwsh، cmd، zsh، إلخ)

تثبيت Windows Terminal

هناك عدة طرق مختلفة لتثبيت Windows Terminal ، ولكن أسهلها بكثير (والطريقة الموصى بها من قبل Microsoft) هو تثبيته من Microsoft Store. يمكنك تنزيل نسختين مختلفتين ؛ الـ Windows Terminal القياسي والـ Windows Terminal Preview.

لأغراض هذه المقالة ، يمكنك استخدام أيًا منهما. التثبيت بسيط لذا لن نغطي ذلك في هذه المقالة وسنفترض أنك قد قمت بتثبيته بالفعل.

عند فتح Windows Terminal للمرة الأولى ، لا يبدو أو يشعر بالإثارة. هناك الكثير من التعديلات التي ستحتاج إلى إجرائها للوصول إلى هناك ، ولكن كل شيء يبدأ بنافذة مشابهة لهذه أدناه.

Default Windows terminal

لاحظ أن Windows Terminal يحتوي على أربعة مكونات رئيسية:

  1. نافذة الطرفية – هنا حيث ستقوم بمعظم العمل ، وحيث يمكنك تخصيص الأكثر.
  2. اسم التبويب – يدعم Windows Terminal التبويبات ، مما يعني أنه يمكنك الحصول على قشور مختلفة.
  3. تبويب جديد – سيفتح هذا الزر تبويبًا جديدًا للملف الشخصي الافتراضي الخاص بك.
  4. قائمة الملفات الشخصية – ستقوم بسرد الملفات الشخصية المتاحة للفتح.

يحتوي Windows Terminal على تصميم بسيط ، ولكن هناك الكثير من الوظائف المخفية خلفه.

بناء الطرفية من المصدر

في حين أن هذا هو محطة العمل ويندوز، وأنه يأتي من مايكروسوفت، فإنه أيضًا مفتوح المصدر تمامًا، وهذا يعني أنه إذا كنت ترغب في ذلك، يمكنك المساهمة فيه. إنه برنامج C++ بمجتمع نشط جداً.

على الرغم من أن هذا المنتج هو منتج عام، في وقت كتابة هذا النص لا يزال هناك بعض الأخطاء الطفيفة التي يتم التعامل معها وميزات في خارطة الطريق للتطوير المستقبلي. ربما ستكون أنت الشخص الذي يساهم فيها!

إذا كنت مطورًا وترغب فعلاً في الدخول إلى الشفرة، يمكنك بناء محطة العمل ويندوز من PowerShell، اتبع هذه الخطوات:

  1. تشغيل git submodule update --init --recursive لتحديث جميع المستودعات الفرعية لGit
  2. تشغيل الأوامر التالية في PowerShell:
Import-Module .\tools\OpenConsole.psm1
Set-MsBuildDevEnvironment
Invoke-OpenConsoleBuild

ملف settings.json: تخصيص كل الأشياء

في نهاية المطاف، ربما ترغب في جعل المحطة الخاصة بك وتخصيصها. أحد أفضل الأشياء حول محطة العمل ويندوز هو مدى قابليتها للتخصيص. الطريقة الأكثر شيوعًا لتخصيص محطة العمل ويندوز هي عن طريق تحرير الملف settings.json الموجود في الدليل %LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\.

يمكنك أيضًا الوصول إلى ملف settings.json عن طريق النقر على قائمة الملفات الشخصية واختيار الإعدادات.

ملف settings.json هو المكان الذي ستقوم فيه بمعظم التخصيصات لمحطة العمل ويندوز حتى تكون الخيارات الرسومية متاحة.

فريق نافذة المحطة قد وعد في الإصدار القادم بإطلاق واجهة المستخدم الرسومية لإدارة الإعدادات قريبًا!

بالإضافة إلى وجود جميع الإعدادات المخزنة في مكان واحد مريح، عندما تكون الإعدادات مخزنة في ملف JSON، يمكنك وضع إعداداتك في نظام التحكم في الإصدارات أو نسخها احتياطيًا في حالة الانتقال بين أجهزة مختلفة.

يمكنك حتى مشاركة الإعدادات مع الآخرين. إذا كنت ترغب في إلقاء نظرة على كيفية ظهور ملف settings.json كمثال، قم بالتحقق من واحد هنا.

مخطط settings.json

إذا كنت تستخدم Visual Studio Code، فإن المحطة تتضمن مخطط JSON سيساعدك في التحقق من صحة أي تخصيص تقوم به داخل settings.json، بما في ذلك ملء تلقائي لأي أشياء جديدة.

بمجرد حفظ التغييرات الخاصة بك (طالما أن settings.json صالح لا يزال)، ستتم عرض التغييرات الجديدة على الفور في المحطة أو سيتم عرض خطأ دون الحاجة إلى تحديث المحطة.

على الرغم من أنه ليس من الضروري استخدام Visual Studio Code لتحرير JSON، إلا أنه من المستحسن بالتأكيد عندما يتعلق الأمر بتخصيص نافذة المحطة لنظام التشغيل ويندوز.

هناك حاليًا أربعة أقسام مختلفة في settings.json تتحكم في كيفية مظهر وشعور نافذة الطرفية في Windows: العالمية (Globals) والملفات (Profiles) والمخططات (Schemes) وارتباطات المفاتيح (Key Bindings). دعنا نلقي نظرة على كل قسم.

العالمية (Globals)

القسم العالمي (globals section) مسؤول عن تحديد سلوك نافذة الطرفية في Windows. يوجد دائمًا في أعلى الملف، ويتحكم القسم العالمي في أشياء مثل التأكيد عند الإغلاق، والسمة البصرية، والملف الافتراضي. يمكنك رؤية مثال في قطعة الكود التالية.

// settings.json

{
    "$schema": "<https://aka.ms/terminal-profiles-schema>",

    "defaultProfile": "{d21f5dd0-bdc3-4cf7-9e3c-5d5d721074c9}",

    // يمكنك إضافة إعدادات تطبيقات عالمية إضافية هنا.
    // لمعرفة المزيد حول الإعدادات العالمية، قم بزيارة <https://aka.ms/terminal-global-settings>

    // إذا تم تمكينه، سيتم نسخ التحديدات تلقائيًا في الحافظة.
    "copyOnSelect": false,

    // إذا تم تمكينه، فسيتم نسخ البيانات المنسقة أيضًا في الحافظة
    "copyFormatting": false,

		...
		...
}

الملفات (Profiles)

A profile is a configuration of the Windows Terminal that has its own shell, theme, and settings. When you open up a Windows Terminal profile, it will open a session with the assigned shell, environment, or WSL distribution. This means you can have different shells open at the same time, or different sessions of the same shell, which can be useful when testing code cross-platform or need to run a background process.

تأتي نافذة الطرفية مع ثلاثة ملفات افتراضية: Windows PowerShell و cmd.exe و Azure Cloud Shell. إذا كان لديك WSL مثبت، فسيتم أيضًا إنشاء ملف لكل توزيعة WSL مثبتة لديك. يتضمن أيضًا قسمًا defaults سيطبق الإعدادات على كل ملف في settings.json. هذا هو المكان المناسب لوضع الخطوط المتوافقة مع اليونيكود والتي سيتم تغطيتها لاحقًا في هذه المقالة.

يمكنك رؤية مثال على شكل الملف الشخصي في مقتطف الكود التالي.

// settings.json

"profiles":
    {
        "defaults": {},
        "list":
        [
            {
                "guid": "{d2df7eb9-1d7e-4a05-91a6-04ac0ee99970}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false
            }
				]
		}

إنشاء ملف شخصي جديد

يمكن أن يكون إعداد الملفات الشخصية مفيدًا إذا كنت ترغب في إضافة تغييرات على نفس الجلدة، أو إضافة ملفات تعريف عن بُعد مخصصة إلى الطرفية.

لإنشاء ملف شخصي جديد لـ Windows Terminal في settings.json، هنا هي الخطوات التي ستحتاج إلى اتخاذها:

تأكد من إضافة فاصلة بعد كل ملف شخصي ما عدا الأخير لجعل JSON صالحًا.

  1. انسخ أي ملف شخصي من قسم الملفات الشخصية الخاص بك. تبدأ هذه الملفات بـ [ وتنتهي بـ ] تحت عنصر list في ملف JSON. هذه الأسطر من السابعة إلى الرابعة عشرة أعلاه.
  2. قم بتوليد GUID جديد عن طريق تشغيل [guid]::NewGuid() من أي جلسة PowerShell. استبدل القيمة الحالية لـ guid في الملف الشخصي الجديد بالGUID الذي قمت بتوليده. تتم إنشاء GUIDs بشكل عشوائي عندما تقوم الطرفية بإعداد الملفات الشخصية الافتراضية.
  3. أضف أو غير أي معلمات أخرى لتخصيص الملف الشخصي.
  4. انسخ محتويات settings.json وتأكد من صحتها عن طريق تشغيلها عبر JSON Lint أو أي محلل JSON آخر. قم بإصلاح أي مشكلات.
  5. احفظ التغييرات الخاصة بك.

هناك العديد من الخيارات المتاحة لتكوين الملف الشخصي. تذكر أنه إذا كان لديك إعداد في قسم الافتراضيات في settings.json ، وكان لديك نفس الإعداد المُعين في ملفك الشخصي الجديد ، فسيتم استبدال الإعداد الافتراضي. للحصول على تفاصيل كاملة ، تحقق من وثائق إعدادات Windows Terminal .

المخططات

تشير هذا القسم إلى مخططات الألوان المستخدمة في ملفات الشخصية لـ Windows Terminal. يخبر المخطط الطرفية أي قيمة سداسية عشرية يجب استخدامها لكل لون يظهر في الطرفية. نظرًا لأن الطرفية يمكن أن تعرض الألوان بدقة 24 بت ، فإن هذه الألوان يمكن أن تصبح إبداعية للغاية. سيكون لكل مخطط اسم وقائمة ألوان تتطابق مع قيمة سداسية عشرية يمكن تغييرها بسهولة كما هو موضح أدناه.

// settings.json

"schemes": [
        {
            "name" : "Ubuntu",
            "background" : "#2C001E",
            "black" : "#4E9A06",
            "blue" : "#3465A4",
            "brightBlack" : "#b3b3b3",
            "brightBlue" : "#729FCF",
            "brightCyan" : "#34E2E2",
            "brightGreen" : "#8AE234",
            "brightPurple" : "#AD7FA8",
            "brightRed" : "#EF2929",
            "brightWhite" : "#EEEEEE",
            "brightYellow" : "#FCE94F",
            "cyan" : "#06989A",
            "foreground" : "#EEEEEE",
            "green" : "#300A24",
            "purple" : "#75507B",
            "red" : "#CC0000",
            "white" : "#D3D7CF",
            "yellow" : "#C4A000"
        }
    ]

سيتوافق هذه الألوان مع ألوان الخلفية والنص عند استخدام هذا المخطط في Windows Terminal. إذا كان لديك settings.json مفتوحًا في Visual Studio Code ، فيمكنك النقر فوق القيم السداسية عشرية التي تحتوي على شريط رسومي يعرض الألوان الفعلية كما هو موضح أدناه.

VS Code color options

سمات الطرفية (المشار إليها بـ schemes في نافذة الطرفية في Windows) ليست غريبة في عالم برامج الطرفية. على الرغم من أنه ليس هناك طريقة واحدة لإنشاء سمة (scheme) تعمل عبر تطبيقات الطرفية المختلفة، إلا أنه يمكنك أن تجد العديد من الأدوات هناك لإنشائها بغض النظر عن التطبيق الذي تستخدمه. يمكنك أن تجد أحد التصاميم الجاهزة بسهولة، أو تصمم واحدة خاصة بك!

الارتباطات الرئيسية

الارتباطات الرئيسية هي كيفية تعيين اختصارات لإجراءات مثل إنشاء ألواح جديدة، علامات تبويب جديدة، أو حتى إجراءات أساسية مثل نسخ ولصق. هناك الكثير من الإجراءات التي يمكن تعيين اختصارات مخصصة لها، مما يجعل من السهل تخصيص الطرفية بأي طريقة تكون مريحة بالنسبة لك.

يمكنك أن ترى في مقتطف الشفرة التالي بعض اختصارات المفاتيح الافتراضية.

// settings.json

"keybindings":
    [
        { "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+c" },
        { "command": "paste", "keys": "ctrl+v" },
        { "command": "find", "keys": "ctrl+f" },
        { "command": { "action": "splitPane", "split": "auto", "splitMode": "duplicate" }, "keys": "alt+d" },
        { "command": { "action": "closePane" }, "keys": "ctrl+w" },
        { "command": { "action": "newTab" }, "keys": "ctrl+t" }
    ]

في الوقت الحالي، قد يبدأ الطرفية الخاصة بك في السلوك بالطريقة التي ترغب فيها، ولكن لم تنته بعد. الآن حان الوقت لمعرفة كيفية الاستمرار في تخصيص مظهر الطرفية وشعورها.

إعدادات بصرية

عندما تقضي معظم حياتك العملية تحديقًا في النصوص على الشاشة، فمن الجدير بك أن تقوم ببعض الخطوات الإضافية لجعل هذه النصوص أكثر سهولة في النظر إليها. سواء كان ذلك عن طريق تغيير الخطوط أو الأحجام أو الألوان، فإن إيلاء بعض الوقت لمظهر سطح المكتب الجديد لنظام Windows سيعود بفائدة هائلة بعد التحديق فيه طوال يوم عمل كامل.

تحسينات النص

يعد دعم الألوان بعمق 24 بت وتقديم النص بشكل مسرع واحدة من الميزات التي يتم الترويج لها بشكل كبير في نظام Windows Terminal. قد لا يبدو ذلك مثيرًا بمفرده حتى تقارنه بكيفية تقديم powershell.exe أو cmd.exe للنصوص والألوان. باستخدام مكتبة Python الغنية للتوضيح، يظهر بوضوح كم كبير تختلف فيه قدرة التقديم بين وحدات التحكم القديمة ونظام Windows Terminal.

Text enhancements in Windows Terminal

فتح مكتبة الغنية من Python في نظام Windows Terminal و powershell.exe

يدعم نظام Windows Terminal أيضًا الحروف اليونانية، مما يعني أنه يمكن استخدامه مع الأبجديات والرموز الأخرى، بما في ذلك الحروف السيريلية والكانجي وأي حرف آخر بدون أي مشاكل في التقديم. وذلك بفضل خط Cascadia Code، الذي سيتم التطرق إليه لاحقًا.

Cascadia font

الكتابة بالكانجي اليابانية باستخدام نظام Windows Terminal و powershell.exe

يتمتع هذا ببعض المزايا الواضحة من حيث التدويل، ولكن دعم اليونيكود و UTF-8 يعني أيضًا أن نظام Windows Terminal يمكنه أيضًا دعم…

الإيموجي ?

قد لا يبدو الإيموجي شيئًا مفيدًا لتضمينه في أداة سطر الأوامر ، ولكنها تصبح أكثر تواجدًا في التطوير. يستخدم مهندسو البرمجيات الإيموجي لتسمية التزامات ومشاكل البرامج ، والرد بسرعة على الرسائل باستخدام تطبيقات مثل Slack أو Microsoft Teams ، وحتى لغة برمجة إيموجي موجودة الآن. على الرغم من أن بعضها بالتأكيد أكثر فائدة من غيرها ، إلا أنه من الواضح أن الإيموجي لن تختفي.

فيما يلي مثال لعرض الإيموجي على واجهة سطر الأوامر powershell.exe ونفس الشيء في Windows Terminal باستخدام مكتبة rich في Python. انتبه إلى السطر The Terminal is pretty ولاحظ الفرق.

Emojis in Windows Terminal

عرض الإيموجي باستخدام مكتبة rich في Python

خطوط Cascadia

كما ذكر سابقًا ، يسمح خط Cascadia Code بعرض بعض الأحرف. ولكن الخط يحتوي أيضًا على بعض التغييرات الدقيقة الأخرى التي تجعله أسهل للنظر إليه لساعات متواصلة ، مثل التصليق.

معلومة: الفريق نفسه الذي قام بتصميم Windows Terminal قام بتصميم خط Cascadia Code خصيصًا للاستخدام على Windows Terminal.

بالإضافة إلى الأحرف الخاصة، تدعم خطوط Cascadia Code الرموز المتصلة. الرموز المتصلة هي رموز تظهر بشكل مختلف قليلاً عند عرضها على الشاشة. يمكنك رؤية قائمة بالرموز التي تدعمها خطوط Cascadia Code هنا.

Ligatures in Windows Terminal

A printout of all the ligatures supported by Cascadia Code. Code here.

إذا كنت تفضل عدم استخدام الرموز المتصلة ولكن لا تزال ترغب في الاستفادة من فوائد أخرى لـ Cascadia Code، يأتي Windows Terminal أيضًا مع خط يسمى Cascadia Mono يقوم بذلك تمامًا. لكل منهما أيضًا نسخة لـ powerline، (Cascadia Code PL و Cascadia Mono PL) وسنتطرق إليهما فيما بعد.

Powerline

Powerline هو برنامج إضافي لـ vim يضيف معلومات إلى القائد، وقد كان موجودًا في عالم Linux لفترة طويلة. كانت الفكرة هي توفير مزيد من المعلومات في سطر الأوامر، مما يجعل المزيد من المعلومات متاحة بسهولة أثناء العمل في واجهة الأوامر.

تم نقل Powerline واستنساخه وتكراره في كل واجهة أوامر حديثة، بما في ذلك PowerShell، ولكن بسبب قيود واجهات الأوامر السابقة، كان يفتقر إلى شيء ما. تحل الواجهة الطرفية تلك المشكلة من خلال تضمين رموز محددة تسمى غليفات. تُستخدم الغليفات في powerline لتوفير مزيد من المعلومات في سطر الأوامر بلمحة واحدة.

Powerline في PowerShell

بالنسبة لـ PowerShell، يمكنك تكوين سطر أوامر مشابه لـ powerline عن طريق تثبيت oh-my-posh باستخدام رمز العينة التالي.

# باش سكريبت

Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser
Set-Prompt

بمجرد تثبيته ، ستحتوي سطر الأوامر الخاص بـ PowerShell الخاص بك على مزيد من المعلومات ، بما في ذلك اسم فرع git والتعديلات بين مستودعات النسخ المحلية والبعيدة. يمكنك رؤية مثال أدناه.

Powerline support

هذا هو سمة Paradox من oh-my-posh ببعض التخصيصات لعرض نظام التشغيل الحالي و نسخة PowerShell.

Powerline في Bash

بالنسبة لـ Bash ، ستحتاج إلى تثبيت قالب شبيه بالقلدة zsh أو fishshell. تضيف هذه الميزات والتمييز المخصص إلى الطرفية ، ولكن قد يكون من الصعب استخدامها بمفردها. يوصى أيضًا بتثبيت إطار عمل لـ zsh مثل ohmyzsh ، والذي سيجعل استخدامه أسهل بكثير. يأتي ohmyzsh مع سمات وتخصيص لـ سطر أوامر bash مشابه لكيفية عمل oh-my-posh لسطر أوامر PowerShell.

بمجرد تثبيت ذلك ، يمكنك تغيير السمة عن طريق تعديل خاصية ZSH_THEME في ملف ~/.zshrc. قم بتغيير ذلك باستخدام محرر مثل vim أو nano واحفظ الملف. بمجرد الانتهاء من ذلك ، قم بتشغيل source ~/.zshrc وسيتم تطبيق التغييرات الخاصة بك.

Powerline in Bash

تغيير السمة من سمة agnoster إلى سمة robbyrussell في zsh.

صور الخلفية

واحدة من أبرز الميزات التي تم التحدث عنها في واجهة النافذة الجديدة عند إصدارها هي القدرة على استخدام الصور في كل ملف تعريف. حتى الآن، ربما لاحظت أن الخلفيات كانت جميعها بلون واحد محدد في settings.json باستخدام الوسم background.

بعض الأشخاص يجدون أن الصور تشتتهم أثناء البرمجة، لذا إذا كنت واحدًا من هؤلاء الأشخاص، هنا مثال على استخدام خلفية بلون واحد في settings.json.

// settings.json

"profiles":
    {
        "defaults": {},
        "list":
        [
            {
                "guid": "{d2df7eb9-1d7e-4a05-91a6-04ac0ee99970}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
								"background": "#006e1c",
                "hidden": false
            }
				]
		}

عند تعيين لون واحد، سيصبح هذا اللون خلفية لهذا الملف التعريفي. إذا لم يتم تعيين وسم الخلفية في ملف التعريف الخاص بك، فسيتم استخدام القيمة الافتراضية الموجودة في المخطط الخاص بك.

Plain color background

سيعرض الملف التعريفي المذكور أعلاه هذا اللون كخلفية.

لاستخدام صورة خلفية، ستحتاج إلى وجود الصورة على جهاز الكمبيوتر الخاص بك. في وقت كتابة هذا المقال، لا يدعم الطرفية استخدام صور الخلفية من عنوان URL. في settings.json، انتقل إلى الملف التعريف الذي ترغب في تعيين صورة الخلفية له. من هنا، أضف وسم backgroundImage وقم بتعيين قيمته إلى مسار الصورة. فيما يلي مثال يعين خلفية الملف التعريفي إلى صورة قطة.

// settings.json

"profiles":
    {
        "defaults": {},
        "list":
        [
            {
                "guid": "{d2df7eb9-1d7e-4a05-91a6-04ac0ee99970}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
								"backgroundImage": "%USERPROFILE%\Pictures\terminal_cat.jpg",
                "hidden": false
            }
				]
		}
Images in Windows terminal background

إذا قررت تخصيص خلفية خاصة بك، فاعلم أن الطرفية لا تأخذ في الاعتبار الألوان الخاصة بك مقابل الخلفية الخاصة بك. ستعتمد الطرفية على الألوان التي توجد في مخطط ملف تعريفك الحالي. إذا لم تكن حذرًا، فقد تضع خطًا ذو لون فاتح على خلفية ذات لون فاتح، مما يجعل القراءة صعبة للغاية. ليست جميع الخلفيات مناسبة للطرفية.

قطة الطرفية هي في الطرفية الخاصة بك، وتأخذ مكانًا في خلفيتك.

طالما أن settings.json لا يزال ملف JSON صالحًا ولا يزال يلتزم بمخطط الطرفية، سترى تحديث الخلفية على الفور دون الحاجة إلى إعادة التحديث يدويًا أو إغلاق الطرفية وإعادة فتحها. يمكنك رؤية مثال رائع على هذا التحديث في الوقت الحقيقي أدناه.

Real-time setting updates

ستقوم طرفية Windows بالتحديث فور قيامك بإجراء التغييرات في settings.json وحفظها.

تحديد موضع الصور

قد تعتقد أن الصور مزعجة جدًا في نافذة الطرفية، وقد تكون كذلك. ومع ذلك، يمكن أن تكون مرجعًا سريعًا إذا كنت بحاجة إلى التبديل بين علامات التبويب والملفات الشخصية بكثرة. فيما يلي مثال على استخدام صورة خلفية لتسليط الضوء على الشل المستخدم.

// settings.json

"profiles":
    {
        "defaults": {},
        "list":
        [
            {
                "guid": "{d8a5efb7-25a0-4d75-8c6c-1f2603188971}",
                "name": "PowerShell 7",
                "source": "Windows.Terminal.PowershellCore",
								"backgroundImage": "%USERPROFILE%\Pictures\icons\pwsh.png",
								"backgroundImageStretchMode": "none",
                "backgroundImageAlignment": "bottomRight",
								"backgroundImageOpacity": 0.75,
                "hidden": false
            }
				]
		}

لتعيين صورة خلفية، كما هو موضح أعلاه، تحتاج إلى ثلاثة معاملات إضافية تبدأ بـ backgroundImage للمساعدة في التحكم في حجم وموقع وشفافية الصورة على الشاشة. تذكر دائمًا أن تتحقق من الوثائق لمعرفة الخيارات المتاحة. فيما يلي مثال على الملف الشخصي الموضح أعلاه.

A PowerShell 7 profile with the PowerShell logo as a background image

تدعم Windows Terminal أيضًا ملفات GIF المتحركة، لذا إذا لم تجد ذلك مُزعجًا للغاية، يمكنك أيضًا الاستمتاع ببعض التخصيص في الملفات الشخصية الخاصة بك.

Animated GIFS in Windows Terminal

أوامر متقدمة لـ Windows Terminal

الآن بعد أن قمت بإعداد وتخصيص الطرفية الخاصة بك حسب ذوقك، حان الوقت لاستكشاف بعض الإمكانيات المتقدمة لـ Windows Terminal.

تقسيم النوافذ إلى نوافذ فرعية بنوى مختلفة

تدعم Windows Terminal عدة نوافذ فرعية. هذا يعني أنه يمكنك تشغيل جلسات متوازية في نفس نافذة الطرفية. هذا السلوك ليس جديدًا. لقد تم دعم النوافذ الفرعية في تطبيقات وحدة التحكم الأخرى منذ سنوات. تختلف Windows Terminal لأنها تدعم الملفات الشخصية (في settings.json)، بحيث يمكنك فتح كل جلسة في نافذة فرعية خاصة بها. حتى إذا كانت كل جلسة نظام تشغيل مختلف تمامًا مثل استخدام WSL أو ملف تعريف عن بُعد (سنتعرض للمزيد حول الملفات التعريفية عن بُعد في الوقت المناسب)، يمكنك عرض نافذة فرعية لكل نظام تشغيل.

لإنشاء لوحتين مقسمتين بتكوينات مختلفة، في settings.json يجب أن يكون لكل تكوين مفتاح splitPane الخاص به. من خلال تحديد المعلمة profile بإما اسم أو GUID ملف Windows Terminal، يمكنك فتح كل منها جنبًا إلى جنب.

يمكن تعيين الخاصية split إلى horizontal، vertical أو auto وسيتم اختيار التوجيه الذي يوفر أكبر مساحة استنادًا إلى اللوحة المحددة حاليًا. يمكنك رؤية مثال أدناه لتعيين مفاتيح موجهة لأربعة لوحات.


// settings.json

"keybindings":
    [
        { "command": { "action": "splitPane", "split": "auto", "splitMode": "duplicate" }, "keys": "alt+d" },
        { "command": { "action": "splitPane", "split": "auto", "profile": "Windows PowerShell" }, "keys": "ctrl+alt+1" },
        { "command": { "action": "splitPane", "split": "auto", "profile": "Command Prompt" }, "keys": "ctrl+alt+2" },
				{ "command": { "action": "splitPane", "split": "auto", "profile": "a4b7092a-6825-422c-bdb8-89b9251f4d7d" }, "keys": "ctrl+alt+4" }
    ]
The Windows Terminal with 4 different profiles open in different panes. (PowerShell 7, Ubuntu 20.04, PowerShell 5.1 and Azure Cloud Shell)

تخصيص كيفية فتح Windows Terminal

إذا كنت لا تحب اختصارات لوحة المفاتيح، أو ترغب في طريقة سريعة لفتح الوحدة الطرفية مع واجهة سطر الأوامر، فأنت محظوظ. يتضمن Windows Terminal ملف تنفيذي يسمى wt يتيح لك فتحه تلقائياً بأي تكوين ترغب فيه.

يمكنك أن ترى في المثال أدناه كيفية تمرير مختلف الوسائط أثناء فتح الوحدة الطرفية والتي تغير سلوكها.

Behavior changes in New Window Terminal

التكوينات البعيدة

في معظم الأحيان، ستقوم التكوينات بتشغيل جلسات محلية. ومع ذلك، يمكن لـ Windows Terminal أيضًا عرض جلسات بعيدة من خلال مفهوم يسمى التكوينات البعيدة أيضًا!

إذا نظرت إلى ملفات التعريف النموذجية الأخرى لـ Windows Terminal ، قد تلاحظ أن بعضها لا يستخدم تطبيقات .exe على الإطلاق. يكون Windows Terminal مرنًا بما فيه الكفاية حتى يمكنك استخدام الأمر ssh أو الأمر Enter-PsSession في PowerShell لإنشاء ملفات تعريف تعيينات تطابق الخوادم البعيدة أو التوابع الأخرى. يمكنك حتى استخدام terraform console لتشغيل جلسة Terraform! يمكنك رؤية مثال على ذلك في الملف التعريفي أدناه.

عن طريق استخدام البارامتر commandline في قسم الملف التعريفي لـ settings.json ، يمكنك فتح أي شيء تقريبًا كملف تعريف Windows Terminal خاص به والذي لا يحتاج إلى تسجيل الدخول تفاعليًا.

// settings.json

"profiles":
    {
        "defaults": {},
        "list":
        [
            {
                "guid": "{f74c374e-d9ce-4f53-b3f1-072e020f08a5}",
                "name": "Python REPL",
                "backgroundImage": "%USERPROFILE%\Pictures\icons\python.png",
                "commandline": "python",
                "hidden": false                
            },
            {
                "guid": "{98a15d46-813c-4d1e-badd-5a22798e73c1}",
                "name": "Test EC2 Instance",
                "backgroundImage": "%USERPROFILE%\Pictures\icons\vm.jpg",
                "commandline": "ssh -i %USERPROFILE%\demos.pem [email protected]",
                "hidden": false                
            }
        ]
    }
Renaming profiles

فتح نظام Python REPL واتصال SSH بمثيل EC2 في AWS باستخدام ملفات تعريف Windows Terminal

الملخص

في هذه النقطة ، يجب أن تكون غير مجهول تمامًا بـ Windows Terminal ، ولكنك قمت بتكوين إعداداتك المخصصة ولديك تكوين مريح إلى حد ما. يجب أن تتمكن من تخصيص الملفات التعريفية وربط المفاتيح للتحكم في مظهر وعمل الطرفية ، وكذلك معرفة كيفية تعديل الخطوط والرموز والأحرف التي يمكنك استخدامها في الطرفية.

أدوات سطر الأوامر لن تذهب إلى أي مكان. يجب على المطورين والمهندسين على حد سواء الاستمرار في استخدامها. لن يمنع Windows Terminal الجديد تطوير البرمجيات من أن يكون عملاً حيث تحدق في نص صغير على الشاشة ، لكنه قد يجعل الأمر أسهل بكثير للاستمرار في القيام بذلك!

Source:
https://adamtheautomator.com/install-windows-terminal/