Sobre o projeto

Rectangle é um aplicativo de gerenciamento de janelas para macOS, descrito como baseado no Spectacle. Ele tem como alvo o macOS v10.15 e versões posteriores; a última versão com suporte para macOS 10.13 e 10.14 é a v0.73. Pode ser instalado a partir de um dmg em rectangleapp.com ou na página de Releases, ou via Homebrew cask (`brew install --cask rectangle`). A funcionalidade principal é mover e redimensionar janelas com atalhos de teclado e áreas de encaixe. Arrastar uma janela para a borda da tela mostra uma prévia do layout resultante: borda esquerda/direita dá metade, topo maximiza, cantos dão quartos, bordas logo acima ou abaixo de um canto dão metades superior/inferior, e terços inferiores dão o respectivo terço (com combinações de arrastar para o centro para dois terços). O tiling está disponível através de um submenu Tiling (Rows e Columns) quando "Show additional sizes in menu" está ativado, e atalhos separados para Tile Windows in Rows/Columns podem ser atribuídos em Settings > General > Extras. O tiling organiza janelas comuns no Space atual no display que contém a janela focada, ou no display sob o ponteiro quando nenhuma janela comum está focada. As linhas vão de cima para baixo e as colunas da esquerda para a direita, ordenadas pelas posições do canto superior esquerdo das janelas. As faixas preenchem a área de trabalho dentro das reservas do macOS (barra de menus, Dock) e lacunas de borda configuradas onde os aplicativos permitem; tamanhos mínimos de janela são respeitados, e os layouts podem ser parciais se um aplicativo não responder a tempo. A janela Todo é excluída e sua reserva de barra lateral é respeitada. Um aplicativo pode ser ignorado para que os atalhos do Rectangle sejam desregistrados enquanto esse aplicativo estiver em primeiro plano e registrados novamente depois, útil quando há conflito de atalhos. Isso é feito a partir do menu do Rectangle. As ações podem ser acionadas por URL: `rectangle://execute-action?name=[name]`, com uma longa lista de nomes cobrindo metades, terços, quartos, sextos, nonos, oitavos, variantes de maximizar, menor/maior, centralizar, restaurar, navegação entre displays, direções de movimento, tile-all/rows/columns e ações em cascata. Tarefas como ignore/unignore podem ser invocadas via `rectangle://execute-task?name=...`, opcionalmente com um identificador de bundle. Preferências ocultas são documentadas em TerminalCommands.md. As diferenças em relação ao Spectacle incluem o uso do MASShortcut para gravação de atalhos, ações adicionais (mover para a borda sem redimensionar, maximizar altura, quase maximizar), terços explícitos primeiro/centro/último em vez de ciclar (ciente da orientação), travessia opcional entre displays e encaixe ao arrastar para a borda que pode ser desativado. Os problemas conhecidos abrangem a falta de uma API pública para mover janelas entre Spaces/desktops, sobreposição quando aplicativos impõem tamanhos mínimos (com uma mensagem "Window size limited"), redimensionamento do iTerm2 em incrementos de largura de caractere (corrigível via um comando de defaults) e raros congelamentos da Central de Notificações mitigados ao desativar o encaixe por arrasto. As orientações de solução de problemas incluem bloquear/desbloquear, reiniciar, registro de depuração (via o item de menu com tecla alt "View Logging..."), verificar gerenciadores de janelas ou atalhos conflitantes, testar com um novo usuário do macOS e redefinir permissões de acessibilidade com `tccutil reset All com.knollsoft.Rectangle`. A configuração é armazenada em NSUserDefaults em `~/Library/Preferences/com.knollsoft.Rectangle.plist`, e a importação/exportação de configuração JSON está disponível nas preferências; um arquivo de configuração colocado em `~/Library/Application Support/Rectangle/RectangleConfig.json` é carregado na inicialização e renomeado com um timestamp. A desinstalação é feita saindo do aplicativo e movendo-o para a Lixeira, opcionalmente excluindo os defaults ou usando `brew uninstall --zap rectangle`. Contribuições são bem-vindas, incluindo localizações em Main.strings e tamanhos/posições adicionais via a seção Extra Shortcuts. O projeto usa Swift Package Manager para Sparkle e um MASShortcut bifurcado, e observa uma falha de build em versões do macOS abaixo de 26 devido ao ícone Liquid Glass, a menos que as Other Flags do Asset Catalog sejam removidas localmente.