GNOME 45 representa ponto de ruptura para extensões

No GNOME, por meio de extensões, conseguimos personalizar aspectos mais profundos da interface gráfica, como permitir o uso da área de trabalho, adicionar uma bandeja à barra do sistema, um painel para escolha rápida entre dispositivos de áudio e muito mais. Entretanto, a partir do iminente GNOME 45, tudo o que foi feito não funcionará mais.

Isso acontece porque até o momento, o GNOME usou um padrão JavaScript próprio, denominado GJS, mas para se adequar à prática comum da indústria, decidiu mover ao padrão ECMAScript 6, permitindo maior compatibilidade ao ecossistema JavaScript.

Apesar de, agora em diante, as possibilidades serem expandidas aos desenvolvedores, a partir do GNOME 45, nenhuma extensão feita para versões anteriores funcionará. Isso obriga os desenvolvedores que desejam manter suporte às suas extensões em novas versões do GNOME, a subir ao repositório uma edição compatível.

Sendo assim, as extensões que permanecerem atualizadas terão uma versão “antes do GNOME 45” e “a partir do GNOME 45”, tornando essa edição um importante ponto de ruptura para a DE. Desenvolvedores podem contar com a comunidade do GNOME no Matrix e Discorse para ajudar a portar seu código-fonte ao novo padrão.

7 curtidas

Pra fazer alguma para a plataforma GNOME a pessoa realmente tem que usar essa coisa porque cara… da trabalho manter

por isso que já desisti do gnome clássico, usando apenas interfaces baseadas nela, como o cinnamon. por isso migrei para o kde e n m arrependo: adicionam novidades mas tudo é feito internamente.

É por isso que eu acho que distros como o Fedora (pensando agora, tô com saudade de mexer no Fedora) estão certas em não assumir o BO de mudar o Gnome. É uma grande gambiarra esse negócio de lotar com extensões que mudam completamente a interface.

3 curtidas

Vai melhorar bastante essa padronizaçao pra EcmaScript e permitir uso de transpiladores e linguagens como Typescript.
O que poderiam fazer pra facilitar portar as extensoes com GJs seria um transpilador ou linter pra ES6.
Agora tem extensoes que muita gente usa mas o repo ta meio abandonado que vao dar trabalho como o dash to dock.

Sem pelo menos um Dash to Dock eu não consigo usar o Gnome, espero que as principais extensões sejam portadas para o versão 45.

Nessas horas que vejo q tenho uma grande de vantajem em poder transitar entre todas as interfaces populares e consigo trabalhar em todas em sua forma padrão sem sentir necessidade de ajustar algo, seja no modelo Windows Like (Barra de tarefas) ou MacOS/Gnome (Dock). Acho que cheguei naquele level de: O que realmente uso são os apps e não o sistema em sí.

1 curtida

Acho que as extensões que são de interesse do ubuntu estão safe. Nem que a canonical tenha de refazê-la do zero ela deixa o sistema sem dock a esquerda.

2 curtidas

Certa vez um dos desenvolvedores do KDE Plasma disse: “nunca fique apegado a uma experiência GNOME customizada. Basta uma atualização em algum momento para o castelo de extensões cair”.

Em resumo: ao usar o GNOME, é importante compreender a filosofia do projeto. A palavra “extensões” resume bem o que elas significam: extensões. O GNOME não tem como objetivo fornecer apoio incondicional e garantir que continuem funcionando. O projeto caminha conforme for necessário e as extensões devem se adaptar a ele se quiserem continuar existindo.

Eu aqui uso duas extensões: Dash to Dock e AppIndicators. Estou usando o Debian 12, que tem o GNOME 43.6. A extensão AppIndicators se tornará desnecessária no GNOME 44, já que essa função será incluída no mesmo menu que controla o volume, no canto superior direito (finalmente perceberam que se tratava de algo essencial). Quanto à Dash to Dock, trata-se de uma extensão bastante ativa, com muitos colaboradores e que, como mencionado pelo colega acima, é usada pelo Ubuntu e outras distribuições (acaba sendo um elemento essencial, e que por isso continuará recebendo suporte).

Outra recomendação para quem usa extensões como Dash to Dock é ficar em distros LTS. Com o Debian Stable, até a próxima atualização, certamente o Dash to Dock já terá sido também atualizado, e usando Flatpaks a base antiga do sistema não se torna um problema tão grave.

Usar muitas extensões em sistemas que atualizam continuamente é o cenário mais preocupante. Nessa situação, o usuário sempre deve esperar que algumas ou todas as extensões vão parar de funcionar após alguma atualização, como ocorreu diversas vezes no passado. Quem quer customizar e não quer passar por isso deveria considerar o KDE Plasma como opção.

3 curtidas

Uma observação é que a extensão AppIndicators ainda é necessária, pois no menu do Gnome só aparece a informação de app em segundo plano. Não fornece nenhuma interação e ainda necessita que os devs integrem com a função, infelizmente =/

Atualmente utilizando GNOME Shell 44.4

1 curtida

Espero que o pessoal do Ubuntu porte (com certeza vai) e alguem clone o projeto pro gnome extentions.

Enquanto estiver no Debian 12, com o GNOME 43.2, isso não me afetará por enquanto, mas em 2025 quando o Debian Trixie for lançado, espero que a extensão Searchlight tenha versão para novo formato.

Não é a primeira vez que houve uma ruptura de extensões em versões novas do Gnome, os desenvolvedores já sabiam disso logo nas versões Alphas da versão 45 e é bem provável já estão trabalhando na migração. Essa mudança do GJS para ESM já vinha sedo discutida a algum tempo.

1 curtida

Adotando um padrão bem estabelecido vai requerer um trabalho agora, mas acho q nas próximas versões vai acabar com isso que quebra de compatibilidade

Essa mudança do GNOME é boa para os desenvolvedores, os quais não terão mais que aprender um padrão de JavaScript diferente do ECMAScript, mas não tem efeito sobre a quebra de compatibilidade das extensões, porque as extensões continuarão alterando o código do GNOME Shell durante o tempo de execução. Basta uma nova versão do GNOME Shell alterar alguma parte do código do qual a extensão dependa para a quebra de compatibilidade acontecer.

Na verdade, pode ter este efeito, ECMAScript é uma linguagem mais madura e mais solidamente padronizada, menos bugs para corrigir e padrões mais rígidos para seguir significa menos motivos inevitáveis para quebrar a interface. Existem mais fatores indiretos que podem contribuir com isso, mas estes são os mais relevantes acho

Entendo seu ponto, mas permanecerá sendo muito difícil garantir a compatibilidade das extensões com elas patches sobre o GNOME Shell.

Eu digo isso, pois, alguns dos casos de quebra de extensão envolviam exatamente corrigir problemas gerados por bugs no GJS que levavam a estouro de memória e problemas de desempenho. Desempenho e estabilidade, depois de segurança, são motivos onde é inevitável, ou você convive com eles, ou quebra a API, o resto é capricho.

2 curtidas

O dia que eles decidirem “proibir”, “bloquear”, “desativar” ou “quebrar de vez” a possibilidade de usar extensões, provavelmente o GNOME deixará de ser a DE preferida de muitos. Podem estar cavando sua própria cova. Por hora, nada sério.

Linguagem é puramente texto não faz tanta diferença, o ponto é que força o desenvolvedor a organizar melhor o código, não é algo que não dava pra fazer antes, só que era opcional e agora obrigatório, o problema é que o GNOME Shell não possui uma API as extensões não funcionam no significado estrito de extensões, elas são remendos aplicados “on-the-fly”, qualquer mudança feita no código do GNOME Shell vai quebrar algo, a questão é que nem toda extensão usa esse algo, a mudança de layout por exemplo quebrou Dash to Dock e Dash to Panel se tiver outra mudança de layout vai quebrar do mesmo jeito