#MeshCore deserves a native #Linux client IMO.
@sesivany this looks great! Is it a mockup?
@jorgeluis No, it's a real app, an early implementation.
@sesivany Cool! I would like to try it out! 🤩
@jorgeluis Here you go: https://cloud.eischmann.cz/s/N5aEyk245DezSqm
Note that it's really early alpha. Lots of more advanced features missing, but the basics are there.
meshy.flatpak

cloud.eischmann.cz - Private cloud

cloud.eischmann.cz
@sesivany thank you! happy to play with it!

@sesivany thank you for starting this. and as i am trying this out... do you know what i have to "turn on" somehow to make bluetooth ble work? On the Desktop I only use usb companions for that reason.

INFO:meshy.ble:Initiating connection to /org/bluez/hci0/dev_FA_5F_1D_D8_3F_6E
INFO:meshy.ble:Connect call succeeded for /org/bluez/hci0/dev_FA_5F_1D_D8_3F_6E
DEBUG:meshy.ble:Checking ServicesResolved (attempt 1)
DEBUG:meshy.ble:Checking ServicesResolved (attempt 2)

@jorgeluis

@stereo @jorgeluis at the moment it sort of expects the companion to be already paired. And the most reliable pairing on Linux is getting the device's MAC address, going to bluetoothctl and in the interactive mode executing: pair [device MAC address]. Then you will be prompted to type the pairing PIN. Pairing via e.g. GNOME Settings doesn't work because it pairs, but without using the PIN verification, so the companion looks connected, but refuses to communicate.

It's on my todo list to support pairing with a new device, I'll have to explore if it's possible to iniciate the pairing and enforcing the PIN verification from a client using Bluez Dbus.

@sesivany @jorgeluis SUCCESS, thank you. pairing with pin and not over gnome settings! finally.
will send "using Meshy" into Pub ;)

#meshcore

@stereo @jorgeluis note that it's currently in a early alpha stage. Lots of functionality missing. (I'm also planning to support USB connections, too). But if you have any feedback regarding bigger design choices such as the layout, or "why is this feature placed here, I think should be elsewhere", I'd appreciate it.

@sesivany @jorgeluis

i guess next in the backlog is "contact search and sort"?

and as a matrix admin a timeless classic "unread state" ;)

@stereo @jorgeluis Also Add/remove contacts/chats, support for repeaters, chat rooms. A lot has to be implemented. One at a time. :)

@sesivany @jorgeluis

makes some beers at next fosdem for you ;)

@sesivany @jorgeluis
already "done", thank you.

#meshcore #gnome

@stereo @jorgeluis I pushed another update to the repo today. I started using the meshcoredecoder library which gives me much more possibilities, so there is already info about paths of messages in channels, number of heard repeats for your messages, discovery of nearby nodes etc.
@sesivany Oh, I thought Flutter is there to make apps native on any platform, and both MeshCore and meshcore-open are Flutter apps. What's the benefit of your app compared to the others?
@florianauer I'm pretty sure you can write a Flutter app that nicely works on Linux, but I don't think it's the case for MeshCore and meshcore-open. It seems their goal is to make a multiplatform app that also runs on Linux. My focus is the Linux experience, to use features the platform offers to the fullest. For example I use Bluez Dbus for Bluetooth which allows the app to run in a sandbox and use the Flatpak format which makes it easy to install and run everywhere.

@sesivany

Thanks for sharing, it's really nice !

Could make it work on my laptop.

Sadly seems a little early to test it on my postmarketos phone (it fails with `Exec format error` from ldconfig, so I guess it might not have been build for arm targets). It should work great though as the UI is adaptive.

Great work, I'll keep updated !

@fdlamotte It's made with Linux phones in mind (I've got one too!), but at the moment I only build it on x86_64 and the flatpak bundle is also only for it. But now the code is out, so you can try building it yourself: https://codeberg.org/sesivany/meshy
I don't think there is anything that can make problems on ARM64. If you try it and hit any issues, let me know.
meshy

Meshy - a GTK4/libadwaita client for MeshCore. The goal is to provide the best Linux experience.

Codeberg.org

Cool @sesivany works great on my phone !

#postmarketos and #meshcore rox ;)

@sesivany

The ui is sleek and fast ...

It reminds me of gtk-meshtastic-client by @kop316 which got me into playing with meshtastic in the first place

@fdlamotte Perfect! It was one of my motivations because other clients sucked on my OnePlus 6 with PostmarketOS.
If you have any problems with the UI on touchscreen, let me know: https://codeberg.org/sesivany/meshy/issues
meshy

Meshy - a GTK4/libadwaita client for MeshCore. The goal is to provide the best Linux experience.

Codeberg.org

@fdlamotte

Which device is it?

@lupo pixel3a
@fdlamotte @lupo How is sxmo. In all my experimentation with postmarketos I havent tried it out
@flysqu let's say I've been using it for so long that any other phone interface feels awkward to me ;)

@fdlamotte

There are some "Feature Broken" entries stated in the postmarketOS wiki page for the Pixel 3a. How does yours work in practice?

@lupo in practice, most important functions calls, network and touchscreen work well enough.
camera support is not great but you can get something decent from the front one
It took some time but gps is working
I'd love to have usb otg

@fdlamotte

What's your take on #meshcore vs. #meshtastic ? From what I've seen, all the (at least #android ) clients are closed source.

@sesivany

@tomcat @fdlamotte I've always preferred copyleft licenses, so I definitely prefer licensing of MT. But here in Czechia it just doesn't work for use cases I'm interested in. On MC I can text with friends and family across the entire country, hundreds of km, no way to do it with MT.
The official client written in Flutter that is used for mobile platforms and the web is closed, but all other clients are open. For Android you can e.g. use meshcore-open. In many ways it's a better client than the official one. I took a lot of technical inspiration from it.

@sesivany How do you handle channel messages and specifically figuring out the sender for a channel message?

From what I can find out it's simply convention to put it into the text as a prefix and it's easy to impersonate others with this.

Any insights or learnings from building this?

@djh I handle it like other clients do: it's basically "SenderName: MessageText" and I separate the two. There isn't any protection from impersonation in public channels. It's all encrypted by a shared key, names are just prefixes.

I heard they were brewing something on the firmware level regarding this. There are a lot of things in MC that basically rely on people behaving well.

@sesivany gotcha that's aligned with what I've been seeing; thank you for confirming 🙌
@sesivany about - details - website leads to @meshy 👋

@stereo The project now resides here: https://codeberg.org/sesivany/meshy

Updated code and a new .flatpak bundle. Still a lot of features missing, but it's already quite usable.

meshy

Meshy - a GTK4/libadwaita client for MeshCore. The goal is to provide the best Linux experience.

Codeberg.org
@sesivany which hardware you are using for this? @stereo
@Lioh @stereo I use Heltec v4 and SenseCAP T1000e as companions for testing. Heltec v4 works flawlessly, T1000e is really PITA over BT. I'm coming to a conclusion that the problem is not how I approach the BT pairing/connection, but in the device. It gets into a state in which it doesn't work with Android and the official client either.
@sesivany I have no experience with this technology, yet. I have ordered an Seeed Studio XIAO ESP32 S3 mit Wio-SX1262 Lora Meshtastic Kit to begin with. I will report back how it works with your software @stereo