├── 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 | 
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 | 
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 | 
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 | 
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 | 
195 | * É possível acessar o sistema de arquivos do Linux pela rede do Windows, digite `\\wsl$` no Windows Explorer.
196 | 
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 | 
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 | 
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 |
--------------------------------------------------------------------------------