Repository navigation
Releases: dkflint723/jackdaw
Release list
v0.18.3
Paste and shortcuts in tabs drawn with Edge's engine.
Paste, copy and the rest work in WebView2 tabs
In a tab drawn with Edge's engine (Google Messages, or any tab switched with
Draw with Edge's engine (WebView2)), Ctrl+V did not paste, and Ctrl+C,
Ctrl+X, Ctrl+A, Ctrl+Z and Ctrl+Y did nothing either. Jackdaw was taking those
keys for its own menu instead of letting the page have them. The page now
gets every editing key.
Jackdaw's shortcuts work from inside them
Ctrl+Tab, Ctrl+Shift+Tab, Ctrl+1 to Ctrl+9 and Jackdaw's other shortcuts now
work while a WebView2 tab has the keyboard. Most of them were not reaching
Jackdaw at all.
Unsigned build. Windows SmartScreen will warn on first run:
choose More info -> Run anyway.
Nothing else to install. The Signal tab drives a real
signal-cli process, and both it and the Java runtime it needs ship
inside the app -- so Signal works on a machine that has neither.
That is most of the download size.
Signal links this machine as a secondary device by QR. As with every
linked device, existing conversations do not arrive by linking: the
tab starts empty and fills as messages arrive, and contacts and groups
do sync. To bring older messages over, use Import history from a
phone in the Signal sidebar, which reads a backup made in Signal on
the phone.
Linux: install the .deb on Debian or Ubuntu -- it is the one
most people want, and unlike the AppImage it does not need libfuse2,
which Ubuntu has not shipped by default since 22.04. The rpm and
pacman packages are built on Ubuntu but target Fedora and Arch. The
AppImage suits anything else, given libfuse2.
v0.18.2
A fix for clicks not reaching tabs drawn with Edge's engine.
Clicks reach WebView2 tabs every time
In a tab drawn with Edge's engine (Google Messages, or any tab switched with
Draw with Edge's engine (WebView2)), clicks could stop working after you
had used another tab and come back: nothing in the page could be selected
until you switched away and back again. An invisible part of Jackdaw's own
window was being placed over the tab and taking the clicks. The tab now puts
itself back on top as soon as that happens.
Unsigned build. Windows SmartScreen will warn on first run:
choose More info -> Run anyway.
Nothing else to install. The Signal tab drives a real
signal-cli process, and both it and the Java runtime it needs ship
inside the app -- so Signal works on a machine that has neither.
That is most of the download size.
Signal links this machine as a secondary device by QR. As with every
linked device, existing conversations do not arrive by linking: the
tab starts empty and fills as messages arrive, and contacts and groups
do sync. To bring older messages over, use Import history from a
phone in the Signal sidebar, which reads a backup made in Signal on
the phone.
Linux: install the .deb on Debian or Ubuntu -- it is the one
most people want, and unlike the AppImage it does not need libfuse2,
which Ubuntu has not shipped by default since 22.04. The rpm and
pacman packages are built on Ubuntu but target Fedora and Arch. The
AppImage suits anything else, given libfuse2.
v0.18.1
A fix for typing after using the Google Messages tab.
Typing works in every tab again
In 0.18.0, once you had used the Google Messages tab, other tabs, Settings and
the lock screen could not be typed into: Windows went on sending your keys to
the Google Messages page even after you had left it. Now the keyboard goes back
to Jackdaw as soon as Google Messages is hidden, whether you switch tabs, open
Settings or Jackdaw locks. And as a backstop, a key that still reaches the
Google Messages page while it is hidden is ignored, so nothing can be typed into
or sent from it while you cannot see it.
If you typed into another tab in 0.18.0 and nothing appeared, it is worth a
glance at Google Messages' message box for text that ended up there.
Unsigned build. Windows SmartScreen will warn on first run:
choose More info -> Run anyway.
Nothing else to install. The Signal tab drives a real
signal-cli process, and both it and the Java runtime it needs ship
inside the app -- so Signal works on a machine that has neither.
That is most of the download size.
Signal links this machine as a secondary device by QR. As with every
linked device, existing conversations do not arrive by linking: the
tab starts empty and fills as messages arrive, and contacts and groups
do sync. To bring older messages over, use Import history from a
phone in the Signal sidebar, which reads a backup made in Signal on
the phone.
Linux: install the .deb on Debian or Ubuntu -- it is the one
most people want, and unlike the AppImage it does not need libfuse2,
which Ubuntu has not shipped by default since 22.04. The rpm and
pacman packages are built on Ubuntu but target Fedora and Arch. The
AppImage suits anything else, given libfuse2.
v0.18.0
Google Messages works again on Windows, including in the US.
Google Messages: sign in with your Google account
Google has removed QR-code pairing for Google Messages in the US. Your phone
now only offers to pair with a computer signed in to the same Google account,
and Google refuses that sign-in inside apps built like Jackdaw ("This browser
or app may not be secure").
On Windows, the Google Messages tab is now drawn by Microsoft's WebView2, the
engine behind Edge, which is part of Windows. Google accepts it, so:
- Open the Google Messages tab and click Sign In.
- Sign in with your Google account (password or Windows Hello).
- Match the emoji on your phone.
It stays inside Jackdaw's window like any other tab, and is held to the same
rules:
- links open in your browser, and only when you click them;
- notifications go through Jackdaw (lock, Do Not Disturb, muting, previews);
- Jackdaw's shortcuts work from inside it;
- downloads go to your download folder;
- it is hidden while Jackdaw is locked or Settings is open.
Jackdaw never sees your Google password. Sign out in the tab's menu clears
the sign-in, and closing the tab deletes it.
On Linux there is no WebView2, so the tab is unchanged: QR pairing works where
Google still offers it, and where Google refuses, the tab now says so and
offers Open in browser.
Choose a tab's engine
If another service starts refusing to sign in inside Jackdaw, you can switch
that one tab to Edge's engine yourself: open the tab's menu and tick Draw
with Edge's engine (WebView2). Windows only, and not for Signal. In that mode
calls, the camera and the microphone don't work, and pop-up windows open in
your browser. Each engine keeps its own sign-in, so you sign in again after
switching. Switching back finds the sign-in the tab had before.
Unsigned build. Windows SmartScreen will warn on first run:
choose More info -> Run anyway.
Nothing else to install. The Signal tab drives a real
signal-cli process, and both it and the Java runtime it needs ship
inside the app -- so Signal works on a machine that has neither.
That is most of the download size.
Signal links this machine as a secondary device by QR. As with every
linked device, existing conversations do not arrive by linking: the
tab starts empty and fills as messages arrive, and contacts and groups
do sync. To bring older messages over, use Import history from a
phone in the Signal sidebar, which reads a backup made in Signal on
the phone.
Linux: install the .deb on Debian or Ubuntu -- it is the one
most people want, and unlike the AppImage it does not need libfuse2,
which Ubuntu has not shipped by default since 22.04. The rpm and
pacman packages are built on Ubuntu but target Fedora and Arch. The
AppImage suits anything else, given libfuse2.
v0.17.2
Three fixes: Google Messages pairing, the passcode box at startup, and a
passcode set in the first seconds of a new install.
Google Messages shows its QR code again
Google changed its welcome page: it used to offer Sign In and Pair with
QR code, and now offers only Sign In. Google refuses that sign-in inside an
app like Jackdaw, so a new or unpaired Google Messages tab had no way in.
Jackdaw now goes straight past the welcome page to the QR code. Scan it from
Messages → Device pairing on your phone, and turn on Remember this
computer under the code so you stay paired. Tabs already paired are not
affected.
Typing your passcode at startup works first time
Straight after Jackdaw started, the passcode box often ignored what you typed
until you clicked in it. Your tabs load behind the lock when Jackdaw starts,
and each one took the keyboard as it finished loading, so for the first few
seconds keys went into a hidden tab instead of the passcode box. The lock
screen now keeps the keyboard from the moment it appears, and a key that
reaches a hidden tab is dropped, never typed into it. The same goes for tabs
behind the one you are using, and behind Settings.
A passcode set on a brand-new install survives a crash
On Windows, the key that protects your passcode is written to disk about ten
seconds after Jackdaw first runs on a new profile. A passcode turned on before
then, with Jackdaw crashing or being force-closed straight after, could never
be unlocked again. Turning the lock on now waits until that key is saved. On
an install that has run before there is no wait; on a brand-new one, Settings
may take a few seconds to turn the lock on.
Unsigned build. Windows SmartScreen will warn on first run:
choose More info -> Run anyway.
Nothing else to install. The Signal tab drives a real
signal-cli process, and both it and the Java runtime it needs ship
inside the app -- so Signal works on a machine that has neither.
That is most of the download size.
Signal links this machine as a secondary device by QR. As with every
linked device, existing conversations do not arrive by linking: the
tab starts empty and fills as messages arrive, and contacts and groups
do sync. To bring older messages over, use Import history from a
phone in the Signal sidebar, which reads a backup made in Signal on
the phone.
Linux: install the .deb on Debian or Ubuntu -- it is the one
most people want, and unlike the AppImage it does not need libfuse2,
which Ubuntu has not shipped by default since 22.04. The rpm and
pacman packages are built on Ubuntu but target Fedora and Arch. The
AppImage suits anything else, given libfuse2.
v0.17.1
Downloads, and a record of what goes wrong behind the lock.
Choose where downloads go
Settings → General → Files → Downloads. Pick any folder with
Change…, or go back to the standard Downloads folder with Use the
Downloads folder. It applies to files downloaded in every tab, and it is
where Save on a Signal attachment and Save image as… from the
right-click menu start. If the folder
you chose goes missing, say a drive that is unplugged, files go to the
Downloads folder until it is back.
Only Jackdaw's own folder picker can choose the folder, so no web page can
decide where a file lands.
No more blank window after a download
Downloading a file from Discord left an empty white window on screen. The
download button opens the file in a new window, and a file that is not a page
is downloaded instead of shown, leaving the window with nothing in it. That
window now closes as soon as the download starts, as a browser closes a tab
that turned into a download. The same goes for file links in every other tab:
Messenger, Instagram, Slack, Steam, Teams.
A picture still opens in its window as before, and a download started from a
window that was already showing something leaves that window alone.
When the window stops being drawn
A report came in of Jackdaw freezing on its last picture after locking, with
nothing on screen responding. Nothing in the log said why, because nothing was
listening. Now the log records:
- the processes that draw the window, play sound and use the camera stopping,
and why; - a tab crashing or stopping responding;
- displays and audio or video devices coming and going;
- the computer sleeping and waking, and Windows locking and unlocking.
After every lock Jackdaw also checks that the lock screen is actually being
drawn. If it is not, Jackdaw asks for it to be drawn again, then reloads it,
and writes down each step. If it happens to you, Settings → Advanced → Copy
diagnostics has the details.
Unsigned build. Windows SmartScreen will warn on first run:
choose More info -> Run anyway.
Nothing else to install. The Signal tab drives a real
signal-cli process, and both it and the Java runtime it needs ship
inside the app -- so Signal works on a machine that has neither.
That is most of the download size.
Signal links this machine as a secondary device by QR. As with every
linked device, existing conversations do not arrive by linking: the
tab starts empty and fills as messages arrive, and contacts and groups
do sync. To bring older messages over, use Import history from a
phone in the Signal sidebar, which reads a backup made in Signal on
the phone.
Linux: install the .deb on Debian or Ubuntu -- it is the one
most people want, and unlike the AppImage it does not need libfuse2,
which Ubuntu has not shipped by default since 22.04. The rpm and
pacman packages are built on Ubuntu but target Fedora and Arch. The
AppImage suits anything else, given libfuse2.
v0.17.0
A top-to-bottom going-over: 160 fixes, most of them in the Signal tab.
Things that now work differently
Edit and Delete for everyone stop after a day, and edits stop at ten.
Signal's own apps drop an edit or a delete for everyone that arrives more
than a day after the message, and ignore an eleventh edit. Jackdaw used to
offer both anyway, then showed the message changed or gone while everybody
else still had the original. Past those limits the options are no longer
offered.
Closing a Signal account deletes it from this computer properly, and says
what it cannot do. signal-cli used to refuse the deletion after Jackdaw
had already thrown the history away, so a re-added tab quietly reconnected.
It now deletes the account's keys first, and keeps the history if that
fails. A linked device cannot take itself off your phone, so the dialog now
tells you to remove it under Linked devices on the phone.
Windows Hello no longer wipes the count of wrong passcodes. Instead, a
wait for wrong passcodes no longer stops Hello, and old mistakes are
forgotten after a day with none.
The lock screen says what the lock actually protects. After you unlock
with the passcode, the Signal history stays open in the app's memory until
you quit. The wording used to promise more.
Signal
- Things you did on your phone while Jackdaw was starting (messages sent,
reactions, edits, deletes, read receipts) could be lost. They are now held
until Jackdaw knows which account is yours, then applied. - A reply sent from Jackdaw keeps its quote in your own conversation.
- Photos taken in portrait no longer go out sideways, and keep their colour
profile. - A large file on a slow connection no longer shows "may or may not have
been sent", and Retry no longer sends it twice. - Reacting to or editing a message somebody has already edited now lands.
- A group admin's delete for everyone is honoured, and so is an edit you
make to a group message on your phone. - A disappearing message goes from the screen when its time is up, even
with the conversation open. - After signal-cli restarts on its own, the error panel goes and you can
type again. - You can no longer send a reaction to a stranger whose message request you
have not accepted. - A conversation you started with somebody new no longer turns into a
message request when they reply. - Pictures opened from the media gallery show on top of it, and videos open.
- Forwarding a voice message sends it as audio, not as a nameless file.
- Mentions picked out of order, and the formatting of a message you edit,
are no longer lost. - Many smaller fixes to scrolling, drafts, the details panel, the @ list,
keyboard focus and screen-reader labels.
Importing history from a phone
- Older backups no longer fail as "damaged", and version-1 backups are
accepted. - All of a snapshot's photos come across, not just the first 200.
- Long messages arrive whole, not cut off after about 2,000 characters.
- Edited messages import with their latest text, and a disappearing message
keeps its timer. - Stop now stops, and a backup too large to import is refused as the
documentation says, rather than quietly losing the newest history.
The rest of the app
- The tray icon's unread dot and tooltip update again.
- A passcode longer than 64 characters set in Settings can now unlock.
- Setting a shortcut and clicking away no longer leaves the keyboard captured.
- "Install updates automatically" takes effect straight away, and "Check for
updates" tells the truth when it is off. - "Start hidden in the tray" stays hidden when the window was last
maximised. - The taskbar no longer flashes for muted accounts or during Do Not Disturb.
- A web page's title such as "Book club (2024)" is no longer read as 2024
unread messages. - The installer no longer offers an all-users install, which needed admin
rights for every update. - Settings controls have proper labels for screen readers, and keyboard
focus is kept when Settings redraws.
Unsigned build. Windows SmartScreen will warn on first run:
choose More info -> Run anyway.
Nothing else to install. The Signal tab drives a real
signal-cli process, and both it and the Java runtime it needs ship
inside the app -- so Signal works on a machine that has neither.
That is most of the download size.
Signal links this machine as a secondary device by QR. As with every
linked device, existing conversations do not arrive by linking: the
tab starts empty and fills as messages arrive, and contacts and groups
do sync. To bring older messages over, use Import history from a
phone in the Signal sidebar, which reads a backup made in Signal on
the phone.
Linux: install the .deb on Debian or Ubuntu -- it is the one
most people want, and unlike the AppImage it does not need libfuse2,
which Ubuntu has not shipped by default since 22.04. The rpm and
pacman packages are built on Ubuntu but target Fedora and Arch. The
AppImage suits anything else, given libfuse2.
0.16.6
The flicker.
The conversation no longer jumps when you send
Your message was briefly drawn twice.
Jackdaw puts your message on screen the instant you press Send, so it never
looks like it was lost while Signal is working. Signal then confirms it, and
the app swaps its own placeholder for the real thing — but the two arrived
six milliseconds apart, and for those six milliseconds both were on screen.
Because the conversation is pinned to the bottom, one extra message does not
just add a row: it moves the view as well. Everything on screen jumps up by a
message's height and drops back again.
Six milliseconds is a fraction of a frame, so whether you saw it came down to
timing — often on a fast monitor, and almost never in a screen recording,
which is why recording it came back clean.
The swap now happens in a single redraw. There is no moment when both exist.
Unsigned build. Windows SmartScreen will warn on first run:
choose More info -> Run anyway.
Nothing else to install. The Signal tab drives a real
signal-cli process, and both it and the Java runtime it needs ship
inside the app -- so Signal works on a machine that has neither.
That is most of the download size.
Signal links this machine as a secondary device by QR. As with every
linked device, existing conversations do not arrive by linking: the
tab starts empty and fills as messages arrive, and contacts and groups
do sync. To bring older messages over, use Import history from a
phone in the Signal sidebar, which reads a backup made in Signal on
the phone.
Linux: install the .deb on Debian or Ubuntu -- it is the one
most people want, and unlike the AppImage it does not need libfuse2,
which Ubuntu has not shipped by default since 22.04. The rpm and
pacman packages are built on Ubuntu but target Fedora and Arch. The
AppImage suits anything else, given libfuse2.
0.16.5
The last of the flicker.
The controls beside a message no longer fade in
0.16.4 stopped them disappearing when the conversation redrew. They were
still fading in afterwards, over a tenth of a second, which is the little
blink that was left.
The reason is narrow. A row that is redrawn from scratch — which is what
happens to your own message each time its tick changes from sending, to sent,
to received — came back without the app's note that your pointer was resting
on it. The note was put back immediately afterwards, but putting it back
after the fact is a change, and a change is what the fade runs on.
The note is now carried onto the row as it is rebuilt, so there is nothing to
fade from.
That is the row this matters for: watching your own message as its tick
changes is exactly when the pointer is sitting on the row being redrawn.
Unsigned build. Windows SmartScreen will warn on first run:
choose More info -> Run anyway.
Nothing else to install. The Signal tab drives a real
signal-cli process, and both it and the Java runtime it needs ship
inside the app -- so Signal works on a machine that has neither.
That is most of the download size.
Signal links this machine as a secondary device by QR. As with every
linked device, existing conversations do not arrive by linking: the
tab starts empty and fills as messages arrive, and contacts and groups
do sync. To bring older messages over, use Import history from a
phone in the Signal sidebar, which reads a backup made in Signal on
the phone.
Linux: install the .deb on Debian or Ubuntu -- it is the one
most people want, and unlike the AppImage it does not need libfuse2,
which Ubuntu has not shipped by default since 22.04. The rpm and
pacman packages are built on Ubuntu but target Fedora and Arch. The
AppImage suits anything else, given libfuse2.
0.16.4
The flicker, found and fixed — and Microsoft Teams.
The chat area no longer flickers when you send, receive or edit
The controls beside a message — reply, copy, react, delete — were
disappearing whenever the conversation redrew.
They are shown while the pointer is resting on a message. That is something
the browser keeps track of, and it throws it away whenever the row is taken
out of the page and put back, which is what redrawing the conversation does
to any row that moved. Your pointer has not moved, so nothing gives it back:
the controls fade out and stay gone until you move the mouse again.
Measured with a pointer resting on a message: one send, and the controls went
from fully visible to invisible twenty-six milliseconds later, and never came
back — one change in six hundred and seventy-four frames.
Jackdaw now keeps track of this itself, so the controls stay where they are
through a redraw.
Two earlier attempts at this flicker were aimed at the wrong thing. They did
make the conversation redraw far less — of ten rows in the list, none used to
survive an update that changed nothing, and all ten do now — but that was
never what you were seeing.
Switching tabs no longer makes the page jump
A tab being switched to shrank by 24 pixels and sprang back a twelfth of a
second later.
That was deliberate, and it has a purpose: some of these services size their
conversation list once, while the tab is still hidden, and get it wrong. A
real size change is what makes them measure again. What was wrong is when it
happened — after the tab was already on screen and settled, so it was 24
pixels of visible jump.
The same nudge is now spent as the tab appears, when its whole content is
changing anyway.
Microsoft Teams
Teams can be added from the + menu or Settings → Accounts. Work, school
and personal Microsoft accounts all sign in through the same page.
If your organisation's sign-in is federated or behind conditional access, it
may refuse an embedded browser outright. That is the identity provider's
policy and not something this app can work around — the same caveat Slack
carries. Verified as far as the sign-in page rendering correctly, which is the
thing most likely to fail; it has not been signed into and used in anger.
Unsigned build. Windows SmartScreen will warn on first run:
choose More info -> Run anyway.
Nothing else to install. The Signal tab drives a real
signal-cli process, and both it and the Java runtime it needs ship
inside the app -- so Signal works on a machine that has neither.
That is most of the download size.
Signal links this machine as a secondary device by QR. As with every
linked device, existing conversations do not arrive by linking: the
tab starts empty and fills as messages arrive, and contacts and groups
do sync. To bring older messages over, use Import history from a
phone in the Signal sidebar, which reads a backup made in Signal on
the phone.
Linux: install the .deb on Debian or Ubuntu -- it is the one
most people want, and unlike the AppImage it does not need libfuse2,
which Ubuntu has not shipped by default since 22.04. The rpm and
pacman packages are built on Ubuntu but target Fedora and Arch. The
AppImage suits anything else, given libfuse2.