- Um gerenciador de janelas em mosaico de código aberto para macOS, em desenvolvimento com foco em desempenho e usabilidade
- Funciona sem desativar a Proteção de Integridade do Sistema (SIP) e é um dos poucos gerenciadores de janelas compatíveis com a opção do macOS "Displays have separate Spaces"
- Suporta vários estilos de layout semelhantes a i3/sway e bspwm
- Oferece integração natural com o ambiente nativo do macOS, como navegação entre espaços no estilo Mission Control e gestos do trackpad
- Tem foco em desempenho de animações e experiência do usuário, com destaque para hot reload de configuração e integração com programas externos
- Herda parcialmente as vantagens do gerenciador de janelas em mosaico existente para macOS, Aerospace (como desempenho e flexibilidade), ao mesmo tempo em que busca recursos adicionais como suporte a animações e a possibilidade de usar apenas um monitor em tela cheia em configurações com múltiplos monitores
Principais recursos
- Vários estilos de layout: suporta tanto a organização de janelas em grade, como no i3 ou sway, quanto a divisão binária de espaço no estilo bspwm
- Ícone na barra de menu: exibe visualmente todos os espaços de trabalho e o status do layout em cada um deles
- Navegação no estilo Mission Control do macOS: permite gerenciar visualmente e com facilidade a alternância entre espaços de trabalho
- Oferece troca automática de foco do mouse e auto-raise
- Permite trocar a posição das janelas ao arrastá-las, com animações suaves
- Ao usar gestos do trackpad, permite alternar entre espaços de trabalho como no macOS nativo
- Suporta alterações de configuração em tempo de execução (hot reload), facilitando bastante a configuração em tempo real
- Suporta interface com programas de terceiros, como Sketchybar, além de integração via CLI ou mach port
- Pode enviar sinais (Signals) para fora quando há mudança de espaço de trabalho ou alterações nas janelas, e esses sinais podem ser emitidos por CLI ou por conexão mach
- Desenvolvido 100% em Rust
1 comentários
Comentários do Hacker News
Antigamente eu usava muito o i3. O i3 é extremamente flexível e dá muita liberdade de configuração, então dá para fazer bem mais do que só mover janelas. Mas depois que migrei para Mac, não consegui encontrar um gerenciador de janelas em mosaico que fosse ao mesmo tempo cheio de recursos e estável. Testei várias opções e agora acabei ficando só com o Rectangle. O Rectangle não é exatamente um gerenciador de janelas de verdade; ele só oferece atalhos para mover facilmente as janelas para a esquerda/direita/cima/baixo ou em divisões de 3/4/6. Isso cobre uns 80% do meu padrão de uso, não exige configuração personalizada e não tem comportamentos inesperados, então tenho usado satisfeito. Também fiquei mais velho e já não tenho tanta energia para gastar tempo com um monte de personalização. Site oficial do Rectangle
Em monitores 5k/6k, o mosaico tradicional tem limitações — as janelas acabam ficando grandes demais. Por isso acho apps como o Moom bem melhores. No Windows não existe algo como o Moom, então uso um gerenciador em mosaico como o komorebi. Como alguém que alterna entre vários sistemas operacionais e dispositivos, acho uma pena o Rift não suportar atalhos universais como alt+hjkl. Em telas ultrarresolução ou ultrawide, esse tipo de organização de janelas é essencial na minha opinião (o komorebi suporta)
Pode ser insuficiente para muita gente, mas para quem é como eu e no Mac normalmente usa só uma janela, ou duas telas apenas quando conecta um monitor externo, esse recurso nativo já basta guia oficial de divisão de janelas do macOS (não sou usuário pesado de mosaico)
No macOS, tela cheia e gestos de trackpad parecem tão atraentes porque, na maioria dos casos, você trabalha em apenas uma janela. Mas quando precisa manter terminal, editor, DevTools do navegador, logs e documentos abertos ao mesmo tempo, a previsibilidade do layout se torna muito importante. Ferramentas de mosaico não servem só para deixar duas janelas lado a lado, mas também para
No Mac, eu resolvo uns 80% com Rectangle ou Moom, e para o resto uso Aerospace ou Rift. Quando o número de janelas ou a frequência de troca aumenta, a utilidade de um gerenciador de janelas em mosaico fica bem clara
Houve uma época em que tentei criar meu próprio gerenciador de janelas, mas desisti rápido porque o macOS não tem uma API decente para isso. Na prática, você acaba tendo que dar um jeito com a API de acessibilidade. Este projeto também usa bindings de Objective-C e a API de acessibilidade, então fiquei curioso sobre como foram o debug e a implementação das funcionalidades, e quais ferramentas você usou principalmente
Eu também passei recentemente por uma bela sessão de yak shaving para ajustar o Aerospace do jeito que funciona para mim. Fico curioso sobre como as pessoas resolvem quando muitos atalhos entram em conflito. Como já estou acostumado com combinações hjkl, sempre quero mapear quase tudo nelas, e o recurso modal do Aerospace ajuda um pouco a resolver esses conflitos. No fim das contas, como vocês configuram isso?
Com Hammerspoon, dá para criar seu próprio gerenciador de janelas. Eu gosto da abordagem modal do Divvy (trocar layout com uma única tecla de comando), mas infelizmente ele não recebe mais manutenção. Então acabei criando meu próprio gerenciador modal de janelas com o OpenAI Codex código-fonte do gerenciador de janelas para Hammerspoon. Acho que seria legal compartilhar esse tipo de abordagem!
Para quem usa trackpad no MacBook, nada supera o Swish; é dominante em relação a qualquer outro app Site oficial do Swish
Alguém já configurou isso com nix flake? Estou testando vários gerenciadores de janelas desde o yabai, e no Aerospace às vezes dá umas travadas, talvez por problema no tratamento de eventos quando uso o sketchybar só para mostrar workspaces bonitinhos. Acho que vou experimentar este aqui (Rift) na sequência
Não entendo por que alguém precisaria de um gerenciador de janelas em mosaico no macOS. Com que frequência realmente é necessário colocar janelas lado a lado? Não basta abrir a maioria dos apps em tela cheia e trocar entre eles com swipe de quatro dedos? Alguém me convença