DEV Community

Cover image for Explorando as Possibilidades: Wezterm e o Mágico Efeito Parallax no Seu Terminal Linux
Hudson Arruda
Hudson Arruda

Posted on

Explorando as Possibilidades: Wezterm e o Mágico Efeito Parallax no Seu Terminal Linux

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:


wezterm imgcat path/to/image
Enter fullscreen mode Exit fullscreen mode

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.


local wezterm = require 'wezterm'
local dimmer = { brightness = 0.2 }
local config = {}
Enter fullscreen mode Exit fullscreen mode

-- ... (configurações adicionais)

config.background = {
 {
    source = {
      File = './wallpapers/blackhole.png',
    },
    repeat_x = 'Mirror',
    hsb = dimmer,
  },
}
return config
Enter fullscreen mode Exit fullscreen mode

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)

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
Enter fullscreen mode Exit fullscreen mode

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

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more →

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more