Releases: lightmorphic/flow
Release list
Lightmorphic Flow 0.6.8
Beta. This explains the flashing icon, and it was never a crash.
What was actually happening
Removing the package from one machine took its settings with it, so when it was reinstalled it built itself a fresh certificate. The other machine still trusted the old one, refused the connection, said nothing about it, and retried every three seconds — for ever.
Each of those refused attempts made the other computer's tray rebuild its menu. The menu is a window, so the dock flashed an icon on and off, endlessly. That was the flashing: not a crash loop, a laptop knocking on a door it no longer recognised.
Fixed
- A changed identity is now said out loud, in the settings window, with a Trust it again button. It no longer fails silently.
- The tray rebuilds its menu only when something it actually shows has changed, so nothing churns in the dock.
Includes 0.6.7, which fixes finding computers on a home network that is not the usual size, and makes an upgrade restart what is already running.
Installing
sudo apt install ./lightmorphic-flow_0.6.8_all.deb
More at flow.lightmorphic.com.
Lightmorphic Flow 0.6.7
Beta. Two real faults, both of them mine, and both of them the reason two machines could sit side by side and find nothing.
The broadcast address was guessed
Flow worked out where to send its announcements by assuming every network is the usual size, and shouting at a.b.c.255. On a network that is not that size — a /22, say, which is common on home routers — the real broadcast address is a different one entirely, so every announcement and every question went to an address with nothing on it. The kernel is now asked for each interface's actual broadcast address.
Installing an update left the old version running
A background service that is already running keeps running the old code. So every fix did nothing until the next login, while the version number said otherwise. Upgrades now restart the running copies, and both parts log which version they actually are.
Installing
sudo apt install ./lightmorphic-flow_0.6.7_all.deb
More at flow.lightmorphic.com.
Lightmorphic Flow 0.6.6
Beta.
The icon flashing in the dock for ever
Something starts, fails, and is restarted, over and over — which is why rebooting does not help: it starts again at login and resumes the loop. Each attempt is a flash in the dock.
- Anything that cannot start now gives up after four attempts in two minutes, instead of trying for ever.
- The tray is started by its user service alone. An autostart file was starting it a second time at every login, and any earlier copy of that file is removed when you install this.
This stops the flashing. Finding out why it could not start needs lmflow report from the machine it is happening on.
Installing
sudo apt install ./lightmorphic-flow_0.6.6_all.deb
More at flow.lightmorphic.com.
Lightmorphic Flow 0.6.5
Beta.
The flickering icon in the dock
The tray's menu is a window in its own right, and the tray process never told the desktop which application it belonged to. GNOME could not match it, so it drew a second dock entry with a placeholder icon and flashed it on and off as the menu came and went.
The tray now names itself properly, so the desktop matches it to the application it is, and it tells the panel where to find its icons.
Includes 0.6.4, which records exactly what happens when the pointer crosses and comes back.
Installing
sudo apt install ./lightmorphic-flow_0.6.5_all.deb
More at flow.lightmorphic.com.
Lightmorphic Flow 0.6.4
Beta. Diagnosis for the one remaining fault: the pointer crosses, but stops when you try to bring it back.
The log now records the push that triggers a crossing, the crossing itself, how many devices were taken or let go of, which ones failed, and a warning naming any device still being held after it should have been released.
Install on both machines, reproduce it once, then run lmflow report on the machine with the mouse.
sudo apt install ./lightmorphic-flow_0.6.4_all.deb
More at flow.lightmorphic.com.
Lightmorphic Flow 0.6.3
Beta. This is the one that makes crossing work.
The pointer bounced straight back
The desktop's log said it plainly: pointer moved to T14s, then in the very same second T14s has gone quiet — bringing the pointer back, then disconnected, then reconnected, over and over.
The safety check I added in 0.6.1 — bring the pointer home if the other machine stops answering — started its clock when that machine connected, and only reset it when the machine sent something. A machine sitting there not being used sends nothing. So by the time you pushed the pointer across, it had already been silent for longer than the limit and was declared dead on arrival.
Now every connected machine is pinged whether or not it is in use, and the clock is reset the moment the pointer arrives.
The flickering tray icon
The tray repainted its icon and asked the system for its state every nine tenths of a second. It now repaints only when the icon actually changes, and asks at most every five seconds.
Installing
sudo apt install ./lightmorphic-flow_0.6.3_all.deb
On both machines.
More at flow.lightmorphic.com.
Lightmorphic Flow 0.6.2
Beta. Diagnosis, so the next fault can be found rather than guessed at.
- The daemons' output was block-buffered, so the system log only showed what happened when the process died, every line stamped with the moment it exited. Now unbuffered: you see things as they happen.
lmflow reportwrites a full report to a file — the version, the desktop, the libraries, the permissions, the firewall, the services, the last 200 log lines, the settings and the input devices. It saves into your sync folder if you have one, so it can be read from another machine.- The doctor no longer tells you to log out when input access already works.
Includes 0.6.1, which stops the computer you are sitting at being left frozen with its mouse and keyboard held.
Installing
sudo apt install ./lightmorphic-flow_0.6.2_all.deb
More at flow.lightmorphic.com.
Lightmorphic Flow 0.6.1
Beta. Install this one. It fixes a fault that could leave the computer you are sitting at frozen, with its mouse and keyboard held.
What went wrong
Everything bound for the other machine was sent on the same thread that reads your mouse. When the other machine stopped draining the connection, that send waited for ever — and it waited while your keyboard and mouse were held. The result was a computer frozen solid, still holding the old mouse and too stuck even to notice a dongle being unplugged and plugged back in.
Four guarantees now
- Everything is written by a thread of its own. The loop that reads your mouse never waits on the network, and a machine that stops keeping up is dropped instead of being waited for.
- If the other machine goes quiet for six seconds, the pointer comes home by itself.
- Any edge of the other screen brings the pointer back, not only the one you crossed by, corners included. Being stranded is far worse than crossing back early.
- A watchdog: if the loop that reads your mouse stops turning for four seconds, everything is let go, whatever the reason.
A panic key worth remembering
Press Escape five times quickly. Nothing to hold down, nothing to remember. Ctrl+Alt+Shift+K still works too.
Each of these is covered by a test, including one that hands the sender a machine which never reads anything.
Installing
sudo apt install ./lightmorphic-flow_0.6.1_all.deb
More at flow.lightmorphic.com.
Lightmorphic Flow 0.6.0
Beta.
The computer being controlled now asks
Discovery used to work the wrong way round: the computer with the keyboard shouted its presence at the network, and anything with a firewall dropped it without a word. That is why two machines could sit there saying nothing found with no explanation.
It is now a question and an answer. The computer being controlled asks, from a port of its own, and the one with the keyboard replies straight back to it. A firewall lets that reply through as a matter of course, because it is an answer to a question that machine already asked.
What this means: the computers being controlled need no firewall change and no password. Only the machine with the mouse and keyboard has to accept anything coming in, and only that one is offered the button.
This is the same reason Deskflow was never affected — its client dials out and nothing listens on it.
Installing
sudo apt install ./lightmorphic-flow_0.6.0_all.deb
More at flow.lightmorphic.com.
Lightmorphic Flow 0.5.3
Beta.
A firewall was stopping the computers finding each other
Flow needs two ports: 24810 over TCP for the mouse, keyboard and clipboard, and 24811 over UDP so the machines can announce themselves. A firewall blocks both by default and says nothing at all, so the settings window just sat there saying nothing found on this network yet, with no hint as to why.
- The window now notices a firewall is running while nothing has been found, says so plainly, and has a button that opens exactly those two ports after asking for your password.
- Both packages ship a ufw profile and a firewalld service describing the ports. Neither opens anything on its own.
lmflow doctorreports the firewall and the command to type.
By hand:
sudo ufw allow Lightmorphic-Flow
sudo firewall-cmd --permanent --add-service=lightmorphic-flow && sudo firewall-cmd --reload
Installing
sudo apt install ./lightmorphic-flow_0.5.3_all.deb
More at flow.lightmorphic.com.