Compare commits

...
4 Commits
Author SHA1 Message Date
JonKazama-Hellion 2f762a9410 Merge branch 'feature/v2.0.6'
Forge Announce / Post changelog to Hellion Forge (push) Failing after 0s
Release / Build and attach release ZIP (push) Failing after 0s
Security Scan (reusable) / Security Scan (push) Successful in 27s
Security / scan (push) Successful in 27s
Build / Build (Release) (push) Successful in 32s
2026-09-20 17:17:36 +02:00
JonKazama-Hellion bc88fe3431 chore(release): 2.0.6 -- status bar, optional
One request, one toggle. Manifests, changelog, roadmap and the Forge post
for v2.0.6; the v2.0.2 block leaves the yaml to keep it at four.
2026-09-20 17:17:36 +02:00
JonKazama-Hellion 73257328b6 feat(settings): a toggle to hide the status bar
The bottom pill row was fixed in place. Window → Window style gets
"Show status bar", on by default so nobody's window changes until they
flip it. The row carries a "Suggested by" line under it, a generic key
meant for reuse, so the person who asked sees their name next to the
feature rather than in a changelog.
2026-09-20 17:16:18 +02:00
JonKazama-Hellion 1be0730679 docs(roadmap): backfill 2.0.3 and 2.0.4, note what 2.0.5 made cheaper
Security Scan (reusable) / Security Scan (push) Successful in 24s
Security / scan (push) Successful in 24s
Build / Build (Release) (push) Successful in 28s
The released list jumped from 2.0.5 straight to 2.0.2 -- neither of the two
August patches was ever entered. Both are in now, described the same way as
their neighbours.

The UX bundle's "global hotkey to close the active tab" also gets a note.
Until 2.0.5 there was no close path at all for it to bind to; CloseTab and
GetCloseability carry the rules now, so the keybind is the only part left.
2026-08-23 02:31:08 +02:00
36 changed files with 230 additions and 19 deletions
+8
View File
@@ -0,0 +1,8 @@
---
subtitle: "Statusleiste abschaltbar"
versionsnatur: "Feature-Patch"
---
Eine Frage aus dem Discord, klein genug für ein eigenes Release: Sind die Pillen am unteren Rand fest im Code? Waren sie.
- **Die Statusleiste lässt sich ausschalten.** Die Reihe am unteren Rand des Chatfensters (Kanal, Privatsphäre-Status, Nachrichtenzähler, Flüstern, Uhr, Version) hatte keinen Schalter. Unter Einstellungen → Fenster → Fenster-Style gibt es jetzt „Statusleiste anzeigen". Aus, und der Chat nimmt den Platz. Bleibt für alle an, bis du es ausschaltest, von selbst ändert sich nichts. Eines solltest du wissen: Kamera und Schloss wohnen in dieser Reihe. Ohne Leiste zeigen Screenshot-Modus und Privatsphäre-Filter nichts mehr an.
- **Vorgeschlagen von Ashy ^.^, und das steht auch dran.** Der Schalter trägt eine Zeile „Vorgeschlagen von" unter sich. Wer etwas vorschlägt, soll den eigenen Namen dort sehen, wo die Funktion gelandet ist, nicht in einem Changelog, das niemand öffnet. Die Zeile ist in alle 25 Sprachen übersetzt und bereit für den nächsten Vorschlag.
+1
View File
@@ -231,6 +231,7 @@ public class Configuration : IPluginConfiguration
public bool CanResize = true;
public bool ShowTitleBar;
public bool ShowPopOutTitleBar = true;
public bool ShowStatusBar = true;
public bool DatabaseBattleMessages;
public bool FilterIncludePreviousSessions;
public bool SortAutoTranslate;
+1 -1
View File
@@ -1,7 +1,7 @@
<Project Sdk="Dalamud.NET.Sdk/15.0.0">
<PropertyGroup>
<!-- Independent versioning; see yaml changelog for upstream Chat 2 base -->
<Version>2.0.5</Version>
<Version>2.0.6</Version>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<!-- Use lock file to pin exact versions -->
+9 -7
View File
@@ -21,6 +21,15 @@ tags:
- Replacement
- Privacy
changelog: |-
**v2.0.6 — Status bar, optional (2026-09-20)**
One question from the Discord, small enough to ship on its own: are the pills along the bottom edge fixed in the code? They were.
- **The status bar can be switched off.** The row at the bottom of the chat window (channel, privacy state, message counts, tells, clock, version) had no switch. Settings → Window → Window style has "Show status bar" now. Off, the chat body takes the space; on for everyone until you turn it off, so nothing changes by itself. One thing to know: the camera and the lock live in that row, so with the bar hidden, screenshot mode and the privacy filter give no visible sign.
- **Suggested by Ashy ^.^, and it says so.** The toggle carries a "Suggested by" line under it. Whoever proposes a feature should see their name where the feature lives, not in a changelog they will never open. The line is translated into all 25 languages and is a generic key, ready for the next suggestion.
---
**v2.0.5 — Focus, and a way out (2026-08-23)**
Two tester reports, both about the same corner: what a tell does to what you were doing, and what you can do about a tab once it exists.
@@ -48,12 +57,5 @@ changelog: |-
- **Screenshot mode could not be turned off.** It is a saved setting, but neither of its two toggles wrote the change to the config file, so switching it off never survived a reload and the mode came back on at every plugin load. Both toggles save now. If it is stuck on for you, one click off is enough.
- **Text the game colours itself could render invisible.** Some of those colours arrive without an alpha byte, and the byte order swap then left them fully transparent.
---
**v2.0.2 — Emotes out, placeholders fixed (2026-08-19)**
- **BetterTTV emote support is gone.** Its shared-emote endpoint went behind authentication, and that was where nearly all of them came from — what remained was a 65-entry global set, eleven of which are on the known-broken list, so 54 mostly static images from Twitch's early days. Exactly one was animated, and that one wanted 492 frames and 37 MB of video memory. The plugin now makes no outbound network calls at all. Messages stored with emotes still read fine; they show the code that was typed.
- **Five settings descriptions printed `{0}` instead of the plugin name.** All 25 languages were affected, English included — it just hid better there, since "Hide {0} during cutscenes" still scans as a sentence while German puts the placeholder first. A test now walks every resource string with a placeholder and fails if one reaches a widget unformatted.
- **New preview images.** The ones in the plugin installer were from 8 May and showed the interface as it looked before any of the window rebuilds.
Earlier history: https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases
+2
View File
@@ -428,6 +428,8 @@ internal class HellionStrings
internal static string Settings_Window_TabPlacement_Description => Get(nameof(Settings_Window_TabPlacement_Description));
internal static string Settings_Window_TitleBar_Name => Get(nameof(Settings_Window_TitleBar_Name));
internal static string Settings_Window_PopoutTitleBar_Name => Get(nameof(Settings_Window_PopoutTitleBar_Name));
internal static string Settings_Window_StatusBar_Name => Get(nameof(Settings_Window_StatusBar_Name));
internal static string Settings_SuggestedBy => Get(nameof(Settings_SuggestedBy));
internal static string Settings_Window_AllowMove_Name => Get(nameof(Settings_Window_AllowMove_Name));
internal static string Settings_Window_AllowResize_Name => Get(nameof(Settings_Window_AllowResize_Name));
internal static string Settings_Window_SidebarThreshold_Name => Get(nameof(Settings_Window_SidebarThreshold_Name));
@@ -1223,6 +1223,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Barra de títol als pop-outs</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Mostra la barra d'estat</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Suggerit per {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Permet moure</value>
</data>
@@ -1222,6 +1222,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Záhlaví u pop-out oken</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Zobrazit stavový řádek</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Návrh od {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Povolit přesouvání</value>
</data>
@@ -1222,6 +1222,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Vis titellinje for pop-out-vinduer</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Vis statuslinje</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Foreslået af {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Tillad flytning</value>
</data>
@@ -1217,6 +1217,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Titelleiste für Pop-Outs</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Statusleiste anzeigen</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Vorgeschlagen von {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Verschieben erlauben</value>
</data>
@@ -1222,6 +1222,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Εμφάνιση γραμμής τίτλου στα αποσπώμενα παράθυρα</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Εμφάνιση γραμμής κατάστασης</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Πρόταση από {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Να επιτρέπεται η μετακίνηση</value>
</data>
@@ -1223,6 +1223,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Barra de título en pop-outs</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Mostrar la barra de estado</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Sugerido por {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Permitir mover</value>
</data>
@@ -1222,6 +1222,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Näytä otsikkopalkki irrotetuissa ikkunoissa</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Näytä tilarivi</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Ehdottanut {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Salli siirtäminen</value>
</data>
@@ -1223,6 +1223,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Afficher la barre de titre des fenêtres détachées</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Afficher la barre d'état</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Suggéré par {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Autoriser le déplacement</value>
</data>
@@ -1222,6 +1222,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Címsor a pop-out ablakoknál</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Állapotsor megjelenítése</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Javasolta: {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Mozgatás engedélyezése</value>
</data>
@@ -1223,6 +1223,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Barra del titolo nei pop-out</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Mostra la barra di stato</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Suggerito da {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Consenti lo spostamento</value>
</data>
@@ -1223,6 +1223,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>ポップアウトのタイトルバーを表示</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>ステータスバーを表示</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>提案者: {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>移動を許可</value>
</data>
@@ -1223,6 +1223,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>팝아웃 창의 제목 표시줄 보이기</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>상태 표시줄 보이기</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>제안자: {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>이동 허용</value>
</data>
@@ -1222,6 +1222,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Tittellinje for pop-out-vinduer</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Vis statuslinje</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Foreslått av {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Tillat flytting</value>
</data>
@@ -1223,6 +1223,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Titelbalk voor pop-outvensters</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Statusbalk tonen</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Voorgesteld door {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Verplaatsen toestaan</value>
</data>
@@ -1222,6 +1222,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Pokaż pasek tytułu w oknach odłączonych</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Pokaż pasek stanu</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Zaproponowane przez {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Zezwól na przesuwanie</value>
</data>
@@ -1223,6 +1223,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Mostrar barra de título nas janelas destacadas</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Mostrar barra de status</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Sugerido por {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Permitir mover</value>
</data>
@@ -1222,6 +1222,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Mostrar barra de título nas janelas destacadas</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Mostrar barra de estado</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Sugerido por {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Permitir mover</value>
</data>
@@ -1234,6 +1234,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Show title bar for pop-outs</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Show status bar</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Suggested by {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Allow movement</value>
</data>
@@ -1223,6 +1223,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Afișează bara de titlu la ferestrele desprinse</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Afișează bara de stare</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Sugerat de {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Permite mutarea</value>
</data>
@@ -1223,6 +1223,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Показывать заголовок в отдельных окнах</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Показывать строку состояния</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Предложено пользователем {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Разрешить перемещение</value>
</data>
@@ -1223,6 +1223,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Namnlist för pop-out-fönster</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Visa statusfält</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Föreslagen av {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Tillåt flytt</value>
</data>
@@ -1222,6 +1222,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Ayrık pencereler için başlık çubuğunu göster</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Durum çubuğunu göster</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>{0} tarafından önerildi</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Taşımaya izin ver</value>
</data>
@@ -1222,6 +1222,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>Показувати рядок заголовка у відокремлених вікнах</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>Показувати рядок стану</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>Запропоновано користувачем {0}</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>Дозволити переміщення</value>
</data>
@@ -1223,6 +1223,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>显示弹出窗口的标题栏</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>显示状态栏</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>由 {0} 建议</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>允许移动</value>
</data>
@@ -1223,6 +1223,12 @@
<data name="Settings_Window_PopoutTitleBar_Name" xml:space="preserve">
<value>顯示彈出視窗的標題列</value>
</data>
<data name="Settings_Window_StatusBar_Name" xml:space="preserve">
<value>顯示狀態列</value>
</data>
<data name="Settings_SuggestedBy" xml:space="preserve">
<value>由 {0} 建議</value>
</data>
<data name="Settings_Window_AllowMove_Name" xml:space="preserve">
<value>允許移動</value>
</data>
@@ -71,6 +71,15 @@ internal sealed class WindowTab
() => Plugin.Config.ShowPopOutTitleBar,
v => Plugin.Config.ShowPopOutTitleBar = v
);
// Tester credit on the row itself: the people who propose a feature
// should see their name where the feature lives, not in a changelog.
_w.ToggleRow(
ImGui.GetID("window.style.statusbar"u8),
HellionStrings.Settings_Window_StatusBar_Name,
string.Format(HellionStrings.Settings_SuggestedBy, "Ashy ^.^"),
() => Plugin.Config.ShowStatusBar,
v => Plugin.Config.ShowStatusBar = v
);
_w.ToggleRow(
ImGui.GetID("window.style.hidebutton"u8),
Language.Options_ShowHideButton_Name,
+5 -2
View File
@@ -368,7 +368,9 @@ internal sealed class MainWindow : Window, IFocusableChatWindow
if (_activeTab is { } seenTab)
seenTab.Unread = 0;
var statusHeight = Components.StatusBar.Height;
// A child height of 0 means "fill the remaining space" in ImGui, so hiding
// the bar lets the body take the whole window without a second code path.
var statusHeight = Plugin.Config.ShowStatusBar ? Components.StatusBar.Height : 0f;
using (var body = ImRaii.Child("##hellion-body", new Vector2(-1f, -statusHeight)))
{
@@ -376,7 +378,8 @@ internal sealed class MainWindow : Window, IFocusableChatWindow
DrawBody(tabs);
}
_status.Draw(_activeTab, tabs);
if (Plugin.Config.ShowStatusBar)
_status.Draw(_activeTab, tabs);
}
private void DrawBody(IReadOnlyList<Tab> tabs)
+2 -2
View File
@@ -2,7 +2,7 @@
[![Build](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/actions/workflows/build.yml/badge.svg?branch=main)](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/actions/workflows/build.yml)
[![License: EUPL-1.2](https://img.shields.io/badge/License-EUPL--1.2-blue.svg)](LICENSE)
[![Latest release](https://img.shields.io/badge/release-v2.0.5-brightgreen)](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/latest)
[![Latest release](https://img.shields.io/badge/release-v2.0.6-brightgreen)](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/latest)
[![Dalamud API](https://img.shields.io/badge/Dalamud-API_15-purple)](https://github.com/goatcorp/Dalamud)
[![.NET](https://img.shields.io/badge/.NET-10.0-512BD4)](https://dotnet.microsoft.com/)
[![FFXIV](https://img.shields.io/badge/FFXIV-Dawntrail-c3a37f)](https://www.finalfantasyxiv.com/)
@@ -11,7 +11,7 @@
<img src="docs/images/hellion-forge.png" alt="Hellion Forge" width="180" />
</p>
**Version 2.0.5** — Privacy-first chat plugin for FINAL FANTASY XIV / Dalamud, originally
**Version 2.0.6** — Privacy-first chat plugin for FINAL FANTASY XIV / Dalamud, originally
forked from [Chat 2](https://github.com/Infiziert90/ChatTwo) (EUPL-1.2).
Hellion Chat is a privacy-first chat plugin that began as a fork of Chat 2. The core it grew from
+17
View File
@@ -11,6 +11,23 @@ releases as an overview and links to the release pages for details.
---
## [2.0.6] — 2026-09-20
One question from the Discord, small enough to ship on its own: are the pills
along the bottom edge fixed in the code? They were.
### Added
- "Show status bar" under Window → Window style. Off, the bottom row of pills
(channel, privacy state, counts, tells, clock, version) is gone and the chat
body takes the space. On by default, so nothing changes until you flip it.
With the bar hidden, screenshot mode and the privacy filter have no visible
indicator; that is the trade the toggle makes. Suggested by Ashy.
- A "Suggested by …" credit line under settings rows that came from a tester
request, translated into all 25 languages. First used on the toggle above.
---
## [2.0.5] — 2026-08-23
Two tester reports about the same corner of the plugin: what an incoming tell does
+20 -1
View File
@@ -12,6 +12,12 @@ be a poor fit for the plugin's privacy-first scope during brainstorming.
## Released
**v2.0.6 — Status bar, optional (2026-09-20)** came from a question on the Discord:
whether the pills along the bottom edge were fixed in the code. They were. The bar
has a toggle now under Window → Window style, on by default, and the row carries a
"Suggested by" credit so the person who asked sees their name where the feature
lives. The theme preview keeps its mock bar: it shows colours, not layout.
**v2.0.5 — Focus, and a way out (2026-08-23)** came out of two tester reports about
the same corner. A tell arriving mid-sentence took the keyboard, which in this game
sends the next keystrokes to the character; worse, it could address a half-typed line
@@ -22,6 +28,17 @@ excludes them on purpose. Where a tell opens is one setting now rather than two
raced each other, and the tell-open modes plus the context menu's Pop Out entry were
the last hardcoded English strings in the plugin.
**v2.0.4 — Housekeeping (2026-08-20)** shortened the installer description from 908
to 367 characters, corrected the language count from 24 to 25, and aligned the
one-line summary across both manifests, which had been showing different sentences
in the store listing and the plugin details. Also removed 30 translation keys for
the webinterface, a feature whose code left in May.
**v2.0.3 — Pop-out context menu, screenshot mode (2026-08-20)** fixed a context menu
that never opened in a pop-out window, a screenshot mode that could not be switched
off because neither of its toggles wrote to the config, and game-supplied colours
arriving without an alpha byte, which the byte-order swap then rendered invisible.
**v2.0.2 — Emotes out, placeholders fixed (2026-08-19)** removed BetterTTV emote
support entirely. Its shared-emote endpoint went behind authentication and that was
where nearly all of them came from; what remained was 54 mostly static images, one
@@ -510,7 +527,9 @@ deferred in favour of the theme engine — both items live on in the mid-term bl
globally.
- ~~**Auto-Detect Duties**~~ — dropped in v1.5.6 cycle: the effort (a render-gate in the tab-bar / tab-sidebar draw plus resolving what happens to the active tab when it is hidden) outweighs the practical benefit. Removed from backlog.
- **UX Bundle** — vertical tab bar as a layout option, Shift+Mousewheel to scroll tab headers
without activating them, global hotkey to close the active tab.
without activating them, global hotkey to close the active tab. The closing part is
cheaper since 2.0.5: `TabContextMenu.CloseTab` plus `TabLifecycleHelpers.GetCloseability`
already carry the rules, so a keybind would only need to bind to them.
- **Configure Tab Title** — configurable tab title format (name / name + abbreviated world / full
name / custom), overridable per tab.
- **Name Display Options** — analogous to FFXIV vanilla (full name, first name abbreviated,
+6 -6
View File
File diff suppressed because one or more lines are too long