Repository navigation
Linger v0.4.5
Linger 0.4.5: one window
Your list and your conversations now live in one window. Each friend has one
row: click it, and they open beside the list, their card on top and your
conversation underneath. Long messages use the whole width of a wide window,
and shared videos play with sound on Linux.
Hosts: updating is quick, and optional this time. The server hasn't
changed apart from its version number: no database change and no new
setting. 0.4.5 apps work with a 0.4.4 server. Your app will now tell you the
server is behind, though, so get the new update script and run it. On an
ARM server, such as a Raspberry Pi, stay on 0.4.4.
For hosts has the steps.
Everyone: update the app.
The highlights
- One window. Conversations, Media and Search open beside your list as
tabs, and fold back to just the list (#337). - One row per friend. Your DM with somebody lives on their row. Click it
and they open beside the list (#351). - Long messages use the whole width of a wide window (#334).
- Shared videos play with sound on Linux (#358).
- Hosts update with one command, and the app says when the server is
behind (#312, #314).
Your list and conversations
- The list is the one window (#337). Open a room or a person and the
window grows to the right to make room for it (to the left if your screen
ends there). The list and the conversation move, snap and minimize
together.- Each conversation gets a tab. Ctrl+Tab moves between them and
Ctrl+W closes one. - The fold button at the conversations' left edge folds the window back to
just your list and keeps your tabs. The button beside the gear brings them
back. Closing the last tab folds it too. - Drag the line between the list and the conversations to make the list
wider or narrower. Double-click it to put it back. - A maximized or snapped window keeps its size. On a tiling desktop like
Hyprland (Omarchy included), the window keeps its tile. If the tile is too
narrow for both, the conversation takes the whole window and the fold
button takes you back to the list. - Media and Search open as tabs too, and Ctrl+K opens Search. A
result opens its conversation as another tab, at the message. - The pop-out button still puts a tab in a window of its own, and Back
beside your list puts it back. If you'd rather every conversation had
its own window, choose that in Settings → Windows. - The separate chat window, with its own tabs, is gone.
- Each conversation gets a tab. Ctrl+Tab moves between them and
- One row per friend (#351). Every friend used to be in the list twice,
once under DMs and once under People. Now there's no DMs section: your DM
with somebody lives on their row in People.- Their row lights up when they've written something you haven't read,
even when Away or Offline is folded. - The people you're talking to come first in each group: whoever wrote
to you, then whoever you talked with most recently, then everyone else. - Click a person and they open beside the list: their name, where they
are, their whole status and fields, and Knock on top, your
conversation underneath. - That tab is a preview, its name in italics. Clicking the next person
replaces it, so looking around doesn't pile up tabs. Typing in it keeps
it. - Hover a person to see their whole status when the row had to cut it
short. The list marks whatever is showing beside it. - Group DMs sit with the rooms, after the server's own. The + on
the Rooms heading starts one. - The small card button on a person's row, next to Knock, opens just
their card, without opening a tab.
- Their row lights up when they've written something you haven't read,
- Long messages use the whole width (#334). A message's words used to
stop at 80 characters, however wide the window. Now they run up to the time
column. At a normal window size nothing changes. Search results keep the
shorter lines.
Fixes
- Linux: shared videos play with sound (#358). Most videos from a phone
or a screen recorder have AAC sound and an H.264 picture. Linux's media
system needs its libav decoders for both, and Linger never asked for them,
so those videos played silent or not at all.- The Arch and Omarchy package requires them now.
- A fresh install of the
.debor.rpmbrings them. - The AppImage carries its own, trimmed to what shared videos need. It
grew 1.4 MB. It doesn't play AV1, or older formats such as DivX. - Updating a
.debor.rpmfrom inside the app doesn't add them
(#377). Add them once with the command under
Updating the app.
- Linux: the desktop's play key can't start a song you paused (#353).
The play/pause key, or a mouse button the desktop treats as one, could
start a song posted in a room even though you'd paused it. Now Play only
resumes something the desktop itself paused. Pause and play in the middle
of a song work as before. - Names in Silkscreen show in Silkscreen (#318). In installed apps, a
name set in Silkscreen, and the small logo mark, fell back to another font.
It never worked before this release. - No yellow ring after switching workspaces (#375). Coming back to Linger
could leave a focus ring around whatever you'd last clicked. The ring now
shows only after you've used the keyboard. - End on a shared audio file's timeline goes to the end (#343). On Linux
it could turn the player into "Couldn't load this audio."
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.
For hosts: updating the server
Server image: ghcr.io/itsmattguenther/linger:0.4.5 (x86-64 only), also
tagged latest.
What changes for you:
- Nothing in the server itself. No database change and no new setting.
0.4.5 apps work with a 0.4.4 server. - Your app says when the server is behind (#314). Settings → Hosting →
Server shows the version your server runs. When a newer one is out, it
says so, with How to update and What's new. Only the host sees it. - One command updates the server (#312):
./update.sh. It backs up the
database first, and keeps the last five backups. - The image is for x86-64 (Intel or AMD) only from this release on
(#310). ARM servers stay on 0.4.4. - If you run the voice relay,
.env.examplenow has
COMPOSE_PROFILES=voice. Put that line in your.envand a plain
docker compose up -dstarts the relay too. It's optional, since
update.shworks it out either way.
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. Check what your server runs on:
uname -mx86_64 means carry on. aarch64 or arm64 means an ARM server: stop
here. Change the image line to ghcr.io/itsmattguenther/linger:0.4.4 with
nano compose.yaml, and leave it there. Otherwise latest points at an
image your server can't run, and every update fails with "no matching
manifest". Your server is missing nothing that 0.4.5 apps need.
3. Get the update script. Once only; servers set up from 0.4.5 on already
have it:
curl -fLO https://raw.githubusercontent.com/itsMattGuenther/Linger/main/deploy/update.sh
chmod +x update.sh4. Update:
./update.sh(Use sudo ./update.sh if you type sudo before docker commands.) It
downloads 0.4.5 while the server keeps running, stops it for a few seconds to
save the database into backups/, starts everything again, the relay too,
and prints the version before and after. If it stops because the image line
still says matthewguenther, change that line to
ghcr.io/itsmattguenther/linger:latest with nano compose.yaml and run it
again.
5. 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.5"}. Settings → Hosting → Server in your app
should now say it's the newest.
If something goes wrong, update.sh prints the commands that put 0.4.4
back. The database didn't change, so going back is only the image line:
change it to ghcr.io/itsmattguenther/linger:0.4.4 and run
docker compose up -d.
Download the app
Install the app on your own computer. Hosts run the separate server image.
| Your computer | Download |
|---|---|
| Windows | Linger_0.4.5_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.5_amd64.deb |
| Fedora or openSUSE | Linger-0.4.5-1.x86_64.rpm |
| Other Linux | Linger_0.4.5_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.
- Windows 11: with the list near the right edge of the screen, open a
room: the window grows to the left. Snap the window to half the screen and
open a room: it keeps its size (#337). - Hyprland: open a room with the window tiled, then floating. Tiled, it
keeps its tile, and in a narrow tile the conversation takes the whole
window. Floating, it grows beside the list (#337). - Fold with the fold button, bring the tabs back with the button beside the
gear, and close the last tab: it folds. Ctrl+K opens Search as a tab,
and a result opens its conversation at the message. - Click a friend: their card on top, your conversation below, the tab in
italics. Click another friend: that tab is replaced. Type in it: it stays
(#351). - Have a friend DM you while their group is folded: their row and the
group's heading light up. Read it: the light goes out (#351). - Start a group with the + on Rooms: it sits after the server's
rooms. - In a window over 1600 pixels wide, send a long message: its words run to
just short of the time (#334). - Linux: play an MP4 from a phone in a room: it has sound. Try it on the
Arch package, on an AppImage, and on a.debor.rpmupdated in-app
after adding the decoders (#358). - Debian or Ubuntu, on a computer without
gstreamer1.0-libav: update
from 0.4.4 inside the app. It finishes, Linger restarts on 0.4.5, and
sudo apt installof anything still works afterwards (#377). - Linux: leave a song paused in a room and press the play key (or a
mouse button bound to it) a few times: it stays paused. Play a song,
press pause, then play: it pauses and carries on (#353). - Set your name in Silkscreen: it shows in Silkscreen, on Linux and on
Windows (#318). - Click a tab, switch to another workspace and back: no yellow ring. Press
Tab: the ring shows (#375). - Linux: share an audio file, click its timeline and press End: it goes
to the end, and doesn't say it couldn't load (#343). - As a host, with the server still on 0.4.4: Settings → Hosting →
Server says 0.4.5 is out, and How to update opens the host guide.
Run./update.sh: it backs up, updates and prints 0.4.5. Settings then
says it's the newest (#312, #314).