Repository navigation
Linger v0.4.6
Linger 0.4.6: lighter
Linger now uses far less memory with photos and videos, most of all on Linux.
Photos in conversations and Media are shown from a smaller copy the server
makes, and videos and audio load nothing until you play them. Windows gets a
minimize button on every window.
Hosts: update the server to make photos lighter. This release changes the
server's database (one new column, added by itself on start), and the first
start makes smaller copies of the photos already on it, in the background.
0.4.6 apps work with a 0.4.5 server, where photos are simply shown at full
size as before, and 0.4.5 apps work with a 0.4.6 server.
For hosts has the steps.
Everyone: update the app.
The highlights
- Photos take a fraction of the memory (#382). Conversations and Media
show a copy the server makes, 960 pixels on its longest side; click a photo
and it opens full size. Ten phone photos in a conversation went from about
900 MB of extra memory to about 65 MB in WebKit, the Linux engine. - Videos and audio load nothing until you play them (#381). The poster
and the length show until then. Five unplayed videos went from about
1,060 MB to 144 MB on Linux, and from 463 MB to 216 MB in Chromium, the
engine behind Windows' WebView2. - A minimize button on Windows (#386), just before the close button on
every window.
Photos and videos
- Photos are shown from a smaller copy (#382). When you share a photo
bigger than 960 pixels on its longest side, the server keeps it full size
and also saves a copy that size beside it. The conversation and Media show
the copy, so they load quickly and use little memory. Click a photo for
the full picture; downloads and exports are full size too.- Smaller images, and animated GIFs, are shown as they are.
- Photos shared before the update get their copies once the host updates
the server. Until then they show full size, as before. - Someone still on 0.4.5 sees full-size photos everywhere, as before.
- Shared videos and audio load nothing until played (#381). Each unplayed
video used to build a whole player as soon as you scrolled past it, about
190 MB each on Linux with NVIDIA graphics. Now the poster and the server's length stand in until
you press play. After a failed load, Load again still loads straight
away.
Windows
- Minimize (#386) is just before the close button on the list, on the
conversations beside it, on a room or DM in a window of its own, and on
Settings, Search, Media and signing in. It sends the window to the taskbar,
where a DM still makes its button flash. Linux has none: a tiling desktop
can't minimize, and other desktops keep their shortcuts.
Under the hood
- The package check's chime test plays its sounds again, once, when a busy CI
machine loses part of one on the way to the virtual speaker (#384), and it
now compares every chime with the sound the app made (#387). This changes
only the checks.
Known issues
- On Hyprland (Omarchy included), the mouse pointer jumps into a
conversation that opens in a window of its own (popped out, or with
Each in its own window). Conversations beside the list don't do this.
It's Hyprland's behaviour when an app brings a window forward, and the
user guide has the two lines that turn it
off. - The AppImage doesn't play AV1 videos, which some NVIDIA and OBS game
recordings and Pixel 10 phones make. Its own video decoders cover H.264 and
H.265, which almost every phone and recorder uses (#358). Windows and the
Arch,.deband.rpmpackages play AV1.
For hosts: updating the server
Server image: ghcr.io/itsmattguenther/linger:0.4.6 (x86-64 only), also
tagged latest.
What changes for you:
- A small database change. One column is added by itself the first time
0.4.6 starts.update.shbacks up the database before it updates, as
always. - Photos get smaller copies (#382). New photos get theirs as they're
shared. Photos already on the server get theirs in the background after the
first start, newest first, a few at a time. On a server with many photos
that uses some CPU for a while; everything keeps working, and those photos
show full size until their copy is ready. When it's done, the log says
made display copies for earlier images. - Copies are small, usually a couple of hundred KB a photo. They aren't
counted against your storage limit, they aren't in exports, and they're
deleted with their photo. - No new setting, and the image is still x86-64 only. ARM servers stay on
0.4.4.
Run these on the server, one block at a time.
1. Go to the folder with your compose.yaml (the linger folder from
setup):
cd ~/linger2. Update:
./update.sh(Use sudo ./update.sh if you type sudo before docker commands. No
update.sh in the folder? The 0.4.5 notes
show how to get it.) It downloads 0.4.6 while the server keeps running, stops
it for a few seconds to save the database into backups/, starts everything
again, and prints the version before and after.
3. Check it worked:
curl -f https://linger.example.com/api/v1/healthWith your own address in place of linger.example.com, it should print
{"ok":true,"version":"0.4.6"}. Later, see the copies finish:
docker compose logs linger | grep "display copies"A server with no photos yet prints nothing, and that's fine.
If something goes wrong, update.sh prints the commands that put 0.4.5
back with the backup it just made. Going back needs that backup: 0.4.5
won't start on a database 0.4.6 has changed. Anything sent after the update
is lost when you go back, so decide soon if you're going to.
Download the app
Install the app on your own computer. Hosts run the separate server image.
| Your computer | Download |
|---|---|
| Windows | Linger_0.4.6_x64-setup.exe |
| Omarchy or Arch | Nothing to download: curl -fsSL https://raw.githubusercontent.com/itsMattGuenther/Linger/main/packaging/arch/setup.sh | bash once, then update with your system |
| Ubuntu, Debian or Mint | Linger_0.4.6_amd64.deb |
| Fedora or openSUSE | Linger-0.4.6-1.x86_64.rpm |
| Other Linux | Linger_0.4.6_amd64.AppImage |
The .msi is an alternative Windows installer. The app uses .sig files and
latest.json for updates; you do not need to download them yourself. macOS and
ARM desktop installers are not available. Windows installers are updater-signed,
not Authenticode-signed, so SmartScreen may warn: Run anyway is behind More
info. See the
user guide
for installation and troubleshooting.
Updating the app
Choose Update… at the foot of your list, or open Settings → Account & App →
Updates, or close Linger and install the new download. You stay signed in.
Windows users should keep the same installer format (.exe or .msi). On
Omarchy or Arch, the package updates with your system.
Linux, with a .deb or .rpm you updated from inside the app: add the
video decoders once, then restart Linger.
- Debian and Ubuntu:
sudo apt install gstreamer1.0-libav - Fedora:
sudo dnf install gstreamer1-plugin-libav
Hosts: see For hosts above.
Checks on installed clients
Record OS, package type, previous and new version, and interface size with
any failure. Use made-up messages, and keep private conversations out of
screenshots.
- Share a phone photo in a room: it shows quickly. Click it: the full photo
opens, sharp. Open Media: its tile shows (#382). - As a host, after updating the server: a photo shared before the update
still shows, anddocker compose logs linger | grep "display copies"
says copies were made (#382). - Scroll past a few shared videos without playing them: each shows its
poster and length. Play one, skip around in it, and let it reach the end
(#381). - Windows: press minimize on the list, on the list with a room beside
it, and on a room in its own window. Each goes to the taskbar, and a click
there brings it back. With the list minimized, the tray brings it back too
(#386). - Windows: have a friend DM you while Linger is minimized: its taskbar
button flashes (#291, #386).