Você precisa usar $HOME em vez de ~ (til).
O til é bash específico. Em bash tilde se expande automaticamente para o valor $HOME .
Não tem significado especial, exceto por bash . Consulte o manual do bash para obter mais detalhes sobre a expansão do til.
Seu comando Exec do ativador deve ser:
Exec=bash -c "qmlscene $HOME/file/path/main.qml"
Editar : meu lançador de teste
[Desktop Entry]
Name=Myapp
Comment=Myapp
Exec=bash -c "qmlscene $HOME/foo.qml"
Terminal=false
Type=Application
Categories=Qt;
TargetEnvironment=Unity
StartupWMClass=do-not-directly-run-firestorm-bin
StartupNotify=true