blob: e6556728b0f4e39a8f75d4ab0b731d52bd54669f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#!/bin/sh
SEARCH_PATHS=$(echo $XDG_DATA_HOME:$XDG_DATA_DIRS | tr ':' '\n' | awk '{print $1 "/applications"}')
LIST=$(find -L $SEARCH_PATHS -maxdepth 1 -name "*.desktop" -print0 2>/dev/null | xargs -0 awk -F'=' '
BEGINFILE { name=""; section="" }
/^\[Desktop Entry\]/ { section="main" }
/^\[Desktop Action / { section=substr($0, 17, length($0)-17) }
/^Name=/ && section=="main" { name=$2 }
ENDFILE {
if (name != "") {
printf "%s:%s\n", FILENAME, name
}
}
')
CHOICE=$(echo "$LIST" | cut -d: -f2 | sort -u | $MENU "$@")
[ -z "$CHOICE" ] && exit
FILE=$(echo "$LIST" | grep -F ":$CHOICE" | head -n 1 | cut -d: -f1)
gtk4-launch $(basename $FILE)
|