xdg-open
é, obviamente, projetado para usar os aplicativos padrão. Para usar aplicativos não-padrão, acho que você tem três opções.
1) Digite programname filename
como de costume.
2) Faça isso fora do terminal clicando com o botão direito do mouse no Nautilus e usando aberto com .
3) Use seu próprio script no terminal. Vamos supor que você tenha uma lista razoavelmente curta de programas padrão que você possa escolher.
#!/bin/bash
read filename
myvar=$(zenity --list --text="Chose a non-default program" --column="Programs" firefox gedit)
$myvar filename &
Isso permite que você especifique um nome de arquivo e escolha o programa para abri-lo. Esta é a implementação mínima, por isso pode precisar de algum trabalho adicional. Mas experimente.
Pode não haver um lote de benefícios para essa abordagem, mas isso lhe dá controle sobre o processo e as opções para atender às suas necessidades.