dmenu-desktoponly-20240811-475d809.diff - sites - public wiki contents of suckl… | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
dmenu-desktoponly-20240811-475d809.diff (2786B) | |
--- | |
1 From fada397413584331798a1a9b8703a10110450889 Mon Sep 17 00:00:00 2001 | |
2 From: Robert Bilski <[email protected]> | |
3 Date: Sun, 4 Aug 2024 22:07:35 +0200 | |
4 Subject: [PATCH] Handle .desktop files | |
5 | |
6 Retrieve files from applications/ and open them using gtk-launch | |
7 --- | |
8 Makefile | 8 ++++++-- | |
9 dmenu_path_desktop | 18 ++++++++++++++++++ | |
10 dmenu_run_desktop | 2 ++ | |
11 3 files changed, 26 insertions(+), 2 deletions(-) | |
12 create mode 100755 dmenu_path_desktop | |
13 create mode 100755 dmenu_run_desktop | |
14 | |
15 diff --git a/Makefile b/Makefile | |
16 index 458c524..f157bb1 100644 | |
17 --- a/Makefile | |
18 +++ b/Makefile | |
19 @@ -28,7 +28,7 @@ clean: | |
20 dist: clean | |
21 mkdir -p dmenu-$(VERSION) | |
22 cp LICENSE Makefile README arg.h config.def.h config.mk dmenu.1\ | |
23 - drw.h util.h dmenu_path dmenu_run stest.1 $(SRC)\ | |
24 + drw.h util.h dmenu_path dmenu_path_desktop dmenu_run dm… | |
25 dmenu-$(VERSION) | |
26 tar -cf dmenu-$(VERSION).tar dmenu-$(VERSION) | |
27 gzip dmenu-$(VERSION).tar | |
28 @@ -36,10 +36,12 @@ dist: clean | |
29 | |
30 install: all | |
31 mkdir -p $(DESTDIR)$(PREFIX)/bin | |
32 - cp -f dmenu dmenu_path dmenu_run stest $(DESTDIR)$(PREFIX)/bin | |
33 + cp -f dmenu dmenu_path dmenu_path_desktop dmenu_run dmenu_run_d… | |
34 chmod 755 $(DESTDIR)$(PREFIX)/bin/dmenu | |
35 chmod 755 $(DESTDIR)$(PREFIX)/bin/dmenu_path | |
36 + chmod 755 $(DESTDIR)$(PREFIX)/bin/dmenu_path_desktop | |
37 chmod 755 $(DESTDIR)$(PREFIX)/bin/dmenu_run | |
38 + chmod 755 $(DESTDIR)$(PREFIX)/bin/dmenu_run_desktop | |
39 chmod 755 $(DESTDIR)$(PREFIX)/bin/stest | |
40 mkdir -p $(DESTDIR)$(MANPREFIX)/man1 | |
41 sed "s/VERSION/$(VERSION)/g" < dmenu.1 > $(DESTDIR)$(MANPREFIX)… | |
42 @@ -50,7 +52,9 @@ install: all | |
43 uninstall: | |
44 rm -f $(DESTDIR)$(PREFIX)/bin/dmenu\ | |
45 $(DESTDIR)$(PREFIX)/bin/dmenu_path\ | |
46 + $(DESTDIR)$(PREFIX)/bin/dmenu_path_desktop\ | |
47 $(DESTDIR)$(PREFIX)/bin/dmenu_run\ | |
48 + $(DESTDIR)$(PREFIX)/bin/dmenu_run_desktop\ | |
49 $(DESTDIR)$(PREFIX)/bin/stest\ | |
50 $(DESTDIR)$(MANPREFIX)/man1/dmenu.1\ | |
51 $(DESTDIR)$(MANPREFIX)/man1/stest.1 | |
52 diff --git a/dmenu_path_desktop b/dmenu_path_desktop | |
53 new file mode 100755 | |
54 index 0000000..5ff74b3 | |
55 --- /dev/null | |
56 +++ b/dmenu_path_desktop | |
57 @@ -0,0 +1,18 @@ | |
58 +#!/bin/sh | |
59 + | |
60 +cachedir="${XDG_CACHE_HOME:-"$HOME/.cache"}" | |
61 +cache="$cachedir/dmenu_run_desktop" | |
62 + | |
63 +[ ! -e "$cachedir" ] && mkdir -p "$cachedir" | |
64 + | |
65 +dirs="" | |
66 +IFS=: | |
67 +for dir in "${XDG_DATA_DIRS:-"/usr/local/share:/usr/share"}"; do | |
68 + dirs="${dirs}:${dir}/applications" | |
69 +done; | |
70 + | |
71 +if stest -dqr -n "$cache" $PATH; then | |
72 + stest -fl $dirs | grep -v 'mimeinfo.cache' | sed 's/\.[^./]*$//… | |
73 +else | |
74 + cat "$cache" | |
75 +fi | |
76 diff --git a/dmenu_run_desktop b/dmenu_run_desktop | |
77 new file mode 100755 | |
78 index 0000000..a90aceb | |
79 --- /dev/null | |
80 +++ b/dmenu_run_desktop | |
81 @@ -0,0 +1,2 @@ | |
82 +#!/bin/sh | |
83 +dmenu_path_desktop | dmenu "$@" | xargs gtk-launch & | |
84 -- | |
85 2.46.0 | |
86 |