LXShortcut – easy way to edit application shortcuts

A new component, LXShortcut, is added yesterday.
It’s a small utility used to edit application shortcuts.
Screenshot of LXShortcut in action
Now editing of application shortcuts become quite easy.

8 Replies to “LXShortcut – easy way to edit application shortcuts”

  1. Hello, I think I have compiled it successfully, but I cannot execute it. (When I do Alt+F2 ‘lxshortcut’ appears in the list of programs, but when I press enter nothing happens! I also try it typing lxshortcut in the xterm, but the program doesn’t open)

    For compiled it, I did ./configure; make;make install
    If you can help me to get this work I will appreciate it.
    Thanks!!

    Here are the logs of the xterm (sorry to post this here on the blog, if you want, I can open a thread on the forum):

    neo@linux-q11d:~> su
    Password:
    linux-q11d:/home/neo # cd..
    linux-q11d:/home # cd.
    bash: cd.: command not found
    linux-q11d:/home # cd..
    linux-q11d:/ # cd tmp
    linux-q11d:/tmp # cd lxs
    lxsession-edit-0.1/ lxshortcut-0.1/
    linux-q11d:/tmp # cd lxshortcut-0.1/
    linux-q11d:/tmp/lxshortcut-0.1 # cd lxshortcut-0.1/
    linux-q11d:/tmp/lxshortcut-0.1/lxshortcut-0.1 # ./configure
    checking for a BSD-compatible install… /usr/bin/install -c
    checking whether build environment is sane… yes
    checking for a thread-safe mkdir -p… /bin/mkdir -p
    checking for gawk… gawk
    checking whether make sets $(MAKE)… yes
    checking whether to enable maintainer-specific portions of Makefiles… no
    checking for style of include used by make… GNU
    checking for gcc… gcc
    checking for C compiler default output file name… a.out
    checking whether the C compiler works… yes
    checking whether we are cross compiling… no
    checking for suffix of executables…
    checking for suffix of object files… o
    checking whether we are using the GNU C compiler… yes
    checking whether gcc accepts -g… yes
    checking for gcc option to accept ISO C89… none needed
    checking dependency style of gcc… gcc3
    checking for library containing strerror… none required
    checking for gcc… (cached) gcc
    checking whether we are using the GNU C compiler… (cached) yes
    checking whether gcc accepts -g… (cached) yes
    checking for gcc option to accept ISO C89… (cached) none needed
    checking dependency style of gcc… (cached) gcc3
    checking for gcc… (cached) gcc
    checking whether we are using the GNU C compiler… (cached) yes
    checking whether gcc accepts -g… (cached) yes
    checking for gcc option to accept ISO C89… (cached) none needed
    checking dependency style of gcc… (cached) gcc3
    checking how to run the C preprocessor… gcc -E
    checking for grep that handles long lines and -e… /usr/bin/grep
    checking for egrep… /usr/bin/grep -E
    checking for ANSI C header files… yes
    checking for pkg-config… /usr/bin/pkg-config
    checking pkg-config is at least version 0.9.0… yes
    checking for GTK… yes
    checking for gtk-builder-convert… /usr/bin/gtk-builder-convert
    checking for sys/types.h… yes
    checking for sys/stat.h… yes
    checking for stdlib.h… yes
    checking for string.h… yes
    checking for memory.h… yes
    checking for strings.h… yes
    checking for inttypes.h… yes
    checking for stdint.h… yes
    checking for unistd.h… yes
    checking locale.h usability… yes
    checking locale.h presence… yes
    checking for locale.h… yes
    checking for LC_MESSAGES… yes
    checking libintl.h usability… yes
    checking libintl.h presence… yes
    checking for libintl.h… yes
    checking for ngettext in libc… yes
    checking for dgettext in libc… yes
    checking for bind_textdomain_codeset… yes
    checking for msgfmt… /usr/bin/msgfmt
    checking for dcgettext… yes
    checking if msgfmt accepts -c… yes
    checking for gmsgfmt… /usr/bin/msgfmt
    checking for xgettext… /usr/bin/xgettext
    checking for catalogs to be installed… zh_TW de fi hu
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating src/Makefile
    config.status: creating po/Makefile.in
    config.status: creating config.h
    config.status: executing depfiles commands
    config.status: executing default-1 commands
    linux-q11d:/tmp/lxshortcut-0.1/lxshortcut-0.1 # make install
    Making install in src
    make[1]: Entering directory `/tmp/lxshortcut-0.1/lxshortcut-0.1/src’
    gcc -DHAVE_CONFIG_H -I. -I.. -DPACKAGE_DATA_DIR=\””/usr/local/share”/lxshortcut\
    ” -DPACKAGE_LOCALE_DIR=\””/usr/local/share/locale”\” -pthread -I/usr/include/gtk
    -2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/u
    sr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/
    include/freetype2 -I/usr/include/libpng12 -g -O2 -MT lxshortcut.o -MD -MP –
    MF .deps/lxshortcut.Tpo -c -o lxshortcut.o lxshortcut.c
    lxshortcut.c: In function ‘on_update_preview’:
    lxshortcut.c:64: warning: passing argument 1 of ‘gtk_image_set_from_pixbuf’ from
    incompatible pointer type
    lxshortcut.c:69: warning: passing argument 1 of ‘gtk_image_clear’ from incompati
    ble pointer type
    lxshortcut.c: In function ‘load_themed_icon’:
    lxshortcut.c:99: warning: passing argument 1 of ‘gtk_list_store_append’ from inc
    ompatible pointer type
    lxshortcut.c:100: warning: passing argument 1 of ‘gtk_list_store_set’ from incom
    patible pointer type
    lxshortcut.c:108: warning: passing argument 1 of ‘gtk_icon_view_get_model’ from
    incompatible pointer type
    lxshortcut.c:110: warning: passing argument 1 of ‘gtk_icon_view_set_model’ from
    incompatible pointer type
    lxshortcut.c: In function ‘on_change_icon’:
    lxshortcut.c:131: warning: assignment from incompatible pointer type
    lxshortcut.c:132: warning: assignment from incompatible pointer type
    lxshortcut.c:133: warning: assignment from incompatible pointer type
    lxshortcut.c:134: warning: assignment from incompatible pointer type
    lxshortcut.c:138: warning: passing argument 1 of ‘gtk_window_set_default_size’ f
    rom incompatible pointer type
    lxshortcut.c:139: warning: passing argument 1 of ‘gtk_window_set_transient_for’
    from incompatible pointer type
    lxshortcut.c:139: warning: passing argument 2 of ‘gtk_window_set_transient_for’
    from incompatible pointer type
    lxshortcut.c:143: warning: passing argument 1 of ‘gtk_file_chooser_set_preview_w
    idget’ from incompatible pointer type
    lxshortcut.c:149: warning: passing argument 1 of ‘gtk_file_chooser_add_filter’ f
    rom incompatible pointer type
    lxshortcut.c:158: warning: passing argument 1 of ‘g_thread_pool_new’ from incomp
    atible pointer type
    lxshortcut.c:162: warning: assignment from incompatible pointer type
    lxshortcut.c:165: warning: passing argument 1 of ‘gtk_icon_view_set_pixbuf_colum
    n’ from incompatible pointer type
    lxshortcut.c:166: warning: passing argument 1 of ‘gtk_icon_view_set_item_width’
    from incompatible pointer type
    lxshortcut.c:167: warning: passing argument 1 of ‘gtk_icon_view_set_text_column’
    from incompatible pointer type
    lxshortcut.c:189: warning: passing argument 1 of ‘gtk_dialog_run’ from incompati
    ble pointer type
    lxshortcut.c:193: warning: passing argument 1 of ‘gtk_notebook_get_current_page’
    from incompatible pointer type
    lxshortcut.c:195: warning: passing argument 1 of ‘gtk_icon_view_get_selected_ite
    ms’ from incompatible pointer type
    lxshortcut.c:208: warning: passing argument 1 of ‘gtk_file_chooser_get_filename’
    from incompatible pointer type
    lxshortcut.c: In function ‘on_browse_cmd’:
    lxshortcut.c:233: warning: passing argument 1 of ‘gtk_file_chooser_set_current_f
    older’ from incompatible pointer type
    lxshortcut.c:237: warning: passing argument 1 of ‘gtk_file_chooser_add_filter’ f
    rom incompatible pointer type
    lxshortcut.c:239: warning: passing argument 1 of ‘gtk_dialog_run’ from incompati
    ble pointer type
    lxshortcut.c:241: warning: passing argument 1 of ‘gtk_file_chooser_get_filename’
    from incompatible pointer type
    lxshortcut.c:242: warning: passing argument 1 of ‘gtk_entry_set_text’ from incom
    patible pointer type
    lxshortcut.c: In function ‘main’:
    lxshortcut.c:393: warning: assignment from incompatible pointer type
    lxshortcut.c:394: warning: assignment from incompatible pointer type
    lxshortcut.c:395: warning: assignment from incompatible pointer type
    lxshortcut.c:396: warning: assignment from incompatible pointer type
    lxshortcut.c:397: warning: assignment from incompatible pointer type
    lxshortcut.c:398: warning: assignment from incompatible pointer type
    lxshortcut.c:399: warning: assignment from incompatible pointer type
    lxshortcut.c:400: warning: assignment from incompatible pointer type
    lxshortcut.c:401: warning: assignment from incompatible pointer type
    lxshortcut.c:403: warning: passing argument 1 of ‘gtk_dialog_set_alternative_but
    ton_order’ from incompatible pointer type
    lxshortcut.c:436: warning: passing argument 1 of ‘gtk_image_set_from_pixbuf’ fro
    m incompatible pointer type
    lxshortcut.c:445: warning: passing argument 1 of ‘gtk_entry_set_text’ from incom
    patible pointer type
    lxshortcut.c:457: warning: passing argument 1 of ‘gtk_entry_set_text’ from incom
    patible pointer type
    lxshortcut.c:467: warning: passing argument 1 of ‘gtk_entry_set_text’ from incom
    patible pointer type
    lxshortcut.c:472: warning: passing argument 1 of ‘gtk_toggle_button_set_active’
    from incompatible pointer type
    lxshortcut.c:475: warning: passing argument 1 of ‘gtk_toggle_button_set_active’
    from incompatible pointer type
    lxshortcut.c:480: warning: passing argument 1 of ‘gtk_image_set_from_pixbuf’ fro
    m incompatible pointer type
    lxshortcut.c:483: warning: passing argument 1 of ‘gtk_toggle_button_set_active’
    from incompatible pointer type
    lxshortcut.c:504: warning: passing argument 1 of ‘gtk_entry_get_text’ from incom
    patible pointer type
    lxshortcut.c:507: warning: passing argument 1 of ‘gtk_entry_get_text’ from incom
    patible pointer type
    lxshortcut.c:512: warning: passing argument 1 of ‘gtk_entry_get_text’ from incom
    patible pointer type
    lxshortcut.c:515: warning: passing argument 1 of ‘gtk_entry_get_text’ from incom
    patible pointer type
    lxshortcut.c:517: warning: passing argument 1 of ‘gtk_entry_get_text’ from incom
    patible pointer type
    lxshortcut.c:520: warning: passing argument 1 of ‘gtk_toggle_button_get_active’
    from incompatible pointer type
    lxshortcut.c:521: warning: passing argument 1 of ‘gtk_toggle_button_get_active’
    from incompatible pointer type
    lxshortcut.c:524: warning: passing argument 1 of ‘gtk_toggle_button_get_active’
    from incompatible pointer type
    lxshortcut.c:525: warning: passing argument 1 of ‘gtk_toggle_button_get_active’
    from incompatible pointer type
    mv -f .deps/lxshortcut.Tpo .deps/lxshortcut.Po
    gcc -g -O2 -o lxshortcut lxshortcut.o -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -l
    atk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgm
    odule-2.0 -ldl -lgthread-2.0 -lrt -lglib-2.0
    make[2]: Entering directory `/tmp/lxshortcut-0.1/lxshortcut-0.1/src’
    test -z “/usr/local/bin” || /bin/mkdir -p “/usr/local/bin”
    /usr/bin/install -c ‘lxshortcut’ ‘/usr/local/bin/lxshortcut’
    make[2]: Nothing to be done for `install-data-am’.
    make[2]: Leaving directory `/tmp/lxshortcut-0.1/lxshortcut-0.1/src’
    make[1]: Leaving directory `/tmp/lxshortcut-0.1/lxshortcut-0.1/src’
    Making install in po
    make[1]: Entering directory `/tmp/lxshortcut-0.1/lxshortcut-0.1/po’
    if test -r “.././mkinstalldirs”; then \
    .././mkinstalldirs /usr/local/share; \
    else \
    /bin/sh ../mkinstalldirs /usr/local/share; \
    fi
    installing zh_TW.gmo as /usr/local/share/locale/zh_TW/LC_MESSAGES/lxshortcut.mo
    mkdir -p — /usr/local/share/locale/de/LC_MESSAGES
    installing de.gmo as /usr/local/share/locale/de/LC_MESSAGES/lxshortcut.mo
    mkdir -p — /usr/local/share/locale/fi/LC_MESSAGES
    installing fi.gmo as /usr/local/share/locale/fi/LC_MESSAGES/lxshortcut.mo
    mkdir -p — /usr/local/share/locale/hu/LC_MESSAGES
    installing hu.gmo as /usr/local/share/locale/hu/LC_MESSAGES/lxshortcut.mo
    if test “lxshortcut” = “glib”; then \
    if test -r “.././mkinstalldirs”; then \
    .././mkinstalldirs /usr/local/share/glib-2.0/gettext/po; \
    else \
    /bin/sh ../mkinstalldirs /usr/local/share/glib-2.0/gettext/po; \
    fi; \
    /usr/bin/install -c -m 644 ./Makefile.in.in \
    /usr/local/share/glib-2.0/gettext/po/Makefile.in.in; \
    else \
    : ; \
    fi
    make[1]: Leaving directory `/tmp/lxshortcut-0.1/lxshortcut-0.1/po’
    make[1]: Entering directory `/tmp/lxshortcut-0.1/lxshortcut-0.1′
    make[2]: Entering directory `/tmp/lxshortcut-0.1/lxshortcut-0.1′
    make[2]: Nothing to be done for `install-exec-am’.
    test -z “/usr/local/share/lxshortcut” || /bin/mkdir -p “/usr/local/share/lxshort
    cut”
    /usr/bin/install -c -m 644 ‘data/lxshortcut.ui’ ‘/usr/local/share/lxshortcut/lx
    shortcut.ui’
    /usr/bin/install -c -m 644 ‘data/choose-icon.ui’ ‘/usr/local/share/lxshortcut/c
    hoose-icon.ui’
    make[2]: Leaving directory `/tmp/lxshortcut-0.1/lxshortcut-0.1′
    make[1]: Leaving directory `/tmp/lxshortcut-0.1/lxshortcut-0.1′
    linux-q11d:/tmp/lxshortcut-0.1/lxshortcut-0.1 # make
    make all-recursive
    make[1]: Entering directory `/tmp/lxshortcut-0.1/lxshortcut-0.1′
    Making all in src
    make[2]: Entering directory `/tmp/lxshortcut-0.1/lxshortcut-0.1/src’
    make[2]: Nothing to be done for `all’.
    make[2]: Leaving directory `/tmp/lxshortcut-0.1/lxshortcut-0.1/src’
    Making all in po
    make[2]: Entering directory `/tmp/lxshortcut-0.1/lxshortcut-0.1/po’
    make[2]: Nothing to be done for `all’.
    make[2]: Leaving directory `/tmp/lxshortcut-0.1/lxshortcut-0.1/po’
    make[2]: Entering directory `/tmp/lxshortcut-0.1/lxshortcut-0.1′
    make[2]: Nothing to be done for `all-am’.
    make[2]: Leaving directory `/tmp/lxshortcut-0.1/lxshortcut-0.1′
    make[1]: Leaving directory `/tmp/lxshortcut-0.1/lxshortcut-0.1′
    linux-q11d:/tmp/lxshortcut-0.1/lxshortcut-0.1 #

  2. It’s mainly designed to be called by other LXDE components, and not directly used by the users. If you want to use it manually, see lxshortcut –help.

  3. Hi, Guys!

    I’m very glad that there are some people, who’s writing such perspective thing like LXDE.

    Now, I’m working on creating the dist on Ubuntu with LXDE. The main problem is that LXDE hasn’t still enough GUI for different system tweaks :(.

    So, now about LXshortcut:
    1. Had installed it, I didn’t find any shortcut to load this one. I think shortcut need to be in Desktop context menu, something like new -> shortcut
    2. When you start to add new shortcut, you need to add manually all parameters: text, command, descr, icon. More comfortable would be to type command (ex. “pidgin”) and the program automatically looking for icon, text and descr for this program like it realized in XFCE analog.

  4. This works GREAT. I’m going to try to integrate it into the openbox desktop menu as well as the application launch bar plugin.

  5. great tool! and even more great if this tool can be called from LxPanel for adding command-line launchers instead of having to create them as .desktop files! =)

  6. Can someone create a special kind of shortcut?

    1. If LXDE coexist with Gnome or KDE can we borrow a shortcut for the Trash Can?
    2. Also for CD/DVD and USB mount?

    Come on guys, LXDE it’s so close to become just what we all need!

Comments are closed.