يحتوي هذا المستودع على الكود المصدري لـ:
محطة ويندوز
معاينة محطة ويندوز
مضيف وحدة تحكم Windows ( conhost.exe
)
المكونات المشتركة بين المشروعين
ColorTool
نماذج من المشاريع التي توضح كيفية استخدام واجهات برمجة التطبيقات لوحدة التحكم في Windows
تشمل المستودعات ذات الصلة ما يلي:
وثائق Windows الطرفية (Repo: المساهمة في المستندات)
وثائق واجهة برمجة تطبيقات وحدة التحكم
خط كود كاسكاديا
ملحوظة
يتطلب Windows Terminal Windows 10 2004 (النسخة 19041) أو إصدار أحدث
قم بتثبيت Windows Terminal من متجر Microsoft. يتيح لك هذا أن تكون دائمًا على أحدث إصدار عندما نصدر إصدارات جديدة مع ترقيات تلقائية.
هذه هي الطريقة المفضلة لدينا.
بالنسبة للمستخدمين الذين لا يستطيعون تثبيت Windows Terminal من متجر Microsoft، يمكن تنزيل الإصدارات التي تم إصدارها يدويًا من صفحة الإصدارات الخاصة بهذا المستودع.
قم بتنزيل الملف Microsoft.WindowsTerminal_
من قسم الأصول . لتثبيت التطبيق، يمكنك ببساطة النقر نقرًا مزدوجًا على ملف .msixbundle
، ومن المفترض أن يعمل مثبت التطبيق تلقائيًا. إذا فشل ذلك لأي سبب من الأسباب، فيمكنك تجربة الأمر التالي في موجه PowerShell:
# ملاحظة: إذا كنت تستخدم PowerShell 7+، فيرجى تشغيل # Import-Module Appx -UseWindowsPowerShell# قبل استخدام Add-AppxPackage.Add-AppxPackage Microsoft.WindowsTerminal_.msixbundle
ملحوظة
إذا قمت بتثبيت الوحدة الطرفية يدويًا:
قد تحتاج إلى تثبيت حزمة VC++ v14 Desktop Framework. يجب أن يكون هذا ضروريًا فقط في الإصدارات الأقدم من نظام التشغيل Windows 10 وفقط في حالة ظهور خطأ بشأن فقدان حزم إطار العمل.
لن يتم تحديث الوحدة الطرفية تلقائيًا عند إصدار إصدارات جديدة، لذا ستحتاج إلى تثبيت أحدث إصدار من الوحدة الطرفية بانتظام لتلقي جميع الإصلاحات والتحسينات الأخيرة!
يمكن لمستخدمي Winget تنزيل أحدث إصدار من Terminal وتثبيته عن طريق تثبيت حزمة Microsoft.WindowsTerminal
:
تثبيت Winget --id Microsoft.WindowsTerminal -e
ملحوظة
يتوفر دعم التبعية في الإصدار 1.6.2631 من WinGet أو الإصدارات الأحدث. لتثبيت الإصدار المستقر للمحطة الطرفية 1.18 أو الأحدث، يرجى التأكد من أن لديك الإصدار المحدث من عميل WinGet.
يمكن لمستخدمي Chocolatey تنزيل أحدث إصدار من Terminal وتثبيته عن طريق تثبيت حزمة microsoft-windows-terminal
:
شوكو تثبيت محطة مايكروسوفت ويندوز
لترقية Windows Terminal باستخدام Chocolatey، قم بتشغيل ما يلي:
شوكو ترقية محطة مايكروسوفت ويندوز
إذا كانت لديك أية مشكلات عند تثبيت/ترقية الحزمة، فيرجى الانتقال إلى صفحة حزمة Windows Terminal واتباع عملية فرز Chocolatey
يمكن لمستخدمي Scoop تنزيل أحدث إصدار من Terminal وتثبيته عن طريق تثبيت حزمة windows-terminal
:
دلو مغرفة إضافة إضافات مغرفة تثبيت ويندوز المحطة الطرفية
لتحديث Windows Terminal باستخدام Scoop، قم بتشغيل ما يلي:
تحديث مغرفة ويندوز المحطة الطرفية
إذا كانت لديك أية مشكلات عند تثبيت/تحديث الحزمة، فيرجى البحث عنها أو الإبلاغ عنها في صفحة المشكلات في مستودع حاوية Scoop Extras.
Windows Terminal Canary هو إصدار ليلي من Windows Terminal. يحتوي هذا الإصدار على أحدث التعليمات البرمجية من فرعنا main
، مما يتيح لك فرصة تجربة الميزات قبل وصولها إلى Windows Terminal Preview.
يعد Windows Terminal Canary هو عرضنا الأقل استقرارًا، لذا قد تكتشف الأخطاء قبل أن تتاح لنا الفرصة للعثور عليها.
يتوفر Windows Terminal Canary كتوزيع App Installer وتوزيع ZIP محمول.
يدعم توزيع App Installer التحديثات التلقائية. نظرًا لقيود النظام الأساسي، يعمل برنامج التثبيت هذا فقط على نظام التشغيل Windows 11.
توزيع ZIP المحمول هو تطبيق محمول. لن يتم تحديثه تلقائيًا ولن يتحقق تلقائيًا من وجود تحديثات. يعمل توزيع ZIP المحمول هذا على نظامي التشغيل Windows 10 (19041+) وWindows 11.
توزيع | بنيان | وصلة |
---|---|---|
مثبت التطبيق | x64، الذراع64، x86 | تحميل |
الرمز البريدي المحمول | x64 | تحميل |
الرمز البريدي المحمول | أرم64 | تحميل |
الرمز البريدي المحمول | x86 | تحميل |
تعرف على المزيد حول أنواع توزيعات Windows Terminal.
تم وصف خطة Windows Terminal هنا وسيتم تحديثها مع استمرار المشروع.
يرجى تخصيص بضع دقائق لمراجعة النظرة العامة أدناه قبل الغوص في الكود:
Windows Terminal هو تطبيق طرفي جديد وحديث وغني بالميزات ومنتج لمستخدمي سطر الأوامر. وهو يشتمل على العديد من الميزات التي يطلبها مجتمع سطر أوامر Windows بشكل متكرر، بما في ذلك دعم علامات التبويب والنص المنسق والعولمة وقابلية التكوين والسمات والتصميم والمزيد.
سيحتاج الجهاز أيضًا إلى تلبية أهدافنا وإجراءاتنا لضمان بقائه سريعًا وفعالًا، ولا يستهلك كميات كبيرة من الذاكرة أو الطاقة.
يعد مضيف وحدة تحكم Windows، conhost.exe
، بمثابة تجربة مستخدم سطر أوامر Windows الأصلية. كما أنه يستضيف البنية التحتية لسطر أوامر Windows وخادم Windows Console API ومحرك الإدخال ومحرك العرض وتفضيلات المستخدم وما إلى ذلك. رمز مضيف وحدة التحكم في هذا المستودع هو المصدر الفعلي الذي تم إنشاء conhost.exe
منه في Windows نفسه.
منذ الحصول على ملكية سطر أوامر Windows في عام 2014، أضاف الفريق العديد من الميزات الجديدة إلى وحدة التحكم، بما في ذلك شفافية الخلفية، والاختيار المستند إلى الخط، ودعم تسلسلات ANSI/Virtual Terminal، وألوان 24 بت، ولوحة تحكم زائفة ("ConPTY" )، وأكثر من ذلك.
ومع ذلك، نظرًا لأن الهدف الأساسي لوحدة تحكم Windows هو الحفاظ على التوافق مع الإصدارات السابقة، لم نتمكن من إضافة العديد من الميزات التي كان المجتمع (والفريق) يريدها على مدار السنوات العديدة الماضية بما في ذلك علامات التبويب ونص Unicode والرموز التعبيرية.
قادتنا هذه القيود إلى إنشاء Windows Terminal الجديد.
يمكنك قراءة المزيد حول تطور سطر الأوامر بشكل عام، وسطر أوامر Windows على وجه التحديد في هذه السلسلة المصاحبة من منشورات المدونات على مدونة فريق سطر الأوامر.
أثناء إصلاح وحدة تحكم Windows، قمنا بتحديث قاعدة التعليمات البرمجية الخاصة بها إلى حد كبير، وفصلنا الكيانات المنطقية بشكل نظيف إلى وحدات وفئات، وقدمنا بعض نقاط القابلية للتوسعة الرئيسية، واستبدلنا العديد من المجموعات والحاويات القديمة المحلية بحاويات STL أكثر أمانًا وفعالية، وجعلنا التعليمات البرمجية أبسط وأسهل. أكثر أمانًا باستخدام مكتبات تنفيذ Windows الخاصة بـ Microsoft - WIL.
أدى هذا الإصلاح الشامل إلى إتاحة العديد من المكونات الرئيسية لوحدة التحكم لإعادة استخدامها في أي تطبيق طرفي على Windows. تشتمل هذه المكونات على محرك عرض وتخطيط نص جديد يستند إلى DirectWrite، ومخزن مؤقت للنص قادر على تخزين كل من UTF-16 وUTF-8، ومحلل/باعث VT، والمزيد.
عندما بدأنا التخطيط لتطبيق Windows Terminal الجديد، قمنا باستكشاف وتقييم العديد من الأساليب ومجموعات التكنولوجيا. قررنا في النهاية أن أفضل طريقة لتحقيق أهدافنا هي مواصلة استثمارنا في قاعدة بيانات C++ الخاصة بنا، والتي ستسمح لنا بإعادة استخدام العديد من المكونات الحديثة المذكورة أعلاه في كل من وحدة التحكم الحالية والمحطة الطرفية الجديدة. علاوة على ذلك، أدركنا أن هذا سيسمح لنا ببناء جزء كبير من جوهر الجهاز الطرفي نفسه كعنصر تحكم في واجهة المستخدم قابل لإعادة الاستخدام ويمكن للآخرين دمجه في تطبيقاتهم الخاصة.
تم تضمين نتيجة هذا العمل في هذا الريبو ويتم تسليمه كتطبيق Windows Terminal الذي يمكنك تنزيله من متجر Microsoft، أو مباشرة من إصدارات هذا الريبو.
لمزيد من المعلومات حول Windows Terminal، قد تجد بعض هذه الموارد مفيدة ومثيرة للاهتمام:
مدونة سطر الأوامر
سلسلة مدونة خلفية لسطر الأوامر
إطلاق محطة Windows: المحطة الطرفية "Sizzle Video"
إطلاق Windows Terminal: إنشاء جلسة 2019
التشغيل كراديو: عرض 645 - Windows Terminal مع ريتشارد تورنر
Azure Devops Podcast: الحلقة 54 - Kayla Cinnamon وRich Turner على DevOps على Windows Terminal
جلسة Microsoft Ignite 2019: سطر أوامر Windows الحديث: Windows Terminal - BRK3321
السبب: أنت تقوم بتشغيل الحل غير الصحيح في Visual Studio.
الحل: تأكد من إنشاء مشروع CascadiaPackage
ونشره في Visual Studio.
ملحوظة
OpenConsole.exe
هو مجرد conhost.exe
تم إنشاؤه محليًا، وهو وحدة تحكم Windows الكلاسيكية التي تستضيف البنية الأساسية لسطر أوامر Windows. يتم استخدام OpenConsole بواسطة Windows Terminal للاتصال بتطبيقات سطر الأوامر والتواصل معها (عبر ConPty).
جميع وثائق المشروع موجودة على aka.ms/terminal-docs. إذا كنت ترغب في المساهمة في الوثائق، يرجى إرسال طلب سحب على مستودع Windows Terminal Documentation repo.
نحن متحمسون للعمل جنبًا إلى جنب مع مجتمعنا الرائع لبناء وتعزيز Windows Terminal!
قبل أن تبدأ العمل على ميزة/إصلاح ، يرجى قراءة دليل المساهم الخاص بنا واتباعه للمساعدة في تجنب أي جهد ضائع أو مكرر.
أسهل طريقة للتواصل مع الفريق هي عبر مشكلات GitHub.
يرجى تقديم مشكلات جديدة وطلبات الميزات والاقتراحات، ولكن ابحث عن مشكلات مماثلة موجودة مسبقًا مفتوحة/مغلقة قبل إنشاء مشكلة جديدة.
إذا كنت ترغب في طرح سؤال تشعر أنه لا يستدعي مشكلة (حتى الآن)، فيرجى التواصل معنا عبر Twitter:
كريستوفر نجوين، مدير المنتج: @nguyen_dows
داستن هويت، قائد الهندسة: @dhowett
مايك جريس، كبير المطورين: @[email protected]
كارلوس زامورا، المطور: @cazamor_msft
بانكاج بهجواني، المطور
ليونارد هيكر، المطور: @LeonardHecker
يجب أن تعمل بنظام التشغيل Windows 10 2004 (الإصدار >= 10.0.19041.0) أو إصدار أحدث لتشغيل Windows Terminal
يجب عليك تمكين وضع المطور في تطبيق إعدادات Windows لتثبيت Windows Terminal وتشغيله محليًا
يجب أن يكون PowerShell 7 أو إصدار أحدث مثبتًا لديك
يجب أن يكون لديك Windows 11 (10.0.22621.0) SDK مثبتًا
يجب أن يكون لديك VS 2022 مثبتًا على الأقل
يجب عليك تثبيت أحمال العمل التالية عبر VS Installer. ملاحظة: سيؤدي فتح الحل في VS 2022 إلى مطالبتك بتثبيت المكونات المفقودة تلقائيًا:
أدوات النظام الأساسي العالمي لـ Windows C++ (الإصدار 143).
تطوير سطح المكتب باستخدام C++
تطوير منصة ويندوز العالمية
المكونات الفردية التالية
يجب عليك تثبيت .NET Framework Targeting Pack لإنشاء مشاريع اختبارية
يستخدم هذا المستودع وحدات git الفرعية لبعض تبعياته. للتأكد من استعادة الوحدات الفرعية أو تحديثها، تأكد من تشغيل ما يلي قبل البناء:
تحديث الوحدة الفرعية لـ git --init --recursive
يمكن إنشاء OpenConsole.sln من داخل Visual Studio أو من سطر الأوامر باستخدام مجموعة من البرامج النصية والأدوات الملائمة في دليل /tools :
وحدة الاستيراد .toolsOpenConsole.psm1Set-MsBuildDevEnvironmentInvoc-OpenConsoleBuild
.أدواتrazzle.cmd bcz
لتصحيح أخطاء Windows Terminal في VS، انقر بزر الماوس الأيمن على CascadiaPackage
(في Solution Explorer) وانتقل إلى الخصائص. في قائمة التصحيح، قم بتغيير "عملية التطبيق" و"عملية المهمة في الخلفية" إلى "الأصلي فقط".
يجب أن تكون قادرًا بعد ذلك على إنشاء مشروع الوحدة الطرفية وتصحيح أخطائه بالضغط على F5 . تأكد من تحديد النظام الأساسي "x64" أو النظام الأساسي "x86" - لا يتم إنشاء الجهاز الطرفي لـ "Any Cpu" (لأن الجهاز الطرفي هو تطبيق C++، وليس تطبيق C#).
؟ لن تتمكن من تشغيل الجهاز الطرفي مباشرةً عن طريق تشغيل WindowsTerminal.exe. ولمزيد من التفاصيل عن السبب راجع رقم: 926، رقم 4043
يرجى مراجعة هذه المستندات الموجزة أدناه حول ممارسات البرمجة لدينا.
؟ إذا وجدت شيئًا مفقودًا من هذه المستندات، فلا تتردد في المساهمة في أي من ملفات التوثيق الخاصة بنا في أي مكان في المستودع (أو كتابة بعض الملفات الجديدة!)
هذا عمل مستمر حيث نتعلم ما سنحتاج إلى تقديمه للأشخاص حتى نكون مساهمين فعالين في مشروعنا.
نمط الترميز
منظمة الكود
الاستثناءات في قاعدة التعليمات البرمجية القديمة لدينا
مؤشرات ذكية ووحدات ماكرو مفيدة للتواصل مع Windows في WIL
اعتمد هذا المشروع قواعد السلوك الخاصة بشركة Microsoft مفتوحة المصدر. لمزيد من المعلومات، راجع الأسئلة الشائعة حول قواعد السلوك أو اتصل بـ [email protected] لطرح أي أسئلة أو تعليقات إضافية.