diff options
Diffstat (limited to 'bin/dmount')
-rwxr-xr-x | bin/dmount | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -7,6 +7,12 @@ use Try::Tiny; use List::Util 'uniq'; use Net::DBus; +# you probably want /etc/udev/rules.d/88-udisks2.rules with: +# +# SUBSYSTEM=="block", ENV{UDISKS_FILESYSTEM_SHARED}="1" +# +# so everything is mounted under /media instead of /run/media/$USER/ + my $bus = Net::DBus->system(); my $srv = $bus->get_service('org.freedesktop.UDisks2'); my $ud = $srv->get_object('/org/freedesktop/UDisks2/Manager'); @@ -18,6 +24,8 @@ sub filter_dev { return unless $dev->_net_dbus_introspector->has_interface('org.freedesktop.UDisks2.Filesystem'); my $ignore = try { $dev->HintIgnore } catch { 1 }; return if $ignore; + my $mounted = try { $dev->MountPoints->@* } catch { 1 }; + return if $mounted; return $dev; } @@ -54,7 +62,7 @@ elsif ($ARGV[0] eq '--list') { elsif ($ARGV[0] eq '--bashcomp') { print <<"EOF"; _dmount_list() { - COMPREPLY=( \$($cmd --list) ) + COMPREPLY=( $( compgen -W '\$($cmd --list)' -- "\$2" ) ) } complete -F _dmount_list $cmd |