Como usar IntelliJ IDEA ou Android Studio no Wayland
Tags: wayland, linux, intellij, java
Published: 2024-07-04 22:57:42

## Motivação
Como eu uso bastante o IntelliJ IDEA e Android Studio no [Fedora](https://fedoraproject.org/), eu estava um pouco incomodado com a aparência borrada de ambas IDEs, pois adotei definitivamente o [_Wayland_](https://wayland.freedesktop.org/) como padrão.


## Considerações
Atualmente o wayland com IntelliJ está em fase experimental (beta), então pode existir bugs visuais.

 - SO:
   - Fedora 40
   - [GNOME Shell 46.2](https://www.gnome.org/)
 - IntelliJ
   - Versão flatpak
 - Java
   - jbr jcef 21.0.3 linux x64 b509.4


## Obtendo Java compatível.
Para usar o IntelliJ no Wayland no momento é preciso de uma versão de desenvolvimento do JDK a partir da v21. Para baixar uma versão de desenvolvimento siga para o link https://github.com/JetBrains/JetBrainsRuntime/releases.

A versão que utilizarei nesse tutorial será a [jbr_jcef-21.0.3-linux-x64-b509.4.tar.gz](https://cache-redirector.jetbrains.com/intellij-jbr/jbr_jcef-21.0.3-linux-x64-b509.4.tar.gz)

Descompacte o _tar.gz_ com qualquer ferramenta de sua preferência, e mova o diretorio para algum destino diferente da Download (Só pra evitar que limpe os _Downloads_ no futuro e acabe fazendo merda :smile:)

O caminho que escolhi deixar a JDK no meu PC: <code>~/Programs/IntelliJ/jbr_jcef-21.0.3-linux-x64-b509.4/bin</code>


## Instalando o IntelliJ via Flatpak.
Caso precise configurar o flatpak no seu computador siga as instruções em https://flathub.org/pt-BR/setup

### Loja
O GNOME disponibiliza uma loja de aplicativos para instalação de apps. Pesquise por [IntelliJ IDEA](https://flathub.org/pt-BR/apps/com.jetbrains.IntelliJ-IDEA-Community) e faça a instalação (Next, Next, Next :smile:)

1. ![Icone loja GNOME](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nz15u2s1x77zi8q66xlb.png)


2. ![GNOME Software - Pesquisa por programa](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m2tzolrexsiwrw463ll0.png)


### Linha de comando

Para instalação via CLI, abra o emulador de terminal e execute o comando abaixo.

```sh
flatpak install flathub com.jetbrains.IntelliJ-IDEA-Community
```

### Suporte
Uma ferramente que será de grande ajuda nesse momento é o Flatseal

![Icone Flatseal](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wq4tt832hwz30lpoqp5g.png)

Faça o mesmo passo de instalação pela loja, procurando pelo [Flatseal](https://flathub.org/pt-BR/apps/com.github.tchx84.Flatseal) ou execute o comando abaixo no terminal.

```sh
flatpak install flathub com.github.tchx84.Flatseal
```

## Configurando o intelliJ
Os passos seguintes podem ser replicados também para o [Android Studio](https://flathub.org/pt-BR/apps/com.google.AndroidStudio) instalado via Flatpak.

- Abra o <code>Flatseal</code> e procure pelo IntelliJ IDEA

![Flatseal](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/83uproo2ws01ufdjkv4k.png)

Role a página e procure a seção <code>Environment</code>

- Defina o JAVA_HOME.
```sh
JAVA_HOME=~/Programs/IntelliJ/jbr_jcef-21.0.3-linux-x64-b509.4/bin
```

![Flatseal seção de Environment](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5spu6h0ehsxrvr18xpon.png)

Observe que o Socket Wayland deve está habilitado

![Flatseal seção de sockets](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xyywifg225enzy5d7bjn.png)


- Configurando a VMOptions.
Abra o IntelliJ e pressione o atalho <code>CTRL + SHIFT + A</code>. Em Actions procure por <code>VM Options</code>. Clique em <code>Edit Custom Options</code>


![Popup de comandos](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5x6v5b34718g9cg9zk2p.png)


No arquivo idea64.vmoptions adicione a seguinte configuração
```init
-Dawt.toolkit.name=WLToolkit
```
Como no exemplo abaixo.

![Configuração da VMOptions em arquivo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/108jp8hyu5svy45p708j.png)


Feche e abra o IntelliJ, então verifique se há problemas com as fontes borradas.

## Problemas?
Caso não houve alterações, então o passo seguinte será alterar o Runtime da IDE. Com o atalho <code>CTRL + SHIFT + A</code> procure por <code>Choose Boot Java Runtime for the IDE</code>


![Choose Boot Java Runtime for the IDE](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gnzp212dbprvashy01v0.png)

Com a opção de _Runtimes_ aberto, procure pelo campo de selação <code>New</code> e selecione a opção <code>Add Custom Runtime</code> e <code>Add JDK</code>,  então adicione a JDK 21 obtida nos passos iniciais desse tutorial.

1. ![Exemplo de configuração de runtime da JDK](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6nvw6ct6j0e82dy8qko5.png)
 
2. ![JDK 21](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iyy8uuzwwewgqfuzz4sl.png)


Clique em <code>OK</code> e reinicie a IDE


## Dicas
Como fiquei na dúvida se houve mesmo uma alteração (Minha visão não está tão boa no momento) tenho dois IntelliJ no PC, um via Flatpak e outro em tar.gz, então coloquei ambos lado a lado se fiz minhas comparações.


## Nota
- Caso queira fazer o tutorial para  IntelliJ ou Android Studio instalados de outra forma, recomendo pesquisar como reproduzir os passos em um contexto fora do flatpak.
- Para mais informações consulte a issue no github sobre os testes do IntelliJ no Wayland em https://github.com/JetBrains/JetBrainsRuntime/issues/242