Let's add more DESKTOP_ENTRIES to our ports

Dmitry Marakasov amdmi3 at amdmi3.ru
Wed Aug 19 15:34:15 UTC 2009


Hi!

There have been much effort in improving ports collection lately
(MAKE_JOBS, custom PREFIX/LOCALBASE support and many more) and I'd
like to suggest another one. While many of us prefer functional and
lightweight window managers and terminals to fancy desktop
environements, number of users who use FreeBSD as a desktop certainly
grows. Taking that into account, is a shame that most of ports for
GUI applications do not install .desktop files - thus they don't
appear in users' start menus. I think we should improve this
situation.

Here's the list of ports that depend on libX11 (based on INDEX-8) and do
not either have DESKTOP_ENTRIES in Makefile or share/applications/*.desktop
in pkg-plist:

http://people.freebsd.org/~amdmi3/desktop-needed.txt

That is as many as 6201 ports, and that's 88% of our 7007 ports that
depend on libX11 :/ There are many false positives though (that is,
ports that do not install binaries; ports that use libX11 but are not
really GUI programs; ports that do not require menu entry (such as
window managers, desktop managers etc.), but I'm pretty sure all ports
that require attention are there.

Starting from my ports, here's a patch which adds 21 desktop entries for
some of games maintainer by me:

http://people.freebsd.org/~amdmi3/desktop.patch

There will be many more, but here it is now for review and for
use as an exaple (if I'm not doin' it wrong, of course).

To make adding DESKTOP_ENTRIES simple and fun, here's a script called
"de" which outputs a template for desktop entry when run from port's
directory:

--- de begins here ---
#!/bin/sh

echo "DESKTOP_ENTRIES=\"`make -V PORTNAME`\" \\"
echo "		\"`make -V COMMENT`\" \\"
echo "		\"\${DATADIR}/\" \\"
echo "		\"`make -V PORTNAME`\" \\"
echo "		\"`make -V CATEGORIES | tr ' ' ';' | sed 's|$|;|' | sed 's|games|game|'`\" \\"
echo "		false"
--- de ends here ---

if you use vim, just type !!de while editing port's makefile, and
it'll add template for you, which will require only a little editing:

- change app name in the first line for proper spacing and case
  (i.e. brainworkshop -> Brain Workshop)
- possibly simplify description in the second line (while leaving it
  equal to COMMENT is generally good enough)
- Change icon path (some ports install icons into ${DATADIR}, some (this
  likely only applies to games) have graphic sprites useable as icons,
  for others just list leave "" = no icon.
- Fix categories. Full list here:
  http://standards.freedesktop.org/menu-spec/latest/apa.html

I'd like to receive patch review and feedback. Also, I don't really
understand what StartupNotification really is (true/false in the end of
DESKTOP_ENTRY) and how to determine which is suitable for this or that
port - could anyone explain?

-- 
Dmitry Marakasov   .   55B5 0596 FF1E 8D84 5F56  9510 D35A 80DD F9D2 F77D
amdmi3 at amdmi3.ru  ..:  jabber: amdmi3 at jabber.ru    http://www.amdmi3.ru


More information about the freebsd-ports mailing list