Quaternion-это кроссплатформенный настольный клиент IM для протокола матрицы. Вы можете найти общую информацию об использовании приложений и настройках здесь. См. Building.md для строительства
Большая часть разговоров вокруг кватерниона происходит в комнате его родительского проекта, Коэффициент: #Quotient: matrix.org. Вы можете подать проблемы на трекер выпуска проекта. Если вы найдете то, что выглядит как проблема безопасности, пожалуйста, следуйте специальным инструкциям.
Рекомендуемый способ установить Quaternion заключается в следующем (обязательно прочитайте примечания ниже в зависимости от вашей среды):
Исходный код размещен в GitHub.
Кватернион 0.0,97 нуждается в QT версии 6.4 или выше.
Кватернион упакован для многих распределений, включая различные версии Debian, Ubuntu и OpenSuse, а также Arch Linux, Nixos и FreeBSD. Довольно всеобъемлющий список можно найти в репологии. Популярные распределения, удовлетворяющие упомянутым требованиям QT, - Debian 12 (Bookworm), Ubuntu 24.04 (Noble), Fedora 39, OpenSuse Leap 15.6; Что -нибудь новое, чем это должно быть в порядке.
Помимо пакета Quaternion, вам обычно не нужно устанавливать что -либо дополнительно; Если что -то не работает из -за отсутствующей зависимости, это ошибка в пакете - пожалуйста, сообщите об этом своему кватернионному пакете вашего дистрибуции, а не в этом хранилище.
Есть также плоские пакки для кватерниона, доступных от Flathub. Для установки используйте:
flatpak install https://flathub.org/repo/appstream/com.github.quaternion.flatpakref
Эти пакеты построены с подходящим временем выполнения KDE. Вы можете установить их на любое распределение, которое имеет Flatpak - даже если он старше, чем упоминалось выше. Пожалуйста, подайте проблемы на https://github.com/flathub/com.github.quaternion, если вы считаете, что есть проблема, специфичная для пакета Quaternion Flatpak.
Поскольку в Windows нет установленного управления пакетами для разрешения зависимостей, все необходимые библиотеки и время выполнения C ++ упакованы/установлены вместе с Quaternion - кроме OpenSSL. Если у вас уже нет OpenSSL (например, это часть любой установки разработки QT), вы должны установить его самостоятельно. Wiki OpenSSL перечисляет несколько ссылок на установщики OpenSSL. Они бывают разных конфигураций сборки; Текущие кватернионные сборки нуждаются в OpenSSL 3.x, изготовленный с/для Visual Studio (не Mingw).
Если вы используете Homebrew (вы должны!), brew install quaternion Установка Quaternion вместе с его зависимостями. В противном случае, пакеты, опубликованные в выпусках GitHub, поставляются со всем необходимым, уже связанным.
Благодаря щедрым и поддерживающим людям в Cloudsmith, которые предоставляют бесплатный хостинг для проектов OSS, тех, кто хочет проверить последний (не обязательно самый большой, см. Ниже), могут найти пакеты, производимые путем непрерывной интеграции (CI) в Quaternion Repo.
Несколько важных заметок об этих пакетах на случай, если вы новичок в них:
/join #quotient:matrix.org и имейте URL, который вы загрузили Quaternion. В случае проблемы,Если вы хотите построить кватернион из источников, см. Building.md.
Просто запустите исполняемый файл наиболее предпочтительным образом - либо из каталога сборки, либо из установленного места. Если вы заинтересованы в настройке конфигурации за пределами того, что доступно в пользовательском интерфейсе, прочитайте раздел «Конфигурация» ниже.
Quaternion использует lokalise.co для перевода. Это легко участвовать: присоединяйтесь к проекту на Lokalise.co, попросите добавить свой язык (либо в #quotient: matrix.org, либо в чате Lokalise Project) и начать перевод! Многие языки все еще жаждут участников.
Единственная нетривиальная параметром командной строки, доступная до сих пор --locale -она позволяет переопределять использование кватерниона Locale (эквивалент установки переменной LC_ALL в системах на основе UNIX). Версия 0.0.96 поставляется с немецкими, русскими, польскими и испанскими переводами.
Quaternion сохраняет свою конфигурацию таким образом стандарта для приложений QT, как описано ниже. Он будет читать и записывать конфигурацию в конкретном месте пользователя (создание ее, если они не существующие), и будет читать общеобразовательное местоположение только с разумными значениями по умолчанию, если конфигурация не найдена в конкретном пользователе.
$HOME/.config/Quotient/quaternion.conf$XDG_CONFIG_DIR/Quotient/quaternion или /etc/xdg/Quotient/quaternion$HOME/Library/Preferences/im.quotient.quaternion.plist/Library/Preferences/im.quotient.quaternion.plistHKEY_CURRENT_USERSoftwareQuotientquaternionHKEY_LOCAL_MACHINESoftwareQuotientquaternion Все настройки, перечисленные ниже, находятся в разделе UI файла конфигурации или (для Windows) реестра.
Некоторые настройки, выявленные в пользовательском интерфейсе (настройки и меню просмотра):
notifications - общий настройка, должен ли кватернион отвлекать пользователя уведомлениями и как.
none подавляет уведомления полностью (комнаты и сообщения по -прежнему являются более высокими, но икона лотка приглушен);non-intrusive позволяет значке лотка показывать всплывающие окна уведомления;intrusive (по умолчанию) добавляет к этой активации окна Quaternion (то есть приложение мигает в строке задач, или поднимается, или иным образом требует внимания специфичным для окружающей среды). timeline_layout - Это позволяет выбрать макет временной шкалы. Если это установлено на «xchat», Quaternion покажет автору слева от каждого сообщения, в стиле Xchat/Hexchat. Любое другое значение выберет макет «по умолчанию», с мечениями автора выше блоков сообщений.
use_shuttle_dial - Quaternion будет использовать трансфер вместо классической прокрутки для управления вертикальной прокруткой временной шкалы. Чтобы начать прокрутку переместить шаттл на циферблате от ее нейтральной позиции в середине; Чем дальше вы двигаете его, тем быстрее вы прокручиваете в этом направлении. Выпуск циферблата сбрасывает его обратно в нейтральное положение и прекращает прокрутку. Это более удобно, если вам нужно перемещаться, не зная позиции относительно краев, как в случае с временной шкалой матрицы; Тем не менее, контроль несколько нетрадиционный, и не всем людям нравится. Шатт -циферблат включен по умолчанию; Установите это на false (или 0), чтобы использовать классическую прокрутку.
autoload_images - следует ли загружать полноразмерные изображения немедленно после того, как сообщение будет показано на экране. По умолчанию автоматически загружать полноразмерные изображения; Установите это на false (или 0), чтобы отключить это и загрузить только миниатюру в временной шкале (с полным изображением, загруженным после нажатия «Сохранить как» или «открыть» в контекстном меню). Проверьте #601 для предостережения.
show_spammy («Показать неэффективную деятельность» в меню) - При установке на false эта настройка пытается очистить график от событий, которые не способствуют разговору каким -либо разумным способом.
RoomsDock/tags_order - позволяет изменить порядок тегов в списке комнат. Это разделенный запятой список тегов/пространств имен; Несколько персонажей имеют особое значение, как описано ниже. Если тег не упоминается и не соответствует пространству имен, он будет помещен в конце списка комнаты в лексикографическом порядке. Теги в одном и том же пространстве имен также упорядочены лексикографически.
.* (только распознается в конце строки) означает все пространство имен; Строки, которые не заканчиваются этим, рассматриваются как полностью указанные теги.
- перед тегом/пространством имен означает, что его не следует использовать для группировки; Например, если вы не хотите, чтобы люди группы могли добавить -im.quotient.direct в любом месте в списке. im.quotient.none («Комнаты») всегда существует и не может быть отключена, только его позиция в списке принимается во внимание.
Заказ о тегах по умолчанию заключается в следующем: m.favourite,u.*,im.quotient.direct,im.quotient.none,m.lowpriority , значение: фавориты, за которыми следуют все пользовательские теги, затем люди, комнаты без включенных тегов (группа «комнаты») и, наконец, приоритетные комнаты. Если Quaternion не найдет настройку в конфигурации, он запишет эту строку в конфигурацию, чтобы вам не нужно вводить ее с нуля.
Настройки, не выставленные в пользовательском интерфейсе:
show_author_avatars - установить это на 1 (или true), чтобы показать авторские аватары на временной шкале (по умолчанию, если макет временной шкалы установлен по умолчанию); Установка этого на 0 (или false) будет подавлять аватары (по умолчанию для макета временной шкалы XChat).suppress_local_echo - установите это на 1 (или True), чтобы подавить, показывая локальное Echo (события, отправленные из текущего приложения, но еще не подтверждены сервером). По умолчанию показано локальное эхо.animations_duration_ms - определяет базовую продолжительность (в миллисекундах) эффектов анимации в Timline. По умолчанию 400; Установите его на 0, чтобы отключить анимацию.outgoing_color - установите это на имя цвета, которое вы предпочитаете для отправленного текста; HTML -имена и SVG #codes поддерживаются; По умолчанию это #204A87 (темно -синий).highlight_color - установите это на имя цвета, которое вы предпочитаете для выделенных комнат/сообщений; HTML -имена и SVG #codes поддерживаются; По умолчанию это orange .highlight_mode - установите это на text , если вы предпочитаете использовать цвет текста для выделения; По умолчанию используется фон для выделения.use_human_friendly_dates -установите это на false (или 0), если вы не хотите использовать даты, благоприятные для человека («сегодня», «понедельник» вместо стандартной триады на дневное годы) в пользовательском интерфейсе; По умолчанию верно.show_noop_events - установите это на 1, чтобы показать события состояния, которые не изменяют состояние (вы увидите »(повторяется)« рядом с большинством из них).quote_style - Шаблон цитаты. \1 означает цитируемую строку. По умолчанию это > \1n .quote_regex - Установите в ^([\s\S]*) чтобы добавить UI/quote_style только в начале и в конце цитаты. По умолчанию это (.+)(?:n|$) .Fonts/render_type - выберите, как отображать шрифты в временной шкале кватерниона; Возможными значениями являются «Nativerendering» (по умолчанию) и «Qtrendering».Fonts/family - переопределите семью шрифтов для всего приложения. Если не указано, используется шрифт по умолчанию для вашей среды.Fonts/pointSize - переопределить размер шрифта (в точках) для всего приложения. Если не указано, используется размер по умолчанию для вашей среды.Fonts/timeline_family - семейство шрифтов (например, Monospace ) для отображения сообщений на временной шкале. Если не указано, используется семейство шрифтов по всему приложению.Fonts/timeline_pointSize - размер шрифта (в точках) для отображения сообщений на временной шкале. Если не указано, используется размер точки применения.maybe_read_timer - Порог -интервал времени в миллисекундах для отображаемого сообщения, которое следует рассматривать как чтение.hyperlink_users - Установите это на false (или 0), если вы не хотите, чтобы пользовательские идентификаторы матрицы гиперссылки в сообщениях. По умолчанию это правда.auto_markdown (экспериментальный) - Поскольку версия 0.0.95 Quaternion имеет экспериментальную поддержку Markdown при вводе сообщений. Quaternion рассматривает сообщение только как отметки, если сообщение начинается с команды /md (сама команда удаляется из сообщения перед отправкой). Установка auto_markdown true позволяет анализировать маркировку во всех сообщениях, которые не начинаются с /plain . По умолчанию эта настройка является false , поскольку текущая поддержка Markdown By QT является Buggy, а реализация в Quaternion имеет свои собственные причуды. Если у вас есть его включен (или используйте /md Command), не стесняйтесь отправлять отчеты об ошибках в обычном месте.paste_plaintext_by_default - установите это на false (или 0), если вы хотите вставить форматированный текст по умолчанию.Quaternion использует QT Keychain для хранения токенов доступа и маринованных баз данных. Если безопасное хранилище, поддерживаемое QT KeyChain, недоступно, Quaternion не сможет сохранить ваш токен (ы) и соленые токлы доступа и автоматически отключит E2EE, чтобы избежать невозможности зашифрованных сообщений. Запасной файл, используемый Quaternion Pre-0.0.96, больше не используется.
Кватернион кэширует номера и аватары пользователя/комнаты в файловой системе в обычном месте для вашей платформы, следующим образом:
$HOME/.cache/Quotient/quaternion$HOME/Library/Cache/Quotient/quaternion%LOCALAPPDATA%/Quotient/quaternion/cacheКэш -файлы безопасны для удаления в любое время, но Quaternion ищет их только при запуске и регулярно перезаписывает их во время работы; Таким образом, имеет смысл удалять файлы кэша только при запуска Quaternion. Если Quaternion не находит или не может полностью загрузить файлы кэша при запуске, он загружает все состояние с Matrix Servers. Он пытается оптимизировать этот процесс с помощью членов комнаты Lazy-загрузки, если сервер поддерживает это; В несчастливом случае, когда сервер не может выполнять ленивую загрузку, начальная синхронизация может занять много времени (до минуты и даже больше, в зависимости от количества комнат и количества пользователей в них).
Удаление файлов кеша может помочь с такими проблемами, как отсутствие аватаров, комнаты, застрявшие в неправильном состоянии и т. Д.
Quaternion использует Libquotient под капюшоном; Некоторые проблемы кватерниона на самом деле являются проблемами либкотента. Если вы не нашли свой случай ниже, проверьте также раздел по устранению неполадок в libquotient readme.md.
К сожалению, это ограничение в текущем коде либеотентных: он не запрашивает более старые ключи и, следовательно, не может расшифровать старые сообщения. Проверьте выпуск 608 для прогресса в этом.
Если Quaternion работает, но вы не можете увидеть никаких сообщений в чате (хотя вы можете ввести их в) - у вас может не быть установленных библиотек QT Quick и/или плагинов. На Linux это может быть случай, когда вы не используете официальные пакеты для своего дистрибутива. Проверьте журналы Stdout/Stderr, они довольно ясны в таких случаях. В Windows, Mac и при использовании Flatpak просто откройте проблему (см. «Контакты» в начале этого файла), потому что, скорее всего, не все необходимые детали QT были упакованы вместе с кватернионом.
Особенно в Windows, если Quaternion запускается, но при попытке подключения возвращает сообщение, подобное «не удалось создать контекст SSL» - правильные библиотеки SSL не достигаются двойным двойным кватернионом. Перечитайте главу «Требования», раздел «Windows» в начале этого файла и сделайте так, как она советует (убедитесь, что вы используете правильную версию OpenSSL - это должно быть 3.x, а не 1.x).
Если вы хотите увидеть сообщения журнала в консоли командной строки (по умолчанию, они отправляются в системный журнал в Windows, а некоторые, но не все системы Linux с журналом), установите QT_ASSUME_STDERR_HAS_CONSOLE=1 чтобы заставить вывод быть перенаправленным на консоли.
При погоне за ошибками и исследованием сбоев это помогает запустить кватернион из командной строки с повышенным уровнем ведения журнала. Как Libquotient, так и (с 0,0,96 бета 4) категории журналов используют кватернион, чтобы обеспечить мелкозернистое переключение журналов для данной части кода. Quaternion и Libquotient используют разные категории; Этот текст описывает только те, которые для Quaternion, обязательно проверяйте lib/readme.md на категории журнала либеотенции. Наиболее практичный способ настройки ведения журнала для отладки проблемы - через переменную среды QT_LOGGING_RULES ; В документации QT (см. Ссылку выше) перечислены несколько других методов. Во всех случаях вам нужно предоставить один или несколько пунктов, которые выглядят следующим образом:
quaternion.<category>.<level>=<flag>
где
<category> - один из (см. Также client/logging_categories.h ):mainaccountselectormodels (бэкэнд Quaternion для списков пользователей и помещений)models.events (то же самое для событий)timeline (код C ++ для визуальных эффектов по срокам - очень мало линий журналов и не очень информативно, если вы не знаете, что искать)timeline.qml (QML -код для визуальных эффектов по срокам - это то, что вам, вероятно, нужно выяснить, почему график выглядит неправильно)htmlfilter (преобразования между QT и матричными подмножествами HTML, а также импорт HTML из других приложений)messageinput (поле ввода сообщения)thumbnails (код для подачи изображений для временной шкалы)<level> - это один из debug , info и warning ;<flag> является либо true , либо false . Имейте в виду, что все категории регистрации для кватерниона начинаются с quaternion , в то время как ведение категорий регистрации для Libquotient всегда начинается с quotient .
Вы можете использовать * (звездочку) в качестве подстановочного знака для любой части между двумя точками, и для сепаратора используется полуколон. Последние утверждения переопределяют прежние, поэтому, если вы хотите включить все журналы отладки, кроме timeline.qml , вы можете установить
QT_LOGGING_RULES= " quaternion.*.debug=true;quaternion.timeline.qml.debug=false " Вы также можете захотеть установить QT_MESSAGE_PATTERN , чтобы сделать журналы немного более информативными (см. Https://doc.qt.io/qt-6/qtlogging.html#qsetmessagepattern для описания формата). My (@Kitsune's) QT_MESSAGE_PATTERN выглядит следующим образом:
`%{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}`
(Страшные %{if} s просто кодируют уровень регистрации в свою начальную букву).

