Page MenuHomeSolus

Call To Action: Improving Desktop Actions Support
Closed, ResolvedPublic



With the upcoming addition of new popover functionality in Budgie, we're going to be exposing desktop actions to our users whenever they right click on an application in the IconTasklist. For those that are not aware, desktop actions defined by the FreeDesktop Desktop Entry Specification are "additional way(s) to invoke the application". However, not all applications shipped in the Solus repository support desktop actions, or have an updated desktop file which exposes application functionality.

Ideally, we should be exposing common / frequently used desktop actions to our users whenever possible to improve the overall accessibility of Budgie and these applications as a whole.


For example, the GNOME Terminal which we currently ship (3.28.2) did not have a desktop file which supported two commonly used functions which gnome-terminal provided, --new-window (for launching a new window) and --new-tab (for making a new tab in the last used instance). So a modification was made to their desktop file to support this, see R1006:87c64ca7ac30c536821cd2b023dab2aa8575c769. Now with the new popover (and new GNOME Terminal update), you'll see "New Tab" and "New Window".

Another example would be our Solus Software Center, which ships which a --update-view flag however did not ship with a desktop file that supported such action. As a result, I pushed a commit to add this support and subsequently updated the Solus SC package. Now with this change, you'll always have a way to quickly access the Updates view!

How You Can Help

  1. In some cases, adding support for desktop actions may be as simple as updating the desktop file to have Desktop Actions listed. If you use an application with command-line arguments for accessing specific, frequently used UI views (such as updates), common actions (like a new window, new tab, "create a post" in a social media app, etc.), I'd encourage you to check the upstream project to see if there is any support added in their desktop files for actions.
    1. If not, you should ideally do one of (or all of) the following:
      1. File a bug with the upstream project on adding Desktop Actions support in their desktop file. Please do not do this if the app itself doesn't support going to a specific view, like updates, but rather encourage the upstream to add support for that in.
      2. Provide a patch to the upstream project for the updated desktop file. I'd encourage you to maintain focus on the scope and not broaden to configuration-at-runtime options, e.g. --dry-run or enabling some random GL mode for a video app. Too many options is a thing. Furthermore, desktop actions Name= has locale support so you can do stuff like Name[fi] or Name[ca@valencia], so if you provide a patch and you're not a native English speaker, you should immediately include your translation too!
      3. Provide us a patch following our packaging documentation to add this support in. This can be done after the upstream adds support in, or if the upstream is not responsive then create an [RFC] (request for comment) patch with the support added. Please use the Needing Desktop Actions tag.
    2. If there is support already in this application upstream, but not in our package, check if we have an outdated version of this package, or if the support was added after the most recent stable release. File a bug on our development tracker for this support to be added and I will investigate. Please use the Needing Desktop Actions tag and reference the task here!
  2. For more complex cases (and likely more common) that involve modification / adding of new code to a project (such as implementing the ability to go to a specific view), I'd encourage you to do one of (or all of) the following:
    1. File a bug with the upstream project on adding in the ability to go to that specific view, or exposing a command-line flag for performing a common action, such as "opening the view to write a social media post".
    2. If you have the technical ability, provide a patch to the upstream project. Please do not submit the patch to us, we want to improve the experience for all Linux users, especially those using Budgie on other operating systems.

Remember, filing bugs is something anybody can do. You don't need technical experience to request developers provide more functionality for their application. If their project is on GitHub, you can always ping me on GitHub by referencing me, with @JoshStrobl. You're also welcome to reference this task.

Regardless of whether or not you have some programming experience, this provides a great opportunity to start getting involved in the projects that develop the software you love (if you haven't already)!

Event Timeline

JoshStrobl triaged this task as High priority.Dec 5 2018, 9:30 PM
JoshStrobl created this task.
JoshStrobl moved this task from Backlog to Improvement on the Software board.
JoshStrobl updated the task description. (Show Details)Dec 5 2018, 9:54 PM
JoshStrobl updated the task description. (Show Details)Dec 5 2018, 9:59 PM
JoshStrobl updated the task description. (Show Details)Dec 5 2018, 10:08 PM
JoshStrobl updated the task description. (Show Details)Dec 5 2018, 10:44 PM
JoshStrobl updated the task description. (Show Details)Dec 5 2018, 10:49 PM
JoshStrobl updated the task description. (Show Details)
JoshStrobl updated the task description. (Show Details)Dec 6 2018, 1:56 AM
Jacalz awarded a token.Dec 6 2018, 7:05 AM
Unknown Object (User) added a subscriber: Unknown Object (User).Dec 8 2018, 10:23 PM
Herald mentioned this in Unknown Object (Maniphest Task).Aug 10 2019, 8:55 AM
DataDrake closed this task as Resolved.Feb 21 2022, 4:34 PM
DataDrake claimed this task.
DataDrake added a subscriber: DataDrake.

I think this has been more or less worked through at this point.