Repository navigation
Linger 0.5.4: Linger updates itself, and phones share straight to it
From this release on, Linger keeps itself up to date: a day after a
release comes out, the app downloads it and installs it when it won't get in
anybody's way. And phones can share pictures and files straight to
Linger: pick Linger in the phone's share sheet. On an iPhone, Linger's own
window rises inside the sheet, and Send posts to the room or person you pick
without leaving the app you shared from. Around those, a busy week of fixes:
everybody in voice knows when a screen share starts, the voice strip fits
everybody it can, a long message you send stays on screen whole, and a short
drop in a busy call no longer leaves you out of voice.
Everyone: update the app. This update is installed the old way, since
the app that installs updates by itself is this one: in 0.5.3, Update… at
the foot of the list, or Settings → Account & App → Install and restart.
From 0.5.4 on, Linger does it for you.
Hosts: update the server with ./update.sh, as usual. This one has a
small database change, which update.sh backs up first. The server writes
the line saying somebody shared their screen, gives the iPhone's share window
its sign-in, keeps the last two minutes for somebody whose connection dropped,
and tells apps the oldest version it works with. Nothing in compose.yaml
changes. See For hosts.
The highlights
- Linger updates itself (#772), and an app too old for a server says so
on that server's row (#793). - Share to Linger from your phone (#785, #820): Android opens Linger on
your conversations; an iPhone sends from inside the share sheet. - Everybody in voice knows a share started (#746): a sound, Watch in the
voice bar, and a line in the chat saying who. - A drop of a minute or two in a busy call no longer leaves you out of
voice with a silent seat behind you (#678). - The voice strip shows as many people as fit (#745), and a name on it
opens that person's volume (#747). - A long message you send stays on screen whole (#750, #760).
- Bigger words on the phone, with a Text size of its own (#690).
Linger updates itself
- On Windows (the setup.exe) and with the AppImage, a day after a
release is published, Linger downloads it and installs it at the next
start, or after half an hour with nobody using it. Never while you're in
voice or sharing your screen (#772). - With the .deb, .rpm and .msi, which need a password to install, it
downloads the update and asks, with Update at the foot of the list. - On Omarchy or Arch, Linger still updates with your system.
- After an update, the foot of the list says You're on Linger 0.5.x once,
with one line about what's new. - A host whose server is behind sees it at the foot of the list, with
How to update. The disk and backup lines there now say Server
settings rather than Hosting…. - A server says the oldest app it works with (#793). An app older than
that says so on that server's row and offers Update now, and its other
servers keep working. Today that's 0.4.1, so nobody is turned away.
Share to Linger from your phone
Linger is in the phone's share sheet, for pictures, videos and files (#785,
#792).
- On Android, sharing to Linger opens it on your conversations. Pick one,
and what you shared waits in its message box, unsent, for you to add words
and send. - On an iPhone, Linger's own window rises inside the share sheet (#820).
You see what you're sharing, can add a message, and pick a room, a group or
a person. Your most recent ones are on top, and a search finds the rest.
Send posts it there and then, and you're still in Photos (or wherever
you shared from). With more than one server, each row says which server
it's on. - The iPhone's share needs the server updated: the window signs in to
each server with a sign-in of its own, which only a 0.5.4 server gives. On
an older server, its rooms show greyed out with "needs updating to share
from here". - A photo the iPhone keeps as HEIC arrives as a JPEG, at most 4,096
pixels on its longest side (#817). The share window has too little memory
to read a recent iPhone's photo whole, and doesn't need to. - Several pictures to a busy server: one that has to wait its turn now
goes up after all, or offers Try again, rather than leaving a red line
you could only take out (#801).
Screen sharing and voice
- Everybody in voice knows a share started (#746). They hear it start
and stop, Watch stays lit while it goes on, the voice bar offers it,
and a quiet line in the chat says who's sharing. That line needs the server
updated. - The voice strip shows as many people as fit its line, not a fixed four
(#745). - A click on somebody on the conversation's voice line opens their
volume, as in the voice bar. On a phone it rises from the bottom, and the
people there are easier to tap (#747). - An iPhone has no per-person volume any more (#816). iOS doesn't let
Linger set one voice's volume, so the slider moved and did nothing. There,
a person's name in a call opens only the host's Take out. Android keeps
its slider. - A short drop in a busy call (#678). The server now keeps the last two
minutes of what somebody missed while their connection was down, not only
the last 500 things, so somebody back from a minute or two away is still
in the call. When even that isn't enough, they start afresh at once and the
call sees them leave then, rather than a silent seat staying for up to two
more minutes.
Conversations
- A long message you send is on screen whole, not left below the bottom
with only your name showing, and "you left off here" no longer sits above
it (#750). - A reaction or an edit on the newest message keeps the conversation at
its very end, not a few pixels short, and messages arriving in a burst no
longer leave the newest below the bottom (#760). - A room's topic or a friend's status cut short with "…" in the header
opens whole with a click or a tap: in a card, or a sheet on a phone (#778). - On Linux with NVIDIA, a video in a conversation shows its picture again,
not solid green. That was a regression in 0.5.3 (#756).
Phones and Settings
- Bigger words on the phone: Settings → Appearance has a Text size
of its own, on top of the phone's. The iPhone app now follows the iPhone's
Text Size, as the Android app follows its Font size (#690). - When storage won't keep an Appearance choice (full, or switched off in
a browser), Settings says "Couldn't save that here." and the setting stays
as it was (#782). In the installed app it hardly ever happens. - Settings → Account & App has Privacy, which opens the privacy page,
and Report a problem, which opens GitHub's forms for a new issue
(#779). - On an iPhone, Linger says why it wants the local network when your
server is on your home network (#779). It stays out of iCloud backups, and
its sign-in stays on that phone (#790). Nobody is signed out by the update. - The iPhone app needs iOS 15 or later (#743). Every iPhone that ran it
before has it.
Known issues
- The iPhone's share window is new. A TestFlight tester ran every check
on a real iPhone, and it was tested on a simulated one against a real
server. Tell us what it does with what you share most. - The Android share has no window of its own: it opens Linger, as above.
- Linger updates itself only from this release on. 0.5.3 and older ask,
as before. - A computer with NVIDIA's legacy driver can't watch a screen (#729).
Older apps and servers
Nothing stops working with an older app or server (PROTOCOL §9).
- A 0.5.4 app on a 0.5.3 server works as before, with every fix in the
app. There's no line in the chat when somebody shares their screen, the
iPhone's share window says that server needs updating, and a drop in a
busy call is handled the old way. - A 0.5.3 app on a 0.5.4 server works as before. It shows the share line
as that person saying "shared their screen".
For hosts: updating the server
Server image: ghcr.io/itsmattguenther/linger:0.5.4 (x86-64 only), also
tagged 0.5 and latest.
What changes for you
- One small database change (migration 0026): a column on messages for
the share line, and an index for it. It takes a moment, even on a big
server.update.shsaves the database intobackups/first. - The iPhone's share window signs in with
POST /auth/share-sign-in,
ten times an hour per person at most. Each is a sign-in like any other:
changing a password, a reset or removing somebody ends it. - Somebody whose connection drops is kept up to two minutes' worth of
what they missed, in memory, so the server uses a little more memory in a
busy call. Nothing to set. - No new setting, and nothing in
compose.yamlchanges.
The steps
On the server, in your linger folder:
cd ~/linger
./update.sh(Use sudo ./update.sh if you type sudo before docker commands.) It
downloads 0.5.4 while the server keeps running, stops it for a few seconds to
save the database into backups/, then starts everything again and prints the
version before and after. If 0.5.4 doesn't start, it prints the commands that
put 0.5.3 back.
Check it worked, with your own address in place of linger.example.com:
curl -f https://linger.example.com/api/v1/healthIt prints {"ok":true,"version":"0.5.4","oldest_client":"0.4.1"}.
Going back to 0.5.3 means restoring the copy update.sh saved into
backups/ just before 0.5.4 started, and anything posted since is lost. The
host guide's Restoring says how.
Install or update
This once, update the old way: Update… at the foot of the list, or
Settings → Account & App → Install and restart. Windows users should keep the
same installer format (.exe or .msi) when upgrading. Linux packages are
.AppImage, .deb and .rpm; on Omarchy or Arch, Linger updates with your
system (Update in the Omarchy menu, or sudo pacman -Syu). Windows installers
are updater-signed, not Authenticode-signed; SmartScreen may still warn about
an unfamiliar app.
On Android, download Linger_0.5.4_android-arm64.apk from this release on
the phone and install it over the old one, or update from Google Play if
you're testing there. You stay signed in. On an iPhone, TestFlight offers
0.5.4 once it's through Apple's processing.
New to Linger? Which file do I want?
| Your computer | Download the file ending in |
|---|---|
| Windows | -setup.exe |
| Debian, Ubuntu or Mint | .deb |
| Fedora, RHEL or openSUSE | .rpm |
| Any other Linux | .AppImage — make it executable and run it |
| macOS | Not built yet — see decisions.md |
| Android phone | _android-arm64.apk — download it on the phone |
| iPhone | TestFlight, for its testers for now |
The .msi is for companies rolling it out to many machines at once.
If you are not sure, you want the .exe.
The .sig files and latest.json are how an installed copy checks
that an update is genuine. You do not need to download them.
Windows will warn you. You get "Windows protected your PC", and
Run anyway is behind the small More info link. That is Windows
saying the installer has not been through a paid signing process. It
has not — that is a
known decision,
not a broken download.
Android will ask before installing. The phone says it won't
install apps from your browser until you allow it: tap Settings,
turn on Allow from this source, and go back. That is Android's
rule for any app that isn't from the Play Store. The phone app
doesn't update itself: install each new one from its release page,
right over the old one, and you stay signed in.
Checks on installed clients
Record OS, package type, previous and new version, and what you shared, with
any failure. Use made-up pictures and messages.
- Update from 0.5.3 the old way, on Windows (setup.exe), Linux
(AppImage) and one package that asks (.deb,.rpmor.msi): it
installs, you stay signed in, and the foot of the list says You're on
Linger 0.5.4 once (#772). - iPhone, through TestFlight: share a photo from Photos to a room on a
0.5.4 server, a minute after leaving Linger; it arrives, and you stay in
Photos (#820, #825). Three photos at once arrive as one message. A room on
an older server shows greyed out. - Android: share a picture to Linger; it waits in the conversation you
pick (#785). - A screen share in a call of three: the others hear it start and stop,
Watch stays lit, and a line in the chat says who's sharing (#746). - Drop a phone's Wi-Fi for a minute in a busy call, then bring it back:
it's still in the call, with no silent seat left behind (#678). - A long message you send in a busy room stays on screen whole (#750).
- On Linux with NVIDIA, a video in a conversation shows its picture
(#756). - The phone's Text size in Settings → Appearance makes the words bigger,
and the iPhone follows its own Text Size (#690).
Thanks
- @Gleasonmt, for getting the iPhone app ready for Apple's iOS 15 rule
(#743), bigger text on the phone and the iPhone following its Text Size
(#690), Settings saying when an Appearance choice couldn't be saved (#782),
and the Privacy and Report a problem buttons and getting the iPhone app
ready for the App Store (#779). - @eGGnogSC, for sharing to Linger from the phone's share sheet (#792),
pictures that wait out a busy server rather than fail (#801), and testing
the iPhone's share window on a real phone. And, from September, before the
notes thanked contributors: messages that show the moment they're sent
(#133), and the sidebar that no longer scrolls sideways (#84).