summaryrefslogtreecommitdiff
path: root/qubes-dwm-6.2/scripts/dmenu_all
blob: e63bf809cfa101840fd965261261724020f2a565 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/sh

#app_path="/usr/share/applications/"
app_path="$HOME/.local/share/applications/"

scrape_apps() {
  grep '^Name=\|^Exec=' "$app_path"/*.desktop |  grep ':Name=' | cut -d= -f2-
}

exclude() {
  grep -v "Qube Settings"
}

tidy() {
  sed 's/Rxvt Color Unicode Terminal/urxvt/'
}

untidy() {
  sed 's/urxvt/Rxvt Color Unicode Terminal/'
}

find_file() {
  grep "^Name=$1" "$app_path"/*.desktop | cut -d: -f1
}

# Expects the contents of a desktop file
execute_app() {
  local cmd="$(grep '^Exec=' "$1" | cut -d= -f2-)"
  eval " $cmd"
}

choice=$(scrape_apps | exclude | tidy | sort | wrap_dmenu -p "Run" $* | untidy)
[ -z "$choice" ] && exit
file="$(find_file "$choice")"
[ -z "$file" ] && exit
execute_app "$file"