Sean Anastasio (), entusiasta de software livre, que na sua época desenvolveu seu próprio sistema operacional e trabalhou na portabilidade do Chromium e do Qubes OS para a arquitetura ppc64le, projeto , no qual pretende desenvolver forks dos componentes do ambiente de desktop Xfce, que funcionam sem o uso de decoração de janelas do lado do cliente (CSD, client-side decorations), onde o cabeçalho e as bordas da janela são renderizados não pelo gerenciador de janelas, mas pelo próprio aplicativo.
Vale lembrar que, ao preparar a próxima versão do Xfce 4.16, cujo lançamento está programado para outubro ou novembro, foi feita a transição da interface para o widget GtkHeaderBar e a aplicação do CSD, permitindo, da mesma forma que no GNOME, posicionar menus, botões e outros elementos da interface no cabeçalho da janela, além de garantir a ocultação das bordas em diálogos. O novo mecanismo de renderização da interface foi integrado à biblioteca libxfce4ui, resultando na aplicação automática do CSD para quase todos os diálogos, sem a necessidade de modificar o código dos projetos existentes.
Com a transição para o CSD , que acreditam que o suporte ao CSD deve ser opcional e que o usuário deve ter a possibilidade de continuar usando cabeçalhos de janela clássicos. Entre as desvantagens da aplicação do CSD, destaca-se a área demasiadamente ampla do cabeçalho da janela, a falta de necessidade de mover elementos do aplicativo para o cabeçalho da janela, a inoperabilidade dos temas do Xfwm4 e a inconsistência na aparência das janelas dos aplicativos Xfce/GNOME e dos programas que não utilizam CSD. Observa-se que uma das razões para o desagrado por parte de alguns usuários em relação à interface do GNOME é a adoção do CSD.
Como não houve tentativas de fornecer suporte para desativar o CSD em cinco meses, Shawn Anastasio decidiu assumir a questão e criou um fork da biblioteca , onde fez a limpeza da vinculação ao CSD e retornou ao antigo modo de decoração do lado do servidor (do gerenciador de janelas). Para garantir a compatibilidade com aplicativos que utilizam a nova API libxfce4ui e manter a ABI, foram preparadas ligações especiais que traduzem os métodos específicos do CSD da classe XfceTitledDialog em chamadas da classe GtkDialog. No final, foi possibilitada a remoção do CSD dos aplicativos Xfce através da substituição da biblioteca libxfce4ui, sem a necessidade de alterar o código dos próprios aplicativos.
Fork adicionalmente formado , incluindo alterações para restaurar o comportamento clássico. Uma versão preparada para usuários do Gentoo para a instalação do libxfce4ui-nocsd. Para usuários do Xubuntu/Ubuntu, uma versão preparada com pacotes já prontos. Os motivos para a criação do fork foram explicados por Shawn Anastasio, que já usa o Xfce há muitos anos e gosta da interface desse ambiente. Após a decisão de mudar a interface, com a qual ele não concordava, e a falta de tentativas de fornecer uma opção para retornar ao comportamento antigo, foi decidido resolver seu problema por conta própria e compartilhar a solução com outras pessoas que compartilham sua visão.
Entre os problemas ao usar o Xfce Classic, destaca-se a impressão de duplicação de cabeçalhos devido à exibição de informações repetidas no cabeçalho e na janela do aplicativo. Essa característica corresponde ao comportamento do Xfce 4.12 e 4.14 e não está relacionada ao CSD. Em alguns aplicativos, essa duplicação parece normal (por exemplo, no xfce4-screenshooter), mas em outros é claramente inadequada. Para resolver esse problema, não se descarta a adição de uma variável de ambiente que regule a renderização do XfceHeading.
A posição dos defensores do CSD se resume à possibilidade de utilizar o espaço vazio do cabeçalho da janela para acomodar menus, botões de painel e outros elementos significativos da interface. Os críticos do CSD acreditam que essa abordagem gera problemas de unificação no design das janelas, especialmente aquelas escritas para diferentes ambientes de usuário, que definem diferentes diretrizes para o layout da área do cabeçalho. É muito mais fácil padronizar o design de todas as janelas de aplicativos com a renderização clássica das áreas de serviço na parte do servidor. No caso do uso do CSD, é necessário adaptar separadamente a interface do aplicativo para cada ambiente gráfico e é bastante difícil garantir que o aplicativo não pareça estranho em diferentes ambientes de usuário.
Fonte: opennet.ru
