- Кастомизация командной строки для пользователей Windows
- Как настроить меню PowerShell
- Пример пользовательской настройки PowerShell Windows Terminal
- Как создать пользовательский профиль в PowerShell
- Как настроить ваш дефолтный профиль в PowerShell Windows Terminal
- Как составить собственную цветовую схему в PowerShell Windows Terminal
- Как связать цветовую схему с профилем
- Дополнительные настройки внешнего вида
- Дополнительные настройки в PowerShell Windows Terminal
- Дополнительные источники
- Windows terminal themes ubuntu
- How to Add Ubuntu Tab to Windows Terminal in Windows 10
- Add Ubuntu Tab to Windows Terminal
- Add Custom Tab Icon to Ubuntu Tab in Windows Terminal
Кастомизация командной строки для пользователей Windows
Перевод статьи «PowerShell Themes and Windows Terminal Color Schemes – How to Customize Your Command Line».
Недавно я настраивал Windows Terminal для своей локальной среды разработки. В этой статье, написанной по горячим следам, я расскажу, как это делается.
Скачать Windows Terminal можно из Microsoft Store. Сделайте это, если еще не сделали и если у вас Windows 10. В более ранних версиях Windows Terminal недоступен.
Как настроить меню PowerShell
Одно из самых больших преимуществ Windows Terminal — возможность использовать несколько оболочек в одном окне, переключаясь между вкладками.
Установив приложение, откройте терминал и нажмите на значок v вверху (рядом с открытой вкладкой). Вы увидите список доступных терминалов, но их мы пока проигнорируем.
В выпадающем меню выберите опцию «Settings» («Настройки»). Это откроет файл settings.json в вашем дефолтном текстовом редакторе.
В этом файле вы найдете довольно много настроек. Первое, на что нужно обратить внимание, — свойство profiles . Оно содержит все опции выбора терминала. Вложенное свойство defaults содержит дефолтные настройки для всех профилей, а свойство list — профили ваших терминалов.
Давайте рассмотрим свойство list . В настоящий момент оно содержит примерно такие значения:
Свойство list — это массив объектов. Оно определяет, какие исполняемые файлы могут загружаться через Windows Terminal. В нашем примере доступные опции — Windows PowerShell и приглашение командной строки CMD.
Давайте разберем свойства в этих объектах:
- guid — уникальный идентификатор (Globally Unique Identifier). Используется исключительно для настройки defaultProfile , которую мы рассмотрим позже.
- name — имя, отображаемое в выпадающем списке, когда вы открываете новую вкладку в Windows Terminal.
- commandline — исполняемый файл, который загружается при открытии вкладки этого профиля.
- hidden — булево значение, определяющее, появляется ли данный профиль в выпадающем списке для новой вкладки. Если вы нечасто пользуетесь каким-нибудь терминалом, можно поставить для него значение true , чтобы он не показывался в списке. Таким образом вы сохраните настройки этого терминала, но в выпадающем списке будете видеть только те терминалы, которые вам нужны.
Пример пользовательской настройки PowerShell Windows Terminal
Вполне вероятно, что вы сможете обойтись дефолтными настройками (это зависит от вашей среды разработки). Я большую часть работы выполняю в Windows Subsystems for Linux (WSL 2), но периодически пользуюсь Git Bash, поэтому у меня есть пара дополнительных опций.
Здесь вы видите несколько новых свойств:
- source : Это свойство генерируется автоматически, когда Windows Terminal обнаруживает и генерирует профиль для исполняемого файла нового терминала. Не нужно добавлять это свойство, если вы конструируете профиль вручную.
- icon : Используется для выбора, какой .ico-файл значка должен появляться рядом с именем в выпадающем списке новой вкладки.
- startingDirectory : Путь к файлу, на который будет указывать Windows Terminal при загрузке новой вкладки с этим профилем.
Как создать пользовательский профиль в PowerShell
Windows Terminal не сгенерировал настройки профиля для Git Bash, так что мне пришлось сделать это вручную. Если вам нужно сделать то же самое, вот инструкция.
Сначала нужно сгенерировать значение guid . Оно имеет формат <00000000-0000-0000-0000-000000000000>. Сгенерировать его можно в Windows PowerShell, запустив [guid]::NewGuid() , или в WSL, запустив uuidgen .
Затем определите путь к исполняемому файлу в свойстве commandline . Значение %PROGRAMFILES% указывает на вашу директорию «Program Files» («Файлы программ») и учитывает разницу между путями для 32 и 64-битных приложений.
Если же ваша инсталляция расположена в вашей директории пользователя, вы можете использовать значение %USERPROFILE% . Флаги -i -l используются для того, чтобы Windows Terminal корректно загружал ваш файл .bashrc.
Свойство icon можно пропустить. Но если вы хотите, чтобы в выпадающем списке рядом с названием терминала отображался значок, здесь нужно указать путь к файлу изображения.
Свойство name указывать обязательно, оно определяет имя, которое будет показываться в выпадающем списке. Здесь я использовал «Git Bash», чтобы четко понимать, какой терминал откроет эта опция.
Наконец, для свойства startingDirectory нужно установить путь к директории, которую терминал будет «считать» дефолтной. У себя я поставил %USERPROFILE% , что указывает терминалу на мою директорию пользователя Windows. Благодаря этому я могу быстро переходить в мою папку «Документы» и прочие папки.
Как настроить ваш дефолтный профиль в PowerShell Windows Terminal
Если вы прокрутите назад файл settings.json, вы увидите свойство defaultProfile . Эта опция принимает значение guid , которое должно совпадать с одним из значений guid в вашем массиве list . Вкладка профиля, guid которого вы здесь укажете, будет загружаться при старте Windows Terminal.
Поскольку большую часть своей работы я делаю в WSL, я установил именно его guid в качестве значения для свойства defaultProfile .
Теперь при открытии приложения Windows Terminal сразу загружается экземпляр WSL.
Как составить собственную цветовую схему в PowerShell Windows Terminal
После настройки приложений можно сфокусироваться на стилях текста, чтобы сделать его покрасивее.
Под свойством profiles в файле settings.json вы найдете свойство schemes . Оно содержат массив объектов цветовых схем, выглядит это примерно так:
Если вы использовали инструменты вроде пакета chalk в npm, вы можете узнать некоторые из значений цветов (purple здесь — это magenta в chalk).
- name : используется для назначения цветовой схемы одному из профилей, созданных нами ранее.
- cursorColor : определяет цвет курсора.
- selectionBackground : определяет цвет фона для выделенного текста.
- background : задает цвет фона в вашем терминале.
- foreground : задает цвет переднего плана для терминала. В моей текущей конфигурации я не ощутил никаких отличий при изменении этого значения.
Свойства цветов определяют конкретные цветовые коды. Для своего цветового профиля я установил следующие настройки:
Советую поиграться с этими значениями, пока не подберете набор цветов, полностью удовлетворяющий ваши требования.
Как связать цветовую схему с профилем
Настроив цвета, нужно как-то привязать их к профилю терминала. Эти настройки можно применить в свойстве defaults (свойство, вложенное в свойство profiles ). Таким образом настроенная цветовая схема применится ко всем вашим терминалам. Но я предпочитаю настраивать разные цвета для разных терминалов, чтобы было удобно определять, в правильной ли вкладке я нахожусь.
Давайте применим эту цветовую схему для профиля WSL. Добавьте ключ colorScheme в ваш объект профиля и задайте ему значение — name вашей схемы. У вас должно получиться что-то вроде этого:
Перезапустив Windows Terminal, вы увидите уже новые цвета.
Дополнительные настройки внешнего вида
В моем объекте WSL-профиля есть несколько дополнительных настроек:
Вы можете включить их в объект своего профиля, подогнав по вкусу.
- useAcrylic : В Windows 10 включает эффект прозрачности для фона терминала.
- Если включен эффект прозрачности, при помощи acrylicOpacity можно отрегулировать его интенсивность. Чем ниже число, тем выше прозрачность.
- fontFace : Выбор шрифта для терминала. Учтите, что выбранный шрифт должен быть установлен в вашем компьютере. Я использую шрифт PxPlus IBM VGA8.
- fontSize : определяет размер шрифта (в pt).
- experimental.retroTerminalEffect : Моя любимая настройка. Создает ретроэффект, напоминающий вид экрана старых CRT-мониторов.
Вот как выглядит итоговый результат моих настроек:
Любую из этих настроек внешнего вида можно добавить в defaultSettings , чтобы применить глобально, ко всем профилям.
Дополнительные настройки в PowerShell Windows Terminal
Есть несколько дополнительных настроек, на которые стоит обратить внимание.
После свойства schemes идет свойство actions . В нем содержится массив настроек с сочетаниями клавиш.
По умолчанию в Windows Terminal копирование и вставка осуществляется нажатием Ctrl+Shift+C и Ctrl+Shift+V соответственно. Но вы можете назначить сочетание Ctrl+C и Ctrl+V :
Опция singleLine со значением false предохраняет от разрыва строк при копировании текста.
Практически вверху вашего файла settings.json есть еще два свойства, влияющие на поведение при копировании текста из терминала:
- copyOnSelect по умолчанию имеет значение false . Если поставить true , выделение текста мышью будет копировать этот текст в буфер.
- copyFormatting тоже по умолчанию имеет значение false . Если поставить true , будет копироваться и форматирование текста (по умолчанию копируется как plain text).
Копировать текст из терминала в целом безопасно, но вставлять в него текст нужно с осторожностью. Windows Terminal имеет пару настроек, защищающих от ненужного риска:
- largePasteWarning по умолчанию имеет значение true . В вашем файле settings.json его может и не быть. Эта настройка вызывает диалогове окно при попытке вставить более 5KB содержимого.
- multiLinePasteWarning по умолчанию имеет значение true . В вашем файле settings.json его тоже может не быть. Эта настройка вызывает диалоговое окно при попытке вставить текст, содержащий разрывы строки (это распространенный прием атаки с захватом буфера обмена, суть ее в том, чтобы при вставке начали запускаться какие-то команды).
Я настоятельно рекомендую оставить эти настройки и ничего не менять.
Дополнительные источники
Поздравляю! Вот вы и сделали собственный вариант настройки Windows Terminal.
Чтобы узнать о других способах кастомизации, не раскрытых в этой статье, обратитесь к документации: Windows Terminal Customization Documentation.
Что касается цветовых схем, есть много готовых вариантов, которые можно скачать в виде JSON-файлов. Вы найдете их в Windows Terminal Themes. Именно там я нашел свою схему, которую лишь немного подкрутил по своему вкусу.
Windows terminal themes ubuntu
Windows Terminal Themes
Preview and copy themes for the new Windows Terminal.
How to use the themes
This site let’s you preview and then copy a theme you like (or download a json file with all of them).
The official docs for Windows Terminal seem to very thoroughly explain how to change the settings, but essentially:
- open Windows Terminal settings
- add your chosen theme(s) to schemes
- in profiles , find the shell you’re using (eg cmd, powershell, ubuntu) and replace colorScheme with the name of the theme
- 🥳
Contribute a theme
Ideally for the ecosystem new themes should be proposed to iTerm2-Color-Schemes (where most of these themes come from), then everyone can benefit.
If not, new themes can be add added with a pull request. Just add them to the list in app/src/custom-colour-schemes.json . You shouldn’t need to run anything. If you’d like to receive credit, or know who should, please add it to app/src/credits.json .
- The OneDark theme was created by azrikahar
- The DraculaPlus, Material Darker, Bubbles and OneStar theme was created by jos3s
- Monokai Cmder by vdurante
- Rosé Pine by mvllow
- Tokyo Night by enkia
- Moonlight II by atomiks
- Monokai (filter Octagon) by monokai
- Sonoran Gothic && Sonoran Sunrise by d-mckee
- The Horizon theme was created by wafelack
Install using yarn and run using yarn start , this should start both the React app and Express server.
You can run all the tests with yarn test:dev .
E2E tests are run with cypress. You can use yarn cy:open to open and develop using the Dashboard and run test suite with yarn cy:run . There’s a few unit test using Jest that you can develop using yarn unit:watch .
There’s CI with CircleCI and there’s visual regression tests with Percy too.
How to Add Ubuntu Tab to Windows Terminal in Windows 10
Microsoft recently released a new terminal application called Windows Terminal. The terminal application has a lot of features that the developers have been asking for years. One of those features is that ability to add any console window to a new tab. Let me show you how to add Ubuntu tab to the Windows Terminal.
By default, Windows Terminal comes with PowerShell and Command Prompt tabs. If you want to, you can add any number of other consols to the Windows Terminal. For example, if you are a web developer and need to add a Linux console to Windows Terminal. You can do that by adding a few lines of code in a JSON file.
Note: I assume you’ve already installed the new Windows Terminal app. If not, you can install it from the Microsoft Store.
Add Ubuntu Tab to Windows Terminal
1. Make sure that you’ve installed Ubuntu in Windows 10. If not, you can install Ubuntu in Windows 10 with just a few clicks. Follow that Ubuntu installation guide and come here next.
2. Before you can add Ubuntu tab to Windows Terminal, you need to generate a new GUID (Globally Unique Identifier). This is how Windows Terminal differentiates between different consols. To generate a new GUID, search for Ubuntu in the start menu and open it.
3. In the Ubuntu window, execute the uuidgen command. This will give a unique GUID, copy it. We are going to need that GUID in the coming steps. So, paste it somewhere safe.
A quick tip: Select the GUID with the mouse and right-click to copy.
4. Now, open Windows Terminal by searching for it in the start menu.
5. In the Terminal window, click on the dropdown icon and select “Settings”.
6. The above action will open the profiles.json file in your default code editor. In my case, the default code editor is VS Code. In the editor, scroll down until you see the Profiles array. At the end of the array add , .
7. Next, copy and paste the below code under the , while replacing YOUR_GUID with the actual GUID you got in step 3.
Note: If you’ve installed a specific version of Ubuntu then modify the 5th line in the below code and add the version number too. For example, if you’ve installed Ubuntu 18.04, modify the line as wsl.exe -d Ubuntu-18.04 .
8. Press Ctrl + S to save the JSON file.
9. Now, go back to the Windows Terminal and click on the dropdown menu. You will see the new Ubuntu option.
10. Click on the Ubuntu option and the Ubuntu terminal will open in Windows Terminal.
Add Custom Tab Icon to Ubuntu Tab in Windows Terminal
If you look at the dropdown menu, there is no icon next to the Ubuntu option. That’s because you haven’t added any. The good thing is, you can any image you want as the Ubuntu tab icon.
1. The first thing you need to do is find the icon you want to set. The icon should be in PNG format with transparent background and 32×32 size. You can use this website to find free icons.
2. Once you have the icon, save it somewhere on your hard disk. For instance, I have a dedicated folder in my I drive that hosts all the icons I use for various folders.
3. Now, open the profiles.json file, go to the Ubuntu profile, find the “icon” value and replace the dummy icon path with the actual icon path. In my case, the icon path is “I:/System Icons/ubuntu.png”.
4. Save the file.
That is it. You will see the new icon applied instantly in the Windows Terminal.
It is that simple to add Ubuntu tab to Windows Terminal. If you are facing any problems, comment below and I will try to help as much as possible.