Windows

Instalação

Gerar um USB de instalação

Você pode baixar o Windows 10 diretamente do site da Microsoft. Selecione um pendrive de pelo menos 8GB para a ferramenta formatar e gerar um instalador bootável.

Se o erro 715-123130 aparecer, tente trocar de browser ou fazer o download através de uma VPN nos EUA.

Particionamento

O Windows cria uma partição EFI com 100 MB e outra Recovery com ~507 MB. Então, se quiser uma partição de 150GB para o Windows, digite 154207 MB (150*1024 + 100 + 507).

Eu recomendo aumentar a partição EFI para 500 MB caso deseje fazer dual boot.
Como o instalador não fornece a opção de redimensionar a partição EFI que ele cria automaticamente, você pode iniciar o instalador com uma partição EFI em FAT32 já criada ou reservar uns 400 MB no início do disco para depois redimensioná-la pelo Linux.

Opções de privacidade

Uma tela de privacidade aparece no primeiro boot. Desmarque Find my device, Inking & Typing, Advertising ID, Diagnostic data, Tailored experiences e o que mais tiver para desmarcar durante a instalação.

Após iniciar o sistema, vá em Settings » Privacy. Eu desmarco quase todas as opções. O único app que precisa acessar minha câmera (que fica coberta) é o Skype.

Group Policy Editor

Execute o gpedit.msc.

  • Web search

    Entre em Local Computer Policy » Computer Configuration » Administrative Templates » Windows Components » Search e marque a opção “Do not allow web search” como Enabled.

  • Bitlocker com PIN

    Navegue até Computer Configuration » Administrative Templates » Windows Components » BitLocker Drive Encryption » Operating System Drives e ative “Require Additional Authentication at Startup” e “Allow enhanced PINs for startup”.

  • Desativar o Meet Now do Skype

    Entre em User Configuration » Administrative templates » Start Menu and Taskbar e ative a policy “Remove the Meet Now icon”.

Regedit

  • Desativa Cortana, Bing

    Navegue até HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Windows Search e crie uma nova DWORD chamada ConnectedSearchUseWeb e atribua valor 0.

    Navegue até HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Search e crie duas novas DWORDs com valor 0: AllowSearchToUseLocation e BingSearchEnabled.

  • Usar UTC no relógio (útil para dualboot)

    Navegue até HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation e crie uma nova DWORD chamada RealTimeIsUniversal com valor 1.

  • Mostrar/Esconder ícones no desktop

    Isso pode ser feito pela interface gráfica, portanto não recomendo fazer pelo regedit.

    Computer: {20D04FE0-3AEA-1069-A2D8-08002B30309D}
    User Files: {59031a47-3f72-44a7-89c5-5595fe6b30ee}
    Control Panel: {5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}
    Network: {F02C1A0D-BE21-4350-88B0-7367FC96EF3C}
    Recycle Bin: {645FF040-5081-101B-9F08-00AA002F954E}
    

    Exemplo:

    reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel /V {20D04FE0-3AEA-1069-A2D8-08002B30309D} /T REG_DWORD /D 0x0 /F
    
    reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu /V {20D04FE0-3AEA-1069-A2D8-08002B30309D} /T REG_DWORD /D 0x0 /F
    
    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel /V {20D04FE0-3AEA-1069-A2D8-08002B30309D} /T REG_DWORD /D 0x0 /F
    
    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu /V {20D04FE0-3AEA-1069-A2D8-08002B30309D} /T REG_DWORD /D 0x0 /F
    
  • Não mostra arquivos recentes

    reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer /V ShowRecent /T REG_DWORD /D 0x0 /F
    
  • Mostrar pasta do usuário na navegação do File Explorer (quick access)

    reg add HKCU\SOFTWARE\Classes\CLSID\{59031a47-3f72-44a7-89c5-5595fe6b30ee} /V System.IsPinnedToNameSpaceTree /T REG_DWORD /D 0x1 /F
    

Nome do computador

Navegue até Control Panel\System and Security\System. Na linha com o nome do computador, clique em Change settings e troque o nome do computador.

Windows Update

Atualize tudo e reinicie o computador.

Talvez a última atualização ainda não esteja disponível pelo Windows Update, mas pode ser instalada manualmente: https://www.microsoft.com/en-us/software-download/windows10.

Criptografia

  • BitLocker

    Depois de atualizar o Windows. Ative o bitlocker no driver C:/. Salve a chave de recuperação em algum lugar seguro (que não seja o próprio computador, claro).

  • VeraCrypt

    É uma alternativa open source que pode ser usada para criptografar partições inteiras ou criar containers. Mais para frente eu mostro como instalar com o Chocolatey.

Windows Features

Entre em Control Panel\Programs » Turn Windows features on or off.

  • Ative “Virtual Machine Platform”
  • Ative “Windows Hypervisor Platform” (precisa para o Docker).
  • Ative “Windows Sandbox”
  • Ative “Windows Subsystem for Linux”
  • Ative “Hyper-V” (para máquinas virtuais)

Power

Navegue até Control Panel\Hardware and Sound\Power Options\Create a Power Plan. Crie um power plan baseado no High Performance com as seguintes opções (em advanced power settings):

  • Turn off hard disk after
    • On battery: 30 Minutes
    • Plugged in: Never
  • Sleep
    • Sleep after
      • On battery: 300 Minutes
      • Plugged in: Never
  • Power buttons and lid
    • Lid close action
      • On battery: Do nothing
      • Plugged in: Do nothing
    • Power button action
      • On battery: Sleep
      • Plugged in: Do nothing
  • Display
    • Turn off display after
      • On battery: 20 Minutes
      • Plugged in: 30 Minutes

Em Control Panel\Hardware and Sound\Power Options\System Settings, desmarque a opção Turn on fast start-up.

Bloqueio por inatividade

  • Screen Saver settings » Blank » 3 min » On resume, display log-on screen

Desinstale programas desnecessários

Em Add or Remove programs, desinstale o que não for usar.

Desative mensagens chatas

Entre em Control Panel\System and Security\Security and Maintenance\Change Security and Maintenance settings.

Desmarque a opção de receber mensagens sobre Windows Backup.

Chocolatey

Instale conforme as instruções mais atuais em https://chocolatey.org/install.

No PowerShell como Admin:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco install -y `
  vb-cable `
  voicemeeter-banana `
  7zip `
  ack `
  bleachbit `
  calibre `
  clonespy `
  Cmder `
  curl `
  dbeaver `
  digikam `
  discord `
  ditto `
  docker-desktop `
  Everything `
  Firefox `
  FreeDownloadManager `
  gimp `
  git `
  gnupg `
  google-drive-file-stream `
  GoogleChrome `
  greenshot `
  imagemagick `
  irfanview `
  jre8 `
  mariadb `
  miniconda3 `
  neovim `
  nodejs `
  notepadplusplus `
  okular `
  postman `
  powershell-core `
  powertoys `
  restic `
  rsync `
  sourcetree `
  spotify `
  sql-server-management-studio `
  steam `
  telegram `
  thunderbird `
  transmission `
  transgui `
  treesizefree `
  vcxsrv `
  veracrypt `
  vlc `
  vscode `
  obs-studio `
  winscp

PowerShell

O Windows 10 vem com a versão 5.1 instalada, mas a versão mais nova está disponível no GitHub e pode ser instalada pelo Chocolatey.

Execution Policy

O PowerShell possui as seguintes opções para restringir a execução de scripts:

  • Restricted: Não executa scripts. Usa o PowerShell apenas no modo interativo.
  • AllSigned: Executa apenas scripts assinados por um editor confiável.
  • RemoteSigned: Scripts baixados precisam ser assinados.
  • Unrestricted: Todos os scripts podem ser executados.

Vou configurar usando a opção RemoteSigned:

Set-ExecutionPolicy RemoteSigned

Posh

Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser -AllowPrerelease
Install-Module -Name PSReadLine -AllowPrerelease -Scope CurrentUser -Force -SkipPublisherCheck

Execute notepad $PROFILE:

Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt -Theme powerlevel10k_classic
Set-PSReadlineOption -EditMode vi -BellStyle None

Esses comandos irão configurar o PowerShell para usar o tema powerlevel10k em vi mode. Outros temas podem ser previstos com o comando Get-PoshThemes e no site oficial.

O comando notepad $PROFILE edita o $profile.currentusercurrenthost. Se quiser configurar para outros hosts e usuários, edite o arquivo adequado:

$profile.currentusercurrenthost
C:\Users\Julio\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

$profile.currentuserallhosts
C:\Users\Julio\Documents\PowerShell\profile.ps1

$profile.alluserscurrenthost
C:\Program Files\PowerShell\7\Microsoft.PowerShell_profile.ps1

$profile.allusersallhosts
C:\Program Files\PowerShell\7\profile.ps1

Office

Eu divido uma assinatura do Microsoft 365 Family com outras 5 pessoas. Considero que vale muito a pena, porque além do Office cada um também tem 1 TB de OneDrive.
Além disso, frequentemente encontramos promoções de 1 ano pré-pago do Personal, que pode ser convertido em 9 meses do Family.

O instalador com todos os programas do Office 365 pode ser baixado da sua conta Microsoft. Lá você escolhe o idioma e a versão (32 ou 64-bit).

Também é possível instalar cada programa separadamente pela Microsoft Store, porém eu não recomendo.

E-mails

Eu gosto de usar o Thunderbird como cliente de e-mails.

  1. Para economizar espaço, desmarque a opção de sincronizar as pastas. Assim, apenas os headers serão baixados;
  2. Configure para minimizar para o taskbar;
  3. Cadastre sua chave PGP para assinar e-mails;
  4. Use uma master password para proteger as senhas e chaves salvas no Thunderbird (arquivo key4.db): Tools » Options » Privacy & Security » use a master password.

Para configurar e-mails que usam Two-factor authentication, você pode usar uma senha específica para o app ou fazer a configuração inicial sem senha e depois alterá-la para OAuth2.

Calendário

Para a maioria das pessoas, deixar a aba de e-mail aberta no browser e ativar as notificações deve ser o suficiente, mas eu uso múltiplos calendários e gosto de acompanhá-los no mesmo lugar e receber alertas de eventos no desktop.

O aplicativo padrão do Windows é totalmente integrado com o sistema e permite visualizar os eventos direto na barra de tarefas e receber notificações nativas, mas como eu já uso o Thunderbird para e-mails prefiro também configurá-lo para sincronizar meus calendários.

Apenas exibir o calendário (view only)

O link para seu calendário Google pode ser obtido da seguinte forma:

  1. Entre nas configurações do Google Calendar (https://calendar.google.com/calendar/u/0/r/settings);
  2. Settings for my calendars
  3. Selecione o calendário;
  4. Integrate calendar;
  5. Secret address in iCal format

Cole esse link no Thunderbird: File » New » Calendar » On the Network » iCalendar (ICS).

O calendário será marcado como somente leitura.

Para ver os eventos na tela principal: View » Today Pane » Show Today Pane.

Sincronizar bidirecionalmente (view & edit)

Os add-ons Lightning e Provider for Google possuem essa funcionalidade, porém é possível configurar o Thunderbird para usar CalDav da seguinte forma:

Linguagens

Gosto de deixar meu notebook em inglês, porém é bom adicionar outras linguagens como Português.

Settings » Languages » Preferred Languages » Add a preferred language.

Relógio adicional

Tenho me comunicado bastante com pessoas da Austrália e Noruega. Como o fuso horário é bem diferente, gosto de ter um relógio adicional.

Entre em Date & Time » Add clocks for different time zones e configure o novo relógio.

Personalização

  • Papel de parede

    Em Settings » Personalization, escolha um background. Eu costumo deixar Solid colour preto.

  • Cores

    Default app mode: Dark

  • Lock screen

    Desative mostrar apps na lock screen e background na tela de sign-in.

  • Fontes

    Instale uma Nerd Font.
    Recomendo a Hack NF. Descompacte o pacote, selecione todas as fontes “Windows Compatible”, clique com o botão direito e escolha a opção Install ou Install for all users.

    Instale as Google Noto Fonts para não ter problemas com caracteres indisponíveis (exibidos como retângulos). Prefira a versão hinted.

  • Mostrar/Esconder ícones na área de trabalho

    Temas » Desktop Icon Settings. Eu gosto de deixar Meu computador, Lixeira e pasta do Usuário.

  • Taskbar

    Remova todo o lixo da taskbar. Esconda a search bar.

  • Desative programas que iniciam com o sistema

    Abra o task manager e desative os programas que iniciam com o sistema.

  • File Explorer

    Abra o File Explorer. Selecione View » Options » Change folder and search options. Na tab View, marque/desmarque as opções:

    • Always show menus
    • Display de full path in the title bar
    • Show hidden files, folders, and drives
    • Hide extensions for known file types
    • Hide protected operating system files
  • Remover OneDrive do quick access

      [HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}]
      "System.IsPinnedToNameSpaceTree"=dword:00000000
    
      [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}]
      "System.IsPinnedToNameSpaceTree"=dword:00000000
    
  • Default Apps

    • Music player: VLC
    • Photo viewer: IrfanView
    • Video player: VLC
    • Web browser: Firefox

    Também gosto de associar programas a extensões:

    • .txt → Notepad++
  • Chrome e Firefox

    Sincronize os browsers. Copie as configurações de extensões como o uMatrix, se tiver.

  • Trocar Esc com CapsLock

    É possível fazer pelo Regedit, SharpKeys, PowerToys e muitos outros.

    • Regedit

      Salve o seguinte código como caps_swapescape.reg e o execute:

      Windows Registry Editor Version 5.00
      
      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
      "Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,3a,00,01,00,01,00,3a,00,00,00,00,00
      

      Um mapeamento consiste em um inteiro de 32 bits (dois scancodes de 16 bits cada) no formato little-endian.

      (03,00,00,00) → Indica que virão 3 inteiros (96 bits = 24 dígitos em hex) (01,00) → Escape (3a,00) → CapsLock

    • SharpKeys

      Caps Lock (00_3A) → Escape (00_01)
      Escape (00_01) → Caps Lock (00_3A)

    • PowerToys Enable Keyboard Manager » remap a key

Desktops

Deslize com quatro dedos para cima no touchpad para aparecer a opção de criar novos desktops. Eu gosto de usar 2 desktops.

Terminal

Eu gosto do Cmder e do Windows Terminal (disponível na Microsoft Store). Eles são bastante customizáveis. Uma mudança importante é definir a fonte. Recomendo a Hack NF.

No Terminal (settings.json):


    "actions": [
        {
            "command": {
                "action": "copy",
                "singleLine": false
            },
            "keys": "ctrl+c"
        },
        {
            "command": "paste",
            "keys": "ctrl+shift+v"
        },
        {
            "command": "find",
            "keys": "ctrl+shift+f"
        },
        {
            "command": {
                "action": "splitPane",
                "split": "auto",
                "splitMode": "duplicate"
            },
            "keys": "alt+shift+d"
        },
        {
            "command": {
                "action": "sendInput",
                "input": "\u001b[13;2u"
            },
            "keys": "shift+enter"
        },
        {
            "command": {
                "action": "sendInput",
                "input": "\u001b[13;5u"
            },
            "keys": "ctrl+enter"
        },
        {
            "command": {
                "action": "sendInput",
                "input": "\u001b[13;6u"
            },
            "keys": "ctrl+shift+enter"
        },
        {
            "command": {
                "action": "sendInput",
                "input": "\u001b[32;2u"
            },
            "keys": "shift+space"
        },
        {
            "command": {
                "action": "sendInput",
                "input": "\u001b[32;5u"
            },
            "keys": "ctrl+space"
        },
        {
            "command": {
                "action": "sendInput",
                "input": "\u001b[32;6u"
            },
            "keys": "ctrl+shift+space"
        }
    ]

"defaultProfile": "{2c4de342-38b7-51cf-b940-2309a097f518}",

    {
        "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
        "hidden": false,
        "name": "Ubuntu",
        "fontFace": "Hack NF",
        "source": "Windows.Terminal.Wsl"
    },

    {
        "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
        "hidden": false,
        "name": "PowerShell",
        "fontFace": "Hack NF",
        "source": "Windows.Terminal.PowershellCore"
    }

Eu altero o comando paste de ctrl+v para ctrl+shift+v para não quebrar o visual mode no vim.

Sandbox

Para testes de aplicações, especialmente de origem duvidosa, é recomendável utilizar um sistema isolado: sandboxes ou máquinas virtuais.

Para casos nos quais não é necessário ou desejável persistir instalações e configurações e a versão atual do Windows funciona, uma sandbox é mais prática que VMs. Não precisa baixar imagens, ela abre mais rápido, ocupa menos espaço em disco, etc.

Sandboxing pode ser feito com programas como o Sandboxie, porém o Windows 10 Professional já vem com esse recurso nativamente, basta ativar ser ativado.

A configuração é bem simples e a perfomance é boa. A Windows Sandbox utiliza tecnologia de Windows Containers que, por usa vez, utiliza Hyper-V.

A Sandbox pode ser ativada nas Windows Features ou com o seguinte comando no PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName "Containers-DisposableClientVM"

A configuração é feita via arquivos XML com extensão .wsb, como o seguinte:

<Configuration>
  <VGpu>Disable</VGpu>
  <Networking>Disable</Networking>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\Share</HostFolder>
      <SandboxFolder>C:\Share</SandboxFolder>
      <ReadOnly>true</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <AudioInput>Disable</AudioInput>
  <VideoInput>Disable</VideoInput>
  <ProtectedClient>Enable</ProtectedClient>
  <PrinterRedirection>Disable</PrinterRedirection>
  <ClipboardRedirection>Disable</ClipboardRedirection>
  <MemoryInMB>8192</MemoryInMB>
  <LogonCommand>
    <Command>explorer.exe C:\Share</Command>
  </LogonCommand>
</Configuration>

Esse exemplo inicia uma sandbox em modo protegido, com 8 GB de RAM, acesso de leitura à pasta C:\Share e sem acesso a rede, microfone, webcam, impressora nem área de trabalho.

Virtualização: Hyper-V

O Microsoft Sandbox é ótimo para testes rápidos e para executar aplicativos portáteis, porém ele não cobre o caso de uso em que é necessário persistir modificações no sistema. Nesses casos devemos usar máquinas virtuais.

Se você tiver um servidor potente, pode valer a pena instalar um gerenciador de máquinas virtuais como o Proxmox VE e usar as VMs por acesso remoto. Dependendo do caso, subir uma VM na nuvem também é uma boa ideia.

Para instalações locais no Windows também existem várias opções de hypervisors, que podem ser de dois tipos:

  • Hypervisor tipo 1:
    • Bare-metal, native
    • Acessa o hardware diretamente
    • Melhor performance
    • Exemplos: VMware ESXi (VMware vSphere), Microsoft Hyper-V, Oracle VM, Citrix Hypervisor
  • Hypervisor tipo 2:
    • Hosted
    • Roda sobre o sistema operacional
    • Mais fáceis de gerenciar
    • Exemplos: VMware Fusion, VMware Workstation Pro, Oracle VM VirtualBox

Dizem que o VMware é o que possui mais funcionalidades, porém eu tenho usado o Hyper-V que vem com o Windows Pro principalmente pelo custo.

É possível instalar Linux, FreeBSD e Windows no Hyper-V. Um detalhe é que Windows virtualizado também precisa de licença.

Dicas:

  • Prefira usar a Generation 2.
  • Ativar TPM: Security » Enable Trusted Platform Module
  • Crie checkpoints (snapshots) antes de qualquer mudança
  • Instalação offline (Windows 11):
    • Pressione Shift+F10 para abir o terminal
    • Execute C:\Windows\System32\oobe\BypassNRO.cmd
    • Clique “I don’t have internet”
    • Clique ““Continue with limited setup”
  • Em enhanced session mode é possível copiar e colar arquivos entre host e VM
  • É possível montar discos virtuais “.vhdx” para compartilhar arquivos. Lembre de desmontá-los antes de iniciar as VMs.
  • Ative Guest services

Placa de vídeo Nvidia no Hyper-V

Atualizado em Jan/2023. Usando Windows 11.

Devido a uma falha de segurança, a Microsoft desativou a opção “RemoteFX vGPU” que permitia com que várias VMs compartilhassem uma GPU.

No Windows Server existe a opção de alocar uma GPU completamente para uma VM, o chamado GPU passthrough via Discrete Device Assignment (DDA). Porém apenas Enterprise GPUs como a Nvidia Quadro funcionam.

A única solução atual é GPU Paravirtualization/GPU Partitioning. Veja os seguintes links para mais informações:

WSL2

Depois de ter ativado o “Windows Subsystem for Linux” nas Windows Features, ainda é preciso configurar o ambiente.

  1. Instale a atualização do kernel

  2. Defina o WSL2 como padrão: wsl --set-default-version 2

  3. Instale o Ubuntu da Microsoft Store

  4. Verifique se a versão do WSL é a 2: wsl --list --verbose

    Se sua versão for a 1, execute wsl --set-version Ubuntu 2.

  5. Clone os dotfiles (https://github.com/jbsilva/dotfiles) e crie os links para os arquivos de configuração

    ln -s dotfiles/.zsh
    ln -s dotfiles/.zshrc
    ln -s dotfiles/.gitconfig-wsl .gitconfig
    ln -s dotfiles/.p10k.zsh
    ln -s dotfiles/.config
    
  6. Instale Python, Neovim e outros programas:

    sudo add-apt-repository ppa:neovim-ppa/unstable
    sudo apt-get update
    sudo apt upgrade
    sudo apt install \
      build-essential \
      python3-venv \
      zsh \
      renameutils \
      ack \
      exuberant-ctags \
      neofetch \
      p7zip-full \
      neovim \
      hugo \
      texlive-xetex \
      texlive-lang-portuguese \
      latexmk \
      oathtool \
      sshfs
    
    sudo apt update
    sudo apt install make build-essential libssl-dev zlib1g-dev libbz2-dev \
      libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev \
      xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
    
    wget https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh
    bash Mambaforge-Linux-x86_64.sh
    

    O repositório do Ubuntu nem sempre tem as versões mais novas dos pacotes.
    Alternativas:

    • Repositórios oficiais
    • Repositórios da comunidade
    • Snap
    • Appimage
    • Pacotes .deb
    • Executáveis pré-compilados
    • Compilar código fonte

    O Hugo, por exemplo, pode ser intalado com um simples comando:

    CGO_ENABLED=1 go install --tags extended github.com/gohugoio/hugo@latest
    
  7. Defina o shell padrão: chsh -s $(which zsh)

As VHDs (virtual hard disk) do WSL2 são salvas em C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName]. Exemplo: C:\Users\Julio\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx.

X server

Instale o VcXsrv e libere-o no firewall (Windows Defender).
Marque a opção Disable access control.

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0.0

Obs.: a melhor forma de fazer o clipboard funcionar no Neovim é com o win32yank.exe. Ele é instalado junto com o Neovim para Windows, porém pode ser instalado manualmente:

mkdir ~/bin
curl -sLo/tmp/win32yank.zip https://github.com/equalsraf/win32yank/releases/download/v0.0.4/win32yank-x64.zip
unzip -p /tmp/win32yank.zip win32yank.exe > /tmp/win32yank.exe
chmod +x /tmp/win32yank.exe
mv /tmp/win32yank.exe ~/bin

Execute :set clipboard=unnamedplus no Neovim.

Docker com WSL2

Baixe o Docker Desktop (eu baixo pelo Chocolatey).
Marque as opções “Use the WSL 2 based engine” e “Expose daemon on tcp://localhost:2375 without TLS”.

Isso já é suficiente para usar o docker normalmente no terminal do Ubuntu.

Visual Studio Code com WSL2

O VSCode instalado no Windows tem integração nativa com o WSL2.

Gitkraken

O Gitkraken é uma boa GUI para o Git no Linux. Uma alternativa sofware livre é o GitAhead.

sudo apt update
sudo apt install -y libgbm-dev libnotify4
wget https://release.gitkraken.com/linux/gitkraken-amd64.deb
sudo dpkg -i ./gitkraken-amd64.deb
sudo apt-get install -f

Audio

Programas como o Virtual Audio Cable e Voicemeeter são úteis para configurações com múltiplos auto-falantes e para fazer streaming. As versões gratuitas de ambos podem ser instaladas pelo Chocolatey.

  1. Entre em Control Panel\Hardware and Sound » Sound;
  2. Em Playback, defina o VoiceMeeter Input como o dispositivo padrão e o VoiceMeeter Aux Input como o dispositivo padrão de comunicação;
  3. Em Recording, defina o VoiceMeeter Output como o dispositivo padrão e o VoiceMeeter Aux Output como o dispositivo de comunicação padrão;
  4. Entre na aba Advanced nas propriedades de cada dispositivo e defina o sample rate (Ex.: 24 bit, 48000 Hz). O sample rate deve ser configurado para o mesmo valor no Voicemeeter (em Menu » System settings » Preferred Main SampleRate).
  5. Exemplo de configuração do Voicemeeter Banana:
    • Hardware Input 1: Microfone do notebook
    • Hardware Input 2: Microfone do headset
    • Hardware Input 3: CABLE Output (VB-Audio Virtual Cable)
    • Voicemeeter VAIO: Saída Desktop » A1, B1
    • Voicemeeter AUX: Saída Calls » A1
    • A1: WDM: Speakers / Headphones
    • A2: WDM: Headset
    • A3: WDM: TV ligada no HDMI

Obs. 1: Eu só configuro o microfone do meu headset bluetooth quando vou utilizá-lo, pois economiza energia e posso utilizar o fone no modo com maior qualidade de som. Obs. 2: Tive problema no Spotify após instalar o Voicemeeter. Resolvi reinstalando o Spotify.

Streaming

Para chamadas de vídeo nas quais quero compartilhar o som sendo reproduzido no computador além do meu microfone, mas sem o som da própria chamada (voz dos outros participantes):

  • No Meets/Teams/Discord/Skype:
    • Microfone: VoiceMeeter Output
    • Speaker: VoiceMeeter Aux Input
  • No VoiceMeeter:
    • Mic PC: B1
    • Desktop (Voicemeeter VAIO): A1, B1
    • Calls (Voicemeeter AUX): A1

Julio Batista Silva
Julio Batista Silva
Engenheiro de Dados

Eu sou um engenheiro de computação apaixonado por ciência, tecnologia, fotografia e idiomas. Atualmente trabalhando como Engenheiro de Dados na Alemanha.