29 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
# Unmount USB drives or Android phones. Replaces the older `dmenuumount`. Fewer
 | 
						|
# prompt and also de-decrypts LUKS drives that are unmounted.
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
mounteddroids="$(grep simple-mtpfs /etc/mtab | awk '{print "📱" $2}')"
 | 
						|
lsblkoutput="$(lsblk -nrpo "name,type,size,mountpoint")"
 | 
						|
mounteddrives="$(echo "$lsblkoutput" | awk '($2=="part"||$2="crypt")&&$4!~/\/boot|\/home$|SWAP/&&length($4)>1{printf "💾%s (%s)\n",$4,$3}')"
 | 
						|
 | 
						|
allunmountable="$(echo "$mounteddroids
 | 
						|
$mounteddrives" | sed "/^$/d;s/ *$//")"
 | 
						|
test -n "$allunmountable"
 | 
						|
 | 
						|
chosen="$(echo "$allunmountable" | dmenu -i -p "Unmount which drive?")"
 | 
						|
chosen="${chosen%% *}"
 | 
						|
test -n "$chosen"
 | 
						|
 | 
						|
sudo -A umount -l "/${chosen#*/}"
 | 
						|
notify-send "Device unmounted." "$chosen has been unmounted."
 | 
						|
 | 
						|
# Close the chosen drive if decrypted.
 | 
						|
cryptid="$(echo "$lsblkoutput" | grep "/${chosen#*/}$")"
 | 
						|
cryptid="${cryptid%% *}"
 | 
						|
test -b /dev/mapper/"${cryptid##*/}"
 | 
						|
sudo -A cryptsetup close "$cryptid"
 | 
						|
notify-send "🔒Device dencryption closed." "Drive is now securely locked again."
 |