Added *.desktop files installation a'la GNU Radio.
After building grgsm_setup_freedesktop is created. It has to be executed during installation of a package with 'install' as a parameter.
During removal of a package it has to be called with 'uninstall' as a parameter.
diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
index 7be18e7..ec04f1f 100644
--- a/apps/CMakeLists.txt
+++ b/apps/CMakeLists.txt
@@ -19,6 +19,8 @@
 
 include(GrPython)
 add_subdirectory(helpers)
+add_subdirectory(apps_data)
+
 
 GR_PYTHON_INSTALL(
     PROGRAMS
diff --git a/apps/apps_data/CMakeLists.txt b/apps/apps_data/CMakeLists.txt
index 5962e52..db8a843 100644
--- a/apps/apps_data/CMakeLists.txt
+++ b/apps/apps_data/CMakeLists.txt
@@ -17,8 +17,25 @@
 # the Free Software Foundation, Inc., 51 Franklin Street,
 # Boston, MA 02110-1301, USA.
 
+set(grgsm_freedesktop_path ${GR_PKG_DATA_DIR}/gr-gsm/freedesktop)
+
 install(
    FILES
-   grgsm_livemon.desktop
-   DESTINATION ${GR_PKG_DATA_DIR}
+   grgsm-livemon.desktop
+   DESTINATION ${grgsm_freedesktop_path}
+   COMPONENT "gr-gsm"
 )
+
+find_program(HAVE_XDG_UTILS xdg-desktop-menu)
+
+if(UNIX AND HAVE_XDG_UTILS)
+    set(SRCDIR ${CMAKE_INSTALL_PREFIX}/${grgsm_freedesktop_path})
+    configure_file(
+        ${CMAKE_CURRENT_SOURCE_DIR}/grgsm_setup_freedesktop.in
+        ${CMAKE_CURRENT_BINARY_DIR}/grgsm_setup_freedesktop
+    @ONLY)
+    install(
+        PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/grgsm_setup_freedesktop
+        DESTINATION ${GR_PKG_LIBEXEC_DIR} COMPONENT "gr-gsm"
+    )
+endif(UNIX AND HAVE_XDG_UTILS)
diff --git a/apps/apps_data/grgsm_livemon.desktop b/apps/apps_data/grgsm-livemon.desktop
similarity index 100%
rename from apps/apps_data/grgsm_livemon.desktop
rename to apps/apps_data/grgsm-livemon.desktop
diff --git a/apps/apps_data/grgsm_setup_freedesktop.in b/apps/apps_data/grgsm_setup_freedesktop.in
new file mode 100644
index 0000000..f932519
--- /dev/null
+++ b/apps/apps_data/grgsm_setup_freedesktop.in
@@ -0,0 +1,54 @@
+#!/bin/bash
+#
+# Copyright 2008-2011 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+##################################################
+# setup grc on a freedesktop platform
+# $1 should be install or uninstall
+# $2 is the optional path to the files
+# when $2 is unspecified, the path is:
+# @SRCDIR@
+##################################################
+
+if [ -n "$2" ]; then
+	SRCDIR="$2"
+else
+	SRCDIR="@SRCDIR@"
+fi
+
+case "$1" in
+'install')
+	echo "Begin freedesktop install..."
+	echo "Install menu items"
+	xdg-desktop-menu install ${SRCDIR}/*.desktop
+	echo "Done!"
+	echo ""
+	;;
+'uninstall')
+	echo "Begin freedesktop uninstall..."
+	echo "Uninstall menu items"
+	xdg-desktop-menu uninstall `ls ${SRCDIR}/*.desktop | xargs -n1 basename`
+	echo "Done!"
+	echo ""
+	;;
+*)
+	echo "Usage: $0 [install|uninstall]"
+	;;
+esac