تثبيت Windows Terminal: نظرة عامة عملية

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

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

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

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

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

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

  • ميزة نظام الشبكة الفرعية للينكس (WSL) مفعلة مع تثبيت توزيع لينكس (جميع العروض المعروضة تستخدم أوبونتو 20.04)
  • محرر Visual Studio Code (VS Code)
  • باستخدام مكتبة النص الغنية المثبتة
  • محرر Visual Studio 2019 أو الإصدارات الأحدث مع:
  • تثبيت مجموعة أدوات تطوير سطح المكتب مع C++ لـ Windows 10 1903 SDK
  • تثبيت مكون تطوير منصة Windows Universal
  • تثبيت مكون تطوير منصة Universal Windows Platform Development Component
  • تثبيت مكون أدوات Universal Windows Platform Tools لـ C++ (v142)

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

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

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

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

تثبيت Windows Terminal

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

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

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

Default Windows terminal

لاحظ أن ويندوز تيرمينال لديها أربع مكونات أساسية:

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

تيرمينال ويندوز لديه تصميم متحفظ، ولكن هناك الكثير من الوظائف المخفية وراء ذلك.

بناء التيرمينال من المصدر

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

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

إذا كنت مطورًا وترغب حقًا في الانغماس في الكود، يمكنك بناء محطة الطرفية لـ Windows من PowerShell، اتبع هذه الخطوات:

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

ملف الإعدادات. json: تخصيص كل الأشياء

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

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

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

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

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

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

مخطط settings.json

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

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

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

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

Globals

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

// 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 Terminal مع ثلاثة ملفات تعريف افتراضية: Windows PowerShell، cmd.exe، و Azure Cloud Shell. إذا كان لديك WSL مثبتًا، فسيقوم أيضًا بإنشاء ملف تعريف لكل توزيع WSL قمت بتثبيته. كما يتضمن قسمًا التعيينات الافتراضية التي ستُطبق الإعدادات على كل ملف تعريف في 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. انسخ أي ملف تعريف من قسم الملفات الشخصية الخاصة بك. تبدأ هذه من [ وتنتهي في ] تحت القائمة الفرعية في ملف JSON. هذا هو السطور من السابع إلى الرابعة عشر أعلاه.
  2. أنشئ GUID جديدًا من خلال تشغيل [guid]::NewGuid() من أي جلسة PowerShell. استبدل القيمة الحالية لـ guid في ملف التعريف الجديد بالGUID الذي أنشأته. يتم إنشاء GUIDs بشكل عشوائي عندما تقوم الطرفية بإعداد الملفات الشخصية الافتراضية.
  3. أضف أو غير أي معلمات أخرى لتخصيص الملف الشخصي.
  4. انسخ محتويات settings.json وتحقق من صحته عن طريق تشغيله عبر JSON Lint أو مفحص JSON آخر. قم بإصلاح أي مشكلات.
  5. احفظ التغييرات الخاصة بك.

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

المخططات

تشير هذه القسم إلى مخططات الألوان لملفات التكوين الخاصة بنظام تشغيل ويندوز. يخبر مخطط الألوان الطرفية أي قيمة سداسية عشرية يجب استخدامها لكل لون يظهر في الطرفية. نظرًا لأن الطرفية يمكنها تقديم الألوان بـ 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"
        }
    ]

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

VS Code color options

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

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

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

يمكنك رؤية في مقتطف الكود التالي بعض الارتباطات الرئيسية الافتراضية.

// 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" }
    ]

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

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

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

تعزيز النص

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

Text enhancements in Windows Terminal

فتح مكتبة rich من البايثون في نافذة الأوامر الجديدة وpowershell.exe

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

Cascadia font

الكتابة بالكانجي اليابانية باستخدام نافذة الأوامر الجديدة وpowershell.exe

هذا له بعض الفوائد الواضحة في التدويل، لكن دعم اليونيكود و UTF-8 يعني أيضاً أن نافذة الأوامر الجديدة يمكن أن تدعم أيضاً…

إيموجي ?

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

أدناه مثال على عرض الرموز التعبيرية على وحدة التحكم powershell.exe ونفس الأمر في Windows Terminal باستخدام مكتبة python’s rich. لاحظ السطر “الوحدة التحكم جميلة” وانظر إلى الفارق.

Emojis in Windows Terminal

عرض الرموز التعبيرية باستخدام مكتبة نص python’s rich

الخطوط Cascadia

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

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

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

Ligatures in Windows Terminal

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

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

الباورلاين

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

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

Powerline في PowerShell

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

# باورشيل

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

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

Powerline support

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

Powerline في باش

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

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

Powerline in Bash

التبديل من موضوع اغنوستر إلى موضوع روبي راسل في زدش.

صور الخلفية

واحدة من أبرز الميزات التي تم التحدث عنها بشكل كبير في ويندوز تيرمينال عند إصدارها كانت القدرة على استخدام الصور في كل ملف تعريف. حتى الآن، ربما لاحظت أن الخلفيات كانت جميعها لون واحد محدد في ملف 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 Terminal فور قيامك بإجراء التغييرات في 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 لملف التعريف في ويندوز تيرمينال، يمكنك فتح كل واحد جنبًا إلى جنب.

يمكن تعيين خاصية 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)

تخصيص كيفية فتح ويندوز تيرمينال

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

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

Behavior changes in New Window Terminal

الملفات البعيدة

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

إذا نظرت إلى ملفات تعريف العينات الأخرى لـ Windows Terminal، قد تلاحظ أن بعضها لا يستخدم تطبيقات .exe على الإطلاق. يُمكنك استخدام Windows Terminal بمرونة كافية حتى يمكنك استخدام الأمر ssh أو أمر PowerShell Enter-PsSession لإنشاء ملفات تعريف تعيين خوادم عن بعد أو قواقع أخرى. يمكنك حتى استخدام 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

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

الملخص

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

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

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