mirror of
				https://github.com/ItsDrike/dotfiles.git
				synced 2025-10-31 16:06:36 +00:00 
			
		
		
		
	Merge branch 'arch' into gentoo
This commit is contained in:
		
						commit
						21bb921283
					
				
					 4 changed files with 119 additions and 1 deletions
				
			
		|  | @ -51,7 +51,7 @@ export LESS_TERMCAP_ue="$(printf '%b' '[0m')" | |||
| command -v bat > /dev/null && export MANPAGER="sh -c 'col -bx | bat -l man -p'" # Format manuals with bat (colors) | ||||
| 
 | ||||
| # Other program settings | ||||
| export SUDO_ASKPASS="$HOME/.local/bin/dmenupass" | ||||
| export SUDO_ASKPASS="$HOME/.local/bin/dmenu/dmenupass" | ||||
| export PIPENV_VENV_IN_PROJECT=1 # Force pipenv to create new environments within projects ./.venv | ||||
| #export QT_QPA_PLATFORMTHEME="gtk2"	# Have QT use gtk2 theme. | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										68
									
								
								home/.local/bin/dmenu/dmenumount
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										68
									
								
								home/.local/bin/dmenu/dmenumount
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,68 @@ | |||
| #!/bin/sh | ||||
| 
 | ||||
| # Gives dmenu prompt to mount unmounted drives and Android phones. | ||||
| # If they're in /etc/fstab they'll be mounted automatically. | ||||
| # Otherwise, you'll be prompted to give a mountpoint from already | ||||
| # existing directories. If you input a novel directory, it will | ||||
| # prompt you to create that directory. | ||||
| 
 | ||||
| getmount() { \ | ||||
| 	[ -z "$chosen" ] && exit 1 | ||||
|         # shellcheck disable=SC2086 | ||||
| 	mp="$(find $1 2>/dev/null | dmenu -i -p "Type in mount point.")" || exit 1 | ||||
| 	test -z "$mp" && exit 1 | ||||
| 	if [ ! -d "$mp" ]; then | ||||
| 		mkdiryn=$(printf "No\\nYes" | dmenu -i -p "$mp does not exist. Create it?") || exit 1 | ||||
| 		[ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || sudo -A mkdir -p "$mp") | ||||
| 	fi | ||||
| 	} | ||||
| 
 | ||||
| mountusb() { \ | ||||
| 	chosen="$(echo "$usbdrives" | dmenu -i -p "Mount which drive?")" || exit 1 | ||||
| 	chosen="$(echo "$chosen" | awk '{print $1}')" | ||||
| 	sudo -A mount "$chosen" 2>/dev/null && notify-send "💻 USB mounting" "$chosen mounted." && exit 0 | ||||
| 	alreadymounted=$(lsblk -nrpo "name,type,mountpoint" | awk '$3!~/\/boot|\/home$|SWAP/&&length($3)>1{printf "-not ( -path *%s -prune ) ",$3}') | ||||
| 	getmount "/mnt /media /mount /home -maxdepth 5 -type d $alreadymounted" | ||||
| 	partitiontype="$(lsblk -no "fstype" "$chosen")" | ||||
| 	case "$partitiontype" in | ||||
| 		"vfat") sudo -A mount -t vfat "$chosen" "$mp" -o rw,umask=0000;; | ||||
| 		"exfat") sudo -A mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)";; | ||||
| 		*) sudo -A mount "$chosen" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; sudo -A chown "$user":"$ug" "$mp";; | ||||
| 	esac | ||||
| 	notify-send "💻 USB mounting" "$chosen mounted to $mp." | ||||
| 	} | ||||
| 
 | ||||
| mountandroid() { \ | ||||
| 	chosen="$(echo "$anddrives" | dmenu -i -p "Which Android device?")" || exit 1 | ||||
| 	chosen="$(echo "$chosen" | cut -d : -f 1)" | ||||
| 	getmount "$HOME -maxdepth 3 -type d" | ||||
|         simple-mtpfs --device "$chosen" "$mp" | ||||
| 	echo "OK" | dmenu -i -p "Tap Allow on your phone if it asks for permission and then press enter" || exit 1 | ||||
| 	simple-mtpfs --device "$chosen" "$mp" | ||||
| 	notify-send "🤖 Android Mounting" "Android device mounted to $mp." | ||||
| 	} | ||||
| 
 | ||||
| asktype() { \ | ||||
| 	choice="$(printf "USB\\nAndroid" | dmenu -i -p "Mount a USB drive or Android device?")" || exit 1 | ||||
| 	case $choice in | ||||
| 		USB) mountusb ;; | ||||
| 		Android) mountandroid ;; | ||||
| 	esac | ||||
| 	} | ||||
| 
 | ||||
| anddrives=$(simple-mtpfs -l 2>/dev/null) | ||||
| usbdrives="$(lsblk -rpo "name,type,size,mountpoint" | grep 'part\|rom' | awk '$4==""{printf "%s (%s)\n",$1,$3}')" | ||||
| 
 | ||||
| if [ -z "$usbdrives" ]; then | ||||
| 	[ -z "$anddrives" ] && echo "No USB drive or Android device detected" && exit | ||||
| 	echo "Android device(s) detected." | ||||
| 	mountandroid | ||||
| else | ||||
| 	if [ -z "$anddrives" ]; then | ||||
| 		echo "USB drive(s) detected." | ||||
| 		mountusb | ||||
| 	else | ||||
| 		echo "Mountable USB drive(s) and Android device(s) detected." | ||||
| 		asktype | ||||
| 	fi | ||||
| fi | ||||
							
								
								
									
										6
									
								
								home/.local/bin/dmenu/dmenupass
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								home/.local/bin/dmenu/dmenupass
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| #!/bin/sh | ||||
| 
 | ||||
| # This script is the value for SUDO_ASKPASS variable, | ||||
| # meaning that it will be used as a password prompt if needed. | ||||
| 
 | ||||
| echo "$(dmenu -P -p "$1")" | ||||
							
								
								
									
										44
									
								
								home/.local/bin/dmenu/dmenuumount
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								home/.local/bin/dmenu/dmenuumount
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,44 @@ | |||
| #!/bin/sh | ||||
| 
 | ||||
| # A dmenu prompt to unmount drives. | ||||
| # Provides you with mounted partitions, select one to unmount. | ||||
| # Drives mounted at /, /boot and /home will not be options to unmount. | ||||
| 
 | ||||
| unmountusb() { | ||||
| 	[ -z "$drives" ] && exit | ||||
| 	chosen="$(echo "$drives" | dmenu -i -p "Unmount which drive?")" || exit 1 | ||||
| 	chosen="$(echo "$chosen" | awk '{print $1}')" | ||||
| 	[ -z "$chosen" ] && exit | ||||
| 	sudo -A umount "$chosen" && notify-send "💻 USB unmounting" "$chosen unmounted." | ||||
| 	} | ||||
| 
 | ||||
| unmountandroid() { \ | ||||
| 	chosen="$(awk '/simple-mtpfs/ {print $2}' /etc/mtab | dmenu -i -p "Unmount which device?")" || exit 1 | ||||
| 	[ -z "$chosen" ] && exit | ||||
| 	sudo -A umount -l "$chosen" && notify-send "🤖 Android unmounting" "$chosen unmounted." | ||||
| 	} | ||||
| 
 | ||||
| asktype() { \ | ||||
| 	choice="$(printf "USB\\nAndroid" | dmenu -i -p "Unmount a USB drive or Android device?")" || exit 1 | ||||
| 	case "$choice" in | ||||
| 		USB) unmountusb ;; | ||||
| 		Android) unmountandroid ;; | ||||
| 	esac | ||||
| 	} | ||||
| 
 | ||||
| drives=$(lsblk -nrpo "name,type,size,mountpoint" | awk '$4!~/\/boot|\/home$|SWAP/&&length($4)>1{printf "%s (%s)\n",$4,$3}') | ||||
| 
 | ||||
| if ! grep simple-mtpfs /etc/mtab; then | ||||
| 	[ -z "$drives" ] && echo "No drives to unmount." &&  exit | ||||
| 	echo "Unmountable USB drive detected." | ||||
| 	unmountusb | ||||
| else | ||||
| 	if [ -z "$drives" ] | ||||
| 	then | ||||
| 		echo "Unmountable Android device detected." | ||||
| 	       	unmountandroid | ||||
| 	else | ||||
| 		echo "Unmountable USB drive(s) and Android device(s) detected." | ||||
| 		asktype | ||||
| 	fi | ||||
| fi | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue