Signald: Unofficial daemon for interacting with Signal
signald.org
signald.org
2) You can't use either of these names as Signal owns a trademark on their name (and even cares, as they should, particularly for a security product) and this looks like an official product in a way you can't disclaim away: come up with your own name for your daemon and then "support" signal or be "for" signal.
> Signal’s Rights. We own all copyrights, trademarks, domains, logos, trade dress, trade secrets, patents, and other intellectual property rights associated with our Services. You may not use our copyrights, trademarks, domains, logos, trade dress, patents, and other intellectual property rights unless you have our written permission. To report copyright, trademark, or other intellectual property infringement, please contact abuse@signal.org.
Even with a granted trademark, it would be up to the company to enforce it. Simply stating “you can’t use our name” is much different from perusing open source projects in court or sending them cease and desist letters.
Say "for Signal" or "supports Signal" like the other person said, don't pretend to be part of the Signal org.
Sorry, are you saying it is immoral to name a daemon that interacts with Signal 'signald'?
The ToS for the signal service API applies to end users who connect to that API. The ToS of the API does not apply to software - the AGPL license applies to that, and the AGPL permits anyone to make forks (including ones that are configured to talk to the official servers).
EDIT: Disregard the following paragraph. See below.
There is a little bit of an issue, though, because contributions to Signal's upstream are not accepted unless the contributors sign the CLA, which allows Signal to relicense future versions more restrictively as they wish. They could relicense and then introduce intentional incompatibilities in the protocol if they really wanted to harm forks, but that would make them non-free, non-open-source software.
EDIT: Turns out I'm wrong in the above - the Signal CLA, to their immense credit, only permits relicensing under OSI-approved free software licenses. Fork away!
Moral of the story: don't listen to bluster, stick to what the license says (and the AGPL says you can fork), and never sign a CLA. You don't have to sign a CLA to contribute to the Linux kernel, and you shouldn't ever sign one to contribute to any other open source project.
I also wonder if it's even possible to enforce an "official clients only" restriction in the ToS for the service API. This would be a little bit like Google claiming that you aren't authorized to use Firefox to access google.com (i.e. insanity). Technologically if you tracked upstream closely enough, they probably wouldn't even be able to tell if a given 3p client user is running your fork or the official one.
(This whole comment is a paraphrase of a blog post[1] I published just a few hours ago that tries to dispel this whole "but you can't fork Signal and use the official servers" false meme.)
If they ban end-user accounts that use your client software to connect to their API, that's obviously a bug in your software as it diverges from the behavior of the official client. This is why anyone making an alternative client should be doing so with a fork of upstream that is regularly updated. You'd need to keep it in sync pretty closely. Most official Signal clients autoupdate (a huge security vulnerability in and of itself[1], as SolarWinds demonstrated very nicely for everyone), but not all of them (you can't override the user's systemwide app autoupdate setting on iOS), so they have to maintain BC with out of date versions for at least a few weeks/months.
[1]: https://github.com/signalapp/Signal-Desktop/issues/4578
You're accusing him of lying.
Moxie certainly know that, but he can't actually prevent third-party clients. Not even Microsoft, ICQ and AOL succeeded on this when we were using Pidgin (and Licq and Gaim before that) to talk in MSN Messenger, ICQ and AIM.
As much as I disagree with the underlying values, I haven't carved out 40 million monthly active users from a crowded space, so maybe it really is the best chance.
If I think about something like Slack or Discord, though, they surface area of those things are just huge. So many protocol details to work out, and so many features to duplicate for a third-party client. And they're such moving targets, too, with features added at a regular cadence (unlike AIM, ICQ, etc. back then, though even then Gaim/Pidgin didn't have voice & video support for a long time).
I also think the third-party client drive for AIM and ICQ was driven by people who wanted to use it on Linux but had no way to do so at all. The clients were Windows- (and Mac-?) only, WINE was a pain to use back then, and there were no web clients initially. But with Slack and Discord the impetus just isn't there. At least with Slack (I'm not super familiar with Discord), Windows, Mac, Linux, Android, and iOS are all officially supported, and there's always the web client if you don't like the Electron-based desktop clients.
On top of that, Slack's API is rich enough to enable things like a Matrix bridge, so, again, probably just not enough interest to do something truly standalone.
The only thing I'm somewhat surprised about is that no one has tried to build a third-party standalone WhatsApp client that doesn't require being tethered to the mobile client. But perhaps Facebook/WhatsApp has done a better job at obfuscating and hiding their protocol than AOL and Mirabilis did long ago. Or maybe the interest just isn't strong enough to warrant the effort.
I think the latter hides a lot of complexity behind a simple UI, most notably all the E2E encryption logic and the purely client-side message storage, with an optional backup system and even its own built-in remote access server (for the web client).
Compared to that, Slack is mostly a HTML renderer as far as I can tell, with most of the complexity server-side (e.g. complex notification rules, multi-client support etc.)
My guess is that WhatsApp (and Signal, Matrix etc.) client logic is much more complex, since so many things that are fairly easy to do server-side need to be reliably performed in the client instead once E2E encryption is introduced.
https://github.com/tulir/mautrix-whatsapp
For Signal it's not the case. The client is slow, has many quirks and lack features.
If Moxie allowed third-party clients, it would be a win-win situation. Over time users will get a usable client, and the core Signal team would be able to concentrate on their Crypto business.
I'm not saying that's the main reason for them to exert such a tight control on the Signal ecosystem but it shows how damaging that move has been: now you can't really exclude an ulterior motive for them refusing to integrate with third parties. It damaged the trust I had in the project.
We also need a very easy export/import process for other clients. That's a huuuge untapped feature. It means the data stays the same but you just slap a new UI on top of it. "Apps" then only compete on UI which means the diversity and sophistication of those experiences will grow rapidly.
Combine that with a plug and play self hosting solution eventually and we're well on the road to secure personal clouds.
I use it myself and it has been working perfectly for me since I switched to it.
> I think we are really close to regular people using matrix.
I personally haven't met any "real" people who are even aware of Matrix. When I broached it with a non-IT friend, they were actively uninterested in unifying messaging applications as they had "facebook friends" and "whatsapp friends" and interacted with them differently.
> export/import process for other clients
conversation history, you mean? Is there other data a messaging app captures that you want access to?
[0]: https://matrix.org/bridges/ [1]: https://github.com/tulir/mautrix-signal
> I personally haven't met any "real" people who are even aware of Matrix. When I broached it with a non-IT friend, they were actively uninterested in unifying messaging applications as they had "facebook friends" and "whatsapp friends" and interacted with them differently.
I tried to sell it too with the "unify your messaging apps", but this is a wrong selling point to new users. First they need to start using matrix as their messaging app, realize that it works well, including VoIP and video calls. Once trust is there, only then start thinking about using bridges. Because there will be rough edges (e.g. federated voice/video calls do not work).
Because of the way bridges integrate to third-parties, they are not bug-free. Reliability is just not great yet. Maybe except a hosted service, Beeper[1], which is run by people who know most about these bridges and can provide support.
To sum up, I am using Matrix for my family network, and some bridges personally; I am not yet planning to spread the use of bridges beyond myself. Besides the encryption setup, I like the UI a lot. I also use gomuks[2] from time to time, which is a terminal matrix application. I have not stumped into server-side problems.
I am donating monthly to Tulir[3], the most prolific Matrix bridge developer (and, to my knowledge, co-founder of beeper). Because I started using Matrix thanks to his bridges.
Oh, and I love the Matrix sms bridge[4]. I set it up to see if it works, and I am not going back. It's great.
It's not useless. What if there is a server vulnerability and someone (or something) hacks your server? Now all your logs have been exposed because they were stored plaintext.
> Oh, and I love the Matrix sms bridge
Agreed - I totally buy Beeper's testimonials, as I 100% am more willing to have an actual conversation with a text contact if I'm able to type it out on the device of my choosing. Ever since by Blackberry kicked the bucket, I've hated typing on my phone. That said, I've meant to fork the Android app to try and put a bit more feedback in it - if it doesn't work 100% right off the bat it gives roughly no indication of why. Could use a little love, as it's one of the killer bridges!
I even went looking a while back and all I found was franz which felt clunky and unusable.
Even though I want to get away from the fb ecosystem, at the end of the day, normies gonna norm.
I wish this were true. We're not even that close to getting regular people to use Signal, at least not in meaningful numbers. Perhaps your friends family are more tech-savy and privacy-focused than mine, but it's like pulling teeth to get folks away from iMessage or Whatsapp.
Simple: there's a messenger everyone is on. WhatsApp. There is no need to install anything else.
One of my friends who studied something IT related is adamant about having only one messenger installed. It's too complicated having 2-3 and not all contacts use either of the alternatives to WhatsApp.
In my experience, neglecting the onboarding experience is a cardinal sin for any project challenging some incumbent.
I‘ve been struggling with understanding what Element wants from me when signing up or signing in on a new device. Unfortunately I can‘t, in good conscience, recommend this to less technically knowledgeable friends and family.
...Except you can? federation_domain_whitelist in synapse settings. Seems to have been working since 2018. I'm using it. Enabling it can sometimes cause significant delays when communicating with users on homeservers you're not federating with, though - I have some vague memory of seeing an open issue around improving relaying in these scenarios.
I do agree that there's a long way to go before I can start recommending anything Matrix-based for friends and family. Things are just too slow, broken and inconsistent on both server- and client sides. There has been steady progress on all fronts, though. Maybe in a year or two.
Having said that, is the UI/UX apart from the above really terrible? When using as a simple messenger app, the experience for me is almost the same as WhatsApp (which almost completely replaced sms at least in the Netherlands). The biggest issue I have is that when you open the emoji selection screen when typing a message, you have to close this and reopen the keyboard to continue typing, which is a bit silly, but not a deal breaker.
That's exactly what I like about Matrix. I can verify other devices simply by comparing emojis - simple, easy, great. That it should work reliably is a completely different matter, but in itself it's great.
Surely there's a version header in the protocol that could be used to reject outdated clients outright?
That wouldn't be much of an issue if the official clients worked better and had the features I expect from a modern IM client. For instance I never really considered using a third party Telegram client because the official one works really well in my experience.
But apparently proper syncing will have to wait while they implement a cryptocurrency payment system. Priorities.
Look, I'm not saying you have to agree with the reasoning or that you would've made the same trade-off in their stead, but at least personally I always prefer to understand how they came to a decision and recognise that, even when I don't agree and am affected by the consequences of it, they're not doing it to spite me.
Maybe I'm wrong but my theory is that it started with "end-to-end encryption means that you don't have to trust us" and it seems that many among the Signal team and fans took that to mean "we can behave as shadily as we want and not communicate well since it doesn't really matter anyway".
But there's more to trust than end-to-end encryption. I also need to trust that the project will keep improving and that I'll still want to use it three years from now. The fact that Signal is not federated and they keep such a strong hold on the project makes it even worse, I really have all my eggs in moxie's basket.
I used to actively tell people to use Signal, now I say nothing and these days I find myself using Telegram more and more even though protocol-wise Signal is clearly the superior option.
> So long as federation means stasis while centralization means movement, federated protocols are going to have trouble existing in a software climate that demands movement as it does today.
While my initial reaction was "omg, I hate it", I don't 100% disagree. I think one of the biggest drivers for adoption in Matrix world would be a streamlined on-boarding to a central server (matrix.org?), so that it "just works" by default. Like the front page of Reddit, get people in the ecosystem, then they can discover the subreddits and engage more deeply with the platform.
As a comparison, email is technically decentralised, but if I were to move off of Gmail, 80% of my emails would still be on their servers because that's what their recipients use.
(This is of course somewhat of an exaggeration - it's still better than if email were a proprietary Google thing. But it's less of a utopia than my decentralisation-minded self had in mind in the past.)
Hopefully that's gotten better nowadays, with a more solid versioning scheme. Judging from the site and documentation, signald more mature, which is a good sign.
I've never had an issue with the daemon itself, it's been working fine for years now. All in all, an excellent and extremely useful project.
Honestly the multi-device support is a big barrier to my adoption of Signal. Currently I use Telegram across several devices, and the messages just "sync" near instantly. With Signal you see them appear one-by-one, which is painful in a large + busy group chat. Obviously Signal has technical issues to overcome that Telegram does not, but the UX issue is still there
How much delay are we talking about? In my experience we're talking maybe seconds, definitely less than 5s (depends on your connection of course). And since you only use one client at a time in theory (?), this shouldn't matter.
Or are you talking about the initial sync when you start your Signal client after a long period offline? This has improved recently for Signal-Desktop.
The official implementation[1] hasn't been updated for around 1,5 years.
[0]: https://git.callpipe.com/finn/signald/-/blob/master/build.gr...
signald doesn't really "trigger actions" or anything, but it would be pretty easy to write something that does using it.
I'd like to improve the website to better showcase the clients
I looked at the install instructions ("from source") and i while there were instructions, there was no download link for the tarball and no link to the git repository.
Turns out you have to click on the "gitlab" widget that shows the number of stars on the start page to get to the gitlab repository at https://gitlab.com/signald/signald
signaldctl --premined --pump-dump MOB --add-device
Of course you can't really use "signal" because that's the name of the official product, but it still feels like there are better alternatives than the handful that was chosen
(Apologies for pulling a HN classic and being the only comment on the thread complaining about something dumb. At least it wasn't a comment on the web page type face!)
edit: the name for signaldctl. I'm not looking to rename signald at this time
So signald and signal-cli in this case.
I'm pretty sure that's the way for a better desktop experience with Signal, but I still need to test a few clients. Even before that, with signaldctl and the Python libs alone I already have a way of sending notifications, etc.
This being said, looking one level up the "bigger picture" chain "signalprotocold" comes to mind - but then "signalprotocoldctl" would give me a small headache :), and I don't know a good solution there. "spdctl" sounds it would be for a DIMM EEPROM configuration (???), "sigprotoctl" sounds nice if somewhat random, and... ugh, naming things is hard.
It also happens that most tlds with beacond are available.
Cursory search on GitHub says you would be pretty alone in your use of beancond as well.
Beacon is pretty great =)
By the way, is your issue with the t? I think c and l should actually not be too bad to hit, even on qwerty. They're not in the middle two columns, and they don't use your pinkies.
With Workman, c is moved over one to the right, t is where f is in qwerty, and l is where m is in qwerty. So, t doesn't need me to stretch, and all of them become keys pressed with my index fingers, but since you may not like where qwerty c is already, I wonder if this would even be an improvement to you. It does put c and t much closer together, but both are still pressed with the left hand, and then l with the right. Not sure if hand alternation is part of what you had in mind.