├── img ├── distribuicoes_linux.png_Zone.Identifier ├── mount_no_wsl2.png ├── windows_10_2004.png ├── wsl2_funcionando.png ├── distribuicoes_linux.png ├── habilitar_docker_com_wsl2.png ├── acessando_wsl2_no_explorer.png ├── executaveis_do_windows_no_wsl2.png ├── docker_funcionando_dentro_do_wsl2.png └── verificando_distribuicoes_instaladas_do_linux_no_wsl2.png ├── README.md └── windows-terminal-settings.json /img/distribuicoes_linux.png_Zone.Identifier: -------------------------------------------------------------------------------- 1 | [ZoneTransfer] 2 | ZoneId=3 3 | HostUrl=about:internet 4 | -------------------------------------------------------------------------------- /img/mount_no_wsl2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimatama/CodeEducation-Wsl2-Docker-QuickStart/HEAD/img/mount_no_wsl2.png -------------------------------------------------------------------------------- /img/windows_10_2004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimatama/CodeEducation-Wsl2-Docker-QuickStart/HEAD/img/windows_10_2004.png -------------------------------------------------------------------------------- /img/wsl2_funcionando.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimatama/CodeEducation-Wsl2-Docker-QuickStart/HEAD/img/wsl2_funcionando.png -------------------------------------------------------------------------------- /img/distribuicoes_linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimatama/CodeEducation-Wsl2-Docker-QuickStart/HEAD/img/distribuicoes_linux.png -------------------------------------------------------------------------------- /img/habilitar_docker_com_wsl2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimatama/CodeEducation-Wsl2-Docker-QuickStart/HEAD/img/habilitar_docker_com_wsl2.png -------------------------------------------------------------------------------- /img/acessando_wsl2_no_explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimatama/CodeEducation-Wsl2-Docker-QuickStart/HEAD/img/acessando_wsl2_no_explorer.png -------------------------------------------------------------------------------- /img/executaveis_do_windows_no_wsl2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimatama/CodeEducation-Wsl2-Docker-QuickStart/HEAD/img/executaveis_do_windows_no_wsl2.png -------------------------------------------------------------------------------- /img/docker_funcionando_dentro_do_wsl2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimatama/CodeEducation-Wsl2-Docker-QuickStart/HEAD/img/docker_funcionando_dentro_do_wsl2.png -------------------------------------------------------------------------------- /img/verificando_distribuicoes_instaladas_do_linux_no_wsl2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aimatama/CodeEducation-Wsl2-Docker-QuickStart/HEAD/img/verificando_distribuicoes_instaladas_do_linux_no_wsl2.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | 5 | # Guia rápido do WSL2 + Docker 6 | 7 | ## O que é o WSL2 8 | 9 | Em 2016, a Microsoft anunciou a possibilidade de rodar o Linux dentro do Windows 10 como um subsistema e o nome a isto foi dado de **WSL** ou **Windows Subsystem for Linux**. 10 | 11 | O acesso ao sistema de arquivos no Windows 10 pelo Linux era simples e rápido, porém não tinhamos uma execução completa do kernel do Linux, além de outros artefatos nativos e isto impossibilitava a execução de várias tarefas no Linux, uma delas é o Docker. 12 | 13 | Em 2019, a Microsoft anunciou o **WSL 2**, com uma dinâmica aprimorada em relação a 1ª versão: 14 | 15 | * Execução do kernel completo do Linux. 16 | * Melhor desempenho para acesso aos arquivos dentro do Linux. 17 | * Compatibilidade completa de chamada do sistema. 18 | 19 | O WSL 2 já estava disponível na versão **Insider** do Windows 10, mas na última semana de maio de 2020 passou a estar disponível em final release na atualização **20.04** do Windows 10. 20 | 21 | **Atualização** 22 | A partir de 21 de agosto de 2020, o WSL 2 também está disponível nas edições 1903 e 1909, porém somente em sistemas x64. 23 | 24 | Com WSL 2 é possível executar Docker no Linux usando o Windows 10. 25 | 26 | Compare as versões: [https://docs.microsoft.com/pt-br/windows/wsl/compare-versions](https://docs.microsoft.com/pt-br/windows/wsl/compare-versions) 27 | 28 | 29 | ## O que é Docker 30 | 31 | Docker é uma plataforma open source que possibilita o empacotamento de uma aplicação dentro de um container. Uma aplicação consegue se adequar e rodar em qualquer máquina que tenha essa tecnologia instalada. 32 | 33 | ## Porque usar WSL 2 + Docker para desenvolvimento 34 | 35 | Configurar ambientes de desenvolvimento no Windows sempre foi burocrático e complexo, além do desempenho de algumas ferramentas não serem totalmente satisfatórias. 36 | 37 | Com o nascimento do Docker este cenário melhorou bastante, pois podemos montar nosso ambiente de desenvolvimento baseado em Unix, de forma independente e rápida, e ainda unificada com outros sistemas operacionais. 38 | 39 | Veja nossa **live sobre WSL 2 + Docker no canal Full Cycle**: [https://www.youtube.com/watch?v=g4HKttouVxA](https://www.youtube.com/watch?v=g4HKttouVxA). 40 | 41 | Para se utilizar Docker no Windows temos três versões: 42 | 43 | * Docker Toolbox. 44 | * Docker Desktop com Hyper-V. 45 | * Docker Desktop com WSL2. 46 | 47 | #### Docker Toolbox 48 | 49 | Roda em cima do programa de virtualização de sistemas da Oracle, chamado de **VirtualBox**. 50 | O desempenho do Docker Toolbox para muitas aplicações/ferramentas pode ser muito ruim, inviabilizando seu uso. 51 | 52 | #### Docker Desktop com Hyper-V 53 | 54 | Roda em cima do **Hyper-V** da Microsoft em vez de usar o VirtualBox usando pelo Docker Toolbox. O Docker Desktop com Hyper-V necessita da versão **PRO** do Windows 10, portanto é necessário compra-la se você não a tem. 55 | 56 | O Hyper-V costuma requerer muitos recursos da máquina e apesar do desempenho ser melhor que o Docker Toolbox, a máquina pode ficar lenta para se utilizar outras coisas no Windows. 57 | 58 | *A Docker já anunciou que vai remover o suporte ao Hyper-V futuramente.* 59 | 60 | #### Docker Desktop com WSL2 61 | 62 | Roda em cima do **Virtual Machine Platform** em vez de usar o VirtualBox ou Hyper-V. Se integra com o WSL2 permitindo rodar o Docker dentro do ambiente do Linux. Não é necessário adquirir licença PRO do Windows 10, tem um grande desempenho e consome menos recursos quando comparado ao Docker Toolbox ou Docker Desktop com Hyper-V. 63 | 64 | Temos a grande vantagem de se trabalhar totalmente dentro do Linux para desenvolvimento, portanto, usar WSL2 + Docker é a melhor maneira de se desenvolver aplicações no Windows. 65 | 66 | ## Requisitos mínimos 67 | 68 | * Windows 10 Home ou Professional com versão **20.04** ou superior. 69 | 70 | **Atualização** 71 | A partir de 21 de agosto de 2020, o WSL 2 também está disponível nas edições 1903 e 1909, porém somente em sistemas x64. 72 | 73 | * Uma máquina compatível com virtualização (verifique a disponibilidade de acordo com a marca do seu processador. Se sua máquina for mais antiga pode ser necessária habilita-la na BIOS). 74 | * Pelo menos 4GB de memória RAM. 75 | 76 | ## Instalação do WSL 2 77 | 78 | #### Instale a versão 20.04 do Windows 10 79 | 80 | O WSL 2 só funciona no Windows 10 **20.04** ou superior. 81 | 82 | Pode ser que seu Windows 10 já seja igual ou superior a 20.04, verifique isto acessando o `menu de notificações perto do relógio > Todas as configurações > Sistema > Sobre`. 83 | 84 | ![Windows 10 20.04](img/windows_10_2004.png) 85 | 86 | Se seu Windows 10 não for 20.04 baixe o pacote de atualização [https://go.microsoft.com/fwlink/?LinkID=799445](https://go.microsoft.com/fwlink/?LinkID=799445). A instalação pode demorar aproximadamente **1 hora**. 87 | 88 | #### Habilite o WSL no Windows 10 89 | 90 | Execute os seguintes comandos no PowerShell em modo administrador: 91 | ``` bash 92 | dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 93 | dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 94 | ``` 95 | Abra o PowerShell e digite o comando `wsl`, se não funcionar reinicie sua máquina. 96 | 97 | #### Instale o WSL 2 no Windows 10 98 | 99 | Baixe o Kernel do WSL 2 neste link: [https://docs.microsoft.com/pt-br/windows/wsl/wsl2-kernel](https://docs.microsoft.com/pt-br/windows/wsl/wsl2-kernel) e instale o pacote. 100 | 101 | #### Atribua a versão default do WSL para a versão 2 102 | 103 | A versão 1 do WSL é a padrão no momento, atribua a versão default para a versão 2, assim todas as distribuições Linux instaladas serão já por default da versão 2. Execute o comando com o PowerShell: 104 | 105 | ``` bash 106 | wsl --set-default-version 2 107 | ``` 108 | 109 | #### Escolha sua distribuição Linux no Windows Store 110 | 111 | Escolha sua distribuição Linux preferida no aplicativo Windows Store, sugerimos o Ubuntu por ser uma distribuição popular e que já vem com várias ferramentas instaladas por padrão. 112 | 113 | ![Distribuições Linux no Windows Store](img/distribuicoes_linux.png) 114 | 115 | Ao iniciar o Linux instalado, você deverá criar um **nome de usuário** que poderá ser o mesmo da sua máquina e uma **senha**, este será o usuário **root da sua instância WSL**. 116 | 117 | Parabéns, seu WSL2 já está funcionando: 118 | 119 | ![Exemplo de WSL2 funcionando](img/wsl2_funcionando.png) 120 | 121 | #### (Opcional) Desinstale o Hyper-V 122 | 123 | Agora que temos o WSL 2 não precisamos mais do Hyper-V, desabilite-o em Painel de Controle > Programas e Recursos (se você tiver instalado o Hyper-V). 124 | 125 | #### (Opcional) Alterar a versão do WSL 1 de uma distribuição para a versão 2 126 | 127 | Se você já tiver o WSL 1 na máquina e acabou de instalar a versão 2, pode-se converter sua distribuição Linux WSL 1 para WSL 2, execute o comando com o PowerShell: 128 | 129 | ``` bash 130 | wsl --set-version 2 131 | ``` 132 | 133 | Isto pode demorar muitos minutos. 134 | 135 | #### (Opcional) Usar Windows Terminal como terminal padrão de desenvolvimento para Windows 136 | 137 | Uma deficiência que o Windows sempre teve era prover um terminal adequado para desenvolvimento. Agora temos o **Windows Terminal** construído pela própria Microsoft que permite rodar terminais em abas, alterar cores e temas, configurar atalhos e muito mais. 138 | 139 | Instale-o pelo Windows Store e use estas [configurações padrões](windows-terminal-settings.json) para habilitar WSL 2, Git Bash e o tema drácula e alguns atalhos. 140 | 141 | Para sobrescrever as configurações **clique a seta para baixo do lado das abas e em configurações**, abrirá as configurações do Windows Terminal, apenas cole o conteúdo do arquivo JSON e salve. 142 | 143 | ## O que o WSL 2 pode usar de recursos da sua máquina 144 | 145 | Podemos dizer que o WSL 2 tem acesso quase que total ao recursos de sua máquina. Ele tem acesso por padrão: 146 | 147 | * A todo disco rígido. 148 | * A usar completamente os recursos de processamento. 149 | * A usar 80% da memória RAM disponível. 150 | * A usar 25% da memória disponível para SWAP. 151 | 152 | Isto pode não ser interessante, uma vez que o WSL 2 pode usar praticamente todos os recursos de sua máquina, mas podemos configurar limites. 153 | 154 | Crie um arquivo chamado `.wslconfig` na raiz da sua pasta de usuário `(C:\Users\)` e defina estas configurações: 155 | 156 | ```txt 157 | [wsl2] 158 | options=metadata,umask=22,fmask=11 159 | memory=8GB 160 | processors=4 161 | swap=2GB 162 | ``` 163 | 164 | Estes são limites de exemplo e as configurações mais básicas a serem utilizadas, configure-os às suas disponibilidades. 165 | Para mais detalhes veja esta documentação da Microsoft: [https://docs.microsoft.com/pt-br/windows/wsl/wsl-config#wsl-2-settings](https://docs.microsoft.com/pt-br/windows/wsl/wsl-config#wsl-2-settings). 166 | 167 | Para aplicar estas configurações é necessário reiniciar as distribuições Linux, então sugerimos executar no PowerShell o comando: `wsl --shutdown` (Este comando vai desligar todas as instâncias WSL 2 ativas e basta abrir o terminal novamente para usa-la já com as novas configurações). 168 | 169 | ## Integrar Docker com WSL 2 170 | 171 | #### Instale o Docker Desktop 172 | 173 | Baixe neste link: [https://hub.docker.com/editions/community/docker-ce-desktop-windows](https://hub.docker.com/editions/community/docker-ce-desktop-windows) e instale o Docker Desktop. 174 | 175 | #### Habilite o Docker dentro do WSL 2 176 | 177 | Clique no `ícone do Docker perto do relógio -> Settings -> Settings no topo -> Resources -> WSL Integration`. 178 | 179 | Habilite `Enable integration with my default WSL distro` e habilite sua versão Linux. 180 | 181 | ![Docker funcionando dentro do WSL 2](img/docker_funcionando_dentro_do_wsl2.png) 182 | 183 | Parabéns, você agora tem um excelente ambiente de desenvolvimento com WSL 2 e Docker. 184 | 185 | #### Use BuildKit and multi-stage builds 186 | 187 | Acrescente `export DOCKER_BUILDKIT=1` no final do arquivo .profile do seu usuário do Linux para ganhar mais performance ao realizar builds com Docker. Execute o comando `source ~/.profile` para carregar esta variável de ambiente no ambiente do seu WSL 2. 188 | 189 | ## Dicas e truques básicos com WSL 2 190 | 191 | * A performance do WSL 2 está em se executar tudo dentro do Linux, por isso evite executar seus projetos com ou sem Docker do caminho `/mnt/c`, pois você perderá performance. 192 | * Para abrir o terminal do WSL basta digitar o nome da distribuição no menu Iniciar ou executar `C:\Windows\System32\wsl.exe`. 193 | * O sistema de arquivos do Windows 10 é acessível em `/mnt`. 194 | ![Mount no WSL2](img/mount_no_wsl2.png) 195 | * É possível acessar o sistema de arquivos do Linux pela rede do Windows, digite `\\wsl$` no Windows Explorer. 196 | ![Acessando WSL2 no Windows Explorer](img/acessando_wsl2_no_explorer.png) 197 | * É possível acessar uma pasta no Windows Explorer digitando o comando ```explorer.exe .```. 198 | * É possível abrir uma pasta ou arquivo com o Visual Studio Code digitando o comando ```code . ou code meu_arquivo.ext```. 199 | * Incrivelmente é possível acessar executáveis do Windows no terminal do Linux executando-os com .exe no final (não significa que funcionarão corretamente). 200 | ![Executando executáveis do Windows no WSL2](img/executaveis_do_windows_no_wsl2.png) 201 | * É possível executar algumas aplicações gráficas do Linux com WSL 2. Leia este tutorial: [https://medium.com/@dianaarnos/aplica%C3%A7%C3%B5es-gr%C3%A1ficas-no-wsl2-e0a481e9768c](https://medium.com/@dianaarnos/aplica%C3%A7%C3%B5es-gr%C3%A1ficas-no-wsl2-e0a481e9768c). 202 | * Execute o comando ```wsl -l -v``` com o PowerShell para ver as versões de Linux instaladas e seu status atual(parado ou rodando). 203 | ![Verificando distribuições instaladas do Linux no WSL 2](img/verificando_distribuicoes_instaladas_do_linux_no_wsl2.png) 204 | * Execute o comando ```wsl --shutdown``` com o PowerShell para desligar todas as distribuições Linux que estão rodando no mento (ao executar o comando, as distribuições do Docker também serão desligadas e o Docker Desktop mostrará uma notificação ao lado do relógio perguntando se você quer iniciar as distribuições dele novamente, se você não aceitar terá que iniciar o Docker novamente com o ícone perto do relógio do Windows). 205 | * Execute com o PowerShell o comando ```wsl --t ``` para desligar somente uma distribuição Linux específica. 206 | * Se verificar que o WSL 2 está consumindo muitos recursos da máquina, execute os seguintes comandos dentro do terminal WSL 2 para liberar memória RAM: 207 | ```bash 208 | echo 1 | sudo tee /proc/sys/vm/drop_caches 209 | echo 3 | sudo tee /proc/sys/vm/drop_caches 210 | ``` 211 | 212 | ## Dúvidas 213 | 214 | * O WSL 2 funciona junto com outras máquinas virtuais como **VirtualBox** ou **VMWare**? Siga a [referência](https://docs.microsoft.com/pt-br/windows/wsl/wsl2-faq#will-i-be-able-to-run-wsl-2-and-other-3rd-party-virtualization-tools-such-as-vmware-or-virtualbox) 215 | -------------------------------------------------------------------------------- /windows-terminal-settings.json: -------------------------------------------------------------------------------- 1 | // This file was initially generated by Windows Terminal 0.11.1333.0 2 | // It should still be usable in newer versions, but newer versions might have additional 3 | // settings, help text, or changes that you will not see unless you clear this file 4 | // and let us generate a new one for you. 5 | // To view the default settings, hold "alt" while clicking on the "Settings" button. 6 | // For documentation on these settings, see: https://aka.ms/terminal-documentation 7 | { 8 | "$schema": "https://aka.ms/terminal-profiles-schema", 9 | "defaultProfile": "{2c4de342-38b7-51cf-b940-2309a097f518}", 10 | // You can add more global application settings here. 11 | // To learn more about global settings, visit https://aka.ms/terminal-global-settings 12 | // If enabled, selections are automatically copied to your clipboard. 13 | "copyOnSelect": true, 14 | // If enabled, formatted data is also copied to your clipboard 15 | "copyFormatting": false, 16 | // A profile specifies a command to execute paired with information about how it should look and feel. 17 | // Each one of them will appear in the 'New Tab' dropdown, 18 | // and can be invoked from the commandline with `wt.exe -p xxx` 19 | // To learn more about profiles, visit https://aka.ms/terminal-profile-settings 20 | "profiles": { 21 | "defaults": { 22 | // Put settings here that you want to apply to all profiles. 23 | "colorScheme": "Dracula" 24 | }, 25 | "list": [ 26 | { 27 | "guid": "{73225108-7633-47ae-80c1-5d00111ef646}", 28 | "hidden": false, 29 | "name": "Git Bash", 30 | "commandline": "C:\\Program Files\\Git\\bin\\bash.exe -login -i", 31 | "startingDirectory": "%USERPROFILE%", 32 | "icon": "C:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico" 33 | }, 34 | { 35 | "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}", 36 | "hidden": false, 37 | "name": "Ubuntu", 38 | "source": "Windows.Terminal.Wsl", 39 | "startingDirectory": "\\\\wsl$\\Ubuntu\\home\\argen\\" 40 | }, 41 | { 42 | // Make changes here to the powershell.exe profile. 43 | "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}", 44 | "name": "Windows PowerShell", 45 | "commandline": "powershell.exe", 46 | "hidden": false 47 | }, 48 | { 49 | // Make changes here to the cmd.exe profile. 50 | "guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}", 51 | "name": "Prompt de comando", 52 | "commandline": "cmd.exe", 53 | "hidden": false 54 | }, 55 | { 56 | "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}", 57 | "hidden": false, 58 | "name": "PowerShell", 59 | "source": "Windows.Terminal.PowershellCore" 60 | }, 61 | { 62 | "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}", 63 | "hidden": false, 64 | "name": "Azure Cloud Shell", 65 | "source": "Windows.Terminal.Azure" 66 | } 67 | ] 68 | }, 69 | // Add custom color schemes to this array. 70 | // To learn more about color schemes, visit https://aka.ms/terminal-color-schemes 71 | "schemes": [ 72 | { 73 | "name" : "Dracula", 74 | "background" : "#272935", 75 | "black" : "#21222C", 76 | "blue" : "#BD93F9", 77 | "cyan" : "#8BE9FD", 78 | "foreground" : "#F8F8F2", 79 | "green" : "#50FA7B", 80 | "purple" : "#FF79C6", 81 | "red" : "#FF5555", 82 | "white" : "#F8F8F2", 83 | "yellow" : "#FFB86C", 84 | "brightBlack" : "#6272A4", 85 | "brightBlue" : "#D6ACFF", 86 | "brightCyan" : "#A4FFFF", 87 | "brightGreen" : "#69FF94", 88 | "brightPurple" : "#FF92DF", 89 | "brightRed" : "#FF6E6E", 90 | "brightWhite" : "#F8F8F2", 91 | "brightYellow" : "#FFFFA5" 92 | }, 93 | { 94 | "name": "Andromeda", 95 | "black": "#000000", 96 | "red": "#cd3131", 97 | "green": "#05bc79", 98 | "yellow": "#e5e512", 99 | "blue": "#2472c8", 100 | "purple": "#bc3fbc", 101 | "cyan": "#0fa8cd", 102 | "white": "#e5e5e5", 103 | "brightBlack": "#666666", 104 | "brightRed": "#cd3131", 105 | "brightGreen": "#05bc79", 106 | "brightYellow": "#e5e512", 107 | "brightBlue": "#2472c8", 108 | "brightPurple": "#bc3fbc", 109 | "brightCyan": "#0fa8cd", 110 | "brightWhite": "#e5e5e5", 111 | "background": "#262a33", 112 | "foreground": "#e5e5e5" 113 | }, 114 | { 115 | "name": "Argonaut", 116 | "black": "#232323", 117 | "red": "#ff000f", 118 | "green": "#8ce10b", 119 | "yellow": "#ffb900", 120 | "blue": "#008df8", 121 | "purple": "#6d43a6", 122 | "cyan": "#00d8eb", 123 | "white": "#ffffff", 124 | "brightBlack": "#444444", 125 | "brightRed": "#ff2740", 126 | "brightGreen": "#abe15b", 127 | "brightYellow": "#ffd242", 128 | "brightBlue": "#0092ff", 129 | "brightPurple": "#9a5feb", 130 | "brightCyan": "#67fff0", 131 | "brightWhite": "#ffffff", 132 | "background": "#0e1019", 133 | "foreground": "#fffaf4" 134 | }, 135 | { 136 | "name": "BlulocoDark", 137 | "black": "#4a505d", 138 | "red": "#f81141", 139 | "green": "#23974a", 140 | "yellow": "#fd7e57", 141 | "blue": "#285bff", 142 | "purple": "#8c62fd", 143 | "cyan": "#366f9a", 144 | "white": "#ccd5e5", 145 | "brightBlack": "#61697a", 146 | "brightRed": "#fc4a6d", 147 | "brightGreen": "#37bd58", 148 | "brightYellow": "#f6be48", 149 | "brightBlue": "#199ffd", 150 | "brightPurple": "#fc58f6", 151 | "brightCyan": "#50acae", 152 | "brightWhite": "#ffffff", 153 | "background": "#1e2127", 154 | "foreground": "#abb2bf" 155 | }, 156 | { 157 | "name": "Breeze", 158 | "black": "#31363b", 159 | "red": "#ed1515", 160 | "green": "#11d116", 161 | "yellow": "#f67400", 162 | "blue": "#1d99f3", 163 | "purple": "#9b59b6", 164 | "cyan": "#1abc9c", 165 | "white": "#eff0f1", 166 | "brightBlack": "#7f8c8d", 167 | "brightRed": "#c0392b", 168 | "brightGreen": "#1cdc9a", 169 | "brightYellow": "#fdbc4b", 170 | "brightBlue": "#3daee9", 171 | "brightPurple": "#8e44ad", 172 | "brightCyan": "#16a085", 173 | "brightWhite": "#fcfcfc", 174 | "background": "#31363b", 175 | "foreground": "#eff0f1" 176 | }, 177 | { 178 | "name": "Bright Lights", 179 | "black": "#191919", 180 | "red": "#ff355b", 181 | "green": "#b7e876", 182 | "yellow": "#ffc251", 183 | "blue": "#76d4ff", 184 | "purple": "#ba76e7", 185 | "cyan": "#6cbfb5", 186 | "white": "#c2c8d7", 187 | "brightBlack": "#191919", 188 | "brightRed": "#ff355b", 189 | "brightGreen": "#b7e876", 190 | "brightYellow": "#ffc251", 191 | "brightBlue": "#76d5ff", 192 | "brightPurple": "#ba76e7", 193 | "brightCyan": "#6cbfb5", 194 | "brightWhite": "#c2c8d7", 195 | "background": "#191919", 196 | "foreground": "#b3c9d7" 197 | }, 198 | { 199 | "name": "Dark+", 200 | "black": "#000000", 201 | "red": "#cd3131", 202 | "green": "#0dbc79", 203 | "yellow": "#e5e510", 204 | "blue": "#2472c8", 205 | "purple": "#bc3fbc", 206 | "cyan": "#11a8cd", 207 | "white": "#e5e5e5", 208 | "brightBlack": "#666666", 209 | "brightRed": "#f14c4c", 210 | "brightGreen": "#23d18b", 211 | "brightYellow": "#f5f543", 212 | "brightBlue": "#3b8eea", 213 | "brightPurple": "#d670d6", 214 | "brightCyan": "#29b8db", 215 | "brightWhite": "#e5e5e5", 216 | "background": "#0e0e0e", 217 | "foreground": "#cccccc" 218 | }, 219 | { 220 | "name": "Monokai Vivid", 221 | "black": "#121212", 222 | "red": "#fa2934", 223 | "green": "#98e123", 224 | "yellow": "#fff30a", 225 | "blue": "#0443ff", 226 | "purple": "#f800f8", 227 | "cyan": "#01b6ed", 228 | "white": "#ffffff", 229 | "brightBlack": "#838383", 230 | "brightRed": "#f6669d", 231 | "brightGreen": "#b1e05f", 232 | "brightYellow": "#fff26d", 233 | "brightBlue": "#0443ff", 234 | "brightPurple": "#f200f6", 235 | "brightCyan": "#51ceff", 236 | "brightWhite": "#ffffff", 237 | "background": "#121212", 238 | "foreground": "#f9f9f9" 239 | }, 240 | { 241 | "name": "Nocturnal Winter", 242 | "black": "#4d4d4d", 243 | "red": "#f12d52", 244 | "green": "#09cd7e", 245 | "yellow": "#f5f17a", 246 | "blue": "#3182e0", 247 | "purple": "#ff2b6d", 248 | "cyan": "#09c87a", 249 | "white": "#fcfcfc", 250 | "brightBlack": "#808080", 251 | "brightRed": "#f16d86", 252 | "brightGreen": "#0ae78d", 253 | "brightYellow": "#fffc67", 254 | "brightBlue": "#6096ff", 255 | "brightPurple": "#ff78a2", 256 | "brightCyan": "#0ae78d", 257 | "brightWhite": "#ffffff", 258 | "background": "#0d0d17", 259 | "foreground": "#e6e5e5" 260 | }, 261 | { 262 | "name": "OneStar", 263 | "black": "#000000", 264 | "red": "#d13b3b", 265 | "green": "#0dbc79", 266 | "yellow": "#dfdf44", 267 | "blue": "#2472c8", 268 | "purple": "#c42cc4", 269 | "cyan": "#33a0bb", 270 | "white": "#f1f1f1", 271 | "brightBlack": "#666666", 272 | "brightRed": "#fa4b4b", 273 | "brightGreen": "#23d18b", 274 | "brightYellow": "#fcfc5c", 275 | "brightBlue": "#3b8eea", 276 | "brightPurple": "#d861d8", 277 | "brightCyan": "#29b8db", 278 | "brightWhite": "#fafafa", 279 | "background": "#0e0e0e", 280 | "foreground": "#e4e4e4" 281 | }, 282 | { 283 | "name": "synthwave-everything", 284 | "black": "#fefefe", 285 | "red": "#f97e72", 286 | "green": "#72f1b8", 287 | "yellow": "#fede5d", 288 | "blue": "#6d77b3", 289 | "purple": "#c792ea", 290 | "cyan": "#f772e0", 291 | "white": "#fefefe", 292 | "brightBlack": "#fefefe", 293 | "brightRed": "#f88414", 294 | "brightGreen": "#72f1b8", 295 | "brightYellow": "#fff951", 296 | "brightBlue": "#36f9f6", 297 | "brightPurple": "#e1acff", 298 | "brightCyan": "#f92aad", 299 | "brightWhite": "#fefefe", 300 | "background": "#2a2139", 301 | "foreground": "#f0eff1" 302 | }, 303 | { 304 | "name": "Ubuntu", 305 | "black": "#2e3436", 306 | "red": "#cc0000", 307 | "green": "#4e9a06", 308 | "yellow": "#c4a000", 309 | "blue": "#3465a4", 310 | "purple": "#75507b", 311 | "cyan": "#06989a", 312 | "white": "#d3d7cf", 313 | "brightBlack": "#555753", 314 | "brightRed": "#ef2929", 315 | "brightGreen": "#8ae234", 316 | "brightYellow": "#fce94f", 317 | "brightBlue": "#729fcf", 318 | "brightPurple": "#ad7fa8", 319 | "brightCyan": "#34e2e2", 320 | "brightWhite": "#eeeeec", 321 | "background": "#300a24", 322 | "foreground": "#eeeeec" 323 | } 324 | ], 325 | // Add custom keybindings to this array. 326 | // To unbind a key combination from your defaults.json, set the command to "unbound". 327 | // To learn more about keybindings, visit https://aka.ms/terminal-keybindings 328 | "keybindings": [ 329 | // Copy and paste are bound to Ctrl+Shift+C and Ctrl+Shift+V in your defaults.json. 330 | // These two lines additionally bind them to Ctrl+C and Ctrl+V. 331 | // To learn more about selection, visit https://aka.ms/terminal-selection 332 | { 333 | "command": { 334 | "action": "copy", 335 | "singleLine": false 336 | }, 337 | "keys": "ctrl+c" 338 | }, 339 | { 340 | "command": "paste", 341 | "keys": "ctrl+v" 342 | }, 343 | // Press Ctrl+Shift+F to open the search box 344 | { 345 | "command": "find", 346 | "keys": "ctrl+shift+f" 347 | }, 348 | // Press Alt+Shift+D to open a new pane. 349 | // - "split": "auto" makes this pane open in the direction that provides the most surface area. 350 | // - "splitMode": "duplicate" makes the new pane use the focused pane's profile. 351 | // To learn more about panes, visit https://aka.ms/terminal-panes 352 | { 353 | "command": { 354 | "action": "splitPane", 355 | "split": "auto", 356 | "splitMode": "duplicate" 357 | }, 358 | "keys": "alt+shift+d" 359 | }, 360 | { 361 | "command": "newTab", 362 | "keys": "ctrl+f1" 363 | }, 364 | { 365 | "command": "duplicateTab", 366 | "keys": "ctrl+f3" 367 | } 368 | ] 369 | } 370 | --------------------------------------------------------------------------------