O Quaternion é um cliente de desktop de plataforma cruzada para o protocolo Matrix. Você pode encontrar informações gerais sobre o uso e as configurações do aplicativo aqui. Consulte Building.md para obter instruções de construção.
A maior parte da conversa sobre o Quaternion acontece na sala de seu projeto pai, quociente: #quotient: matrix.org. Você pode arquivar problemas no rastreador de problemas do projeto. Se você encontrar o que parece um problema de segurança, siga as instruções especiais.
A maneira recomendada de instalar o Quaternion é a seguinte (não deixe de ler as notas abaixo, dependendo do seu ambiente):
O código -fonte está hospedado no GitHub.
Quaternion 0.0.97 precisa de qt versão 6.4 ou superior.
O Quaternion é empacotado para muitas distribuições, incluindo várias versões do Debian, Ubuntu e OpenSUSE, bem como Arch Linux, Nixos e FreeBSD. Uma lista bastante abrangente pode ser encontrada na Repologia. As distribuições populares que satisfazem o requisito mencionado no QT são o Debian 12 (Livrowworm), Ubuntu 24.04 (Noble), Fedora 39, OpenSuse Leap 15.6; Qualquer coisa mais recente do que isso também deve estar bem.
No topo do pacote de quaternion, normalmente você não precisa instalar nada; Se algo não estiver funcionando devido a uma dependência ausente, é um bug no pacote - informe -o ao empacotador de quaternion da sua distribuição, não a este repositório.
Há também Plakspaks para Quaternion disponível na Flathub. Para instalar, use:
flatpak install https://flathub.org/repo/appstream/com.github.quaternion.flatpakref
Esses pacotes são construídos com um tempo de execução do KDE adequado. Você pode instalá -los em qualquer distribuição que tenha FlatPak - mesmo que seja mais antiga do que mencionado acima. Por favor, arquive problemas em https://github.com/flathub/com.github.quaternion se você acredita que há um problema específico para o pacote de quaternion.
Como não há gerenciamento de pacotes estabelecido no Windows para resolver dependências, todas as bibliotecas necessárias e um tempo de execução C ++ são embaladas/instaladas juntamente com o quaternion - exceto o OpenSSL. A menos que você já tenha o OpenSSL (por exemplo, faz parte de qualquer instalação de desenvolvimento QT), você deve instalá -lo sozinho. O Wiki da OpenSSL lista alguns links para os instaladores do OpenSSL. Eles vêm em diferentes configurações de construção; As construções de quaternion atuais precisam OpenSSL 3.x feito com/para Visual Studio (não Mingw).
Se você usar o Homebrew (você deve!), brew install quaternion instala o Quaternion junto com suas dependências. Caso contrário, os pacotes publicados nos lançamentos do GitHub vêm com tudo o que é necessário já incluído.
Graças a pessoas generosas e solidárias da Cloudsmith, que fornecem hospedagem gratuita a projetos de OSS, aqueles que desejam conferir o código mais recente (não necessariamente o melhor, veja abaixo) pode encontrar pacotes produzidos pela integração contínua (IC) no repo Quaternion lá.
Algumas notas importantes sobre esses pacotes, caso você seja novo para eles:
/join #quotient:matrix.org e tenha o URL da qual baixou a quaternion. Em caso de problema,Se você deseja construir o Quaternion a partir de fontes, consulte Building.md.
Basta iniciar o executável da maneira mais preferida - no diretório de compilação ou no local instalado. Se você estiver interessado em ajustar a configuração além do que está disponível na interface do usuário, leia a seção "Configuração" mais abaixo.
O Quaternion usa o Lokalise.co para o esforço de tradução. É fácil participar: participe do projeto em lokalise.co, peça para adicionar seu idioma (em #quotient: matrix.org ou no bate -papo do projeto Lokalise) e comece a traduzir! Muitos idiomas ainda desejam colaboradores.
A única opção de linha de comando não trivial disponível até agora é --locale -permite que você substitua os usos de quaternion de localidade (um equivalente a definir a variável LC_ALL em sistemas baseados em UNIX). A versão 0.0.96 vem com traduções alemãs, russas, polonesas e espanholas.
A Quaternion armazena sua configuração de maneira padrão para aplicativos QT, conforme descrito abaixo. Ele lerá e gravará a configuração no local específico do usuário (criando-o se inexistente) e só lerá o local em todo o sistema com padrões razoáveis se a configuração não for encontrada na específica do usuário.
$HOME/.config/Quotient/quaternion.conf/etc/xdg/Quotient/quaternion $XDG_CONFIG_DIR/Quotient/quaternion$HOME/Library/Preferences/im.quotient.quaternion.plist/Library/Preferences/im.quotient.quaternion.plistHKEY_CURRENT_USERSoftwareQuotientquaternionHKEY_LOCAL_MACHINESoftwareQuotientquaternion Todas as configurações listadas abaixo residem na seção UI do arquivo de configuração ou (para o Windows).
Algumas configurações expostas na interface do usuário (configurações e menus de visualização) são:
notifications - Uma configuração geral se a quaternion deve distrair o usuário com notificações e como.
none suprime as notificações inteiramente (salas e mensagens ainda são iluminadas, mas o ícone da bandeja é silenciado);non-intrusive permite que o ícone da bandeja mostre pop-ups de notificação;intrusive (padrão) aumenta a ativação da janela de quaternion (ou seja, o aplicativo piscando na barra de tarefas ou é levantado ou exige atenção de uma maneira específica do ambiente). timeline_layout - Isso permite escolher o layout da linha do tempo. Se isso estiver definido como "xchat", o quaternion mostrará o autor à esquerda de cada mensagem, em um estilo xchat/hexchat. Qualquer outro valor selecionará o layout "padrão", com os rótulos dos autores acima dos blocos de mensagens.
use_shuttle_dial - O Quaternion usará um mostrador de traslado em vez de uma barra de rolagem clássica para o controle de rolagem vertical da linha do tempo. Para começar a rolar, mova o disco do ônibus para longe de sua posição neutra no meio; Quanto mais longe você o move, mais rápido você rola nessa direção. Liberar o mostrador o redefine de volta para a posição neutra e para de rolar. Isso é mais conveniente se você precisar se mover sem conhecer a posição em relação às bordas, como é o caso de uma linha do tempo da matriz; No entanto, o controle é um tanto não convencional e nem todas as pessoas gostam. O disco do ônibus espacial é ativado por padrão; Defina isso como falso (ou 0) para usar a barra de rolagem clássica.
autoload_images - Se as imagens de tamanho normal devem ser carregadas imediatamente assim que a mensagem for mostrada na tela. O padrão é carregar automaticamente imagens de tamanho completo; Defina isso como false (ou 0) para desativar isso e carregar apenas uma miniatura na linha do tempo (com a imagem completa baixada depois de clicar em "Salvar como" ou "abrir" no menu de contexto). Confira #601 para obter a advertência.
show_spammy ("Mostrar atividade sem efeito" no menu) - Quando definido como false , essa configuração tenta limpar a linha do tempo dos eventos que não contribuem para a conversa de maneira razoável.
RoomsDock/tags_order - permite alterar a ordem das tags na lista de salas. Esta é uma lista separada por vírgula de tags/namespaces; Alguns caracteres têm significado especial, conforme descrito abaixo. Se uma tag não for mencionada e não se encaixar em nenhum espaço para nome, ela será colocada no final da lista de quartos em ordem lexicográfica. As tags dentro do mesmo espaço para nome também são ordenadas lexicograficamente.
.* (reconhecido apenas no final da string) significa todo o espaço para nome; Strings que não terminam com isso são tratadas como tags totalmente especificadas.
- em frente à tag/namespace significa que não deve ser usada para agrupamento; Por exemplo, se você não deseja que o grupo de pessoas possa adicionar -im.quotient.direct em qualquer lugar da lista. im.quotient.none ("Rooms") sempre existe e não pode ser desativado, apenas sua posição na lista é levada em consideração.
A ordem das tags padrão é a seguinte: m.favourite,u.*,im.quotient.direct,im.quotient.none,m.lowpriority , Significado: Favoritos, seguidos por todas as tags personalizadas do usuário, depois pessoas, salas sem tags ativadas (o grupo "Rooms") e finalmente baixas salas de prioridade. Se o Quaternion não encontrar a configuração na configuração, ele gravará essa linha na configuração para que você não precise inseri -la do zero.
Configurações não expostas na interface do usuário:
show_author_avatars - defina isso como 1 (ou true) para mostrar os avatares do autor na linha do tempo (padrão se o layout da linha do tempo estiver definido como padrão); Definir isso como 0 (ou false) suprimirá os avatares (padrão para o layout da linha do tempo do XCHAT).suppress_local_echo - defina isso como 1 (ou true) para suprimir mostrando o eco local (eventos enviados do aplicativo atual, mas ainda não confirmados pelo servidor). Por padrão, o eco local é mostrado.animations_duration_ms - define a duração base (em milissegundos) de efeitos de animação na linha do tempo. O padrão é 400; Defina -o como 0 para desativar a animação.outgoing_color - defina isso como o nome de cor que você prefere para o texto enviado; Os nomes de cores HTML e #codes SVG são suportados; Por padrão, é #204A87 (azul marinho).highlight_color - Defina isso como o nome de cor que você prefere para salas/mensagens destacadas; Os nomes de cores HTML e #codes SVG são suportados; Por padrão, é orange .highlight_mode - Defina isso como text se você preferir usar a cor do texto para destaque; O padrão é usar o plano de fundo para destaque.use_human_friendly_dates -Defina isso como false (ou 0) se você não quiser usar as datas amigas do ser humano ("hoje", "segunda-feira", em vez da tríade padrão do dia do dia) na interface do usuário; O padrão é verdadeiro.show_noop_events - Defina isso como 1 para mostrar eventos estaduais que não alteram o estado (você verá "(repetido)" ao lado da maioria deles).quote_style - o modelo de cotação. O \1 significa a sequência citada. Por padrão, é > \1n .quote_regex - Defina como ^([\s\S]*) para adicionar UI/quote_style apenas no início e no final da cotação. Por padrão, é (.+)(?:n|$) .Fonts/render_type - selecione como renderizar fontes na linha do tempo da quaternion; Os valores possíveis são "nativerendering" (padrão) e "qtrendering".Fonts/family - Substitua a família de fontes por toda a aplicação. Se não for especificado, a fonte padrão para o seu ambiente é usada.Fonts/pointSize - Substitua o tamanho da fonte (em pontos) para todo o aplicativo. Se não for especificado, o tamanho padrão do seu ambiente é usado.Fonts/timeline_family - Família Fonte (por exemplo, Monospace ) para exibir mensagens na linha do tempo. Se não for especificado, a família de fontes em todo o aplicativo é usada.Fonts/timeline_pointSize - Tamanho da fonte (em pontos) para exibir mensagens na linha do tempo. Se não for especificado, o tamanho do ponto em todo o aplicativo é usado.maybe_read_timer - intervalo de tempo limite em milissegundos para que uma mensagem exibida seja considerada como lida.hyperlink_users - Defina isso como false (ou 0) se você não deseja hiperlink IDs de usuário da matriz nas mensagens. Por padrão, é verdade.auto_markdown (Experimental) - Como a versão 0.0.95 Quaternion possui suporte experimental para o Markdown ao inserir mensagens. O quaternion trata apenas a mensagem como markdown se a mensagem iniciar com o comando /md (o próprio comando for removido da mensagem antes de enviar). Definir auto_markdown como true permite a análise de marcação em todas as mensagens que não começam com /plain . Por padrão, essa configuração é false , pois o suporte atual do Markdown pelo QT é de buggy, e a implementação no Quaternion tem suas próprias peculiaridades em cima disso. Se você o possui ativado (ou use /md ), sinta -se à vontade para enviar relatórios de bug no local usual.paste_plaintext_by_default - Defina isso como false (ou 0) se desejar colar texto formatado por padrão.O Quaternion usa o qt Keychain para armazenar tokens e picles de banco de dados. Se o armazenamento seguro suportado pelo QT Keychain não estiver disponível, a Quaternion não poderá armazenar seus token (s) de acesso e picles e desativará automaticamente o E2EE para evitar mensagens criptografadas irrecuperáveis. O arquivo de Fallback usado pelo quaternion pré-0.0.96 não é mais usado.
Quaternion cache o estado dos quartos e os avatares de usuário/sala no sistema de arquivos em um local convencional para sua plataforma, como segue:
$HOME/.cache/Quotient/quaternion$HOME/Library/Cache/Quotient/quaternion%LOCALAPPDATA%/Quotient/quaternion/cacheOs arquivos de cache são seguros para excluir a qualquer momento, mas o Quaternion os procura apenas ao iniciar e substituí -los regularmente enquanto estiver em execução; Portanto, faz sentido excluir arquivos de cache quando a quaternion não estiver em execução. Se a quaternion não encontrar ou não conseguir carregar os arquivos de cache totalmente na inicialização, ele baixará todo o estado dos servidores Matrix. Ele tenta otimizar esse processo por membros da sala de carregamento preguiçoso se o servidor suportar isso; Em um caso de azar, quando o servidor não pode fazer carregamento preguiçoso, a sincronização inicial pode levar muito tempo (até um minuto e ainda mais, dependendo do número de salas e do número de usuários neles).
A exclusão de arquivos de cache pode ajudar com problemas como os avatares ausentes, os quartos presos em um estado errado etc.
Quaternion usa libquotiente sob o capô; Alguns problemas de quaternion são realmente problemas de libquotiente. Se você não encontrou o seu caso abaixo, verifique também a seção Solução de problemas no libquotient readme.md.
Infelizmente, isso é uma limitação no código Libquotient atual: não solicita teclas mais antigas e, portanto, não pode descriptografar mensagens mais antigas. Verifique a edição 608 para o progresso disso.
Se o Quaternion for executado, mas você não puder ver nenhuma mensagem no bate -papo (embora possa digitá -las) - você pode não ter bibliotecas rápidas e/ou plug -ins instaladas. No Linux, este pode ser um caso em que você não está usando os pacotes oficiais para sua distro. Verifique os logs STDOUT/STDERR, eles são bastante claros nesses casos. No Windows, Mac e ao usar o Flatpak, basta abrir um problema (consulte "Contatos" no início deste arquivo) porque provavelmente nem todas as peças do QT necessárias foram embaladas junto com o quaternion.
Especialmente no Windows, se o quaternion iniciar, mas em uma tentativa de conectar, retorna uma mensagem como "falhou em fazer o contexto SSL" - as bibliotecas SSL corretas não são acessíveis pelo binário de quaternion. Releia o capítulo "Requisitos", seção "Windows" no início deste arquivo e faça o que ele aconselha (verifique se você usa a versão correta do OpenSSL - deve ser 3.x, não 1.x).
Se você deseja ver as mensagens de log no console da linha de comando (por padrão, elas serão enviadas para o System Log no Windows e alguns sistemas Linux com Journald), defina QT_ASSUME_STDERR_HAS_CONSOLE=1 para forçar a saída a ser redirecionada para o console.
Ao perseguir bugs e investigar falhas, ajuda a executar a quaternion a partir da linha de comando com o aumento do nível de registro. Libquotient e (desde 0,0.96 beta 4) usam categorias de registro de quaternion para permitir a comutação de logs de granulação fina para uma determinada parte do código. Quaternion e libquotient usam categorias diferentes; Este texto descreve apenas aqueles para quaternion, verifique também as categorias de registro Lib/ReadMe.md para Libquotient. A maneira mais prática de configurar o log para depurar um problema é através da variável de ambiente QT_LOGGING_RULES ; A documentação do QT (veja o link acima) lista alguns outros métodos. Em todos os casos, você precisa fornecer uma ou várias cláusulas que parecem a seguir:
quaternion.<category>.<level>=<flag>
onde
<category> é um dos (consulte também client/logging_categories.h ):mainaccountselectormodels (back -end de quaternion para listas de usuários e salas)models.events (o mesmo para eventos)timeline (código C ++ para visuais da linha do tempo - muito poucas linhas de log e não muito informativas, a menos que você saiba o que procurar)timeline.qml (código QML para visuais da linha do tempo - é isso que você provavelmente precisa descobrir por que a linha do tempo parece errada)htmlfilter (conversões entre os subconjuntos QT e Matrix de HTML, bem como a importação de HTML de outros aplicativos)messageinput (caixa de entrada da mensagem)thumbnails (o código para fornecer imagens para a linha do tempo)<level> é de debug , info e warning ;<flag> é true ou false . Lembre -se de que todas as categorias de registro para quaternion começam com quaternion , enquanto as categorias de registro para libquotient sempre começam com quotient .
Você pode usar * (asterisco) como curinga para qualquer parte entre dois pontos, e um semicolon é usado para um separador. As últimas declarações substituem as anteriores timeline.qml por isso
QT_LOGGING_RULES= " quaternion.*.debug=true;quaternion.timeline.qml.debug=false " Você também pode definir QT_MESSAGE_PATTERN para tornar os logs um pouco mais informativos (consulte https://doc.qt.io/qt-6/qtlogging.html#qSetMessagePattern para a descrição do formato). Meu (@kitsune) QT_MESSAGE_PATTERN parece o seguinte:
`%{time h:mm:ss.zzz}|%{category}|%{if-debug}D%{endif}%{if-info}I%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}|%{message}`
(O %{if} s está apenas codificando o nível de log em sua letra inicial).

