Windows

April 18, 2021   

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.

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.

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”

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 Microsoft OneDrive.

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 uso uma versão antiga do Office. Instalo apenas Word, Excel e PowerPoint e ativo com a chave. Também instalo os language packs para português e inglês.

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 SharpKeys ou pelo PowerToys.

    • 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):

"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"
        }

Sandbox

Para testes de aplicações, especialmente de origem duvidosa, é recomendável utilizar uma sandbox.

Anteriormente eu usava o VirtualBox para essa finalidade, porém o Windows 10 Professional já vem com esse recurso. A configuração mais simples e a performance é bem maior.

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.

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
     $ 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 zsh renameutils ack exuberant-ctags neofetch p7zip-full neovim hugo texlive-xetex latexmk oathtool sshfs
    
     $ wget https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh
     $ bash Mambaforge-Linux-x86_64.sh
    
  7. Defina o shell padrão: chsh -s $(which zsh)

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



comments powered by Disqus