Sxmo/Tips and Tricks: Difference between revisions
Line 14: | Line 14: | ||
Preferred solution: restart eg25-manager*, then modemmanager | Preferred solution: restart eg25-manager*, then modemmanager | ||
for instance running *as root* | |||
<code>rc-service eg25-manager restart</code> | |||
or | |||
<code>rc-service modemmanager stop; sxmo_modemmonitortoggle.sh</code> | |||
*(make sure to check it didn't fail via i.e. rc-status, if it did, restart it again, and only then modemmanager) | *(make sure to check it didn't fail via i.e. rc-status, if it did, restart it again, and only then modemmanager) | ||
Note that such reset/restart functionality is already in sxmo, however, they don't work as reliable as they should (2021-09-04) | Note that such reset/restart functionality is already in sxmo, however, they don't work as reliable as they should (2021-09-04) |
Revision as of 14:26, 5 October 2021
Here is a growing list of tips, tricks and configuration snippets for using Sxmo.
This pages is intended to focus mostly on "non-core" issues, such as running apps and everyday usability. The core configuration issues should end up in sxmo doc, as discussed on https://todo.sr.ht/~mil/sxmo-tickets/275
Calls, SMS, Modem
Sometimes Modem gets stuck
Sometimes the modem gets irresponsive*, stops receiving/sending calls, even when toggled. Rebooting sometimes doesn't change this situation as it seems the modem then needs a hard reset.
It seems it may happen when device gets out of battery, and/or when attempting to activate the modem when under 10% battery...
Preferred solution: restart eg25-manager*, then modemmanager
for instance running *as root*
rc-service eg25-manager restart
or
rc-service modemmanager stop; sxmo_modemmonitortoggle.sh
- (make sure to check it didn't fail via i.e. rc-status, if it did, restart it again, and only then modemmanager)
Note that such reset/restart functionality is already in sxmo, however, they don't work as reliable as they should (2021-09-04)
You can check dmesg for the modem registering once again if your attempt was successful. If it was not successful, check for a failure of either daemons and retry, or move on to the next method.
Reliable solution: reboot.
Sometimes SMS dont get sent/received
It may be a problem with MMS getting "stuck" in the pile, not being processed, and blocking further processing of SMS.
One solution involves mmsd-ng
Another solution is to manually use Modem Manager to delete the incriminating mms:
mmcli --modem 0 --messaging-list-sms
mmcli --modem 0 --sms 0
mmcli --modem 0 --messaging-delete-sms=##
mmcli --modem -r
(the identifying number of the modem may vary, being incremented upon toggles and sometimes reboots. you probably also can use --modem any
)
How to send an SMS via command line (or ssh)
cat mysupersmsfile | sxmo_modemsendsms.sh +33123123123 -
How to send USSD
try something like:
mmcli -m any --3gpp-ussd-initiate="*100#"
Retrieving signal strength information
See https://wiki.postmarketos.org/wiki/Modem#ModemManager
Create contacts.tsv for Sxmo from Android data
This assumes you have developer mode enabled on your phone and usb debugging using adb.
I messed around with different API calls, I store the contacts locally on the device, what worked for me to get the full set of phone numbers was:
adb shell content query --uri content://com.android.contacts/data --projection display_name:data1:data3:data4 | grep '[0-9]\{10\}' | grep -v gprofile > raw_contacts
`create_contact_tsv.py` depends on python package `phonenumbers`, please install it.
then run on the terminal
python3 create_contacts_tsv.py raw_contacts | sort | uniq > contacts.tsv
For completeness, entire content of the python file `create_contact_tsv.py`
import csv, sys, phonenumbers as p;
with open(sys.argv[1], 'r') as file:
reader = csv.reader(file)
for row in reader:
name = row[0][str(row[0]).find("=") + 1:]
for match in p.PhoneNumberMatcher(str(row), None):
number = p.format_number(match.number, p.PhoneNumberFormat.E164)
print(number + "\t" + name)
General configuration
How to easily change the size of the text, system-wide?
Change the value in: /usr/share/sxmo/appcfg/xresources_xft.xr (try 160!)
Xft.dpi: 192
(chaning it in ~/.Xresources
works as well)
if you remove the dpi line there you can set dpi on the fly via
xrandr --dpi x
How to activate data
Something like this:
nmcli c add con-name "modem" type gsm ifname "wwan0qmi0" apn "internet.t-d1.de"
.
Please replace `wwan0qmi0` by your device, and `internet.t-d1.de` by ur apn
source: https://gist.github.com/Minecrell/4cc2bfb9fcae18e294386b0a213907d1
How to launch programms on startup?
The easy way is to edit the following file (you can also edit it via the config > edit configuration entry):
vi .config/sxmo/xinit
and add your programms somewhere. Warning: they have to execute quickly and/or not stay in foreground, or the window manager won't start (don't forget to add "&" at the end)
mount /tmp/ in RAM, to save write cycles on storage device
add the following in /etc/fstab
tmpfs /tmp tmpfs rw,nodev 0 0
Help with adding cronjobs
You can edit your crontab via
crontab -e
This website https://crontab.guru/ has proven useful in making cronjobs.
If using mnc, make sure that commands run via sxmo_rtcwake.sh.
Example:
55-59/2 7 * * 1-5 sxmo_rtcwake.sh /home/user/script
How to customize the colours/fonts of the interface?
xorg/dwm
Get example in the alpine blooms theme by Tetrakist, as entries to add in /home/user/.Xresources
wayland/sway
- .config/sxmo/sway
- bemenu parameters through BEMENU_OPTS env variable. for instance in .profile:
export BEMENU_OPTS="--fn 'FiraMono Nerd Font 13' --tf '$MYCOLOR' --tb '#00000090' --nb '#00000090' --nf '$MYCOLOR' --hb '$MYCOLOR' --hf '#000000' --sb '$MYCOLOR' --sf '$MYCOLOR' --scb '#000000' --scf '$MYCOLOR' "
- mako config in .config/mako/config
Some notifications stay stuck on the screen!
pkill dunst
- launch nmtui (a rotated screen is usually better)
- add a new connection, type "ethernet" for interface "usb0", in ipv4 settings chose "shared".
- you may want to uncheck "automatically connect", so you can manually activate it later, when you need it, in the "networks" dmenu.
- activate that connection.
voilà!
Applications specific
Pure-maps sort of works (using OpenTopo or Sputnik tiles), as well as Marble (QT/KDE, heavy...). Unsure yet how to make the GPS work for both of these, but it has reported being feasible...
Apparently a good start to enable GPS should be:
sudo /etc/gpsd/device-hook "" ACTIVATE
See https://wiki.postmarketos.org/wiki/Applications_by_category#Geography for geography applications.
QT app (vlc-qt, etc.) doesnt fit the screen!
try adding the following in your .config/sxmo/xinit
export QT_AUTO_SCREEN_SCALE_FACTOR=1
export QT_SCALE_FACTOR=0.7
(change the factor until it suits your need)
Extra features, advanced tweaking
A Wayland version of Sxmo, really??
Many dreamt of it, it seems to be in the pipes, under heavy/advanced development!
To try it out **at your own risk**, according to some well-informed participants in the project:
git clone https://git.sr.ht/~mil/sxmo-build
cd sxmo-build
./sxmo_build_all.sh --wayland
In case of a problem, try to completly remove your build dir and run the build script again (sxmo_build_all.sh).