Quaternion เป็นไคลเอนต์ Desktop IM Cross-Platform สำหรับโปรโตคอลเมทริกซ์ คุณสามารถค้นหาข้อมูลทั่วไปเกี่ยวกับการใช้งานแอปพลิเคชันและการตั้งค่าได้ที่นี่ ดูอาคาร MD สำหรับคำแนะนำการสร้าง
การพูดคุยเกี่ยวกับ Quaternion ส่วนใหญ่เกิดขึ้นในห้องของโครงการหลักความฉลาด: #quotient: matrix.org คุณสามารถยื่นปัญหาได้ที่ตัวติดตามปัญหาของโครงการ หากคุณพบสิ่งที่ดูเหมือนปัญหาด้านความปลอดภัยโปรดทำตามคำแนะนำพิเศษ
วิธีที่แนะนำในการติดตั้ง quaternion มีดังนี้ (ตรวจสอบให้แน่ใจว่าได้อ่านบันทึกด้านล่างขึ้นอยู่กับสภาพแวดล้อมของคุณ):
ซอร์สโค้ดโฮสต์ที่ GitHub
Quaternion 0.0.97 ต้องการ QT เวอร์ชัน 6.4 หรือสูงกว่า
Quaternion ได้รับการบรรจุสำหรับการแจกแจงจำนวนมากรวมถึง Debian, Ubuntu และ OpenSuse เวอร์ชันต่าง ๆ รวมถึง Arch Linux, Nixos และ FreeBSD รายการที่ครอบคลุมค่อนข้างสามารถพบได้ที่ repology การแจกแจงยอดนิยมที่ตอบสนองความต้องการ QT ที่กล่าวถึงคือ Debian 12 (Bookworm), Ubuntu 24.04 (Noble), Fedora 39, OpenSuse Leap 15.6; สิ่งที่ใหม่กว่านั้นก็ควรจะดีเช่นกัน
ด้านบนของแพ็คเกจ Quaternion คุณไม่ควรติดตั้งอะไรนอกจากนี้ หากสิ่งที่ไม่ทำงานเนื่องจากการพึ่งพาที่ขาดหายไปมันเป็นข้อผิดพลาดในแพ็คเกจ - โปรดรายงานไปยังแพคเกจ Quaternion ของการกระจายของคุณ ไม่ใช่ ที่เก็บนี้
นอกจากนี้ยังมี flatpaks สำหรับ Quaternion จาก Flathub ในการติดตั้งใช้:
flatpak install https://flathub.org/repo/appstream/com.github.quaternion.flatpakref
แพ็คเกจเหล่านี้สร้างขึ้นด้วยรันไทม์ KDE ที่เหมาะสม คุณสามารถติดตั้งได้ในการกระจายใด ๆ ที่มี Flatpak - แม้ว่ามันจะเก่ากว่าที่กล่าวไว้ข้างต้น โปรดยื่นปัญหาที่ https://github.com/flathub/com.github.quaternion หากคุณเชื่อว่ามีปัญหาเฉพาะสำหรับแพ็คเกจ Flatpak ของ Quaternion
เนื่องจากไม่มีการจัดการแพ็คเกจที่จัดตั้งขึ้นบน Windows เพื่อแก้ไขการพึ่งพาไลบรารีที่จำเป็นทั้งหมดและรันไทม์ C ++ ได้รับการบรรจุ/ติดตั้งพร้อมกับ Quaternion - ยกเว้น OpenSSL หากคุณไม่ได้มี openssl อยู่รอบ ๆ (เช่นมันเป็นส่วนหนึ่งของการติดตั้งการพัฒนา QT ใด ๆ ) คุณควรติดตั้งด้วยตัวเอง Wiki ของ OpenSSL แสดงรายการลิงก์ไปยังตัวติดตั้ง OpenSSL พวกเขามาในการกำหนดค่าการสร้างที่แตกต่างกัน Quaternion ปัจจุบันต้องการ OpenSSL 3.x ที่ทำด้วย/สำหรับ Visual Studio (ไม่ใช่ MingW)
หากคุณใช้ Homebrew (คุณควร!) brew install quaternion ติดตั้ง quaternion พร้อมกับการพึ่งพา มิฉะนั้นแพ็คเกจที่เผยแพร่ที่ GitHub จะมาพร้อมกับทุกสิ่งที่จำเป็นรวมอยู่แล้ว
ต้องขอบคุณคนใจกว้างและให้การสนับสนุนที่ CloudSmith ที่ให้บริการโฮสต์ฟรีแก่โครงการ OSS ผู้ที่ต้องการตรวจสอบล่าสุด (ไม่จำเป็นต้องยิ่งใหญ่ที่สุดดูด้านล่าง) สามารถค้นหาแพ็คเกจที่ผลิตโดยการรวมอย่างต่อเนื่อง (CI) ใน quaternion repo ที่นั่น
บันทึกสำคัญบางประการเกี่ยวกับแพ็คเกจเหล่านี้ในกรณีที่คุณยังใหม่กับพวกเขา:
/join #quotient:matrix.org และมี URL ที่คุณดาวน์โหลด quaternion จาก ในกรณีที่มีปัญหาหากคุณต้องการสร้าง Quaternion จากแหล่งที่มาดูอาคาร
เพียงเริ่มต้นปฏิบัติการในวิธีที่คุณต้องการมากที่สุดไม่ว่าจะเป็นจากไดเรกทอรีบิลด์หรือจากตำแหน่งที่ติดตั้ง หากคุณสนใจในการปรับแต่งการกำหนดค่านอกเหนือจากสิ่งที่มีอยู่ใน UI ให้อ่านส่วน "การกำหนดค่า" เพิ่มเติมด้านล่าง
Quaternion ใช้ lokalise.co สำหรับความพยายามในการแปล เป็นเรื่องง่ายที่จะเข้าร่วม: เข้าร่วมโครงการที่ lokalise.co ขอเพิ่มภาษาของคุณ (ใน #quotient: matrix.org หรือในการแชทโครงการ lokalise) และเริ่มแปล! หลายภาษายังคงปรารถนาผู้มีส่วนร่วม
ตัวเลือกบรรทัดคำสั่งที่ไม่ใช่เรื่องสำคัญเท่านั้นที่มีอยู่คือ --locale ช่วยให้คุณสามารถแทนที่การใช้ quaternion ในสถานที่ (เทียบเท่ากับการตั้งค่าตัวแปร 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 - การตั้งค่าทั่วไปว่า Quaternion ควรเบี่ยงเบนความสนใจของผู้ใช้ด้วยการแจ้งเตือนและวิธีการ
none การระงับการแจ้งเตือนทั้งหมด (ห้องและข้อความยังคงมีแสงสว่าง แต่ไอคอนถาดถูกปิดเสียง);non-intrusive อนุญาตให้ไอคอนถาดแสดงการแสดงป๊อปอัพintrusive (ค่าเริ่มต้น) เพิ่มการเปิดใช้งานหน้าต่าง Quaternion (เช่นแอปพลิเคชันที่กระพริบในแถบงานหรือเพิ่มขึ้นหรือต้องการความสนใจในลักษณะเฉพาะสภาพแวดล้อม) timeline_layout - สิ่งนี้อนุญาตให้เลือกเค้าโครงไทม์ไลน์ หากสิ่งนี้ถูกตั้งค่าเป็น "XChat" Quaternion จะแสดงผู้เขียนทางด้านซ้ายของแต่ละข้อความในสไตล์ XCHAT/HexChat ค่าอื่นใดจะเลือกเค้าโครง "เริ่มต้น" พร้อมป้ายกำกับผู้เขียนที่อยู่เหนือบล็อกของข้อความ
use_shuttle_dial - Quaternion จะใช้หน้าปัดรับส่งแทนแถบเลื่อนคลาสสิกสำหรับการควบคุมการเลื่อนแนวตั้งของไทม์ไลน์ ในการเริ่มเลื่อนเลื่อนหมุนท่อส่งออกจากตำแหน่งที่เป็นกลางตรงกลาง ยิ่งคุณย้ายไปไกลเท่าไหร่คุณก็ยิ่งเลื่อนไปในทิศทางนั้นเร็วขึ้นเท่านั้น การปล่อยหน้าปัดจะรีเซ็ตกลับไปยังตำแหน่งที่เป็นกลางและหยุดการเลื่อน สิ่งนี้สะดวกยิ่งขึ้นหากคุณต้องการย้ายไปรอบ ๆ โดยไม่ทราบตำแหน่งที่สัมพันธ์กับขอบเช่นเดียวกับกรณีของเส้นเวลาเมทริกซ์ อย่างไรก็ตามการควบคุมค่อนข้างแปลกใหม่และไม่ใช่ทุกคนชอบ หน้าปัดรับส่งถูกเปิดใช้งานโดยค่าเริ่มต้น ตั้งค่านี้เป็นเท็จ (หรือ 0) เพื่อใช้แถบเลื่อนคลาสสิก
autoload_images - ควรโหลดรูปภาพขนาดเต็มทันทีหรือไม่เมื่อมีการแสดงข้อความบนหน้าจอ ค่าเริ่มต้นคือการโหลดภาพขนาดเต็มโดยอัตโนมัติ ตั้งค่านี้เป็นเท็จ (หรือ 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 ไม่พบการตั้งค่าในการกำหนดค่ามันจะเขียนบรรทัดนี้ลงในการกำหนดค่าเพื่อให้คุณไม่จำเป็นต้องป้อนตั้งแต่เริ่มต้น
การตั้งค่าที่ไม่ได้เปิดเผยใน UI:
show_author_avatars - ตั้งค่านี้เป็น 1 (หรือจริง) เพื่อแสดงอวตารของผู้เขียนในไทม์ไลน์ (ค่าเริ่มต้นหากการตั้งค่าไทม์ไลน์เป็นค่าเริ่มต้น); การตั้งค่านี้เป็น 0 (หรือเท็จ) จะระงับอวตาร (ค่าเริ่มต้นสำหรับเค้าโครงไทม์ไลน์ XCHAT)suppress_local_echo - ตั้งค่านี้เป็น 1 (หรือจริง) เพื่อระงับการแสดง echo ท้องถิ่น (เหตุการณ์ที่ส่งจากแอปพลิเคชันปัจจุบัน แต่ยังไม่ได้รับการยืนยันจากเซิร์ฟเวอร์) โดยค่าเริ่มต้น echo ท้องถิ่นจะปรากฏขึ้นanimations_duration_ms - กำหนดระยะเวลาพื้นฐาน (เป็นมิลลิวินาที) ของเอฟเฟกต์ภาพเคลื่อนไหวใน Timline ค่าเริ่มต้นคือ 400; ตั้งค่าเป็น 0 เพื่อปิดการใช้งานแอนิเมชั่นoutgoing_color - ตั้งค่าเป็นชื่อสีที่คุณต้องการสำหรับข้อความที่คุณส่ง รองรับชื่อสี HTML และ SVG #codes ; โดยค่าเริ่มต้นคือ #204A87 (Navy Blue)highlight_color - ตั้งค่าเป็นชื่อสีที่คุณต้องการสำหรับห้อง/ข้อความที่ไฮไลต์ รองรับชื่อสี HTML และ SVG #codes ; โดยค่าเริ่มต้นมันเป็น orangehighlight_mode - ตั้งค่าเป็น text หากคุณต้องการใช้สีข้อความสำหรับการไฮไลต์ ค่าเริ่มต้นคือการใช้พื้นหลังสำหรับการไฮไลต์use_human_friendly_dates ตั้งค่าเป็นเท็จ (หรือ 0) หากคุณไม่ต้องการใช้วันที่เป็นมิตรกับมนุษย์ ("วันนี้", "วันจันทร์" แทนที่จะเป็นสามวันมาตรฐานปี) ใน UI; ค่าเริ่มต้นเป็นจริงshow_noop_events - ตั้งค่าเป็น 1 เพื่อแสดงเหตุการณ์สถานะที่ไม่เปลี่ยนแปลงสถานะ (คุณจะเห็น "(ซ้ำ)" ถัดจากส่วนใหญ่)quote_style - เทมเพลตใบเสนอราคา \1 หมายถึงสตริงที่ยกมา โดยค่าเริ่มต้นมันคือ > \1nquote_regex - ตั้งค่าเป็น ^([\s\S]*) เพื่อเพิ่ม UI/quote_style เท่านั้นที่จุดเริ่มต้นและจุดสิ้นสุดของคำพูด โดยค่าเริ่มต้นคือ (.+)(?:n|$)Fonts/render_type - เลือกวิธีการแสดงแบบอักษรในไทม์ไลน์ quaternion; ค่าที่เป็นไปได้คือ "nativerendering" (ค่าเริ่มต้น) และ "qtrendering"Fonts/family - แทนที่ตระกูล Font สำหรับแอปพลิเคชันทั้งหมด หากไม่ได้ระบุตัวอักษรเริ่มต้นสำหรับสภาพแวดล้อมของคุณจะถูกใช้Fonts/pointSize - แทนที่ขนาดตัวอักษร (เป็นจุด) สำหรับแอปพลิเคชันทั้งหมด หากไม่ได้ระบุขนาดเริ่มต้นสำหรับสภาพแวดล้อมของคุณจะถูกใช้Fonts/timeline_family - FONT FAMILY (เช่น Monospace ) เพื่อแสดงข้อความในไทม์ไลน์ หากไม่ได้ระบุจะใช้ตระกูลตัวอักษรทั่วทั้งแอปพลิเคชันFonts/timeline_pointSize - ขนาดตัวอักษร (เป็นจุด) เพื่อแสดงข้อความในไทม์ไลน์ หากไม่ได้ระบุขนาดจุดทั่วทั้งแอปพลิเคชันจะถูกใช้maybe_read_timer - ช่วงเวลาเกณฑ์ในมิลลิวินาทีสำหรับข้อความที่แสดงที่จะพิจารณาว่าเป็นการอ่านhyperlink_users - ตั้งค่าเป็นเท็จ (หรือ 0) หากคุณไม่ต้องการให้ผู้ใช้ Matrix Hyperlink ในข้อความ โดยค่าเริ่มต้นมันเป็นเรื่องจริงauto_markdown (การทดลอง) - ตั้งแต่เวอร์ชัน 0.0.95 Quaternion มีการสนับสนุนการทดลองสำหรับ markdown เมื่อป้อนข้อความ Quaternion จะถือว่าข้อความเป็น markdown เท่านั้นหากข้อความเริ่มต้นด้วยคำสั่ง /md (คำสั่งเองจะถูกลบออกจากข้อความก่อนส่ง) การตั้งค่า auto_markdown เป็น true เปิดใช้งานการแยกวิเคราะห์ markdown ในข้อความทั้งหมดที่ ไม่ เริ่มต้นด้วย /plain แทน โดยค่าเริ่มต้นการตั้งค่านี้เป็น false เนื่องจากการสนับสนุนในปัจจุบันของ Markdown โดย QT คือ Buggy และการใช้งานใน Quaternion มีนิสัยใจคอของตัวเองอยู่ด้านบน หากคุณเปิดใช้งาน (หรือคำสั่งใช้ /md ) อย่าลังเลที่จะส่งรายงานข้อผิดพลาดในสถานที่ปกติpaste_plaintext_by_default - ตั้งค่าเป็นเท็จ (หรือ 0) หากคุณต้องการวางข้อความที่จัดรูปแบบตามค่าเริ่มต้นQuaternion ใช้ QT Keychain เพื่อจัดเก็บโทเค็นและฐานข้อมูลดองฐานข้อมูล หากไม่สามารถจัดเก็บข้อมูลที่ปลอดภัยโดย QT Keychain ได้ Quaternion จะไม่สามารถจัดเก็บโทเค็นการเข้าถึงของคุณและผักดองและจะปิดการใช้งาน E2EE โดยอัตโนมัติเพื่อหลีกเลี่ยงข้อความที่เข้ารหัสที่ไม่สามารถกู้คืนได้ ไฟล์ทางเลือกที่ใช้โดย Quaternion pre-0.0.96 ไม่ได้ใช้อีกต่อไป
Quaternion แคชสถานะของห้องพักและผู้ใช้/ห้องพักในระบบไฟล์ในสถานที่ทั่วไปสำหรับแพลตฟอร์มของคุณดังนี้:
$HOME/.cache/Quotient/quaternion$HOME/Library/Cache/Quotient/quaternion%LOCALAPPDATA%/Quotient/quaternion/cacheไฟล์แคชปลอดภัยที่จะลบได้ตลอดเวลา แต่ Quaternion จะมองหาพวกเขาเมื่อเริ่มต้นและเขียนทับพวกเขาเป็นประจำในขณะที่ทำงาน ดังนั้นจึงเหมาะสมที่จะลบไฟล์แคชเมื่อ Quaternion ไม่ทำงาน หาก Quaternion ไม่พบหรือไม่สามารถโหลดไฟล์แคชได้อย่างเต็มที่เมื่อเริ่มต้นจะดาวน์โหลดสถานะทั้งหมดจากเซิร์ฟเวอร์เมทริกซ์ มันพยายามที่จะเพิ่มประสิทธิภาพกระบวนการนี้โดยสมาชิกในห้องที่ขี้เกียจหากเซิร์ฟเวอร์รองรับสิ่งนั้น ในกรณีที่โชคร้ายเมื่อเซิร์ฟเวอร์ไม่สามารถโหลดขี้เกียจได้การซิงค์เริ่มต้นอาจใช้เวลามาก (สูงสุดหนึ่งนาทีขึ้นไปขึ้นอยู่กับจำนวนห้องและจำนวนผู้ใช้ในพวกเขา)
การลบไฟล์แคชอาจช่วยแก้ไขปัญหาเช่นอวตารที่หายไปห้องพักที่ติดอยู่ในสถานะที่ไม่ถูกต้อง ฯลฯ
Quaternion ใช้ libquotient ภายใต้ประทุน ปัญหา Quaternion บางอย่างเป็นปัญหาของ libquotient หากคุณไม่พบกรณีของคุณด้านล่างให้ตรวจสอบส่วนการแก้ไขปัญหาใน libquotient readme.md
น่าเสียดายที่นี่เป็นข้อ จำกัด ในรหัส libquotient ปัจจุบัน: มันไม่ได้ขอคีย์เก่าและดังนั้นจึงไม่สามารถถอดรหัสข้อความเก่า ๆ ได้ ตรวจสอบปัญหา 608 สำหรับความคืบหน้าเกี่ยวกับเรื่องนี้
หาก Quaternion ทำงาน แต่คุณไม่เห็นข้อความใด ๆ ในการแชท (แม้ว่าคุณสามารถพิมพ์ได้) - คุณอาจไม่ได้ติดตั้งไลบรารี QT Quick และ/หรือปลั๊กอินที่ติดตั้ง บน Linux นี่อาจเป็นกรณีที่คุณไม่ได้ใช้แพ็คเกจอย่างเป็นทางการสำหรับ distro ของคุณ ตรวจสอบบันทึก STDOUT/Stderr พวกเขาค่อนข้างชัดเจนในกรณีดังกล่าว บน Windows, Mac และเมื่อใช้ Flatpak เพียงแค่เปิดปัญหา (ดู "ผู้ติดต่อ" ในตอนต้นของไฟล์นี้) เพราะส่วนใหญ่ไม่ได้บรรจุชิ้นส่วน QT ที่จำเป็นทั้งหมดพร้อมกับ Quaternion
โดยเฉพาะอย่างยิ่งบน Windows หาก Quaternion เริ่มต้นขึ้น แต่เมื่อพยายามเชื่อมต่อส่งคืนข้อความเช่น "ล้มเหลวในการสร้างบริบท SSL" - ไลบรารี SSL ที่ถูกต้องจะไม่สามารถเข้าถึงได้โดย Quaternion Binary อ่านบท "ข้อกำหนด" อีกครั้งส่วน "windows" ในตอนต้นของไฟล์นี้และทำตามที่แนะนำ (ตรวจสอบให้แน่ใจว่าคุณใช้ OpenSSL เวอร์ชันที่ถูกต้อง - ควรเป็น 3.x ไม่ใช่ 1.x)
หากคุณต้องการดูข้อความบันทึกในคอนโซลบรรทัดคำสั่ง (โดยค่าเริ่มต้นพวกเขาจะถูกส่งไปยังระบบล็อกอินบน Windows และบางระบบ แต่ไม่ใช่ทั้งหมดที่มี Journald) ตั้งค่า QT_ASSUME_STDERR_HAS_CONSOLE=1 เพื่อบังคับให้เอาต์พุตจะเปลี่ยนเส้นทางไปยังคอนโซล
เมื่อไล่ล่าข้อบกพร่องและการตรวจสอบข้อบกพร่องมันจะช่วยเรียกใช้ Quaternion จากบรรทัดคำสั่งที่มีระดับการบันทึกที่เพิ่มขึ้น ทั้ง libquotient และ (ตั้งแต่ 0.0.96 เบต้า 4) quaternion ใช้หมวดหมู่การบันทึกเพื่อให้สามารถสลับบันทึกอย่างละเอียดสำหรับส่วนที่กำหนดของรหัส Quaternion และ libquotient ใช้หมวดหมู่ที่แตกต่างกัน ข้อความนี้อธิบายเฉพาะข้อความสำหรับ quaternion ตรวจสอบให้แน่ใจว่าได้ตรวจสอบ lib/readme.md สำหรับหมวดหมู่การบันทึก libquotient วิธีที่ใช้งานได้จริงที่สุดในการกำหนดค่าการบันทึกเพื่อแก้ไขปัญหาคือผ่านตัวแปรสภาพแวดล้อม QT_LOGGING_RULES ; เอกสาร QT (ดูลิงค์ด้านบน) แสดงรายการวิธีอื่นสองสามวิธี ในทุกกรณีคุณต้องจัดเตรียมหนึ่งหรือหลายข้อที่มีดังนี้:
quaternion.<category>.<level>=<flag>
ที่ไหน
<category> เป็นหนึ่งใน (ดูเพิ่มเติม client/logging_categories.h ):mainaccountselectormodels (Backend Quaternion สำหรับผู้ใช้และรายการห้อง)models.events (เหมือนกันสำหรับเหตุการณ์)timeline (รหัส C ++ สำหรับภาพไทม์ไลน์ - บรรทัดบันทึกน้อยมากและไม่ได้ให้ข้อมูลมากนักเว้นแต่คุณจะรู้ว่าจะมองหาอะไร)timeline.qml (รหัส QML สำหรับภาพไทม์ไลน์ - นี่คือสิ่งที่คุณอาจต้องคิดออกว่าทำไมไทม์ไลน์จึงดูผิด)htmlfilter (การแปลงระหว่างชุดย่อย QT และเมทริกซ์ของ HTML รวมถึงการนำเข้า HTML จากแอปพลิเคชันอื่น ๆ )messageinput (กล่องรายการข้อความ)thumbnails (รหัสเพื่อจัดหาภาพสำหรับไทม์ไลน์)<level> เป็นหนึ่งใน debug info และ warning<flag> เป็น true หรือ false โปรดจำไว้ว่าหมวดหมู่การบันทึกทั้งหมดสำหรับ quaternion เริ่มต้นด้วย quaternion ในขณะที่การบันทึกหมวดหมู่สำหรับ libquotient มักจะเริ่มต้นด้วย quotient
คุณสามารถใช้ * (Asterisk) เป็นสัญลักษณ์ไวด์การ์ดสำหรับส่วนใดส่วนหนึ่งระหว่างจุดสองจุดและเซมิโคลอนจะใช้สำหรับตัวคั่น ข้อความหลังแทนที่เดิมดังนั้นหากคุณต้องการเปิดบันทึกการดีบักทั้งหมดยกเว้น 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 สำหรับคำอธิบายรูปแบบ) QT_MESSAGE_PATTERN ของฉัน (@kitsune's) มีลักษณะดังนี้:
`%{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}`
(Scary %{if} s เพิ่งเข้ารหัสระดับการบันทึกลงในตัวอักษรเริ่มต้น)

