Quaternion adalah klien IM desktop lintas platform untuk protokol matriks. Anda dapat menemukan informasi umum tentang penggunaan dan pengaturan aplikasi di sini. Lihat Building.md untuk instruksi bangunan.
Sebagian besar berbicara tentang kuaternion terjadi di ruang proyek induknya, Quotient: #Quotient: matrix.org. Anda dapat mengajukan masalah di pelacak masalah proyek. Jika Anda menemukan apa yang tampak seperti masalah keamanan, silakan ikuti instruksi khusus.
Cara yang disarankan untuk menginstal kuarter adalah sebagai berikut (pastikan untuk membaca catatan di bawah ini tergantung pada lingkungan Anda):
Kode sumber di -host di GitHub.
Quaternion 0.0.97 Kebutuhan qt versi 6.4 atau lebih tinggi.
Kuaternion dikemas untuk banyak distribusi, termasuk berbagai versi Debian, Ubuntu dan OpenSUSE, serta Arch Linux, Nixos dan FreeBSD. Daftar yang cukup komprehensif dapat ditemukan di REPOLOGI. Distribusi populer yang memenuhi persyaratan QT yang disebutkan adalah Debian 12 (kutu buku), Ubuntu 24.04 (Noble), Fedora 39, OpenSUSE Leap 15.6; Apa pun yang lebih baru dari itu seharusnya baik -baik saja.
Di atas paket quaternion, Anda biasanya tidak perlu menginstal apa pun selain itu; Jika ada sesuatu yang tidak berfungsi karena ketergantungan yang hilang, itu adalah bug dalam paket - silakan laporkan ke paket quaternion distribusi Anda, bukan ke repositori ini.
Ada juga flatpaks untuk kuarter yang tersedia dari Flathub. Untuk menginstal, gunakan:
flatpak install https://flathub.org/repo/appstream/com.github.quaternion.flatpakref
Paket -paket ini dibangun dengan runtime KDE yang cocok. Anda dapat menginstalnya pada distribusi apa pun yang memiliki Flatpak - bahkan jika lebih tua dari yang disebutkan di atas. Silakan ajukan masalah di https://github.com/flathub/com.github.quaternion Jika Anda yakin ada masalah khusus untuk paket flatpak quaternion.
Karena tidak ada manajemen paket yang ditetapkan pada Windows untuk menyelesaikan dependensi, semua perpustakaan yang diperlukan dan runtime C ++ dikemas/diinstal bersama dengan kuaternion - kecuali OpenSSL. Kecuali jika Anda sudah memiliki openssl di sekitar (misalnya, itu adalah bagian dari instalasi pengembangan QT), Anda harus menginstalnya sendiri. Wiki OpenSSL mencantumkan beberapa tautan ke installer OpenSSL. Mereka datang dalam konfigurasi build yang berbeda; Build Quaternion saat ini membutuhkan OpenSSL 3.x dibuat dengan/untuk Visual Studio (bukan Mingw).
Jika Anda menggunakan Homebrew (Anda harus!), brew install quaternion Instalasi Kuarter bersama dengan ketergantungannya. Kalau tidak, paket yang diterbitkan di Github Rilis hadir dengan semua yang diperlukan sudah dibundel.
Terima kasih kepada orang -orang yang murah hati dan mendukung di Cloudsmith yang memberikan hosting gratis untuk proyek OSS, mereka yang ingin memeriksa kode terbaru (tidak harus yang terhebat, lihat di bawah) dapat menemukan paket yang diproduksi oleh Integrasi Berkelanjutan (CI) dalam repo kuarter di sana.
Beberapa catatan penting pada paket -paket ini jika Anda baru di mereka:
/join #quotient:matrix.org dan mintalah URL yang Anda unduh dari Kuarter. Dalam kasus masalah,Jika Anda ingin membangun quaternion dari sumber, lihat Building.md.
Mulai saja yang dapat dieksekusi dengan cara yang paling disukai Anda - baik dari direktori build atau dari lokasi yang diinstal. Jika Anda tertarik untuk mengubah konfigurasi di luar apa yang tersedia di UI, baca bagian "Konfigurasi" lebih lanjut di bawah ini.
Quaternion menggunakan Lokalise.co untuk upaya penerjemahan. Mudah untuk berpartisipasi: Bergabunglah dengan proyek di Lokalise.co, mintalah untuk menambahkan bahasa Anda (baik di #Quotient: matrix.org atau di obrolan proyek Lokalise) dan mulailah menerjemahkan! Banyak bahasa masih merindukan kontributor.
Satu-satunya opsi baris perintah non-sepele yang tersedia sejauh ini adalah --locale -memungkinkan Anda untuk mengganti penggunaan kuarter lokal (setara dengan pengaturan variabel LC_ALL pada sistem berbasis UNIX). Versi 0.0.96 hadir dengan terjemahan Jerman, Rusia, Polandia, dan Spanyol.
Quaternion menyimpan konfigurasinya dengan cara standar untuk aplikasi QT, seperti yang dijelaskan di bawah ini. Ini akan membaca dan menulis konfigurasi di lokasi khusus pengguna (membuatnya jika tidak ada) dan hanya akan membaca lokasi sistem-lebar dengan default yang masuk akal jika konfigurasi tidak ditemukan pada yang spesifik pengguna.
$HOME/.config/Quotient/quaternion.conf$XDG_CONFIG_DIR/Quotient/quaternion atau /etc/xdg/Quotient/quaternion$HOME/Library/Preferences/im.quotient.quaternion.plist/Library/Preferences/im.quotient.quaternion.plistHKEY_CURRENT_USERSoftwareQuotientquaternionHKEY_LOCAL_MACHINESoftwareQuotientquaternion Semua pengaturan yang tercantum di bawah ini berada di bagian UI dari file konfigurasi atau (untuk windows) registri.
Beberapa pengaturan yang diekspos di antarmuka pengguna (pengaturan dan menu tampilan) adalah:
notifications - Pengaturan umum apakah kuarter harus mengalihkan perhatian pengguna dengan pemberitahuan dan bagaimana.
none yang menekan pemberitahuan sepenuhnya (kamar dan pesan masih terang tetapi ikon baki diredam);non-intrusive memungkinkan ikon baki menampilkan popup pemberitahuan;intrusive (default) menambah aktivasi jendela Quaternion (yaitu aplikasi berkedip di bilah tugas, atau dinaikkan, atau menuntut perhatian dengan cara khusus lingkungan). timeline_layout - Ini memungkinkan untuk memilih tata letak garis waktu. Jika ini diatur ke "XChat", Quaternion akan menunjukkan kepada penulis di sebelah kiri setiap pesan, dengan gaya XChat/Hexchat. Nilai lain apa pun akan memilih tata letak "default", dengan label penulis di atas blok pesan.
use_shuttle_dial - Quaternion akan menggunakan tombol antar -jemput alih -alih scrollbar klasik untuk kontrol gulir vertikal timeline. Untuk mulai menggulir, pindahkan tombol antar -jemput menjauh dari posisi netral di tengah; Semakin jauh Anda memindahkannya, semakin cepat Anda menggulir ke arah itu. Melepaskan Dial mengatur ulang kembali ke posisi netral dan berhenti menggulir. Ini lebih nyaman jika Anda perlu bergerak tanpa mengetahui posisi relatif terhadap tepi, seperti halnya garis waktu matriks; Namun, kontrolnya agak tidak konvensional dan tidak semua orang menyukainya. Dial shuttle diaktifkan secara default; Atur ini ke false (atau 0) untuk menggunakan scrollbar klasik.
autoload_images - Apakah gambar ukuran penuh harus dimuat segera setelah pesan ditampilkan di layar. Standarnya adalah memuat gambar ukuran penuh secara otomatis; Atur ini ke false (atau 0) untuk menonaktifkannya dan hanya memuat thumbnail di timeline (dengan gambar lengkap yang diunduh setelah Anda mengklik "simpan sebagai" atau "buka" di menu konteks). Lihat #601 untuk peringatan.
show_spammy ("Tampilkan aktivitas tanpa efek" di menu) - Saat diatur ke false , pengaturan ini mencoba membersihkan timeline dari peristiwa yang tidak berkontribusi pada percakapan dengan cara yang masuk akal.
RoomsDock/tags_order - memungkinkan untuk mengubah urutan tag dalam daftar kamar. Ini adalah daftar tag/namespaces yang dipisahkan secara koma; Beberapa karakter memiliki makna khusus seperti yang dijelaskan di bawah ini. Jika tag tidak disebutkan dan tidak sesuai dengan namespace, itu akan ditempatkan di akhir daftar kamar dalam urutan leksikografi. Tag dalam namespace yang sama juga dipesan secara leksikografis.
.* (Hanya dikenali di ujung string) berarti seluruh namespace; String yang tidak berakhir dengan ini diperlakukan sebagai tag yang sepenuhnya ditentukan.
- Di depan tag/namespace berarti tidak boleh digunakan untuk pengelompokan; misalnya, jika Anda tidak ingin kelompok orang, Anda dapat menambahkan -im.quotient.direct di mana saja dalam daftar. im.quotient.none ("kamar") selalu ada dan tidak dapat dinonaktifkan, hanya posisinya dalam daftar yang diperhitungkan.
Urutan tag default adalah sebagai berikut: m.favourite,u.*,im.quotient.direct,im.quotient.none,m.lowpriority , Artinya: Favorit, diikuti oleh semua tag khusus pengguna, kemudian orang, kamar tanpa tag yang diaktifkan (grup "kamar") dan akhirnya kamar prioritas rendah. Jika Quaternion tidak menemukan pengaturan dalam konfigurasi itu akan menuliskan baris ini ke konfigurasi sehingga Anda tidak perlu memasukkannya dari awal.
Pengaturan yang tidak terpapar di UI:
show_author_avatars - atur ini ke 1 (atau true) untuk menampilkan avatar penulis di timeline (default jika tata letak timeline diatur ke default); Menetapkan ini ke 0 (atau false) akan menekan avatar (default untuk tata letak timeline xchat).suppress_local_echo - Atur ini ke 1 (atau true) untuk menekan menunjukkan gema lokal (peristiwa yang dikirim dari aplikasi saat ini tetapi belum dikonfirmasi oleh server). Secara default, gema lokal ditampilkan.animations_duration_ms - mendefinisikan durasi dasar (dalam milidetik) efek animasi di garis waktu. Standarnya adalah 400; Atur ke 0 untuk menonaktifkan animasi.outgoing_color - atur ini ke nama warna yang Anda sukai untuk teks yang Anda kirim; Nama warna HTML dan SVG #codes didukung; Secara default, itu #204A87 (biru tua).highlight_color - Atur ini ke nama warna yang Anda sukai untuk kamar/pesan yang disorot; Nama warna HTML dan SVG #codes didukung; Secara default itu orange .highlight_mode - Atur ini ke text jika Anda lebih suka menggunakan warna teks untuk disorot; Standarnya adalah menggunakan latar belakang untuk menyorot.use_human_friendly_dates -atur ini ke false (atau 0) jika Anda tidak ingin penggunaan tanggal ramah manusia ("hari ini", "Senin" alih-alih triad tahun-bulan standar) di UI; Standarnya benar.show_noop_events - atur ini ke 1 untuk menunjukkan peristiwa negara yang tidak mengubah status (Anda akan melihat "(diulang)" di sebelah sebagian besar dari itu).quote_style - Template kutipan. \1 berarti string yang dikutip. Secara default itu > \1n .quote_regex - Setel ke ^([\s\S]*) untuk menambahkan UI/quote_style hanya di awal dan akhir kutipan. Secara default itu (.+)(?:n|$) .Fonts/render_type - pilih cara membuat font dalam timeline quaternion; Nilai yang mungkin adalah "nativerendering" (default) dan "qtrendering".Fonts/family - Menggantikan keluarga font untuk seluruh aplikasi. Jika tidak ditentukan, font default untuk lingkungan Anda digunakan.Fonts/pointSize - Mengganti ukuran font (dalam poin) untuk seluruh aplikasi. Jika tidak ditentukan, ukuran default untuk lingkungan Anda digunakan.Fonts/timeline_family - Font Family (misalnya Monospace ) untuk menampilkan pesan di timeline. Jika tidak ditentukan, keluarga font lebar aplikasi digunakan.Fonts/timeline_pointSize - Ukuran font (dalam titik) untuk menampilkan pesan di timeline. Jika tidak ditentukan, ukuran titik selebar aplikasi digunakan.maybe_read_timer - Interval waktu ambang batas dalam milidetik untuk pesan yang ditampilkan untuk dianggap dibaca.hyperlink_users - atur ini ke false (atau 0) jika Anda tidak ingin hyperlink matriks ID pengguna dalam pesan. Secara default itu benar.auto_markdown (Eksperimental) - Karena versi 0.0.95 Quaternion memiliki dukungan eksperimental untuk penurunan harga saat memasukkan pesan. Quaternion hanya memperlakukan pesan sebagai Markdown jika pesan dimulai dengan /md perintah (perintah itu sendiri dihapus dari pesan sebelum mengirim). Mengatur auto_markdown ke true memungkinkan penurunan harga di semua pesan yang tidak dimulai dengan /plain sebagai gantinya. Secara default, pengaturan ini false karena dukungan saat ini dari Markdown oleh QT adalah buggy, dan implementasi dalam kuarter memiliki keanehannya sendiri di atas itu. Jika Anda memilikinya diaktifkan (atau menggunakan /md perintah) jangan ragu untuk mengirimkan laporan bug di tempat yang biasa.paste_plaintext_by_default - atur ini ke false (atau 0) jika Anda ingin menempelkan teks yang diformat secara default.Quaternion menggunakan Keychain QT untuk menyimpan token akses dan acar basis data. Jika penyimpanan aman yang didukung oleh Keychain QT tidak tersedia, Quaternion tidak akan dapat menyimpan token akses Anda dan acar dan secara otomatis akan menonaktifkan E2EE untuk menghindari pesan terenkripsi yang tidak dapat dipulihkan. File fallback yang digunakan oleh Quaternion pra-0.0.96 tidak lagi digunakan.
Quaternion menyimpan status kamar dan avatar pengguna/kamar pada sistem file di lokasi konvensional untuk platform Anda, sebagai berikut:
$HOME/.cache/Quotient/quaternion$HOME/Library/Cache/Quotient/quaternion%LOCALAPPDATA%/Quotient/quaternion/cacheFile cache aman untuk dihapus kapan saja tetapi kuarter hanya mencarinya saat memulai dan menimpanya secara teratur saat berjalan; Jadi masuk akal untuk menghapus file cache saat quaternion tidak berjalan. Jika Quaternion tidak menemukan atau tidak dapat sepenuhnya memuat file cache saat startup itu mengunduh seluruh keadaan dari server matriks. Ia mencoba untuk mengoptimalkan proses ini dengan anggota ruang pemuatan malas jika server mendukungnya; Dalam kasus yang tidak beruntung ketika server tidak dapat melakukan pemuatan malas, sinkronisasi awal dapat memakan banyak waktu (hingga satu menit dan bahkan lebih, tergantung pada jumlah kamar dan jumlah pengguna di dalamnya).
Menghapus file cache dapat membantu dengan masalah seperti avatar yang hilang, kamar terjebak dalam keadaan yang salah dll.
Quaternion menggunakan libquotient di bawah kap; Beberapa masalah kuarter sebenarnya adalah masalah libquotient. Jika Anda belum menemukan kasus di bawah ini, periksa juga bagian pemecahan masalah di LibQuotient ReadMe.md.
Sayangnya, ini adalah batasan dalam kode libquotient saat ini: tidak meminta kunci yang lebih lama dan karenanya tidak dapat mendekripsi pesan yang lebih lama. Periksa masalah 608 untuk kemajuan ini.
Jika Quaternion berjalan tetapi Anda tidak dapat melihat pesan apa pun dalam obrolan (meskipun Anda dapat mengetiknya) - Anda mungkin tidak memiliki pustaka QT Quick dan/atau plugin yang diinstal. Di Linux, ini mungkin kasus ketika Anda tidak menggunakan paket resmi untuk distro Anda. Periksa log stdout/stderr, mereka cukup jelas dalam kasus seperti itu. Di Windows, Mac, dan ketika menggunakan Flatpak, cukup buka masalah (lihat "Kontak" di awal file ini) karena kemungkinan besar tidak semua bagian QT yang diperlukan dikemas bersama dengan quaternion.
Terutama pada Windows, jika kuarli dimulai tetapi pada upaya untuk menghubungkan mengembalikan pesan seperti "Gagal membuat konteks SSL" - perpustakaan SSL yang benar tidak dapat dijangkau oleh biner Quaternion. Baca kembali bab "Persyaratan", bagian "Windows" di awal file ini dan lakukan sesuai sarannya (pastikan khususnya Anda menggunakan versi OpenSSL yang benar - itu harus 3.x, bukan 1.x).
Jika Anda ingin melihat pesan log di konsol baris perintah (secara default, mereka dikirim ke sistem log pada windows dan beberapa tetapi tidak semua sistem linux dengan jurnal), atur QT_ASSUME_STDERR_HAS_CONSOLE=1 untuk memaksa output akan dialihkan ke konsol.
Saat mengejar bug dan menyelidiki crash, akan membantu menjalankan quaternion dari baris perintah dengan peningkatan level logging. Baik libquotient dan (karena 0,0,96 beta 4) Kuarter menggunakan kategori logging untuk memungkinkan pengalihan log berbutir halus untuk bagian tertentu dari kode. Kuarter dan LibQuotient menggunakan kategori yang berbeda; Teks ini hanya menjelaskan mereka untuk quaternion, pastikan untuk juga memeriksa lib/readme.md untuk kategori logging libquotient. Cara paling praktis untuk mengonfigurasi logging untuk men -debug masalah adalah melalui variabel lingkungan QT_LOGGING_RULES ; Dokumentasi QT (lihat tautan di atas) mencantumkan beberapa metode lainnya. Dalam semua kasus, Anda perlu menyediakan satu atau beberapa klausa yang terlihat sebagai berikut:
quaternion.<category>.<level>=<flag>
Di mana
<category> adalah salah satu (lihat juga client/logging_categories.h ):mainaccountselectormodels (backend quaternion untuk daftar pengguna dan kamar)models.events (sama untuk acara)timeline (kode C ++ untuk visual timeline - sangat sedikit garis log dan tidak terlalu informatif kecuali Anda tahu apa yang harus dicari)timeline.qml (kode QML untuk visual timeline - inilah yang mungkin Anda butuhkan untuk mengetahui mengapa garis waktu terlihat salah)htmlfilter (konversi antara QT dan subset matriks HTML serta impor HTML dari aplikasi lain)messageinput (kotak entri pesan)thumbnails (kode untuk memasok gambar untuk timeline)<level> adalah salah satu dari debug , info , dan warning ;<flag> true atau false . Ingatlah bahwa semua kategori logging untuk kuarter dimulai dengan quaternion sementara kategori logging untuk libQuotient selalu dimulai dengan quotient .
Anda dapat menggunakan * (tanda bintang) sebagai wildcard untuk setiap bagian antara dua titik, dan titik koma digunakan untuk pemisah. Pernyataan terakhir mengesampingkan yang sebelumnya, jadi jika Anda ingin menyalakan semua log debug kecuali timeline.qml Anda dapat mengatur
QT_LOGGING_RULES= " quaternion.*.debug=true;quaternion.timeline.qml.debug=false " Anda mungkin juga ingin mengatur QT_MESSAGE_PATTERN untuk membuat log sedikit lebih informatif (lihat https://doc.qt.io/qt-6/qtlogging.html#qsetMessagePattern untuk deskripsi format). Saya (@kitsune's) QT_MESSAGE_PATTERN terlihat sebagai berikut:
`%{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 hanya mengkode level logging ke dalam huruf awalnya).

