aboutsummaryrefslogtreecommitdiff
path: root/.local/bin
diff options
context:
space:
mode:
Diffstat (limited to '.local/bin')
-rwxr-xr-x.local/bin/map1
-rwxr-xr-x.local/bin/mountmgr76
-rwxr-xr-x.local/bin/xstart_dwm1
3 files changed, 78 insertions, 0 deletions
diff --git a/.local/bin/map b/.local/bin/map
index 1b19380..95c0988 100755
--- a/.local/bin/map
+++ b/.local/bin/map
@@ -4,5 +4,6 @@ keylayout=$(localectl list-x11-keymap-layouts | dmenu -p "Select keyboard layout
keymodel=$(localectl list-x11-keymap-variants | dmenu -p "Select keyboard model")
setxkbmap $keylayout $keymodel
+setxkbmap -option caps:escape
notify-send "Set Keyboardlayout" "Layout: $keylayout\nModel: $keymodel"
diff --git a/.local/bin/mountmgr b/.local/bin/mountmgr
new file mode 100755
index 0000000..8c69aab
--- /dev/null
+++ b/.local/bin/mountmgr
@@ -0,0 +1,76 @@
+#!/bin/sh
+
+export UNMOUNT_BLACKLIST="luksdev nvme0n1p1"
+export PINENTRY="pinentry-dmenu"
+
+prompt_pin() {
+ printf "SETPROMPT $1\nGETPIN\n" | $PINENTRY | grep '^D' | sed 's/^D //g'
+}
+
+disk_dialog_entry() {
+ lsblk -r -o NAME,FSTYPE,MOUNTPOINT,LABEL | column -s ' ' -t | grep "$1"
+}
+
+luks_map() {
+ for map in $(sudo dmsetup ls | awk '{ print $1 }'); do
+ echo $map $(sudo cryptsetup status "$map" | grep "device:" | awk '{ print $2 }')
+ done
+}
+
+luks_regex() {
+ luks_map | awk '{ print $2 }' | sed -E 's/\/dev\/(.*)/\1/g' | sed -z 's/\n/\\|/g' | sed -e 's/\\|$/\n/g'
+}
+
+list_mountable() {
+ lsblk -r -o NAME,FSTYPE,MOUNTPOINTS | grep -E '^[^ ]+\s+[^ ]+\s*$' | sed -e '/\[SWAP\]/d' | sed -e "/$(luks_regex)/d" | awk '{ print $1 }'
+}
+
+list_unmountable() {
+ lsblk -r -o NAME,FSTYPE,MOUNTPOINT | sed -e '/NAME FSTYPE MOUNTPOINT/d' | grep -E '^[^ ]+\s+[^ ]+\s+[^ ]+$' | awk '{ print $1 }'
+}
+
+
+main_dialog() {
+ for d in $(list_unmountable); do
+ [ -z "$(echo $UNMOUNT_BLACKLIST | grep "$d")" ] && echo "⏏ $(disk_dialog_entry $d)"
+ done
+
+ for d in $(list_mountable); do
+ echo " $(disk_dialog_entry $d)"
+ done
+}
+
+select=$(main_dialog | dmenu)
+
+[ -z "$select" ] && exit
+
+if [ "$(echo $select | awk '{ print $1 }')" = "⏏" ]; then
+ mountpoint=$(echo "$select" | awk '{ print $4 }')
+ disk=$(echo "$select" | awk '{ print $2 }')
+ sync
+ sudo umount "$mountpoint"
+ rmdir "$mountpoint"
+
+ if [ -n "$(luks_map | grep "$disk")" ]; then
+ sudo cryptsetup close "$disk"
+ fi
+
+ notify-send "Mount Manager" "$disk unmounted"
+else
+ disk=$(echo "$select" | awk '{ print $1 }')
+ device_path="/dev/$disk"
+ fstype=$(echo "$select" | awk '{ print $2 }')
+
+ if [ "$fstype" = "crypto_LUKS" ]; then
+ prompt_pin "Passphrase to decrypt $disk" | sudo cryptsetup open "$device_path" "luks$disk" || exit
+ new_disk="luks$disk"
+ disk="$new_disk"
+ device_path="/dev/mapper/$disk"
+ fi
+
+ mountpoint="/mnt/$disk"
+
+ mkdir "$mountpoint"
+ sudo mount "$device_path" "$mountpoint"
+ notify-send "Mount Manager" "$disk mounted"
+fi
diff --git a/.local/bin/xstart_dwm b/.local/bin/xstart_dwm
index 5dfcff1..802a2cd 100755
--- a/.local/bin/xstart_dwm
+++ b/.local/bin/xstart_dwm
@@ -5,6 +5,7 @@ status -d &
kodi &
while true; do
+ . ~/.profile
# Log stderror to a file
dwm 2> ~/.cache/dwm.log
# No error logging