Commit Graph

80 Commits

Author SHA1 Message Date
ArenM
7ea019e402 Manual fixups for nerd fonts 3.0
* Make icon_prn a nerd-font icons. It was using a font awesome code
  point, which we don't install with sxmo.
* Fix phone locked and laptop icons that weren't automatically updated
* Fix brightness icon in legacy nerd-fonts range and move it to
  sxmo_hook_icons from sxmo_brightness
* Use standard Unicode arrows instead of nerd-fonts ones
* Use icon variables for arrows in sxmo_wmmenu.sh
* Add variable for audio icon & use in sxmo_audio.sh
* Remove no stray break space from sxmo_contactmenu
* Remove up arrow character from reddit script
* use only icon variables in modemtext
* Update icons breakpoints

Signed-off-by: Willow Barraco <contact@willowbarraco.fr>
2023-05-29 19:58:29 +02:00
Anjandev Momi
66e20f57af fix editorconfig: remove trailing space and use tabs 2023-05-14 00:19:17 -07:00
ArenM
b2c3d97760 Don't kill tailtextlog when changing recipients
The lsof / grep call is broken and causes the script to crash when
adding or removing a recipient.

Lsof also doesn't have a stable output format, and the format is
different between the busybox and gnu versions, so we shouldn't be
trying to parse the output of it.

Signed-off-by: Peter John Hartman <peterjohnhartman@gmail.com>
2023-05-08 04:52:56 -05:00
Peter John Hartman
9b9a31e542 SXMO_DEFAULT_DRAFT change
I wanted to have no text at all when I start a text message, but setting
SXMO_DEFAULT_DRAFT="" resulted in the code thinking it was not set and
reverting back to the "Enter new text message here."  This change fixes
that.

Signed-off-by: Willow Barraco <contact@willowbarraco.fr>
2023-01-25 09:58:40 +01:00
Stacy Harper
375bf69803 allow to open named numbers with spaces
This strip the "logfile" suffix cause it is a pain to strip and pretty
much useless for this menu anyway
2023-01-22 20:36:15 +01:00
noneofyourbusiness
5d9bc00912 replace 'pn' with 'pnc'
Signed-off-by: noneofyourbusiness <noneofyourbusiness@kolabnow.ch>
Signed-off-by: Anjandev Momi <anjan@momi.ca>
2023-01-13 20:36:58 -08:00
Stacy Harper
ac939e4ac7 fix some shellcheck issues 2022-09-12 13:50:15 +02:00
Emmanuel LE TRONG
b20dd10558 Customize default text draft
Allow the user to change the default content of a text draft.

Signed-off-by: Emmanuel LE TRONG <emmanuel.le-trong@cnrs-orleans.fr>
Signed-off-by: Stacy Harper <contact@stacyharper.net>
2022-09-12 13:13:26 +02:00
Stacy Harper
0fc728fe55 Allow multiwords EDITOR 2022-07-01 11:15:51 +02:00
Jami Kettunen
4f6862db04 Replace attachment icon emoji with a glyph from Nerd Fonts
This looks much cleaner with the rest of the UI already using glyphs
anyway.

Additionally split the long ATTACHMENTS assignment into multiple lines,
fix printf formatting usage and basename for filenames with spaces.

Signed-off-by: Jami Kettunen <jami.kettunen@protonmail.com>
Signed-off-by: Peter John Hartman <peterjohnhartman@gmail.com>
2022-05-11 10:35:09 -05:00
Jami Kettunen
a813bafc01 Source scripts directly instead of using "which"
Changes since v1:
- source directly instead of using "command -v" as much as possible,
  I couldn't get the sources in deviceprofile cases to return a proper
  exit code so they still use "command -v".
- avoid leaving deviceprofile var set in interactive shells from
  sxmo_init.sh
- small fixup to warning message if deviceprofile not found

This allows Sxmo to drop an external dependency on which.

Anjan's note: This is also faster due to being a shell built-in

Signed-off-by: Jami Kettunen <jami.kettunen@protonmail.com>
Signed-off-by: Anjandev Momi <anjan@momi.ca>
2022-04-18 02:43:51 -04:00
Stacy Harper
dca6f42a23 Remove useless DEBUG variable 2022-04-13 15:30:26 +02:00
Stacy Harper
73a2813d76 Rework calls
We need the recent -S (status) command to probe the real state of
callaudiod.

- Lot of cleanup and refactorisation

Most of the code has been moved to a better place. The call audio
setups, the pickup action and the incall menu now are three different
things we can call individually.

- Handle failures individually

Every important task as the mmcli command or volume settings should warn
a urgent message to the user if they failed.

If we failed to setup audio, or to pickup the call then we dont even try
to open the incall menu.

- Made the incall_menu closeable and re-opennable

You can close the incoming call menu and the incall menu and re-open
them from any menu.

To make this possible I moved some of the responsibilities to the
modem monitor that trigger action after modem manager signals. We then
check at this point if it was the last call and do some cleanup if so.

- Initial work for concurrent calls

Added some code to the hooks and the modem checkfinished and
checkincoming calls to handle those cased. If you are in a call and someone
else try to call you, we refresh the incall menu and new entries will allow
you to switch calls.

- The incall menu isnt sticked to one call

This menu itself doesnt need a CALLID argument. It allow us to
manage every active call. We should be able to hold and hangup and
switch calls as we want.
2022-03-25 21:29:30 +01:00
Anjandev Momi
1123c0f072 Change license to AGPL-3.0-only 2022-03-15 08:00:00 -04:00
Peter John Hartman
6aaed6421a fixup to tailtextlog patch
I missed one in this push: 22cd405b68
2022-02-18 07:08:52 -06:00
Bruno Dupuis
22cd405b68 Implement sxmo_hook_tailtext.log.
This will allow for cool stuff like:
https://lists.sr.ht/~mil/sxmo-devel/patches/29543

Signed-off-by: Peter John Hartman <peterjohnhartman@gmail.com>
2022-02-18 06:58:52 -06:00
Zach DeCook
ffcfa6f6a4 icons: Change into a hook
Fixes the icons hook to be where the migration script moved it.

Signed-off-by: Stacy Harper <contact@stacyharper.net>
2022-02-14 18:18:55 +01:00
Anjandev Momi
cfdb60fc10 sxmo_modemtext.sh: use sxmo_notify_user.sh instead of notify-send
Signed-off-by: Stacy Harper <contact@stacyharper.net>
2022-02-08 18:02:17 +01:00
Peter John Hartman
662d5eada3 sxmo_log: a few more
Signed-off-by: Stacy Harper <contact@stacyharper.net>
2022-01-25 13:17:13 +01:00
Stacy Harper
4f9e89fa5e Cleanup profile.d/sxmo_init.sh
- Should only export SXMO_ prefixed variable to avoid noise
- Should not export env variable when sxmo is not running
2022-01-24 20:38:54 +01:00
Stacy Harper
238aa38efc Refact: commons loading
- Move sxmo icons in sxmo_icons.sh

This script should be loaded when icons are needed

- Move init env variable setups in a /etc/profile.d/sxmo_init.sh

This script is loaded by tinydm and for ssh/tty logins.

The logged in user can re-trigger check_sxmo_wm if they toggle wm.

- sxmo_commons.sh now only load aliases. It can be loaded by scripts to
ensure busybox compatibility

- moved some parts of ~/.config/sxmo/xinit to ~/.config/sxmo/profile

This file also is loaded just before starting sway. It goal is to setup
env variables dedicated to sxmo

~/.config/sxmo/xinit only goal is now to trigger some dwm dedicated
things (as ~/.config/sxmo/sway can start exec commands to)

To recap, loads orders are :

tinydm:
	/etc/profile.d/* # do not set SXMO_WM
	~/.profile

	sxmo_winit.sh:
		~/.config/sxmo/profile

	sxmo_xinit.sh:
		~/.config/sxmo/profile
		~/.config/sxmo/xinit # to start sxmo_hooks.sh

ssh/tty:
	/etc/profile.d/* # will set SXMO_WM
	~/.profile

- unify sxmo_winit.sh and sxmo_init.sh

Signed-off-by: Stacy Harper <contact@stacyharper.net>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2022-01-15 11:31:00 +01:00
Stacy Harper
e8d0d71320 Stderr conversation loop keyboard stderr outside the user terminal 2021-12-24 14:18:47 +01:00
Stacy Harper
9fd21bab38 Use a DEBUGLOG var to unify this stderr log file path 2021-12-24 14:18:46 +01:00
Zach DeCook
6274f1f222 shebangs: change to /bin/sh
Any sane linux system will have a posix compliant shell at /bin/sh
This change will allow us to better detect running scripts using pgrep.

Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-12-20 14:29:25 +01:00
Stacy Harper
11bd42c0ae Order contact attachments by date by default
This make it easy to open the last receive mms attachment by example.
2021-12-10 17:47:52 +01:00
Peter John Hartman
b477f8b03f Simplify attachments/add recipients.
Yet another update to MMS.  This mostly simplifies the add attachment
and recipient interface, so that:

Screen space saving:
o attachment base name is printed rather than full path (saves screen
space)
o Remove Recipient -> X + person icon (saves screen space)
o Remove File -> X + attachment icon (saves screen space)
o Use contact names when available rather than numbers (saves screen
space)

Quality of life improvements:

o When you add/remove recipients, the underlying terminal's tail is
updated to the new group chat's sms.text.
o Actual error checking for failure to send (after 10 seconds).

Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-12-09 22:40:08 +01:00
Peter John Hartman
e8742167e8 Refactor modemsendsms and modemtext
Signed-off-by: Stacy Harper <contact@stacyharper.net>
2021-11-29 19:12:29 +01:00
Peter John Hartman
4098758091 Move 'Send' to top of options.
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-11-03 11:29:53 +01:00
Stacy Harper
2fdfb2b1c2 Use ??? as Unknown Number to make shortest lines
The goal is to make some additional place
2021-10-31 10:57:15 +01:00
Stacy Harper
291d1bcc75 Reverse contact name and phone number order
This make long composed phone numbers to display the name before it.
Witout it, group chat names will not be displayed in the menus
2021-10-31 10:57:15 +01:00
Stacy Harper
afe6abef8e MMS Support
In sxmo_modemmonitor.sh checkfornewtexts() we should skip MMS and SMS WAPs,
which will be SMS messages with text of "--" or no TEXTDATA at all.   Hence,
there are a couple small checks in checkfornewtexts() to do that.

As well, there is a further dbus-monitor call in sxmo_modemmonitor.sh that
monitors org.ofono.mms.Service for 'MessageAdded' to process a new MMS messages.

Most of the action happens in sxmo_modemmonitor.sh processmms().

An MMS message might be either a message with an attachment to one recipient
OR a message with multiple recipients ('Group Chat') and no attachments (or
some attachments).

Attachments get placed in ~/.local/share/sxmo/modem/$PHONENUMBER/attachments/.
They are named $PAYLOAD.jpeg, $PAYLOAD.mp3, etc., where $PAYLOAD is the unique
id that mmsd-tng assigns the mms and stores in ~/.mms/modemanager/.  (Note that
since the PAYLOAD file remains on the filesystem, we could just re-extract the
attachments whenever we want them.  This might be an improvement down the road.)

If there are multiple recipients, we will make a "unique" new phone number out
of *all* the numbers involved (to and from) for each group chat.  For instance,
if you and Bob and Suzie are on a group chat you will have a number like
+15551234567+16661234567+17771234567 in ~/.local/share/sxmo/modem. You can
treat this like a normal number (i.e., give it a contact name, reply to it,
etc.)

Once an MMS message has arrived, one notification will be made like normal.

If there are attachments, clicking on the notification will open them all using
sxmo_open.sh.

You can also go to the message (via Texts) and click View Attachments to run
sxmo_files.sh on the attachments directory.

You can also Add an attachment when you compose a message.  There is a basic
ability to Delete attachments too.

I've also reversed the contact lists so the CONTACTNAME is on the left and PHONENUMBER on
the right, otherwise with large phonenumbers it was hard to see who the CONTACTNAME is.

=== MMSD-TNG CONFIGURATION TIPS AND TRIPS ===

sxmo's mms requires mmsd-tng that includes the mmsctl program.  Right now, this is
in the latest git head.  See https://gitlab.com/kop316/mmsd/-/merge_requests/52.
To compile with this on edit meson_options.txt and set mmsctl to true.  Then build as normal
via mmsd-tng's README.  (We can also just do: gcc -o mmsctl mmsctl.c -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -ldbus-1 -ljson-c)

sxmo's mms does not require any configuration on top of what is needed to get mmsd-tng to work.
However, mmsd-tng can be a bit of a tricky thing to confugre, so here are some tips:

1. mmsd-tng includes example configurations in its README. A helpful list is here:
https://gitlab.gnome.org/GNOME/mobile-broadband-provider-info

Here is an example (works with "Mint Mobile" which uses T-Mobile):

~/.mms/modemmanager/mms

[Modem Manager]
CarrierMMSC=http://wholesale.mmsmvno.com/mms/wapenc
MMS_APN=Ultra
CarrierMMSProxy=NULL
DefaultModemNumber=NULL
AutoProcessOnConnection=true
AutoProcessSMSWAP=true

[Settings]
UseDeliveryReports=false
AutoCreateSMIL=false
ForceCAres=false
TotalMaxAttachmentSize=1100000
MaxAttachments=25

2. mmsd-tng must use the *modem's* dns to resolve mms files.  Since
NetworkManager rewrites /etc/resolv.conf with both wifi and modem active, I
found it easiest to have a static /etc/resolv.conf and to set
/etc/NetworkManager/NetworkManager.conf dns=none.
2021-10-31 10:57:13 +01:00
Stacy Harper
30bc339420 Add a conversation loop to convers with contact by sms
Signed-off-by: Stacy Harper <contact@stacyharper.net>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-10-08 21:23:29 +02:00
Stacy Harper
87d86b7cf0 Allow phone number find in send text submenu
This allow the user to use a non formated phone number. We
split valid number check in a dedicated script to allow this.
2021-09-18 12:05:10 +02:00
Peter John Hartman (wart)
a8693545a4 Dialer menu should be with keyboard (so you can enter number).
Signed-off-by: Stacy Harper <contact@stacyharper.net>
2021-08-25 19:29:10 +02:00
Stacy Harper
8a27933c47 SWMO - SXMO over Wayland
This is a huge patch for Swmo, Sxmo over Sway.

It is Dwm backward compatible so dwm users should not expect regressions.

If you install all dependencies, you then can toggle between Sway and Dwm using a new config entry. It will reboot the phone.

This commit also contains:
    * Make the modemmonitor bullet proof
    * various other smaller fixes

Signed-off-by: Stacy Harper <contact@stacyharper.net>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-08-22 13:23:22 +02:00
Stacy Harper
60dd08fa27 Fix sxmo_modemtext in terminal mode
As we rely on the terminal name to use the contextual menu, we used the
st target directly, preventing to use the taillog command in terminal
mode.

Add an optional TERMNAME env variable to manage this smoothly.

Signed-off-by: Stacy Harper <contact@stacyharper.net>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-06-21 22:59:55 +02:00
Stacy Harper
e428d0c4a4 Simplify the termmode detection
As we now rely on sxmo_terminal.sh and the TERMCMD env variable, we then
can simplify things.

In the sxmo dwm context, TERMCMD="st -e" so sxmo_terminal.sh will run
the command in st.

In the ssh context, we dont have TERMCMD so sxmo_terminal.sh will just
run the command

In a tmux context, we can set TERMCMD="tmux split-window" with
set-environment -g TERMCMD "tmux split-window"
so sxmo_terminal.sh will run the command in a splited window.

Signed-off-by: Stacy Harper <contact@stacyharper.net>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-06-21 22:59:20 +02:00
Stacy Harper
e444553ae4 Optimize sxmo_modemtext contact listing
When you number of conversation start to grow, it rapidly take some
seconds for the menu to open itself. The [ -d "folder" ] test really is
uneficient.

This simplify this part as we now ask sxmo_contacts to only list texted
contacts.
2021-06-09 08:37:19 +02:00
Stacy Harper
98bd4b2f0d Make sxmo_modemtext killeable with gesture
Signed-off-by: Stacy Harper <contact@stacyharper.net>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-06-06 10:39:00 +02:00
noneofyourbusiness
1121e29b3e replace "st -e" with sxmo_terminal.sh and edit it to use st -e instead of st
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-06-04 21:50:59 +02:00
Maarten van Gompel
eb34a970cb TERMMODE was used but not set in sxmo_modemtext.sh + sanity check for sxmo_terminal
(fixed the shellcheck problem)

Signed-off-by: Stacy Harper <contact@stacyharper.net>
2021-05-23 14:37:11 +02:00
Stacy Harper
a3e4dc0fa4 Make all sxmo menu SSH mode compatible
We then simplify the sxmo_modemtext that was already using SSH related
behaviors.

Signed-off-by: Stacy Harper <contact@stacyharper.net>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-04-10 13:20:19 +02:00
Maarten van Gompel
6dc18e22a3 fixed minor shellcheck issues 2021-04-05 12:08:22 +02:00
Stacy Harper
262418637f Rework of the sxmo_modemtext with benefit
* Draft files are assigned to each number:

Stored here ".local/share/modem/+33666666666/draft.txt"
We automatically edit this single file, making crash or unexpected
edition issue to leave intact saved draft.

* Simplification of some logics

Having a known draft file instead of using a TEXT var simplify lots
of things

* EDITOR is not run in a subshell

Some editors as kakoune got issues with that. Futhermore, it will be
usefull for some other development as making all menu ssh mode
compatible

* Remove modem check

As we now got draft, why do we care if modem is up or down ?

* Display the contact name instead of it number in the conversation

Or use "Unknown Number (+337798676)"

* Unify display message notif adding possibilities to bypass the
main menu

Signed-off-by: Stacy Harper <contact@stacyharper.net>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-04-05 12:00:49 +02:00
Stacy Harper
dbc3b1ab50 Allow the sendnewtextmenu to be used with a number as arg
This allow the "Reply" appmenu shortcut to open a new compose message
directly.

Signed-off-by: Stacy Harper <contact@stacyharper.net>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-03-30 21:14:30 +02:00
Stacy Harper
18361bd681 Revert "Use less as sms pager to allow scrollback"
This reverts commit 3bb3fb6094.

We cannot use this special less argument as it is not busybox less
compatible.

I add busybox aliases to not reproduce the error in the future.

Signed-off-by: Stacy Harper <contact@stacyharper.net>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-03-30 19:08:17 +02:00
Stacy Harper
568eac7dd3 Add a dsubmenu to reply/call on SMS windows
Signed-off-by: Stacy Harper <contact@stacyharper.net>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-03-27 23:22:40 +01:00
Stacy Harper
3bb3fb6094 Use less as sms pager to allow scrollback
Signed-off-by: Stacy Harper <contact@stacyharper.net>
Signed-off-by: Maarten van Gompel <proycon@anaproy.nl>
2021-03-27 14:15:21 +01:00
Maarten van Gompel
f4ba3978c9 Call common script, moved icons to common script, removed unnecessary aliases from common (let's add them only when there are conflicts), made sure plays along with shellcheck 2021-02-01 18:32:32 +01:00
Maarten van Gompel
7669fa341e adding icons to menus 2021-02-01 18:32:32 +01:00