Quaternion est un client IM de bureau multiplateforme pour le protocole matriciel. Vous pouvez trouver des informations générales sur l'utilisation des applications et les paramètres ici. Voir Building.MD pour les instructions du bâtiment.
La plupart des discussions sur le quaternion se produisent dans la salle de son projet parent, Quotient: #Quotient: Matrix.org. Vous pouvez déposer des problèmes au tracker des problèmes du projet. Si vous trouvez ce qui ressemble à un problème de sécurité, veuillez suivre les instructions spéciales.
La façon recommandée d'installer le Quaternion est la suivante (assurez-vous de lire les notes ci-dessous en fonction de votre environnement):
Le code source est hébergé chez GitHub.
Quaternion 0.0.97 a besoin de QT version 6.4 ou supérieure.
Le quaternion est emballé pour de nombreuses distributions, y compris diverses versions de Debian, Ubuntu et OpenSuse, ainsi que Arch Linux, Nixos et FreeBSD. Une liste assez complète peut être trouvée lors de la répologie. Les distributions populaires satisfaisant l'exigence de QT mentionnée sont Debian 12 (Bookworm), Ubuntu 24.04 (Noble), Fedora 39, OpenSuse Leap 15.6; Tout ce qui est plus récent que cela devrait être bien aussi.
En plus du package Quaternion, vous ne devez normalement pas avoir besoin d'installer quoi que ce soit en plus; Si quelque chose ne fonctionne pas en raison d'une dépendance manquante, c'est un bogue dans le package - veuillez le signaler au Packager Quaternion de votre distribution, pas à ce référentiel.
Il existe également des platspaks pour le quaternion disponibles auprès de Flathub. Pour installer, utiliser:
flatpak install https://flathub.org/repo/appstream/com.github.quaternion.flatpakref
Ces forfaits sont construits avec un runtime KDE approprié. Vous pouvez les installer sur n'importe quelle distribution qui a Flatpak - même si elle est plus ancienne que celle mentionnée ci-dessus. Veuillez déposer des problèmes sur https://github.com/flathub/com.github.quaternion si vous croyez qu'il y a un problème spécifique au package Flatpak de Quaternion.
Puisqu'il n'y a pas de gestion de package établie sur Windows pour résoudre les dépendances, toutes les bibliothèques nécessaires et un runtime C ++ sont emballés / installés avec Quaternion - sauf OpenSSL. À moins que vous n'ayez déjà OpenSSL (par exemple, cela fait partie de toute installation de développement QT), vous devriez l'installer vous-même. Le wiki d'OpenSSL répertorie quelques liens vers les installateurs d'OpenSSL. Ils sont disponibles dans différentes configurations de construction; Les versions de quaternion actuelles doivent être OpenSSL 3.x faites avec / pour Visual Studio (pas Mingw).
Si vous utilisez Homebrew (vous devriez!), brew install quaternion Installe Quaternion avec ses dépendances. Sinon, les packages publiés dans les sorties GitHub sont livrés avec tout ce qui est déjà nécessaire.
Grâce à des gens généreux et de soutien à Cloudsmith qui fournissent un hébergement gratuit aux projets OSS, ceux qui souhaitent consulter le dernier code (pas nécessairement le plus grand, voir ci-dessous) peuvent trouver des packages produits par l'intégration continue (CI) dans le Repo Quaternion.
Quelques notes importantes sur ces packages au cas où vous seriez nouveau pour eux:
/join #quotient:matrix.org et demandez à l'URL que vous avez téléchargé Quaternion. En cas de problème,Si vous souhaitez construire le quaternion à partir de sources, voir Building.md.
Commencez simplement l'exécutable de votre manière la plus préférée - soit à partir du répertoire de construction, soit à partir de l'emplacement installé. Si vous êtes intéressé à peaufiner la configuration au-delà de ce qui est disponible dans l'interface utilisateur, lisez la section "Configuration" plus ci-dessous.
Quaternion utilise Lokalise.co pour l'effort de traduction. Il est facile de participer: rejoignez le projet sur Lokalise.co, demandez à ajouter votre langue (soit dans #quotient: matrix.org ou dans le chat de projet Lokalise) et commencez à traduire! De nombreuses langues aspirent toujours aux contributeurs.
La seule option de ligne de commande non triviale disponible jusqu'à présent est --locale - il vous permet de remplacer les utilisations du Quaternion locale (un équivalent de définition de la variable LC_ALL sur les systèmes basés sur Unix). La version 0.0.96 est livrée avec des traductions allemandes, russes, polonaises et espagnoles.
Quaternion stocke sa configuration d'une manière standard pour les applications QT, comme décrit ci-dessous. Il lira et écrira la configuration dans l'emplacement spécifique à l'utilisateur (la créant si inexistante) et ne lira que l'emplacement à l'échelle du système avec des valeurs par défaut raisonnables si la configuration n'est pas trouvée à l'usage de l'utilisateur.
$HOME/.config/Quotient/quaternion.conf$XDG_CONFIG_DIR/Quotient/quaternion ou /etc/xdg/Quotient/quaternion$HOME/Library/Preferences/im.quotient.quaternion.plist/Library/Preferences/im.quotient.quaternion.plistHKEY_CURRENT_USERSoftwareQuotientquaternionHKEY_LOCAL_MACHINESoftwareQuotientquaternion Tous les paramètres répertoriés ci-dessous résident dans la section UI du fichier de configuration ou du registre (pour Windows).
Certains paramètres exposés dans l'interface utilisateur (paramètres et menus de vue) sont:
notifications - Un réglage général si le quaternion doit distraire l'utilisateur avec des notifications et comment.
none ne supprime entièrement les notifications (les chambres et les messages sont toujours éclairés mais l'icône du plateau est muet);non-intrusive permet à l'icône du plateau d'afficher des fenêtres de notification;intrusive (par défaut) ajoute à cette activation de la fenêtre de quaternion (c'est-à-dire que l'application clignote dans la barre de tâches, ou se faire augmenter, ou exige autrement l'attention d'une manière spécifique à l'environnement). timeline_layout - Cela permet de choisir la disposition du timeline. Si cela est défini sur "Xchat", Quaternion montrera l'auteur à gauche de chaque message, dans un style Xchat / Hexchat. Toute autre valeur sélectionnera la disposition "par défaut", avec des étiquettes d'auteur au-dessus des blocs de messages.
use_shuttle_dial - Quaternion utilisera un cadran de navette au lieu d'une barre de défilement classique pour le contrôle de défilement vertical de la chronologie. Pour commencer à faire défiler, déplacez le cadran de la navette de sa position neutre au milieu; Plus vous le déplacez, plus vous faites défiler rapidement dans cette direction. La libération du cadran la réinitialise à la position neutre et cesse de faire défiler. Ceci est plus pratique si vous devez vous déplacer sans connaître la position par rapport aux bords, comme c'est le cas d'une chronologie matricielle; Cependant, le contrôle est quelque peu non conventionnel et tout le monde ne l'aime pas. Le cadran de la navette est activé par défaut; Définissez ceci sur false (ou 0) pour utiliser la barre de défilement classique.
autoload_images - si des images pleine grandeur doivent être chargées immédiatement une fois le message affiché à l'écran. La valeur par défaut est de charger automatiquement les images pleine grandeur; Définissez ceci sur false (ou 0) pour désactiver cela et charger une miniature dans la chronologie (avec l'image complète téléchargée après avoir cliqué sur "Enregistrer sous" ou "Ouvrir" dans le menu contextuel). Découvrez # 601 pour la mise en garde.
show_spammy ("Show No-Effect Activity" dans le menu) - Lorsqu'il est défini sur false , ce paramètre essaie de nettoyer la chronologie à partir d'événements qui ne contribuent pas à la conversation de manière raisonnable.
RoomsDock/tags_order - permet de modifier l'ordre des balises dans la liste des chambres. Il s'agit d'une liste de balises / espaces de noms séparées par des virgules; Quelques personnages ont une signification particulière comme décrit ci-dessous. Si une balise n'est pas mentionnée et ne correspond à aucun espace de noms, il sera mis à la fin de la liste des chambres dans l'ordre lexicographique. Les balises dans le même espace de noms sont également commandées en lexicographiquement.
.* (uniquement reconnu à la fin de la chaîne) signifie tout l'espace de noms; Les cordes qui ne se terminent pas par cela sont traitées comme des balises entièrement spécifiées.
- Devant l'espace tag / names signifie qu'il ne doit pas être utilisé pour le regroupement; Par exemple, si vous ne voulez pas de groupe de personnes, vous pouvez ajouter -im.quotient.direct n'importe où dans la liste. im.quotient.none ("salles") existe toujours et ne peut pas être désactivée, seule sa position dans la liste est prise en compte.
L'ordre des tags par défaut est le suivant: m.favourite,u.*,im.quotient.direct,im.quotient.none,m.lowpriority , signifiant: favoris, suivi de toutes les balises personnalisées de l'utilisateur, puis des personnes, des chambres sans étiquettes activées (le groupe "salles") et enfin des salles de priorité faible. Si Quaternion ne trouve pas le paramètre dans la configuration, il notera cette ligne à la configuration afin que vous n'ayez pas besoin de l'entrer à partir de zéro.
Paramètres non exposés dans l'interface utilisateur:
show_author_avatars - Définissez ceci sur 1 (ou true) pour afficher les avatars de l'auteur dans la chronologie (par défaut si la disposition de la chronologie est définie sur défaut); Le réglage sur 0 (ou false) supprimera les avatars (par défaut pour la disposition de la chronologie XCHAT).suppress_local_echo - Définissez ceci sur 1 (ou true) pour supprimer l'affichage de l'écho local (événements envoyés à partir de l'application actuelle mais pas encore confirmée par le serveur). Par défaut, l'écho local est affiché.animations_duration_ms - Définit la durée de base (en millisecondes) des effets d'animation dans le Timline. La valeur par défaut est 400; Réglez-le sur 0 pour désactiver l'animation.outgoing_color - définissez ceci sur le nom de couleur que vous préférez pour le texte que vous avez envoyé; Les noms de couleurs HTML et SVG #codes sont pris en charge; Par défaut, c'est #204A87 (bleu marine).highlight_color - Réglez ceci sur le nom de couleur que vous préférez pour les pièces / messages en surbrillance; Les noms de couleurs HTML et SVG #codes sont pris en charge; Par défaut, c'est orange .highlight_mode - Définissez ceci sur text si vous préférez utiliser la couleur du texte pour la surbrillance; La valeur par défaut consiste à utiliser l'arrière-plan pour la mise en évidence.use_human_friendly_dates - définissez ceci sur false (ou 0) si vous ne voulez pas d'utiliser des dates respectueuses de l'homme ("aujourd'hui", "lundi" au lieu de la triade standard de la journée du mois) dans l'interface utilisateur; La valeur par défaut est vraie.show_noop_events - Réglez ceci sur 1 pour afficher des événements d'État qui ne modifient pas l'état (vous verrez "(répété)" à côté de la plupart d'entre eux).quote_style - Le modèle de devis. Le \1 signifie la chaîne citée. Par défaut, c'est > \1n .quote_regex - réglé sur ^([\s\S]*) pour ajouter UI/quote_style uniquement au début et à la fin de la citation. Par défaut, c'est (.+)(?:n|$) .Fonts/render_type - Sélectionnez comment rendre les polices dans la chronologie Quaternion; Les valeurs possibles sont "nativeredering" (par défaut) et "qTrendering".Fonts/family - remplacer la famille des polices pour l'ensemble de l'application. Si ce n'est pas spécifié, la police par défaut de votre environnement est utilisée.Fonts/pointSize - remplacer la taille de la police (en points) pour l'ensemble de l'application. Si ce n'est pas spécifié, la taille par défaut de votre environnement est utilisée.Fonts/timeline_family - Family Font (par exemple Monospace ) pour afficher des messages dans la chronologie. Si elle n'est pas spécifiée, la famille de polices à l'échelle de l'application est utilisée.Fonts/timeline_pointSize - Taille de police (en points) pour afficher les messages dans la chronologie. Si elle n'est pas spécifiée, la taille du point à l'échelle de l'application est utilisée.maybe_read_timer - Intervalle de temps de seuil en millisecondes pour qu'un message affiché soit considéré comme lu.hyperlink_users - Définissez ceci sur false (ou 0) si vous ne souhaitez pas hyperlienter les ID utilisateur de matrice dans les messages. Par défaut, c'est vrai.auto_markdown (expérimental) - Depuis la version 0.0.95 Quaternion a un support expérimental pour Markdown lors de la saisie des messages. Quaternion ne traite que le message comme Markdown si le message commence par la commande /md (la commande elle-même est supprimée du message avant l'envoi). La définition auto_markdown vers true permet l'analyse de marquage dans tous les messages qui ne commencent pas par /plain à la place. Par défaut, ce paramètre est false car la prise en charge actuelle de Markdown par QT est buggy, et l'implémentation dans Quaternion a ses propres bizarreries en plus de cela. Si vous l'avez activé (ou utilisation /md ), n'hésitez pas à soumettre des rapports de bogues à l'endroit habituel.paste_plaintext_by_default - définissez ceci sur false (ou 0) si vous souhaitez coller du texte formaté par défaut.Quaternion utilise le clés QT pour stocker les jetons d'accès et les cornichons de base de données. Si le stockage sécurisé pris en charge par QT Keychain n'est pas disponible, le Quaternion ne pourra pas stocker vos jetons d'accès et vos cornichons et désactivera automatiquement E2EE pour éviter les messages cryptés irrécouvrables. Le fichier de repli utilisé par Quaternion avant 0.0.96 n'est plus utilisé.
Quaternion cache les salles d'état des chambres et les avatars des utilisateurs / de la salle sur le système de fichiers dans un emplacement conventionnel pour votre plate-forme, comme suit:
$HOME/.cache/Quotient/quaternion$HOME/Library/Cache/Quotient/quaternion%LOCALAPPDATA%/Quotient/quaternion/cacheLes fichiers de cache sont sûrs à supprimer à tout moment, mais Quaternion ne les recherche que lors du démarrage et les écrase régulièrement lors de l'exécution; Il est donc logique de supprimer les fichiers de cache lorsque le quaternion n'est pas en cours d'exécution. Si Quaternion ne trouve pas ou ne peut pas charger complètement les fichiers de cache au démarrage, il télécharge tout l'état à partir de serveurs matriciels. Il essaie d'optimiser ce processus par des membres de la salle de chargement paresseux si le serveur le prend en charge; Dans un cas malchanceux lorsque le serveur ne peut pas faire de chargement paresseux, la synchronisation initiale peut prendre beaucoup de temps (jusqu'à une minute et encore plus, selon le nombre de pièces et le nombre d'utilisateurs.
La suppression des fichiers de cache peut aider à des problèmes tels que les avatars manquants, les chambres coincées dans un mauvais état, etc.
Le quaternion utilise du libquotient sous le capot; Certains problèmes de quaternion sont en fait des problèmes de libquotient. Si vous n'avez pas trouvé votre cas ci-dessous, vérifiez également la section de dépannage dans libquotient readme.md.
Malheureusement, il s'agit d'une limitation dans le code Libquotient actuel: il ne demande pas les clés plus anciennes et ne peut donc pas décrypter les messages plus anciens. Vérifiez le numéro 608 pour les progrès à ce sujet.
Si le quaternion s'exécute mais que vous ne voyez aucun message dans le chat (bien que vous puissiez les taper) - vous ne pouvez pas installer des bibliothèques et / ou des plugins QT Quick. Sur Linux, cela peut être un cas lorsque vous n'utilisez pas les packages officiels pour votre distribution. Vérifiez les journaux STDOUT / STDERR, ils sont assez clairs dans de tels cas. Sur Windows, Mac et lorsque vous utilisez FlatPak, ouvrez simplement un problème (voir "Contacts" au début de ce fichier) car il n'est probablement pas emballé toutes les pièces QT nécessaires avec le quaternion.
Surtout sur Windows, si le quaternion démarre mais sur une tentative de connexion renvoie un message comme "Échec du contexte SSL" - les bibliothèques SSL correctes ne sont pas accessibles par le binaire Quaternion. Relisez le chapitre "Exigences", section "Windows" au début de ce fichier et faites ce qu'il conseille (assurez-vous en particulier que vous utilisez la version correcte d'OpenSSL - elle devrait être 3.x, pas 1.x).
Si vous souhaitez voir les messages de journal dans la console de ligne de commande (par défaut, ils sont envoyés à la connexion système sur Windows et certains mais pas tous des systèmes Linux avec JournalD), définissez QT_ASSUME_STDERR_HAS_CONSOLE=1 pour forcer la sortie à être redirigé vers la console.
Lors de la poursuite des bogues et de l'enquête sur les accidents, il aide à exécuter le quaternion à partir de la ligne de commande avec un niveau de journalisation accru. Libquotient et (depuis 0,0,96 bêta 4) Quaternion utilise des catégories de journalisation pour permettre une commutation à grain fin pour une partie donnée du code. Le quaternion et le libquotient utilisent différentes catégories; Ce texte ne décrit que ceux de Quaternion, assurez-vous de vérifier également Lib / Readme.md pour les catégories de journalisation libquotient. La façon la plus pratique de configurer la journalisation afin de déboguer un problème est via la variable d'environnement QT_LOGGING_RULES ; La documentation QT (voir le lien ci-dessus) répertorie quelques autres méthodes. Dans tous les cas, vous devez fournir une ou plusieurs clauses qui semblent comme suit:
quaternion.<category>.<level>=<flag>
où
<category> est l'un des (voir aussi client/logging_categories.h ):mainaccountselectormodels (backend Quaternion pour les listes d'utilisateurs et de chambres)models.events (Idem pour les événements)timeline (code C ++ pour les visuels de la chronologie - très peu de lignes de journal et pas très informative à moins que vous ne sachiez quoi rechercher)timeline.qml (code QML pour les visuels de la chronologie - c'est ce dont vous avez probablement besoin pour comprendre pourquoi la chronologie semble mal)htmlfilter (conversions entre les sous-ensembles QT et Matrix de HTML ainsi que l'importation HTML à partir d'autres applications)messageinput (boîte de saisie de messages)thumbnails (le code pour fournir des images pour la chronologie)<level> est l'un des debug , info et warning ;<flag> est true ou false . Gardez à l'esprit que toutes les catégories de journalisation pour le quaternion commencent par quaternion tandis que les catégories de journalisation pour libquotient commencent toujours par quotient .
Vous pouvez utiliser * (astérisque) comme un joker pour n'importe quelle partie entre deux points, et un point-virgule est utilisé pour un séparateur. Ces dernières déclarations remplacent les anciens, donc si vous souhaitez activer tous les journaux de débogage, sauf timeline.qml , vous pouvez définir
QT_LOGGING_RULES= " quaternion.*.debug=true;quaternion.timeline.qml.debug=false " Vous pouvez également définir QT_MESSAGE_PATTERN pour rendre les journaux légèrement plus informatifs (voir https://doc.qt.io/qt-6/qtlogging.html#qsetMessagePattern pour la description du format). Mon (@ kitsune) QT_MESSAGE_PATTERN semble comme suit:
`%{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}`
(Les %{if} sont simplement encodant le niveau de journalisation dans sa lettre initiale).

