Skip to content

Enumber/dropdesk

Repository files navigation

English · 中文

Dropdesk

Put any installed app on your desktop — the feature GNOME removed


GNOME dropped the ability to drag an app onto the desktop. Dropdesk brings it back: pick apps from a searchable list and it drops ready-to-run .desktop shortcuts on your desktop — already marked trusted, so no "Allow Launching?" prompt.

The main program is dropdesk.py (GTK 3). Two extras ship alongside it — a yad shell script and a GNOME right-click extension — with the differences spelled out below.

Features

Of the GTK app (dropdesk.py):

  • Searchable app list with 32 px icons, live filtering as you type.
  • Hide system components — a toggle switch next to the search box, on by default. Filters by categories, 30+ filename prefixes and Wine uninstaller entries.
  • Newest first — sorted by .desktop modification time, so apps you just installed are at the top.
  • Already trusted — runs gio set metadata::trusted true, so double-clicking just works instead of nagging.
  • Multi-select with Ctrl; single-instance app.
  • Bilingual UI — follows your system locale (Chinese / English).
  • Finds Flatpak and Snap apps too — it enumerates via Gio.AppInfo.get_all() rather than scanning two fixed directories.
  • Language-independent — the desktop folder comes from GLib.get_user_special_dir(), falling back to xdg-user-dir DESKTOP, so ~/Desktop, ~/桌面, ~/Bureau all work.

Quick install (no sudo)

bash install.sh

Puts a ready-to-run icon on your desktop and in your application menu. No admin password required.

Note: a plain user install runs the program in place, from the folder you cloned into — don't delete or move it afterwards, or the icons will break. Use --prefix if you want the files copied somewhere permanent.

Advanced options
bash install.sh --system            # system-wide (needs admin): /opt + /usr/share
bash install.sh --prefix ~/apps     # copy the program to ~/apps/dropdesk, then make icons
bash install.sh --prefix=~/apps     # same thing, equals-sign form
bash install.sh --no-desktop-icon   # menu entry only
bash install.sh --uninstall         # remove icons / menu entry
bash install.sh --help              # usage

--uninstall only removes what the matching mode installed, so to undo a system install use bash install.sh --system --uninstall. When --prefix or --system is given alongside --uninstall, the copied program directory is deleted too.

Requirements

Python 3 and PyGObject (GTK 3) — shipped by default on most desktop distros. gio (part of GLib's tools) is what marks the shortcut trusted; it is usually already present.

Distro Install if missing
Debian/Ubuntu sudo apt install python3-gi gir1.2-gtk-3.0 xdg-user-dirs libglib2.0-bin
Fedora sudo dnf install python3-gobject gtk3 xdg-user-dirs glib2
Arch sudo pacman -S python-gobject gtk3 xdg-user-dirs glib2

Add yad only if you want the shell version below.

Tested on GNOME/Xorg, but it only uses standard freedesktop paths, so other desktops (KDE, XFCE, Cinnamon…) should work too.

Usage

python3 dropdesk.py

Neither script takes any command-line arguments — everything happens in the GUI. Select one or more apps (Ctrl for multi-select), confirm, and the shortcuts appear on your desktop.

Shell version (optional)

bash dropdesk-yad.sh      # needs `yad`

An independent implementation of the same idea built on yad. It is deliberately simpler, and not feature-equivalent to the GTK app:

dropdesk.py dropdesk-yad.sh
Marks shortcut trusted Yes No — you'll get the "Allow Launching?" prompt once
Sort order Newest installed first Alphabetical by name
App sources All, via Gio.AppInfo (incl. Flatpak/Snap) /usr/share/applications and ~/.local/share/applications only
Hide system components Toggle switch Fixed built-in filter

GNOME right-click extension (optional)

Adds an Add to Desktop item to the right-click menu on icons in the app grid. (The menu text follows your system language, like the rest of the project.)

mkdir -p ~/.local/share/gnome-shell/extensions/add-to-desktop@local
cp gnome-extension/* ~/.local/share/gnome-shell/extensions/add-to-desktop@local/
gnome-extensions enable add-to-desktop@local   # log out and back in

The extension does the same things the main program does: it asks GLib for your real desktop folder (so it works whatever language your system is in), marks the shortcut trusted so there is no "Allow Launching?" prompt, and shows its text in English or Chinese depending on your locale.

Known limitations — this is still the least tested part of the repo:

  • metadata.json declares "shell-version": ["45", "46", "47", "48"]. Only GNOME 46 has actually been tested; the others are declared as compatible but unverified. On a newer release you may need gsettings set org.gnome.shell disable-extension-version-validation true.
  • Unlike the GTK app, it has no app list or search — it only adds the one menu item.

Patches are very welcome.

Notes

  • GLib.set_prgname('dropdesk') and Gdk.set_program_class('dropdesk') are called at startup: without them the taskbar shows "python3" and the window does not match the StartupWMClass=dropdesk in the .desktop file, so the icon would not be associated.
  • The GTK window is titled Dropdesk · ENum.
  • GNOME distrusts manually copied .desktop files; gio set <file> metadata::trusted true fixes it and the GTK app does this for you.

Help wanted

Honestly, I'm not an expert — I wrote this small tool because I was annoyed that GNOME wouldn't let me put icons on the desktop. The code is rough and the system-app filter rules are largely guesswork. Bug reports, feature requests, better approaches and PRs are very welcome. 🙂


License

GPL-3.0 — see LICENSE. Copyright (c) 2026 ENum.

This program 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 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but without any warranty.

In short: use it, change it, share it — but if you distribute a modified version, that version has to stay open under the GPL too.

About

Put any installed app back on your GNOME desktop — the feature GNOME removed. Pre-trusted shortcuts, no sudo. 一键把应用放到桌面

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors