- Ao atualizar para o macOS 26, o ponto mais incômodo não são os bugs, e sim o problema da inconsistência nos cantos das janelas; mais do que o arredondamento excessivo em si, o cerne da questão é a falta de consistência, aplicada de forma diferente em cada app
- As soluções existentes exigem desativar o SIP, o que pode abrir brechas de segurança, além de serem complexas por exigirem modificar diretamente bibliotecas de apps do sistema, como o Safari
- Com uma abordagem que se aplica apenas a apps de terceiros, sem desativar o SIP, os métodos da classe
NSThemeFrame são substituídos (swizzling) para unificar o raio dos cantos de todos os apps de usuário em 23.0
- Depois de compilar e assinar a dylib, é possível aplicar isso de forma permanente com injeção automática na inicialização por meio de um plist do LaunchAgents
- No fim, todas as janelas dos apps ficam arredondadas da mesma forma, resultando em um “design consistentemente ruim”, mas com um efeito visual unificado
Contexto do problema
- Além de vários bugs, o macOS 26 também se destaca pelo problema de inconsistência nos cantos das janelas
- Mais desagradável do que o excesso de arredondamento em si é a inconsistência visual causada pelo fato de cada app lidar com isso de forma diferente
- O design de UI é altamente contagioso, e há uma tendência de designers copiarem exatamente o design de grandes empresas, o que pode fazer esse fenômeno se espalhar ainda mais
- Ex.: em discussões de design, é comum no setor resolver algo com a lógica de “como a Apple desenhou este botão?”
Problemas das abordagens existentes
- Alguns usuários tentaram resolver isso desativando o SIP (System Integrity Protection)
- Ao desativar o SIP, perde-se a proteção de segurança do diretório
/root, além de ser necessário modificar diretamente bibliotecas do sistema usadas por apps como o Safari
- Há quem argumente que, se a máquina já foi comprometida, o efeito prático de proteção do SIP é limitado; ainda assim, a possibilidade de vulnerabilidades de segurança continua existindo
Abordagem alternativa: padronizar apps de terceiros
- Em vez de remover os cantos, a direção adotada foi unificar tudo deixando mais arredondado
- Foi usado um método de injeção de dylib que pode ser aplicado apenas a apps de usuário (terceiros), sem desativar o SIP
- Foi aplicado um código modificado a partir de um fork de uma solução já existente para remover os cantos
Implementação técnica
- Foi feito swizzling de métodos nos 4 métodos abaixo da classe
NSThemeFrame
_cornerRadius → retorna 23.0
_getCachedWindowCornerRadius → retorna 23.0
_topCornerSize → retorna CGSizeMake(23.0, 23.0)
_bottomCornerSize → retorna CGSizeMake(23.0, 23.0)
- Apps de sistema da Apple com prefixo com.apple., além de ferramentas CLI e daemons, ficam fora da aplicação
- Foi compilada uma dylib universal com suporte às arquiteturas
arm64e e x86_64
Instalação e aplicação automática
- Compile
SafariCornerTweak.dylib com clang, copie para /usr/local/lib/ e assine com codesign
- Configure a variável de ambiente
DYLD_INSERT_LIBRARIES por meio de um plist do LaunchAgents (com.local.dyld-inject.plist)
- Ao registrar com
launchctl load ~/Library/LaunchAgents/com.local.dyld-inject.plist, a injeção da dylib passa a ser aplicada automaticamente na inicialização
- No fim, os cantos de todas as janelas dos apps ficam arredondados da mesma forma, gerando um “design consistentemente ruim”, mas visualmente unificado
2 comentários
Ainda não atualizei até agora..
Opiniões no Hacker News
Depois do upgrade do macOS, surgiu um problema em que o WindowServer passa a consumir mais de 100% de CPU
Nem dá para colar o nome do arquivo na caixa de diálogo de salvar, e o campo de URL do Safari também funciona de forma estranha
O desempenho melhorou um pouco ao ativar Reduzir transparência nos ajustes do sistema, desativar espaços separados por app e ocultar os ícones da mesa no Finder
Recomenda-se o App Tamer para limitar o uso de CPU de apps em segundo plano (não funciona para WindowServer nem
kernel_task)Hoje em dia parece que a Apple está sem rumo. Ter de esperar vários segundos ao abrir janelas ou trocar de app é um problema grave
Tomara que um dia uma IA projete um novo SO e faça Apple, Microsoft e Google competirem de novo
Num M2 Air, consigo abrir dezenas de abas e apps ao mesmo tempo sem problema. Antes, o boot levava 3 minutos e instalar um jogo levava 30; hoje é quase instantâneo
Não gostei do design do macOS Tahoe. O Apple Music em especial ficou estranho a ponto de ser difícil entender
Mas a maior parte dá para ignorar; o design das abas, porém, ficou feio demais. Parece um retrocesso em todos os sentidos em relação ao anterior
O fato de a polêmica sobre os cantos das janelas ter ficado tão grande talvez signifique que o macOS é um SO muito bem acabado
Eu adoro Linux, mas esse tipo de discussão também pode ser visto como elogio
Remover notificações no macOS Tahoe é trabalhoso demais
O botão “Liquid Glass” responde devagar, e há atraso até a notificação desaparecer. A atualização do app de música também ficou péssima
As pessoas são obcecadas por SIP (System Integrity Protection), mas na prática isso não ajuda em nada contra ransomware
Usar gerenciadores de pacotes como npm e pip fora de uma VM é mais arriscado do que deixar o SIP ativado
rm, os dados vão emboraMas, graças ao SIP, ainda é possível inicializar em modo de segurança e recuperar o sistema
Eu uso Linux e Windows meio a meio, e por isso não consigo usar Mac como principal
O Dock e o comportamento de tela cheia são estranhos demais. Também confunde o fato de o app continuar em execução mesmo depois de fechar a janela
É bom que existam pessoas que percebem esses detalhes. Graças à capacidade de observação delas, dá até uma sensação de que estamos protegidos
O macOS atual parece o resultado de uma fusão entre Harley Davidson e Volvo Truck para unificar o design
Virou um produto de compromisso em nome da uniformização da marca
A UI do macOS parece ter sido pensada para um padrão de uso em que as janelas ficam em tamanho intermediário, e não em tela cheia
Mas isso é uma suposição estranha para apps como navegador ou IDE, que usam telas grandes
Hoje, deixar janelas sobrepostas e alternar com um clique é mais eficiente
Mas a nova UI desperdiça muito espaço, e redimensionar arrastando o canto é irritante
As abas em formato de pílula (pill tabs) são o que mais incomoda
É um design estranho que polui visualmente e ainda transmite menos informação