Windows Terminal Update: เบชเบฐเปเบ”เบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡ 1910

เบชเบฐเบšเบฒเบเบ”เบต, Habr! เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบเบดเบ™เบ”เบตเบ—เบตเปˆเบˆเบฐเบ›เบฐเบเบฒเบ”เบงเปˆเบฒเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ•เปเปˆเป„เบ›เบชเปเบฒเบฅเบฑเบš Windows Terminal เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ! เปƒเบ™เบšเบฑเบ™เบ”เบฒเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปƒเบซเบกเปˆ: เป‚เบ›เบผเป„เบŸเบฅเปŒเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ cascading, UI เบ—เบตเปˆเบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเปƒเบซเบกเปˆเปเบฅเบฐเบญเบทเปˆเบ™เป†. เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบžเบฒเบเปƒเบ•เป‰เบเบฒเบ™เบ•เบฑเบ”!

เบ•เบฒเบกเป€เบ„เบตเบ, Terminal เปเบกเปˆเบ™เบกเบตเปƒเบซเป‰เบ”เบฒเบงเป‚เบซเบผเบ”เบขเบนเปˆ Microsoft Store, Microsoft Store เบชเปเบฒเบฅเบฑเบšเบ—เบธเบฅเบฐเบเบดเบ” เปเบฅเบฐเบชเบธเบ” GitHub.

Windows Terminal Update: เบชเบฐเปเบ”เบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡ 1910

เป‚เบ›เบฃเป„เบŸเบฅเปŒเป„เบ”เบ™เบฒเบกเบดเบ

เบ”เบฝเบงเบ™เบตเป‰ Windows Terminal เบเบงเบ”เบžเบปเบš PowerShell Core เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” เปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบฅเบฐเบšเบปเบšเบเปˆเบญเบเบ‚เบญเบ‡ Windows เบชเบณเบฅเบฑเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบ Linux (WSL). เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เบ–เป‰เบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ™เบตเป‰เบ—เปˆเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เปเบˆเบเบขเบฒเบเปƒเบ”เป†, เบกเบฑเบ™เบˆเบฐเบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เป„เบŸเบฅเปŒ profiles.json เบ—เบฑเบ™เบ—เบต.

Windows Terminal Update: เบชเบฐเปเบ”เบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡ 1910

ะŸั€ะธะผะตั‡ะฐะฝะธะต: เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบšเปเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ›เบฒโ€‹เบเบปเบ”โ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เป€เบกโ€‹เบ™เบนโ€‹เป€เบฅเบทเปˆเบญเบ™โ€‹เบฅเบปเบ‡โ€‹, เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹ "hidden" เบชเบธเบ” true เป„เบŸเบฅเปŒ profiles.json.

"hidden": true

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Cascading

เบ”เบฝเบงเบ™เบตเป‰ Terminal เบกเบตเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบ›เบฑเบšเบ›เบธเบ‡เปเบฅเป‰เบง. เบˆเบฒเบเบ™เบตเป‰เป„เบ›เบกเบฑเบ™เบกเบฒเบžเป‰เบญเบกเบเบฑเบšเป„เบŸเบฅเปŒ defaults.json เป€เบŠเบดเปˆเบ‡เบฅเบงเบกเบกเบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบฑเบ‡เปเบปเบ”. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป‚เบ”เบเบเบฒเบ™เบ–เบท alt, เปƒเบซเป‰เบ„เบฅเบดเบเปƒเบชเปˆเบ›เบธเปˆเบก Settings เปƒเบ™เป€เบกเบ™เบนเป€เบฅเบทเปˆเบญเบ™เบฅเบปเบ‡. เป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบ›เบตเบ”เปเบกเปˆเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบเบฑเบšเป„เบŸเบฅเปŒเบ™เบฑเป‰เบ™เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ เปเบฅเบฐเบ‚เบฝเบ™เบ—เบฑเบš. เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบšเบšเบเบณเบ™เบปเบ”เป€เบญเบ‡เป„เบ”เป‰เบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบชเปˆเป„เบŸเบฅเปŒ profiles.json. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเบกเปˆ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆ เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆ Scott Hanselman @shanselman), เบ—เบตเปˆเบฅเบฒเบงเบˆเบฑเบ”เบžเบตเบกเบกเบฒเบขเบนเปˆเปƒเบ™ blog เบฅเบฒเบง.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบžเบตเปˆเบกเป‚เบ›เบฃเป„เบŸเบฅเปŒ, schema, เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ„เบต เบซเบผเบทเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบปเปˆเบงเป‚เบฅเบเปƒเบชเปˆ profiles.json, เบกเบฑเบ™เบˆเบฐเบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป€เบ›เบฑเบ™เบžเบฒเบฃเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเป€เบžเบตเปˆเบก. เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเบชเป‰เบฒเบ‡เป‚เบ›เบฃเป„เบŸเบฅเปŒเปƒเปเปˆเบ”เป‰เบงเบ GUID เบ„เบทเบเบฑเบšเบญเบฑเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง, เป‚เบ›เบฃเป„เบŸเบฅเปŒเปƒเปเปˆเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบˆเบฐเปเบ—เบ™เบ—เบตเปˆเบญเบฑเบ™เป€เบเบปเปˆเบฒ. เบ–เป‰เบฒเบกเบตเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบซเบผเบฑเบเบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒ defaults.json เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบ™เบฑเป‰เบ™เป€เบ›เบฑเบ™ null เปƒเบ™ profiles.json.

{
"command": null, "keys": ["ctrl+shift+w"] }

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเปƒเบซเบกเปˆ

เบ”เบฝเบงเบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบฑเป‰เบ‡ Terminal เปƒเบซเป‰เปเบฅเปˆเบ™เป€เบ•เบฑเบกเบˆเปเบชเบฐเป€เปเบต เบซเบผเบทเบ•เบฑเป‰เบ‡เบ•เบณเปเปœเปˆเบ‡เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เปœเป‰เบฒเบˆเป. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ„เปˆเบฒ Terminal เปƒเบซเป‰เปเบฅเปˆเบ™เป€เบ•เบฑเบกเบˆเปเป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบปเปˆเบงเป‚เบฅเบ "launchMode". เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™ "default", เบซเบผเบท "maximized".

"launchMode": "maximized"

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ‚เบญเบ‡ Terminal เปƒเบ™เบซเบ™เป‰เบฒเบˆเป, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเป€เบ›เบฑเบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบปเปˆเบงเป‚เบฅเบ "initialPosition", เปเบฅเบฐเบเบฑเบ‡เบฅเบฐเบšเบธเบžเบดเบเบฑเบ” X เปเบฅเบฐ Y เบ—เบตเปˆเปเบเบเบเบฑเบ™เบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”. เบ•เบปเบงเบขเปˆเบฒเบ‡: เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰ Terminal เป€เบ›เบตเบ”เบขเบนเปˆเบกเบธเบกเบŠเป‰เบฒเบเป€เบ—เบดเบ‡เบ‚เบญเบ‡เปœเป‰เบฒเบˆเปเบซเบผเบฑเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบซเป‰เป€เบžเบตเปˆเบกเบฅเบฒเบเบเบฒเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰เปƒเบชเปˆ profiles.json:

"initialPosition": "0,0"

ะŸั€ะธะผะตั‡ะฐะฝะธะต: เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบˆเปเบชเบฐเปเบ”เบ‡เบœเบปเบ™เบซเบผเบฒเบเปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰ Terminal เป€เบ›เบตเบ”เบ•เบปเบงเบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบŠเป‰เบฒเบเบซเบผเบทเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบˆเปเบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ•เบปเป‰เบ™เบ•เป, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เปƒเบŠเป‰เบžเบดเบเบฑเบ”เบ—เบฒเบ‡เบฅเบปเบš.

เบญเบฑเบšเป€เบ”เบ” UI

เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡ Terminal เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ. เปƒเบŠเป‰เปƒเบ™ Terminal WinUI TabView เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เป€เบžเบทเปˆเบญโ€‹เบชเบฐโ€‹เบšเบฑเบš 2.2โ€‹. เบฅเบธเป‰เบ™เบ™เบตเป‰เบกเบตเบ„เบงเบฒเบกเบ„เบปเบกเบŠเบฑเบ”เบ‚เบญเบ‡เบชเบตเบ—เบตเปˆเบ”เบตเบ‚เบถเป‰เบ™, เบกเบธเบกเบกเบปเบ™เปƒเบ™เป€เบกเบ™เบนเป€เบฅเบทเปˆเบญเบ™เบฅเบปเบ‡, เปเบฅเบฐเบ•เบปเบงเปเบšเปˆเบ‡เปเบ–เบš. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ•เบญเบ™เบ™เบตเป‰, เบ—เบฑเบ™เบ—เบตเบ—เบตเปˆเบ—เปˆเบฒเบ™เป€เบ›เบตเบ”เปเบ–เบšเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ, เบ—เปˆเบฒเบ™เบˆเบฐเบชเบฒเบกเบฒเบ”เป€เบฅเบทเปˆเบญเบ™เบœเปˆเบฒเบ™เบžเบงเบเบกเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰เบ›เบธเปˆเบกเบ•เปˆเบฒเบ‡เป†.

Windows Terminal Update: เบชเบฐเปเบ”เบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡ 1910

เปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”

  • เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” double-click เป€เบ—เบดเบ‡เปเบ–เบšเปเบ–เบšเป€เบžเบทเปˆเบญเบ‚เบฐเบซเบเบฒเบเบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเปƒเบซเป‰เป€เบ•เบฑเบกเบซเบ™เป‰เบฒเบˆเป;
  • เปเบเป‰เป„เบ‚เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบšเบฑเบ™เบซเบฒเบเบฑเบšเบเบฒเบ™เบ„เบฑเบ”เบฅเบญเบเปเบฅเบฐเบงเบฒเบ‡เปƒเบชเปˆเป€เบชเบฑเป‰เบ™เปƒเบซเบกเปˆ;
  • เบชเปเบฒเป€เบ™เบปเบฒ HTML เบˆเบฐเบšเปเปˆเบ›เปˆเบญเบเปƒเบซเป‰ clipboard เป€เบ›เบตเบ”เบญเบตเบเบ•เปเปˆเป„เบ›;
  • เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบกเบตเบŠเบทเปˆเป€เบเบตเบ™ 32 เบ•เบปเบงเบญเบฑเบเบชเบญเบ™;
  • เป€เบกเบทเปˆเบญเบชเบญเบ‡เปเบ–เบšเบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบงเบžเป‰เบญเบกเป†เบเบฑเบ™, เบเบฒเบ™เบšเบดเบ”เป€เบšเบทเบญเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบˆเบฐเบšเปเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™;
  • เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเบชเบฐเบ–เบฝเบ™เบ—เบปเปˆเบงเป„เบ›.

เปƒเบ™เบเบฒเบ™เบชเบฐเบซเบฅเบธเบš

เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบ—เปˆเบฒเบ™โ€‹เบกเบตโ€‹เบ„เปเบฒโ€‹เบ–เบฒเบกโ€‹เปƒเบ”เป†โ€‹เบซเบผเบทโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบ›เบฐโ€‹เบ—เบฑเบšโ€‹เปƒเบˆโ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™ Terminal, เบšเปเปˆโ€‹เบฅเบฑเปˆเบ‡โ€‹เป€เบฅโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ‚เบฝเบ™โ€‹เป€เบ–เบดเบ‡ Kayla (Kayla, @cinnamon_msft) เปƒเบ™ Twitter. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบšเบฑเบ™เบซเบฒเบซเบผเบทเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เปเปˆเบžเบงเบเป€เบฎเบปเบฒเบขเบนเปˆเบชเบฐเป€เบซเบกเบต GitHub. เปเบฅเป‰เบงเบžเบปเบšเบเบฑเบ™เป€เบ”เบทเบญเบ™เปœเป‰เบฒ!

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™