O intuito deste artigo é instruir o usuário a realizar a instalação e configuração do Powershell com Oh-My-Posh no Windows 10/11, tornando esse Shell poderoso e responsivo, facilitando a sua produtividade no dia a dia para desenvolvimento de software.
Após as alterações e extensões instaladas o resultado final será semelhante ao exemplo da imagem abaixo:
Analisando a imagem acima, podemos perceber alguns detalhes curiosos nesse Powershell, primeiro contando com o privilégios a nível de execução através do comando sudo, seguido do gerenciador de pacotes chocolatey, na sequencia os nomes dos programas e por fim o verificador para ignoramos confirmações manuais -y.
Fora os detalhes mencionado anteriormente, conseguimos facilmente dizer que esse Powershell **tá com cara de um terminal **ZSH **ou **Fish **e até mesmo dizer que se trata de um **KDE **com o tema do **Windows 11, mas isso meus caros colegas se trata de Windows.
Para que essa mágica aconteça, temos que instalar uma série de programas que rodarão no backend do nosso **Powershell **propiciando assim uma maior produtividade para o usuário.
Instalando o Powershell 7.3.2 — A versão estável mais recente (no momento desse artigo):
Antes de mais nada, o primeiro passo que devemos realizar é acessar o site da microsoft clicando no endereço abaixo:
Instalar o PowerShell no Windows
No momento de construção desse artigo a versão mais recente e estável disponível é o Powershell 7.3.2 que pode ser baixado no link acima, para plataformas x86 (processadores de 32 bits) e *x64 *(processadores de 64 bits).
Basta selecionar a opção que melhor atenda sua plataforma e realizar o download do pacote msi:
Para quem os mais puristas e gosta de usar o terminal, também é possível instala-lo através do gerenciador de pacotes nativo do Windows 11 chamado de Winget, para isso vamos iniciar o nosso **Powershell **como administrador e rodar o comando abaixo:
winget Install Microsoft.PowerShell
Importante: Caso tenha realizado a instalação pelo método padrão do Windows lembre-se de habilitar as atualizações via Windows Update.
Feito isso vamos instalar um gerenciador de pacotes competente **para **Windows **que é o **Chocolatey.
Instalando o Chocolatey, um gerenciador de pacotes poderoso e competente para o Windows
Quando decidi utilizar o Windows **em conjunto com o meu **Linux **via **Dual Boot para trabalhar com Programação **e **DevSecOps, senti falta de um gerenciador de **pacotes **que visasse facilitar o meu dia a dia, sem ter que ficar indo de site em site através dos programas especifico para baixa-lo manualmente e o pior manter vários pacotes **desatualizados **no meu sistema, seja por falta de tempo ou esquecimento de verificar pacote por pacote para saber quando atualizar.
É nítido os esforços da Microsoft **em desenvolver um gerenciador de pacote "a lá Linux" para o **Windows, onde no Windows 11 contamos com o Winget mas ele ainda está muito "prematuro" para garantir uma experiência satisfatória no dia a dia, diante esse impasse entra um projeto já antigo para Windows **chamado de **Chocolatey, que busca na sua essência trazer uma experiência "a lá Linux" para o Windows **sem a necessidade do usuário ter que acessar o **Google e buscar programa por programa de forma manual.
O Chocolatey **é um gerenciador de pacote assim como o **Apt (Debian e Ubuntu), Dnf e Yum (CentOS e Fedora), Pacman (Arch Linux e Manjaro) ou Zypper (Opensuse), que conta com uma infinidade de pacotes em seu repositório que facilitará muito a administração e manutenção do nosso Windows.
O Site do **Chocolatey **pode ser consultado no endereço abaixo:
Chocolatey Community Repository
Para instalar o Chocolatey **no seu **Windows **vamos executar dois comandos no **Powershell **recém instalado como **Administrador:
Observação: Ao clicar no menu iniciar e pesquisar por Powershell será exibido dois Powershell um que a versão desatualizada que vem na instalação do Windows 11 e o outro que foi o que instalamos no passo acima (atualizado). Vamos selecionar o **Powershell **abaixo conforme a imagem:
Selecionado o **Powershell **vamos executa-lo como administrador e executar os comandos a seguir:
Set-ExecutionPolicy AllSigned
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Com o **Chocolatey **instalado vamos reiniciar o **Windows **apenas para garantir que não ocorra nenhum erro na instalação dos pacotes.
Com o computador reiniciado, chegou a hora de por a "mão na massa" e instalar as extensões e programas necessários para turbinamos nosso Powershell.
Instalando o GOW, um programa para entender comandos Linux no Windows
Se você assim como eu sente a falta de comandos Linux **ao utilizar o **Powershell **como o **ls, cat, grep entre outros, saiba que tem um pacote que resolve os nossos problemas.
Existe um projeto comunitário chamado Gow **que trás alguns comandos populares **Unix-Like para o Windows **visando trazer uma melhor experiência para o usuário que assim como eu tem familiaridade com o **Terminal.
A página oficial do projeto pode ser acessada no **Github **a seguir:
Gow - The lightweight alternative to Cygwin
Podemos realizar a instalação do **Gow **de duas formas, a tradicional "a lá Windows" e através do gerenciador de pacote **Chocolatey **que instalamos anteriormente. No nosso caso vamos usar o **Chocolatey **para vermos o quão poderoso e facilitador é esse gerenciador.
O primeiro passo é abrir o **Powershell **mais recente como **administrador **e executar o comando a seguir:
choco install gow -y
Feito isso basta aguardar, pois o Chocolatey realizará o Download **e adicionará o programa ao **Path(Variáveis de ambiente do Windows).
Concluída a instalação, basta fechar e abrir novamente o seu Powershell que o Gow **já estará funcionando perfeitamente no **backend.
Instalando pacote de fontes MesloLGS, deixando nosso terminal mais agradável
Uma grande novidade que surgiu nas versões mais recente do Windows 10 nos últimos anos, foi a implementação do Windows Terminal que é um emulador completo de Terminais, onde com um simples clique podemos executar o Cmder, Cygwin, Cmd, Git, Powershell, WSL2 (farei um outro artigo sobre WSL2) ou outro **Terminal **a gosto do usuário.
Essa solução foi um "boom" para aqueles usuários que assim como eu, gostam de utilizar a sua workstation(computador), para as mais diversas atividades, no meu caso usar a internet, jogar, trabalhar com edição de imagens e vídeos e programar.
Apesar dos esforços promovidos pela Valve **e pela comunidade **Open-Source em trazer jogos para o Linux *terem avançado muito nos últimos anos com a adição do **Proton **e do **Lutris *é inegável que no quesito de jogos o Windows se sobressai, sem a necessidade de "hackear*" e "perder tempo" tentando fazer um jogo funcionar onde em alguns casos terá o desempenho "capado" devido a camada de compatibilidade do **Wine*, o que é inviável para quem utiliza o computador para **games **como eu.
Diante isso, procurei uma forma de juntar o útil ao agradável e o Windows Terminal me trouxe essa possibilidade, porém a estética original desse terminal não me agradava por ser muito "simplista" queria algo customizado como faço nos meus ambientes **Linux **e nisso vi que dava para melhorar mais.
Tem um pacote de fontes, que costumo utilizar quando estou usando o Linux **no **Emulador de Terminal Tilix que são as fontes MesloLGS **que dão um visual diferenciado para o meu **ZSH **com **Powerlevel10k.
Para isso eu baixo as fontes do repositório do **Powerlevel10k **que pode ser acessada abaixo:
No Repositório do **Powerlevel **eu procuro baixar as fontes a seguir:
Com o **Download **realizado, basta acessamos a pasta onde as fontes foram salvas, clicar com o mouse direito e mandar instalar como administrador, conforme a imagem a seguir:
Após instalamos as fontes acima é hora de configurar o nosso Windows Terminal para utilizar esse pacote recém instalado. Para isso vamos abrir o Windows Terminal e vamos clicar no ícone de da ▼ e na sequência clicar em configurações:
Na nova tela, vamos selecionar padrões → aparência → tipo de fonte e vamos definir a fonte como **MesloLGS **NF e depois salvar como o exemplo a seguir:
Instalando pacotes Unix-Like via Chocolatey
Se você assim como eu é um assíduo usuário de Terminal, vai sentir a falta de alguns pacotes que fazem parte do dia a dia de um usuário Linux **como **Awk, Curl, Git, Nano, Neovim, Nmap e Vim, que não vem por padrão no Powershell.
O lado bom é que com o Chocolatey conseguimos reverter esse cenário facilmente, instalando os pacotes essenciais (para meu uso) no nosso Powershell **para isso vamos rodar o comando a seguir como **administrador:
choco install awk curl git nano neovim nmap vim -y
Feito isso nosso **Powershell **estará apto para executar os pacotes acima via linha de comando.
Instalando o Scoop e configurando-o nas variáveis de ambiente do Windows
Apesar do Chocolatey **ser um ótimo gestor de pacotes, o **Scoop **será capaz de nos proporcionar alguns pacotes extras que fornecerá uma experiência totalmente **Linux-Like no nosso Powershell, com o uso do **sudo **por exemplo.
Para realizar a instalação vamos executar o comando abaixo:
iwr -useb get.scoop.sh | iex
Concluída a instalação acima é hora de configuramos o Scoop **como uma variável de ambiente do **Windows para que possamos utiliza-lo via CLI.
Para isso vamos digitar variáveis de ambiente no menu iniciar conforme a imagem abaixo:
Depois vamos clicar em variáveis de ambiente:
Selecionando a opção acima, vamos nos deparar com dois blocos de opções, a primeira parte diz respeito a configurações do usuário, já a outra são configurações do sistema. No segundo bloco de opções vamos localizar a opção **Path **e vamos edita-la:
Agora no canto direito vamos clicar em **novo **e adicionar uma nova entrada conforme a imagem abaixo:
Agora no campo recém criado vamos colar o conteúdo a seguir:
~\scoop\shims
Feito isso basta clicar em em ok (salvar), fechar o nosso Powershell **e vamos usar o **Windows Terminal.
Vamos iniciar o Windows Terminal como usuário comum e instalar mais alguns pacotes essenciais para o nosso uso do Powershell incluindo o comando sudo que auxiliará muito os próximos passos.
Para isso vamos rodar o comando a seguir:
scoop install sudo jq gcc fzf
Feito isso já conseguimos usar o comando sudo **para controlar o nosso gestor de pacotes **Chocolatey.
Configurando e instalando o Oh-My-Posh
Se você já utilizou **Linux **deve saber que temos diversos **shells **para cada gosto pessoal que podemos utilizar, dentre os mais famosos temos o **bash **padrão na maioria das distribuições linux, **zsh **um shell customizado com temas e extensões voltadas a produtividade e o **fish **que é similar ao **zsh **com um painel via web para configurações.
O Oh-My-Posh podemos dizer que é o **Zsh **para o **Powershell **de uma forma simplista, ele vai tornar o nosso **Powershell **elegante, além de adicionar várias funcionalidades que auxiliarão e muito a nossa produtividade.
Para instalamos o Oh-My-Posh devemos executar os comandos abaixo no **Powershell **como administrador:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
sudo choco install oh-my-posh -y
Install-Module oh-my-posh -Scope CurrentUser
Vamos entender um pouco os comandos acima:
- O primeiro comando é responsável por aplicar as políticas de assinatura remota para o usuário atual permitindo a execução de comandos remotos.
- O segundo comando é responsável por instalar o Oh-My-Posh no **Windows **e adiciona-lo as variáveis de ambiente.
- O terceiro comando é responsável por habilitar o Oh-My-Posh para o usuário atual (sua conta), semelhante ao comando chsh -s $(which zsh) do Linux.
Habilitando o Git no Powershell via Oh-My-Posh
Agora vamos habilitar a sintaxe de comandos do git **no nosso **Powershell para ser utilizado no Oh-My-Posh para isso vamos executar o comando a seguir:
Install-Module posh-git -Scope CurrentUser
Após executar o comando acima seremos capaz de executar os comandos Git (Init, Push, Pull Revert, Rebase, Cherry-pick).
PowershellGet um Wget para o Windows
Um comando frequentemente utilizado por usuários do Linux **é o **wget **que é responsável por realizar **Download **de pacotes, páginas e conteúdo via **CLI. Vamos instalar um wget **que funcionará perfeitamente no **Windows com o comando a seguir:
Install-Module -Name PowerShellGet -Force
PSReadline turbinando nossa linha de comando
Quem utiliza o Zsh **já deve estar familiarizado com algumas extensões que auxiliam na produtividade como o **zsh-autosuggestions zsh-completions e fast-syntax-highlighting. O PSReadline **é responsável não só por adicionar essas extensões, pois adiciona uma séries de beneficies como **cores **para os comandos (dissociando **cores dos comandos corretos e errados), experiência multilinhas, intellisense preditivo e ajudas para os comandos (help).
Vamos instala-lo executando o comando a seguir:
Install-Module -Name PSReadline -AllowPrerelease -Scope CurrentUser -Force -SkipPublisherCheck
Alternativa ao Exa para Powershell
Para quem gosta de customização estilo "Unix-Porn" já deve ter utilizado o Exa **que acaba por trazer ícones no terminal para dissociar arquivos e pastas. Para **Windows **temos uma alternativa que deixa o comando **ls tão agradável como **Exa **conforme a imagem abaixo:
Como podemos observar na imagem acima, o visual do nosso terminal ficou totalmente personalizado e agradável isso se dar ao pacote Terminal-Icons.
Vamos instalar executando o comando abaixo:
Install-Module -Name Terminal-Icons -Repository PSGallery
PSFzf uma poderosa ferramente de pesquisa no seu Powershell
O PSFzf é uma poderosíssima ferramenta de pesquisa para o Powershell, que permite busca em pesquisa dentro do terminal com a combinação da tecla ctrl + r.
Para instalamos vamos executar o comando a seguir:
Install-Module PSFzf -Scope CurrentUser
Z o famoso Change Directory(CD) para Powershell
Um comando simples porém muito útil presente nos **BSD **e **Linux **para alternamos entre diretórios é o **CD **apesar do **Powershell **reconhecer o comando **CD **nativamente, em alguns casos ele não responde conforme o esperado. Para isso vamos garantir que tudo funcione corretamente como o uso de um **Linux **nativo instalando o pacote abaixo:
Install-Module -Name Z -Force
Módulos Azure Cloud (etapa opcional)
Caso você trabalhe com soluções Azure Cloud ou esteja estudando a respeito, saiba que o Powershell permite a instalação do pacotes necessários via CLI.
Para isso basta executar os comandos a seguir:
Install-Module Az.Accounts -Scope CurrentUser
Install-Module Az.Tools.predictor -Scope CurrentUser
Instalando o Tema Pwsh10k, tema semelhante ao Powerlevel10k para Windows.
Um dos temas que gosto de sempre ter em meus terminais quando estou utilizando o Linux é o Powerlevel10k, que além de ser um tema elegante trás algumas informações que auxiliam em muito na navegação entre diretórios.
Procurando uma alternativa similar ao Powerlevel10k **para o **Powershell encontrei um projeto chamado Pwsh10k que é basicamente o Powerlevel10k **para **Powershell.
Podemos conferir o projeto clicando no link abaixo:
Pwsh10k - A powershell theme based off of Powerlevel10k
Para realizar a instalação de tema vamos executar os seguintes comandos:
curl https://raw.githubusercontent.com/Kudostoy0u/pwsh10k/master/pwsh10k.omp.json --output pwsh10k.omp.json
Copy-Item -Path pwsh10k.omp.json -Destination $HOME
Hora de criar um arquivo de perfil para o Powershell
Uma vez com todos os pacotes acima instalado é o momento de criamos um arquivo de perfil para chamar todas essas extensões sempre que inicializamos o nosso Powershell *semelhante a um arquivo *.bashrc ou .zshrc que temos no Linux.
Para isso vamos criar o arquivo manualmente executando o comando a seguir:
New-item -type file -force $profile
O comando acima é responsável por realizar a criação de um arquivo de configuração possuindo o seu perfil (usuário do Windows) passado para a variável $profile. Esse arquivo será responsável por toda e quaisquer alterações que queremos realizar para inicialização do nosso Powershell.
Agora vamos editar esse arquivo em branco **recém criado com o **notepad:
notepad $profile
Agora basta colar o conteúdo a seguir no Bloco de Notas:
`# Powershell default profile for Poweruser
Import-Module posh-git
Import-Module oh-my-posh
Optional Step For Azure DevOps
Import-Module Az.Tools.Predictor
Set-PoshPrompt -Theme ~/pwsh10k.omp.json
Autocomplete, keybinds and history
Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
Set-PSReadlineOption -HistorySearchCursorMovesToEnd
Autosuggestions for PSReadline
Set-PSReadlineOption -ShowToolTips
Set-PSReadlineOption -PredictionSource History
Terminal-Icons
Import-Module Terminal-Icons
Fzf
Import-Module PSFzf
Set-PsFzfOption -PSReadLineChordProvider 'Ctrl+f' -PSReadLineChordReverseHistory 'Ctrl+r'
Alias (Optional)
Set-Alias vim nvim
Set-Alias g git
Set-Alias ll ls
Set-Alias grep findstr
Set-Alias tig 'C:\Program Files\Git\usr\bin\tig.exe'
Set-Alias less 'C:\Program Files\Git\usr\bin\less.exe'
Ultilities (Optional)
function which ($command) {
Get-Command -Name $command -ErrorAction SilentlyContinue |
Select-Object -ExpandProperty Path -ErrorAction SilentlyContinue
}
clear`
Feito isso basta salvar esse arquivo com ctrl + s, fechar o Bloco de Notas, fechar o Powershell **e abrir o **Windows Terminal, para ver as alterações na prática.
Adicionando transparência no Windows Terminal
Ao abrir o seu Windows Terminal você notará que o fundo não estar transparente, vamos resolver essa questão.
Antes de editamos o arquivo de configuração do Windows Terminal vamos instalar o Visual Studio Code para facilitar a edição do arquivo json de configurações do Windows Terminal, para isso vamos executar o comando abaixo:
sudo choco install -y
Será exibida uma janela se deseja executar o programa, basta selecionamos sim.
Uma vez com o Visual Studio Code instalado, vamos abrir o arquivo de configuração do Windows Terminal, para isso vamos clicar no ícone ▼ e na opção configurações:
Nessa nova tela, vamos criar na última opção a sua esquerda, onde vamos localizar a opção abrir o arquivo Json conforme a imagem a seguir:
Ao clicar na opção acima o Windows **vai exibir uma caixa de dialogo para escolhemos o editor de arquivo da nossa preferência, agora basta escolher o **Visual Studio Code recém instalado.
Logo ao abrir o Visual Studio Code temos que dar permissão de edição no arquivo e para isso vamos clicar na opção que permitirá editar o arquivo:
Clicando em Gerenciar o Visual Studio Code exibirá uma nova página se desejamos confiar no diretório, basta selecionar a opção **confiar **conforme a imagem:
Após os passos acima seremos capaz de editar e salvar o arquivo settings.json, agora vamos localizar a seção **default **e colar o conteúdo a seguir:
"opacity": 75,
"useAcrylic": false
O seu arquivo deve ficar conforme a imagem a seguir:
Adicionando Temas no Windows Terminal (Bônus)
O Windows Terminal além de transparência, permite que o usuário customize os temas de cores conforme a sua preferência, onde ele pode configurar um tema totalmente customizado no arquivo settings.json ou utilizar um tema já configurado.
Caso você queira consultar os temas disponíveis, temos o site abaixo com alguns temas **que basta copiar e colar no seu arquivo **settings.json:
Esse site é bastante útil pois temos uma seleção de Temas **disponíveis além de uma exibição de como ficará o seu terminal, um dos temas que gosto bastante de utilizar é o **Blue Matrix conforme a imagem abaixo:
Uma vez selecionado o tema **desejado, basta clicamos na opção **Get theme destacada em **azul **para copia-lo.
Com o tema copiado, vamos adicioná-lo no nosso arquivo de configuração na seção schemes, no final do arquivo conforme a imagem abaixo:
Antes de colar o tema é necessário adicionar uma virgula(,) logo após a chave(}) conforme o exemplo abaixo:
Agora vamos colar nosso tema na linha abaixo da Virgula(,):
Alterado o arquivo, vamos salvar com a combinação de teclas ctrl +s ou clicando em arquivo → salvar.
Pronto agora basta fechar e abrir novamente o Windows Terminal que ele estará configurado e teremos o visual a seguir:
Bônus - para quem gosta de vídeos segue o tutorial detalhado
Top comments (0)