summaryrefslogtreecommitdiff
path: root/bin/guiscripts/dmfm
diff options
context:
space:
mode:
authorRaymaekers Luca <raymaekers.luca@gmail.com>2023-10-21 00:35:13 +0200
committerRaymaekers Luca <raymaekers.luca@gmail.com>2023-10-21 00:35:13 +0200
commitc3c4b8c6b4556e01770a75da4b6fbf8e1eba9ce4 (patch)
tree006d8799585d86557e570f03af93b112a079a697 /bin/guiscripts/dmfm
parent39a6cea6f2f198aa08189d345e0281a591d17ec4 (diff)
parent3d253cd428e2769e0449fbf0c3ece5c0ab41545c (diff)
Merge branch 'main' of db:dotfiles
Diffstat (limited to 'bin/guiscripts/dmfm')
-rwxr-xr-xbin/guiscripts/dmfm28
1 files changed, 15 insertions, 13 deletions
diff --git a/bin/guiscripts/dmfm b/bin/guiscripts/dmfm
index 969c111..d1dd8b8 100755
--- a/bin/guiscripts/dmfm
+++ b/bin/guiscripts/dmfm
@@ -1,17 +1,19 @@
#!/bin/sh
-file=1
-while [ "$file" ]; do
- file=$(ls -1 --group-directories-first | dmenu -i -l 8 -g 1 -p "$(basename $(pwd)):")
- if [ -e "$file" ]; then
- owd=$(pwd)
- if [ -d "$file" ]; then
- cd "$file"
- else [ -f "$file" ]
- if which xdg-open &> /dev/null; then
- exec xdg-open "$owd/$file" &
- unset file
- fi
- fi
+while true
+do
+ file=$(find . -maxdepth 1 -mindepth 1 -not -name '.*' -printf '%y\t%f\n' |
+ sort -k 1 -k 2 | cut -f 2- |
+ commander -xcd -p "$PWD>")
+
+ [ "$file" ] || break
+ [ ! -e "$file" ] && continue
+
+ if [ -d "$file" ]
+ then
+ cd "$file" || continue
+ else
+ setsid xdg-open "$PWD/$file" &
fi
+
done