Dear Maintainer,
When XFCE's exo-open (from exo-utils) is available on my system, gvfs-open incorrectly opens *all* filetypes in nautilus. Uninstalling exo-utils (and, unfortunately, the entire XFCE desktop) fixes the problem.
Also see this strace output:
albin@hecate ~ % strace -f /usr/bin/gvfs-open ~/Downloads/Bibliotekarie.pdf 2>&1 |grep exec
execve("/usr/bin/gvfs-open", ["/usr/bin/gvfs-open", "/home/albin/Downloads/Biblioteka"...], [/* 48 vars */]) = 0
[pid 5109] execve("/home/albin/local/bin/exo-open", ["exo-open", "--launch", "FileManager", "/home/albin/Downloads/Biblioteka"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5109] execve("/home/albin/.local/bin/exo-open", ["exo-open", "--launch", "FileManager", "/home/albin/Downloads/Biblioteka"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5109] execve("/home/albin/.bin/exo-open", ["exo-open", "--launch", "FileManager", "/home/albin/Downloads/Biblioteka"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5109] execve("/home/albin/android-studio/bin/exo-open", ["exo-open", "--launch", "FileManager", "/home/albin/Downloads/Biblioteka"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5109] execve("/usr/local/bin/exo-open", ["exo-open", "--launch", "FileManager", "/home/albin/Downloads/Biblioteka"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5109] execve("/usr/bin/exo-open", ["exo-open", "--launch", "FileManager", "/home/albin/Downloads/Biblioteka"...], [/* 50 vars */] <unfinished ...>
[pid 5109] <... execve resumed> ) = 0
[pid 5112] execve("/usr/lib/x86_64-linux-gnu/xfce4/exo-1/exo-helper-1", ["/usr/lib/x86_64-linux-gnu/xfce4/"..., "--launch", "FileManager", "/home/albin/Downloads/Biblioteka"...], [/* 50 vars */] <unfinished ...>
[pid 5112] <... execve resumed> ) = 0
[pid 5113] execve("/usr/bin/nautilus", ["/usr/bin/nautilus", "/home/albin/Downloads/Biblioteka"...], [/* 50 vars */] <unfinished ...>
[pid 5113] <... execve resumed> ) = 0
[pid 5118] execve("/home/albin/local/bin/ls", ["ls", "-l", "/etc/xdg/nautilus-actions/nautil"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5118] execve("/home/albin/.local/bin/ls", ["ls", "-l", "/etc/xdg/nautilus-actions/nautil"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5118] execve("/home/albin/.bin/ls", ["ls", "-l", "/etc/xdg/nautilus-actions/nautil"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5118] execve("/home/albin/android-studio/bin/ls", ["ls", "-l", "/etc/xdg/nautilus-actions/nautil"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5118] execve("/usr/local/bin/ls", ["ls", "-l", "/etc/xdg/nautilus-actions/nautil"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5118] execve("/usr/bin/ls", ["ls", "-l", "/etc/xdg/nautilus-actions/nautil"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5118] execve("/bin/ls", ["ls", "-l", "/etc/xdg/nautilus-actions/nautil"...], [/* 50 vars */] <unfinished ...>
[pid 5118] <... execve resumed> ) = 0
[pid 5119] execve("/home/albin/local/bin/ls", ["ls", "-l", "/home/albin/.config/nautilus-act"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5119] execve("/home/albin/.local/bin/ls", ["ls", "-l", "/home/albin/.config/nautilus-act"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5119] execve("/home/albin/.bin/ls", ["ls", "-l", "/home/albin/.config/nautilus-act"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5119] execve("/home/albin/android-studio/bin/ls", ["ls", "-l", "/home/albin/.config/nautilus-act"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5119] execve("/usr/local/bin/ls", ["ls", "-l", "/home/albin/.config/nautilus-act"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5119] execve("/usr/bin/ls", ["ls", "-l", "/home/albin/.config/nautilus-act"...], [/* 50 vars */]) = -1 ENOENT (No such file or directory)
[pid 5119] execve("/bin/ls", ["ls", "-l", "/home/albin/.config/nautilus-act"...], [/* 50 vars */] <unfinished ...>
[pid 5119] <... execve resumed> ) = 0
[pid 5122] <... read resumed> "odev,noexec,relatime,cpu,cpuacct"..., 1024) = 1024
[pid 5123] <... read resumed> "odev,noexec,relatime,cpu,cpuacct"..., 1024) = 1024