FollieHiyuki-dotfiles/home/.local/bin/launchermenu
2021-02-13 19:28:59 +03:00

52 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
case $1 in
--bemenu)
menu="bemenu -i -p launch -l 10"
;;
--dmenu)
menu="dmenu -i -p launch -l 10"
;;
--fzf)
menu="fzf -e --no-multi"
;;
*)
exit
;;
esac
# global
apps=$(/usr/bin/ls /usr/share/applications)
# local
if [ -d $HOME/.local/share/applications ]
then
locals=$(/usr/bin/ls $HOME/.local/share/applications)
apps=$(echo "$apps\n$locals")
fi
# flatpak
if command -v flatpak > /dev/null
then
flatpaks=$(/usr/bin/ls $HOME/.local/share/flatpak/exports/share/applications | grep ".desktop")
apps=$(echo "$apps\n$flatpaks")
flatpak_sys=$(/usr/bin/ls /var/lib/flatpak/exports/share/applications | grep ".desktop")
apps=$(echo "$apps\n$flatpak_sys")
fi
menu_desktop() {
selected=$(echo "$apps" | ${menu} )
if [ -f "/usr/share/applications/$selected" ]
then
nohup `grep '^Exec' "/usr/share/applications/$selected" | head -1 | sed 's/^Exec=//' | sed 's/%.//'` >/dev/null 2>&1&
elif [ -f "$HOME/.local/share/applications/$selected" ]
then
nohup `grep '^Exec' "$HOME/.local/share/applications/$selected" | head -1 | sed 's/^Exec=//' | sed 's/%.//'` >/dev/null 2>&1&
elif [ -f "$HOME/.local/share/flatpak/exports/share/applications/$selected" ]
then
nohup `grep '^Exec' "$HOME/.local/share/flatpak/exports/share/applications/$selected" | head -1 | sed 's/^Exec=//' | sed 's/%.//'` >/dev/null 2>&1&
else
nohup `grep '^Exec' "/var/lib/flatpak/exports/share/applications/$selected" | head -1 | sed 's/^Exec=//' | sed 's/%.//'` >/dev/null 2>&1&
fi
}
menu_desktop