Explorando as Possibilidades: Wezterm e o Mágico Efeito Parallax no Seu Terminal Linux
Tags: wezterm, linux, shell, i3
Published: 2024-01-12 03:00:00

Esta dica destina-se a quem é apaixonado por Linux e gosta de personalizar seu terminal com atalhos e estilos únicos. Neste artigo, falarei sobre o Wezterm, um novo terminal e multiplexador extremamente eficiente e rápido, desenvolvido em Rust. Além disso, vou explicar como configurar um modelo de parallax inspirado no filme "Interestelar". Para os mais apressados, o link para o repositório está disponível ao final do artigo.

## Um pouco sobre mim:

Meu nome é Hudson, sou desenvolvedor front-end e mobile na OPEN Data Center. Busco compartilhar conhecimentos na minha área e em outras que tenho interesse, como backend, DevOps, Linux e automações.

## O que é o Wezterm:

O Wezterm é uma alternativa a terminais como Xterm, Alacritty, Kitty e Git Bash. Ele oferece diversas funcionalidades integradas, como o imgcat para visualização de imagens, por exemplo:

```bash

wezterm imgcat path/to/image
```
Além disso, possui um sistema completo de multiplexação de telas, semelhante ao Tmux ou Screen. Pessoalmente, não o utilizo, pois já estou acostumado com o Tmux.

## O que é o efeito parallax:

O efeito parallax consiste em um conjunto de imagens ou padrões que rotacionam ou se movem em velocidades distintas, criando um efeito tridimensional. Um exemplo pronto pode ser visualizado no próprio site do Wezterm: parallax-example.

## Criando o efeito parallax:

Para criar o efeito parallax, é necessário acessar o arquivo .wezterm.lua. Não vou entrar nos detalhes da instalação, mas deixarei o link detalhado da documentação no final do artigo. Se estiver usando Arch Linux, basta executar sudo pacman -S wezterm.

## Adicionando uma imagem de fundo:

Existem várias maneiras de criar um efeito parallax. Considerando o modelo que desejo criar e para evitar grandes mudanças, escolhi uma imagem mais escura para o fundo e ajustei o brilho para 0.2.

```lua

local wezterm = require 'wezterm'
local dimmer = { brightness = 0.2 }
local config = {}
```
-- ... (configurações adicionais)
```
config.background = {
 {
    source = {
      File = './wallpapers/blackhole.png',
    },
    repeat_x = 'Mirror',
    hsb = dimmer,
  },
}
return config
```
## Configurando partículas:

Após vários testes, optei por usar uma imagem de estrelas com resolução suficiente. Inicialmente, copiei o objeto do fundo e mudei o source para as partículas definidas.

O código final ficará próximo disso:

-- ... (código anterior)

```lua
config.background = {
 {
    source = {
      File = './wallpapers/blackhole.png',
    },
    repeat_x = 'Mirror',
    hsb = dimmer,
  },
  {
    source = {
      File = './wallpapers/stars2.jpg',
    },
    opacity = 0.3,
    width = '100%',
    repeat_x = 'Mirror',
    repeat_y = 'Repeat',
    hsb = dimmer,
    attachment = { Parallax = 3.0 },
  },
  -- (outros ajustes de partículas)
}
return config
```
O link para o arquivo completo e as imagens utilizadas estão no meu repositório no GitHub: Repositório.

Se gostou, por favor, avalie para me motivar a criar mais conteúdo:

GitHub: Hudson3384
LinkedIn: Hudson Arruda Ribeiro
LeetCode: Hudson3384