Tangram, Flatpak and language settings
For my microblog and some other tabs I use to keep open I'm trying out Tangram - the "Browser for your pinned tabs".
I tried before and failed miserably, because #Tangram didn't work on my #Librem5 (#PureOS), but worked on my notebook running the same system.
This time I tried harder.
Failing
After installing the tangram #flatpak from #flathub and starting it on my #Librem5 I found a welcome screen asking me for the URL of my firsted pinned tab.
I entered the URL of my blog. The next page showed me an empty address field, a go button and that's it. See the screenshots appended...
Debugging
Debugging on the phones screen is a slow process if one is used to a keyboard, mouse and bigger screen. Since Tangram works on my notebook I used waypipe to log into my Librem5 via ssh using waypipe -n ssh -R /tmp/socket-way:/tmp/socket-l5 l5h
. This way I can use the ssh session to debug and get Tangrams window on my desktop - so I thought…
Starting Tangram from cli I got these messages:
purism@pureos:~$ flatpak run re.sonny.Tangram Gjs-Message: 07:45:13.738: JS LOG: env: flatpak Gjs-Message: 07:45:13.738: JS LOG: data_dir: /home/purism/.var/app/re.sonny.Tangram/data/Tangram Gjs-Message: 07:45:13.738: JS LOG: cache_dir: /home/purism/.var/app/re.sonny.Tangram/cache/Tangram Gjs-Message: 07:45:13.738: JS LOG: config_dir: /home/purism/.var/app/re.sonny.Tangram/config/Tangram Gjs-Message: 07:45:13.738: JS LOG: applications_dir: /home/purism/.local/share/applications Gjs-Message: 07:45:13.738: JS LOG: keyfile_settings_path: (re.sonny.Tangram:2): Gtk-WARNING **: 07:45:13.972: Locale not supported by C library. Using the fallback 'C' locale. flatpak-spawn: Invalid byte sequence in conversion input Try "flatpak-spawn --help" for more information.
The last part about Invalid byte sequence appeared when I tried to enter an URL. Looking for information about the messages I stumbled over this flatpak issue describing a problem with flatpaks dependencies when the locales of the system are set to different values for e.g. LANG
and LC_NUMERIC
like on my #Librem5.
When doing debugging, sharing error messages or screenshots with others I mostly need english language, but I wanted my local notations for date, numbers and time. So I'm using:
purism@pureos:~$ localectl System Locale: LANG=en_US.UTF-8 LC_NUMERIC=de_DE.UTF-8 LC_TIME=de_DE.UTF-8 LC_MONETARY=de_DE.UTF-8 LC_PAPER=de_DE.UTF-8 LC_MEASUREMENT=de_DE.UTF-8 VC Keymap: de X11 Layout: de,us X11 Variant: ,
As I understood this triggers the issue. To check whether this applies to my flatpak environment and the Tangram flatpak and its dependencies I did the following:
purism@pureos:~$ flatpak run --command=sh re.sonny.Tangram [ re.sonny.Tangram ~]$ locale locale: Cannot set LC_ALL to default locale: No such file or directory LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC=de_DE.UTF-8 LC_TIME=de_DE.UTF-8 LC_COLLATE="en_US.UTF-8" LC_MONETARY=de_DE.UTF-8 LC_MESSAGES="en_US.UTF-8" LC_PAPER=de_DE.UTF-8 LC_NAME=de_DE.UTF-8 LC_ADDRESS=de_DE.UTF-8 LC_TELEPHONE=de_DE.UTF-8 LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=de_DE.UTF-8 LC_ALL= [ re.sonny.Tangram ~]$
There again is an error saying that the locale cannot be found. Following the description in the flatpak issue I looked at the config
purism@pureos:~$ flatpak --user config languages: *unset* (default: en) extra-languages: *unset*
and only found a default for en
. I added the languages I generally want to use and might have set via environment and checked whether the setting had been saved:
purism@pureos:~$ flatpak --user config --set languages 'en;es;de' purism@pureos:~$ flatpak --user config languages: en;es;de (default: en) extra-languages: *unset*
This didn't change anything, yet and I ran an update that downloaded further components for my Locale packages:
purism@pureos:~$ flatpak update Looking for updates… ID Branch Op Remote Download 1. [✓] org.gnome.Platform.Locale 44 u flathub 241,8 kB / 340,5 MB 2. [✓] re.sonny.Tangram.Locale stable u flathub 8,4 kB / 66,1 kB Updates complete.
Repeating the check from above I found the error about the missing file or directory gone:
purism@pureos:~$ flatpak run --command=sh re.sonny.Tangram [ re.sonny.Tangram ~]$ locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC=de_DE.UTF-8 LC_TIME=de_DE.UTF-8 LC_COLLATE="en_US.UTF-8" LC_MONETARY=de_DE.UTF-8 LC_MESSAGES="en_US.UTF-8" LC_PAPER=de_DE.UTF-8 LC_NAME=de_DE.UTF-8 LC_ADDRESS=de_DE.UTF-8 LC_TELEPHONE=de_DE.UTF-8 LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=de_DE.UTF-8 LC_ALL= [ re.sonny.Tangram ~]$
Running Tangram again didn't show the error message anymore…
purism@pureos:~$ flatpak run re.sonny.Tangram Gjs-Message: 08:32:33.264: JS LOG: env: flatpak Gjs-Message: 08:32:33.265: JS LOG: data_dir: /home/purism/.var/app/re.sonny.Tangram/data/Tangram Gjs-Message: 08:32:33.265: JS LOG: cache_dir: /home/purism/.var/app/re.sonny.Tangram/cache/Tangram Gjs-Message: 08:32:33.265: JS LOG: config_dir: /home/purism/.var/app/re.sonny.Tangram/config/Tangram Gjs-Message: 08:32:33.265: JS LOG: applications_dir: /home/purism/.local/share/applications Gjs-Message: 08:32:33.265: JS LOG: keyfile_settings_path:
but when I entered the URL I got these messages in exchange:
(process:2): Gdk-WARNING **: 08:32:37.280: No such backend: * (process:2): Gtk-WARNING **: 08:32:37.281: Failed to open display
Poking a bit more around gave me the strong feeling that this might be an issue that Tangram or parts of it (webkitgtk?) do not find my display forwared through waypipe, so I tried on my Librem5s display and found Tangram working as expected.
What next
In Phoshs application menu Tangram does not show as mobile friendly which it should. I proposed a change of the desktop file to include the setting X-Purism-FormFactor=Workstation;Mobile;
.
If you do not want to wait for this to happen you can copy .local/share/flatpak/exports/share/applications/re.sonny.Tangram.desktop
to .local/share/applications/
in your home directory and then edit .local/share/applications/re.sonny.Tangram.desktop
to include that setting.
I couldn't resolve the issue about running Tangram over waypipe, so I opened an issue. I guess it's not important that this works, but the root reason for the problem might surface in a different situation as well, so maybe the developer will help me to look into it further.
One thing that I miss in Tangram is an integration for an external password store. I already asked for it and made some suggestions how it could be done.
If you like the project you can support the developer @sonny@floss.social through kofi, too.
@agx@librem.one @sonny@floss.social Thanks for that hint!
I guess I can delete at least two files in .local/share/applications now...
BTW, published using #Tangram :) …
@me @sonny Instead of hand editing desktop files (which will then get out of sync with upstream) you can flag any app as adaptive via
gsettings set sm.puri.phosh force-adaptive "['re.sonny.Tangram.desktop ']"