57 lines
1.2 KiB
Bash
Executable File
57 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
function get_name {
|
|
local lang=$(locale | grep LANG | cut -d= -f2 | cut -d_ -f1)
|
|
local find="Name\[$lang\]="
|
|
|
|
local name=$(grep "^$find" $1 | tail -1 | sed "s/^$find//" | sed 's/%.//' | sed 's/^"//g' | sed 's/" *$//g')
|
|
|
|
if [ "${name}" = "" ]
|
|
then
|
|
find="Name="
|
|
name=$(grep "^$find" $1 | tail -1 | sed "s/^$find//" | sed 's/%.//' | sed 's/^"//g' | sed 's/" *$//g')
|
|
fi
|
|
|
|
echo "$name"
|
|
}
|
|
|
|
if [ "$ROFI_RETV" = "1" ]
|
|
then
|
|
for deskfile in /usr/share/settings-menu/*
|
|
do
|
|
|
|
match=$(grep "^Name" $deskfile | grep "$@" )
|
|
|
|
if [ -n "$match" ]
|
|
then
|
|
#$(gtk-launch "$deskfile")
|
|
|
|
app=$(grep '^Exec' $deskfile | tail -1 | sed 's/^Exec=//' | sed 's/%.//' | sed 's/^"//g' | sed 's/" *$//g')
|
|
|
|
coproc ( $app > /dev/null 2>&1 )
|
|
|
|
break
|
|
fi
|
|
|
|
done
|
|
exit 0
|
|
fi
|
|
|
|
function init {
|
|
for file in /usr/share/settings-menu/*
|
|
do
|
|
local name=$(get_name "$file")
|
|
|
|
local iconline=$(sed -n -e '/^Icon=/p' "$file")
|
|
local icon=${iconline/Icon=/""}
|
|
|
|
if [ -n "$name" ]
|
|
then
|
|
echo -en "$name\0icon\x1f$icon\n"
|
|
|
|
fi
|
|
|
|
done
|
|
}
|
|
|
|
init |