diff --git a/README.md b/README.md index 19f2d89..077983b 100644 --- a/README.md +++ b/README.md @@ -42,19 +42,19 @@ autoPriority.exe -dry-run События одного скана выводятся боксом во временной папке Windows: **`%TEMP%\autopriority.log`**. При каждом запуске файл очищается. Шапка подгоняется под самую длинную строку. Порядок групп строгий: PROMOTE -> DEMOTE -> SKIP -> BLOCK. Пустой скан ничего не пишет. ```text -┌─ 04.10.2026 19:33:39 ───────────────────────────── -├ GAME MODE ON — EoCApp.exe (PID 6200) RSS=2.2GB, NORMAL -> HIGH -│ -├ DEMOTE -│ ├ Hermes.exe (PID 10220) RSS=166MB, ABOVE_NORMAL -> IDLE -│ └ librewolf.exe (PID 6216) RSS=524MB, HIGH -> IDLE -│ -├ SKIP -│ └ csrss.exe (PID 524): OpenProcess(524) failed: Access is denied. -│ -├ BLOCK -│ └ winlogon.exe (PID 792): OpenProcess(792) failed: Access is denied. -└─────────────────────────────────────────────────── +┌─ 04.10.2026 19:33:39 ───────────────────────────────────────────────┐ +├ GAME MODE ON — EoCApp.exe (PID 6200) RSS=2.2GB, NORMAL -> HIGH │ +│ │ +├ DEMOTE │ +│ ├ Hermes.exe (PID 10220) RSS=166MB, ABOVE_NORMAL -> IDLE │ +│ └ librewolf.exe (PID 6216) RSS=524MB, HIGH -> IDLE │ +│ │ +├ SKIP │ +│ └ csrss.exe (PID 524): OpenProcess(524) failed: Access is denied. │ +│ │ +├ BLOCK │ +│ └ winlogon.exe (PID 792): OpenProcess(792) failed: Access is denied.│ +└─────────────────────────────────────────────────────────────────────┘ ``` Триггер игрового режима не дублируется в PROMOTE: его исход уже вписан в строку `GAME MODE ON` (`NORMAL -> HIGH`, `уже HIGH` или `в блоклисте`). Выключение режима — секция `GAME MODE OFF — восстановление`, восстановленные процессы идут в PROMOTE/DEMOTE как обычно. @@ -62,11 +62,11 @@ autoPriority.exe -dry-run Запуск программы оформлен отдельным боксом START: ```text -┌─ 04.10.2026 19:58:36 ───────────────────────────── -├ START -│ ├ started (mem=512MB, game-mem=2.0GB, interval=1m0s, dry-run=false) -│ └ own priority set to IDLE -└─────────────────────────────────────────────────── +┌─ 04.10.2026 19:58:36 ──────────────────────────────────────────────┐ +├ START │ +│ ├ started (mem=512MB, game-mem=2.0GB, interval=1m0s, dry-run=false)│ +│ └ own priority set to IDLE │ +└────────────────────────────────────────────────────────────────────┘ ``` Боксы разделены пустой строкой. diff --git a/main.go b/main.go index 5521691..266676f 100644 --- a/main.go +++ b/main.go @@ -737,17 +737,16 @@ func renderBox(head string, groups []logGroup) { } } ts := time.Now().Format("02.01.2006 15:04:05") - top := "┌─ " + ts + " " - if runeCount(top) < width { - top += strings.Repeat("─", width-runeCount(top)) - } else { - width = runeCount(top) + base := "┌─ " + ts + " " + if width < runeCount(base) { + width = runeCount(base) } - logRaw(top) + // Закрытый бокс: правая стенка у каждой строки. + logRaw(base + strings.Repeat("─", width-runeCount(base)) + "┐") for _, line := range lines { - logRaw(line) + logRaw(line + strings.Repeat(" ", width-runeCount(line)) + "│") } - logRaw("└" + strings.Repeat("─", width-1)) + logRaw("└" + strings.Repeat("─", width-1) + "┘") logRaw("") }