In my post about waking my #Librem5 by calling to receive matrix messages I forgot to mention one of the actors: #PhoshAntiSpam.
PhoshAntiSpam rejects or silences incoming calls depending on a text file containing phone numbers and/or your address book.
If you're using #Phosh on your mobile phone and you get calls you do not want, it'll be of great help. Shoutout to @kop316@fosstodon.org
Waking my #Librem5 from suspend when a new #matrix message triggers a notification.
Starring:
- matrix server: #conduit
- #UnifiedPush and notification server: #ntfy
- #sip client: #pjsua
- #fractal: matrix client
- #feedbackd: rhythm & sound
Note to myself: if you play with sound-themes on your #Librem5 (and probably any other #MobileLinux device) and you seem to be stuck with the default sound theme (freedesktop) then delete ~/.cache/event-sound-cache.tdb*
and restart #feedbackd.
Thanks to @agx@librem.one for helping me on matrix:community-librem5 and for the great software!
Receiving SMS plays a long tune on my #Librem5. For a few persons I'd like to have this tune played also if they send me a message using #matrix.
A problem is that the #fractal flatpak does not use #feedbackd yet to signal new messages and on #PureOS #Byzantium there's no way to define different sounds for different notification events.
So I started testing a small script to read notifications and trigger feedback for messages coming from an account containing some string:
#!/usr/bin/python3 import gi import time gi.require_version('Lfb', '0.0') from gi.repository import Lfb from gi.repository import GLib import dbus from dbus.mainloop.glib import DBusGMainLoop def print_notification(bus, message): keys = ["app_name", "replaces_id", "app_icon", "summary", "body", "actions", "hints", "expire_timeout"] args = message.get_args_list() if len(args) == 8: notification = dict([(keys[i], args[i]) for i in range(8)]) if "account_i_want_to_be_notified_for_like_it_would_be_sms" in notification["summary"]: print( notification["summary"], ': ', notification["body"] ) event.trigger_feedback() Lfb.init('org.sigxcpu.lfbexample') event = Lfb.Event.new('message-new-sms') loop = DBusGMainLoop(set_as_default=True) session_bus = dbus.SessionBus() session_bus.add_match_string("type='method_call',interface='org.freedesktop.Notifications',member='Notify',eavesdrop=true") session_bus.add_message_filter(print_notification) GLib.MainLoop().run()
Problem: using calendar
on my #Librem5 running #PureOS Byzantiu once in a while I can't add new appointments anymore and the calendar doesn't sync with my #nextcloud.
A simple goa-daemon --replace
solved the problem when it occured. I automated this reading the error shown in the journal when the problem starts.
I made a workaround to monitor and replace the goa-daemon:
Story is probably not new: using a #Librem5 (linux mobile) and everybody insists on using WhatsApp. I didn't care. But all activities the kids want to take part: #WhatsApp.
I could try to evangelize all these football trainers, parents representatives at schools, parents of friends to use something that I'm able to use on my linux phone, but I can't: lack of energy, lack of time, lack of alternatives with the same feature set and stability.
Got out an old Sony Z1 running #CarbonROM. Really old software. Got an so far unused SIM. I used Aurora Store from F-Droid to install WhatsApp from the Google Store on that Android. Registered to WhatsApp and it worked fine sending one test message that never arrived, because the other side didn't have my phone number in their contacts (I guess).
I installed #conduit as a #matrix server on my #yunohost and put mautrix-whatsapp #bridge on its own system using the latest docker image following the documentation to get a minimum configuration running.
Yeah, works. Coupled WhatsApp on the Android Z1 with the bridge and send two test messages resulting in This account can no longer use WhatsApp due to spam shown on the #Android device.
Is that most likely because of my 10+ years device + rooted + Magisk + fake google app store #Aurora or is it something others are experiencing when trying to use the bridge with of the shelf devices, too?
My plan has been to run an independent phone number for WhatsApp on a device that only has contacts for WhatsApp in its phone book and make it available to family members through matrix.
Our participation in society relies in many aspects on the goodwill of a few monopolistic companies that we depend on. They write the rules which device (Android or iOS) and which software (only their own doing whatever they program it to do) we're supposed to use. They train the algorithms that can cut you off our participation.
I wouldn't care the least. I'd even smile when reading this thinking that it's exactly what people supporting companies like facebook/whatsapp deserve. But if the participation of my kids in society is at stake (and not my own which I well can organize without any messenger) it makes me sad.
Hey @usia@fosstodon.org, thanks for the hint. I might try it again sometimes.
I've got one problem with thunderbird though that might be worse when running on a small computer like the #Librem5:
It eats a lot of resources when there's are a lot of messages and folders on the imap server.
I wrote about it here.
That looks really great! Can't wait see it filled with life.
Meanwhile I'll share my solution. I'm an #email user since more than 30 years and I'm running my own email server since nearly the start of it.
The lack of having a reliable email client for my #Librem5, my sons #pinephone and #MobileLinux in general bothered me a long time. #Geary didn't fit my needs and #Thunderbird which I use on my desktop is no option for mobile devices, yet.
I ended up using #tangram to access a #selfhosted #snappymail.
Yes!
On an unencrypted registration SSID authorized a client through a portal page.
Then showed the client via dpsk (dynamic pre-shared key) provisioner login data for the encrypted SSID to connect to a network with internet access.
When the client connects to the unencrypted SSID it gets redirected to a portal to enter an email address (and possibly other data). Packetfence sends an email to a pre-configured address (owned by the sponsor) containing a link to approve the request for access.
The client waits on a portal html page for the sponsor to click the link. After the sponsor clicks the link to approve the request the clients web page reloads and shows the name of the encrypted SSID to connect to and a password for the connection.
Next step to accomplish: configure OpenWRT (hostapd) and Packetfence to allow the usage of the PSK to connect to the encrypted SSID.
BTW: Testing this I'm using #deskhop to switch seamlessly between my notebook and my #Librem5 which I use as a test client for the wifi connection to the OpenWRT access point.
I'm not really a friend of being disturbed by notifications. My #Librem5 does only play sounds on SMS. Anyway...
What I've been thinking of especially since there is some work on the linux system of the #Pinephones Modem is if there wouldn't be a way to implement some service into the modem that does work even when the phone is in suspend mode.
This wouldn't solve the quest of having some service providint push notification, but it would solve the problem first that on the Librem5 and the Pinephone push notifications can't be received while the phone is suspended.
Another way to get this without having to hack on the modem would be to run a service that would actually voice call a phone when it's supposed to get a notification to wake it from suspend. This solution could be illegal in some jurisdication, because you signal something by a call that is not intended to be taken (and thereby charged).
After a wake-up from suspend by whatever dedicated method the linux system could do whatever would be good to get information about the event that initiated the wake-up call/[wake on modem data thingy].
From there whatever happens in linux could evolve. At first on the phone side I thought one would wait for the services defined by the user to connect to their servers and exchange informations. But this could also evolve into some protocol where the phone asks at the wake-up service for the reason for the wake-up and just make sure that it acts upon that information.
Maybe I misunderstood the whole situation and the whole problem, but it's nice that you started the discussion about this topic and I'd love to learn more about other ideas.
When doing the #deskhop to share keyboard/mouse between my #Librem5 and my notebook on the Librem5 still the on-screen keyboard (#osk) keeps popping up and takes away part of the small screen.
This can be disabled through gsettings but doing so each time when I place the phone beside my notebook is tiresome.
So I recovered some old proof of concept I had made, tested it and packaged it:
switch-keyboard installs an #udev rule that triggers when an external keyboard is connected and disables the osk. On disconnect it re-enables the osk and there is an entry for the menu included to just toggle the keyboard on and off just in case you're left without #osk after disconnecting an external keyboard.
I'll give away so much: #Librem5 and notebook…
- do not use extra software
- do not have a data connection
- it is a hardware solution
- you could place any device in place of my Linux devices - windows, mac, android
Let's #deskhop some more!
BTW: when the mouse/keyboard focus moves to the Librem5 which is connected to an usb-hub the screen activates nicely - no need to press a button.
#Librem5 and notebook sharing the same keyboard and mouse.
Moving the mouse over the edge of the screen into the direction of the other device brings the mouse focus to the other device - just like moving the mouse between displays in a dual screen setup.
The keyboard focus follows. It is like a kvm that is controlled by the mouse position.
Let's #deskhop!
Just to mention it:
Updated a Sony Z3c running #CarbonROM and upgraded a tablet running #LineageOS. Thanks for all the people who build these systems!
It took me about two hours to
- get the backup on the Sony working in twrp with a sdcard
- do full system backups
- update CarbonROM manually, because the reboot into recovery doesn't work
- getting a stable usb connection to the tablet by rotating ports, cables and orientations of the plugs
- install a newer version of recovery.img on the tablet
- needed to recap how this is done in Linux using heimdall
- install the newer LineageOS via
adb sideload
Looking back at the process I prefer much upgrading my #Librem5 and I need to get back to the idea of getting a #Librem11 to get rid of the dependency on the LineageOS tablet.
Sometimes listening isn't enough. Had to go into a video conference yesterday. Listening to music on my #Librem5 worked fine, but when I tried to get audio in the conference I remembered that my desktop is broken, because of this #Debian #Bookworm #Pipewire issue I wrote about.
I had to ask the other participants to wait, because I'd need to restart my desktop to get sound. Not funny if connected with people partly working on Apple devices.
#Workaround time: the major problem at the time being in my use case seems to be #Mozilla #Firefox and #Thunderbird leaving sockets to pipewire-#pulseaudio open.
I now run them using PULSE-SERVER=unix:/dev/null <program>
and it seems they really do not connect to pipewire-pulse anymore and therefor can't leave its sockets open.
No sound in #Mozilla apps is o.k. - I can always run #ungoogled-#chromium if I need a page deliver sound.
Uhm, I'm listening to #InternetRadio using my #Librem5 while on my #notebook at my desk. Why?
There's this bug letting pipewire-pulse fail, because too many connections are open.
I didn't find a way to have the #Shortwave #Flatpak play directly using pipewire.
Nice to have the same software stack on my mobile phone which now is connected to my usb speakers.
I'm migrating from a #LibremKey to a #Nitrokey 3c. One OTP made it to my new Nitrokey and the rest still sits on the LibremKey. I updated my OS and installed the new #nitropy utility which can't handle the LibremKey.
#NitrokeyAuthenticator is still installed on my #Librem5 and while it is easy to use that way it is even easier from my desktop. Waypipe didn't work, but ssh librem5 NitrokeyAuthenticator -platform vnc
opens an unprotected vnc port…
purism@pureos:~$ netstat -pnlt | grep Nitro (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp6 0 0 :::5900 :::* LISTEN 2019/NitrokeyAuthen
…which I can connect to to get an otp before migrating it to the new token.
And after disconnecting the ssh session the application keeps running and still can be connected to.
…after writing this I had to leave home, took my #Librem5 and the #Nitrokey 3 on my keychain not expecting that it would work using pass-manager-compact just like this, but it did.
No adapter needed anymore, direct connect to the Librem5s usb-c :).