Во времена bluez4 был gvfs-obexftp и не было проблем: и точка монтирования сама создавалась, и потом сама удалялась. Но нынче с суровым bluez5 не работет ни gvfs-obexftp, ни официальный blueman. Спасибо, есть в AUR blueman-git, которым можно делать поиск и спаривание, ну а для монтирования файловой системы есть obexfs. Вот только монтирование-размонтирование приходится делать самому на коленках, о чём, собственно, и пойдёт речь (особенно об отмонтировании).
Итак, хочется следующего:
  • точка монтирования создаётся динамически из имени устройства, типа /media/my_phone;
  • при потере или разрыве связи должно автоматом делаться отмонтирование;
  • при отмонтировании должна удаляться точка монтирования, независимо от того, кто вызвал размонтирование (например, нажали стрелочку извлечения в pcmanfm)
Сразу предупреждаю, я работаю под рутом, соответственно, и решение у меня для работы под рутом. Лица традиционной ориентации могут сами адаптировать это к своему гамаку.
В вики приводится малодушное решение, когда точка монтирования одна и статическая, а про аварийное отмонтирование вообще и речи нет. Это не наш путь.

1. Монтирование
Зацепкой для монтирования может служить MAC-адрес. Для "своих" гаджетов можно заготовить меню монтирования, где MAC-адреса прописаны явно, а для гостей можно использовать blueman, который опять таки передаёт MAC-адрес. Я использую следующий скрипт obex-mount:
#!/bin/bash
# $1 is device MAC-address
NAME=`hcitool name $1`
if [ -z "$NAME" ] ; then
  notify-send -i /usr/share/icons/oxygen/16x16/status/dialog-error.png "device $1 is not operable"
  exit
fi
mkdir -p "/media/$NAME"
obexfs -b $1 "/media/$NAME"
RC=$?
if [ !  "$RC" -eq "0" ]
then
  echo "RC=$RC"
  notify-send -i /usr/share/icons/oxygen/16x16/status/dialog-error.png "mounting $NAME: RC=$RC"
fi

Этот же скрипт у меня прописан в blueman в качестве команды обзора. Реально он, естественно, выполняет только монтирование. Если хочется, чтобы автоматом вызвался файловый менеджер - соответствующую команду можно добавить в скрипт.

2. Отмонтирование
Тут проблем три: как зафиксировать потерю связи, чтобы вызвать размонтирование; как зафиксировать факт размонтирования; как найти точку монтирования, чтобы её удалить. Изучение событий udev показало, что при монтировании появляется устройство (add) в подсистеме bluetooth, в каталоге которого есть файл address, содержащий MAC-адрес. А при потере связи и при размонтировании это устройство удаляется (remove). Беда в том, что при удалении правило срабатывает уже после удаления, так что MAC-адрес найти уже невозможно. Поэтому где-то в /run будем запоминать связь между путём устройства (это будет имя файла) и bleutoooth-именем (это будет содержимое файла).
У меня единственный bluetooth-контроллер, так что пути разных устройств отличаются только последним элементом, его я и использую для идентификации устройства.
Ну а теперь собственно решение.
/etc/udev/rules.d/99-obex.rules
# store bluetooth device name and start service
ACTION=="add", SUBSYSTEM=="bluetooth", RUN+="/usr/local/bin/obex_add %p"

# unmount, remove mountpoint and stop service
ACTION=="remove", SUBSYSTEM=="bluetooth", RUN+="/usr/local/bin/obex_rm1 %p"

/usr/local/bin/obex_add
#!/bin/bash
mp_dir="/run/removable-mount"
DEV=`basename $1`
ADDR=`cat /sys$1/address`
NAME=`hcitool name $ADDR`
mkdir -p $mp_dir
echo $NAME > $mp_dir/$DEV
systemctl start obex@$DEV

/usr/local/bin/obex_rm1
#!/bin/bash
DEV=`basename $1`
/usr/bin/systemctl stop obex@$DEV

/etc/systemd/system/[email protected]
[Service]
Type=oneshot
TimeoutSec=0
RemainAfterExit=yes

ExecStart=/usr/bin/true
ExecStop=/usr/local/bin/obex_rm2 %I

[Install]
WantedBy=multi-user.target

/usr/local/bin/obex_rm2
#!/bin/bash
mp_dir="/run/removable-mount"
NAME=`cat $mp_dir/$1`
rm $mp_dir/$1
umount "/media/$NAME" ;
rmdir "/media/$NAME" ;