Skip to content

Commit 4816340

Browse files
committed
release: v0.33.2
1 parent 433949e commit 4816340

3 files changed

Lines changed: 64 additions & 14 deletions

File tree

CHANGELOG.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,56 @@ All notable changes to PolterType are recorded here. The format is
44
loosely based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
55
and the project follows [Semantic Versioning](https://semver.org/).
66

7+
## [0.33.2] — an idle keyboard costs nothing, a broken line costs a line
8+
9+
### Fixed
10+
11+
- **The Linux listener no longer wakes five hundred times a second to
12+
ask an idle keyboard whether anything happened**
13+
([#63](https://github.com/Just-Code-NET/PolterType/issues/63)). Both
14+
loops ran on a 2 ms timer: the evdev one polled every open device and
15+
slept, the X11 one did the same on its connection. Measured on the
16+
0.33.1 AppImage with the engine paused and nothing typed, that was
17+
0.55 % of a core and 502 context switches a second, all of it in the
18+
`poltertype-input` thread. Both now wait on the descriptors
19+
themselves with `poll(2)`; the same measurement reads 0.05 % and 38.
20+
On a laptop the bill was never really the half percent — it was the
21+
idle states the CPU could not reach.
22+
23+
Nothing about correction timing was traded away for it. The key gate,
24+
which holds your keystrokes back while a correction is on the wire,
25+
now wakes the thread through an `eventfd` the instant it is asked
26+
rather than waiting out a poll round, so a hold is taken sooner than
27+
before. The Caps Lock latch is read on the way *into* the loop
28+
instead of on the way out, so a lock toggled by something that sends
29+
no key event — KDE InputActions, `xdotool key Caps_Lock`, an
30+
on-screen keyboard — is still reconciled before the first word it
31+
would otherwise have mis-cased.
32+
33+
- **A translation that will not load can now say why**
34+
([#64](https://github.com/Just-Code-NET/PolterType/issues/64)). One
35+
line the TOML parser refuses used to cost the whole catalog, and the
36+
interface simply came up in English: the file was right there, the
37+
app said nothing, and the only account of what happened was a log
38+
line a translator has no reason to read. The commonest way to write
39+
such a line is a Windows path — `"C:\path"` is not a valid escape,
40+
`"C:\\path"` is. A file that will not parse whole is now read a
41+
line at a time: the line that is wrong is dropped, everything else
42+
loads, and the Settings window names the file and the line under the
43+
language picker. A language that was asked for and produced no
44+
catalog at all says that in the same place.
45+
46+
A second road to the same silence is closed with it. The Settings
47+
window skipped loading translations altogether when it could not
48+
locate the directory PolterType keeps its own catalogs in — taking
49+
the user's own catalog, which lives somewhere else entirely and is
50+
the whole translation for every language we do not ship, down with
51+
something it had nothing to do with.
52+
53+
Entries left empty are still exactly what the format says they are —
54+
"not translated yet" — and are not reported as anything: a catalog
55+
being filled in a line at a time is a normal catalog.
56+
757
## [0.33.1] — the same program, from a commit that builds clean
858

959
### Fixed

Cargo.lock

Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ members = [
1818
]
1919

2020
[workspace.package]
21-
version = "0.33.1"
21+
version = "0.33.2"
2222
edition = "2024"
2323
license = "MIT"
2424
authors = ["PolterType contributors"]

0 commit comments

Comments
 (0)