Repository navigation
Releases: t-millot/Leios
Release list
1.0 beta 12
Speed is a slider now
Speed used to be four fixed choices: macOS, Low, Medium and High. It is now a switch, Use
macOS scroll speed, and underneath it a slider from Low to High in steps of a tenth.
Low, Medium and High are exact points on the slider and scroll exactly as they did. Everything in
between is a blend of the same tuning, so a setting a little faster than Low is just that — not a
new curve to get used to. While the macOS switch is on, the slider and Precise step out of the
way, since both shape the curve macOS speed replaces.
An app profile can pin Speed like any other setting, and pins the switch and the slider together:
a profile set to Low stays at Low wherever the main slider goes.
If you use iCloud sync with a Mac still on an older beta, that Mac reads the nearest of Low, Medium
and High rather than rejecting your settings.
Smoother at reading pace on High smoothness
Turn the wheel slowly, a few ticks a second, and scrolling came out in pulses: every tick jumped
straight to its own speed and coasted down until the next. On High, a tick that arrives while
the page is still moving now picks up from the speed it is already going and eases into its own, so
a steady hand gives a steady scroll. A tick from a standstill, and the other smoothness settings,
are unchanged.
Turning the wheel back stops the scroll
Reversing the wheel against a scroll that is still gliding is meant to stop it on the first tick,
then follow the wheel from the next. Leios got that backwards: the first reversed tick scrolled a
little the other way and the second stopped it dead. It now stops on the first, which is what makes
a flick back a way to put on the brakes.
Quick and Precise let go when you do
Since beta 8, holding the Quick or Precise scroll key could leave it in force after you let
go, for every scroll in that direction until you reversed. Leios reads those keys when a scroll
starts, and a scroll starts after a pause — which Leios was measuring from a real mouse as 42 times
shorter than it was, so an eight-second pause read as a fifth of a second.
The same mismeasurement fed the acceleration, so fast scrolling now ramps up on how quickly your
wheel is really turning. If a fast flick travels differently from beta 11, that is why.
Full frame rate on the display you are scrolling
With two displays at different refresh rates, a scroll could get stuck on the slower one's clock:
start scrolling on a 120 Hz screen while a glide from a 60 Hz one was still running, and it drew at
60 Hz, and kept doing so until the pointer moved a fair way. Every scroll now runs at the refresh
rate of the display it is on, and switches mid-glide without a stutter.
Separately, unplugging a display in the middle of a scroll could leave smooth scrolling dead until
something reset it. It recovers on the next scroll now.
A tidier Statistics screen
The five totals sit on one row, every chart title lives inside its chart, and charts of categories
all read the same way: names down the side, counts at the end of each bar. Two Macs with the same
name no longer merge into one bar.
Nothing to redo
Your settings, per-app profiles, button mappings and Accessibility permission all carry across an
update. Leios can install this one itself if you are on beta 11 with Include pre-release
versions turned on.
1.0 beta 9
Leios no longer goes quietly dead after you install over it
If you have installed one beta over another — dragged a new copy into Applications, or gone back
to an older one — there is a good chance Leios has been doing nothing at all since, without ever
saying so. This release fixes that, and it is worth reading if scrolling has felt untouched
lately.
The engine does not run inside the settings window; it runs as a small background helper that
lives inside the app bundle and is started by macOS. Replacing the app replaces that helper too,
while macOS is still holding a registration that points at the copy that used to be there. It
refuses to start the new one — it is killed on sight, as a signing violation — and it keeps being
killed every time it is asked to start.
Leios was supposed to notice and repair exactly this. It could not: the repair worked by asking
the helper which version it was, so it only ever ran for a helper that was alive enough to answer.
When the helper was being killed outright there was nothing to ask, and nothing re-registered it.
Now the app repairs it: if the helper has been registered but silent for a few seconds, Leios
re-registers it once, which is what makes macOS let go of the stale registration and start the
helper that is actually there.
And it says so when something is wrong
The only sign of any of this used to be a line of small grey text in the sidebar reading "Helper
is enabled but not responding yet…", which reads like something still starting up rather than
something that has failed for good.
A helper that stays silent now raises a proper notice at the top of the window, in red, saying
that nothing is being remapped and why that usually happens — with a Restart the Helper button
next to it, so the repair is also something you can ask for directly.
Nothing to redo
Your settings, per-app profiles, button mappings and Accessibility permission all carry across an
update. Leios can install this one itself if you are on beta 8 with Include pre-release
versions turned on.
If Leios is currently stuck, install this build over it and open the window once — it will sort
itself out within a few seconds of launching.
1.0 beta 11
"Precise" now slows down the whole scroll, not just its first tick
If you had Precise (slower for small movements) turned on, you were getting almost nothing for
it. Every tick of the wheel but the very first came out exactly the same with the setting on or
off, so the toggle read as doing nothing at all — because at the speed a hand actually turns a
wheel, it very nearly was.
The setting works on the curve that turns how fast you are scrolling into how far the page moves.
That curve has a floor, for the slowest scroll, and a ceiling, for the fastest. "Precise" only ever
lowered the floor — and a wheel reaches the ceiling within a tick or two of starting. Measured
against the running engine, a scroll at a normal pace travelled 8% less with the setting on.
It now pulls the ceiling down with the floor, so it applies for as long as you keep scrolling: a
little under half the distance, throughout. It stays clearly milder than holding the Precise
scroll modifier key, which is still there for when you want the finest control the engine can
give.
App profiles for apps that live on another Mac
With iCloud sync on, every Mac gets every other Mac's app profiles — including ones for apps that
are not installed on the Mac you are looking at. The window never said so. The profile showed a
blank sheet of paper where the app's icon should be, which reads like a broken icon rather than
like an app that simply isn't here.
Those profiles now show a dashed placeholder instead, and the line under the app's name says
"not installed on this computer". The settings still work and still sync — the note is about this
Mac, not about the profile.
The Accessibility button asks once
Pressing Open Device Control and Data Access… used to put two things on screen at once: the
System Settings pane, and macOS's own permission dialog on top of it, whose only other choice was
Deny. One button, apparently asking the same question twice. It now opens the pane and nothing
else. Leios is already listed there waiting for its switch, so the dialog was never what put it in
the list.
While in there: macOS 27 renamed that pane from Privacy & Security → Accessibility to Privacy &
Security → Device Control and Data Access, and Leios was still sending you to the old name. It
calls it what your Mac calls it now.
Nothing to redo
Your settings, per-app profiles, button mappings and Accessibility permission all carry across an
update. Leios can install this one itself if you are on beta 10 with Include pre-release
versions turned on.
1.0 beta 10
The settings window no longer comes up broken on a new Mac
Install Leios somewhere for the first time and the window could open wrecked: an empty sidebar
with no rows in it at all, and the settings pane clipped to a thin strip of whatever screen it was
on. Nothing to click, nothing to read, and no hint as to why.
It happened while the helper was waiting for Accessibility permission — which is to say, on every
Mac where Leios had just been installed, at the exact moment you first needed to be told what to
do. Granting the permission put the window right again instantly, so the one instruction that
would have fixed it was the one thing the window was too broken to show you.
The cause was the notice asking for that permission. Its text was set to size itself to its own
content, which sounds harmless and is how you would normally stop a paragraph being cut off. But
macOS measures that by asking how wide the sentence would be on a single line, and then treats the
answer as the narrowest the window is allowed to be. The window cannot be that wide, so the layout
was worked out for a window far larger than the one on screen, and everything landed outside it.
The paragraph wraps perfectly well on its own; the instruction was never needed.
The notice now reads the way it always should have, at every window size.
Nothing to redo
Your settings, per-app profiles, button mappings and Accessibility permission all carry across an
update. Leios can install this one itself if you are on beta 9 with Include pre-release
versions turned on.
1.0 beta 8
Scrolling works the way it was always supposed to
If you are on an Apple silicon Mac, this is the change you will feel first, and it is not a
tuning tweak — acceleration has never actually run.
Leios measures the gap between scroll ticks to decide how fast you are scrolling. It was reading
the clock on those events as though it were one kind of timestamp when macOS gives it another, and
on Apple silicon the two differ by a factor of about 42. Every gap therefore looked enormous, so
every tick looked like the start of a fresh, slow scroll: acceleration sat at its floor and fast
scroll never engaged, no matter how quickly you spun the wheel. Intel Macs were unaffected, which
is why it survived this long.
Scrolling a long page now takes the flick it should. Nothing in your settings changed — the
curves you already had are simply being applied now.
A Statistics screen
A new row in the sidebar, showing what your mouse has actually done: distance scrolled in
metres, scroll ticks and flicks, clicks by button, drag gestures, and the actions
Leios fired for you. Over a week, a month, a year, or the lifetime of the install.
Distance comes in two figures where it makes sense — what the wheel asked for, and what Leios
delivered after acceleration. There is a time-of-day chart for the last week or month, so you can
see when the mouse is actually in your hand.
Counting is done by the engine in integer additions and written out once a minute from a
background thread. It is designed to cost nothing on the path your input travels, and it does not
touch scrolling latency.
It is on by default and it never leaves your Mac unless you ask. The switch is in
Settings → Statistics, along with Reset Statistics…, and it stays on this Mac the way the
kill switches do — turning statistics off on one Mac does not turn them off everywhere. If you use
iCloud sync, Settings → iCloud → Include usage statistics adds your other Macs' counts into
the same charts; turn it off and this Mac's counts are withdrawn from iCloud.
Counting only happens while Leios is running, so the numbers start from this update rather than
from the day you installed it.
Nothing to redo
Your settings, per-app profiles, button mappings and Accessibility permission all carry across an
update. Leios can install this one itself if you are on beta 7 with Include pre-release
versions turned on.
1.0 beta 7
The settings window is built around a sidebar
Everything that used to be a tab is a row down the left now: Scrolling, Apps, Buttons,
Devices, Settings.
Apps is the one that really changes. It expands, and every app you have given its own scroll
settings sits underneath it as its own row — so a profile is one click away from anywhere in the
window, rather than a list tucked inside a tab with the settings squeezed beside it. Click an app
to edit it. To remove one: right-click its row, select it and press Delete, or use the button in
the title bar. Removing asks you to confirm now, which it never used to.
Enable has moved out of the toolbar to the top of the sidebar, and it says what the engine is
actually doing underneath it — Running, or what is wrong when it isn't. That was previously a
tooltip on a small dot, which is a poor place for the one thing you might need to read.
Two rows are renamed. Info is Devices, which is what it lists. General is Settings.
The title bar
In dark mode the title bar stopped short of the window's left and right edges, and on the Apps tab
it lit only the half of the window the pointer happened to be over. Both are fixed, and the fix is
the sidebar: macOS draws that bar from the scrolling area beneath it, so a window split into two
scrolling areas side by side gets half a title bar. A sidebar is not one of those.
There is also a little less furniture. The window's title says which section you are looking at,
and an app profile puts its icon, name and bundle identifier up there instead of in a second strip
underneath.
Nothing to redo
Your settings, per-app profiles, button mappings and Accessibility permission all carry across an
update. Leios can install this one itself if you are on beta 6 with Include pre-release
versions turned on.
1.0 beta 6
Leios updates itself now
Leios checks for new versions on its own and tells you when one is ready. It never installs
anything without being asked — you get a window describing what changed, and it updates when you
click Install Update.
General → Updates has the controls:
- Check for updates automatically — on by default. Turn it off and Leios only looks when you
ask it to. - Include pre-release versions — off by default. Turn it on to be offered betas like this one
as they come out. - Check Now, for when you don't want to wait.
There is also Check for Updates… in the Leios menu.
Both switches stay on the Mac you set them on, like the kill switches — iCloud does not carry
them. So you can follow the betas on one Mac and stay on stable releases on another.
One manual step, this time only
Beta 5 and earlier have no updater, so they cannot offer you this release. Download it below and
drag it over your existing copy as usual. From here on Leios will do it for you.
Your settings, button mappings and Accessibility permission all carry across an update — nothing
to re-grant and nothing to set up again.
Under the hood
Updates are signed, and Leios checks the signature before installing anything. The engine that
does the actual work runs as a separate background process living inside the app, so an update
restarts it onto the new version rather than leaving the old one running — which would otherwise
be invisible, with a new app driving an old engine.
1.0 beta 5
Settings now sync through iCloud
Turn on Sync settings with iCloud in General, and your scrolling settings, button mappings and
per-app scroll profiles follow your Apple Account to your other Macs. It is off by default.
Three settings deliberately stay on the Mac you set them on: the two kill switches (Scrolling
enabled, Buttons enabled) and Show menu bar item. A kill switch means "stop doing this
here, right now" — carrying it across would reach over and turn the engine off on your other Mac.
A few things worth knowing:
- Settings are stored in your own private iCloud database. Nothing is sent anywhere else, and no
one else can read it. - You need to be signed in to iCloud. If you are not, the General tab says so and offers to open
Settings. - If two Macs change the same setting while apart, the most recent change wins and the other Mac
adopts it, naming where it came from — "Updated from ‹your other Mac›". - Changes arrive when you next open the Leios window on the other Mac, not while it is closed.
Leios's settings window is not a background process, so there is nothing running to receive them
in the meantime.
Leios no longer overwrites a settings file it cannot read
Previously, a config.json that failed to parse was silently replaced with defaults the next time
you changed anything. Now Leios leaves the file alone, explains what happened, and offers Reveal
in Finder and Discard and Start Fresh so the choice is yours. This matters more now that two
Macs — possibly running different versions of Leios — can share the same settings.
Requires macOS 27 or later on Apple silicon. The app and its embedded helper are signed with a
Developer ID and notarized.