Specifying sensible device types to use an application on in the desktop file

Guido Günther agx at sigxcpu.org
Sun Oct 18 13:08:44 UTC 2020

Hi Bastien,
On Thu, Oct 15, 2020 at 02:40:50PM +0200, Bastien Nocera wrote:
> On Fri, 2020-10-09 at 17:55 +0200, Guido Günther wrote:
> > Hi,
> > On Fri, Oct 09, 2020 at 05:08:10PM +0200, piegames wrote:
> > > So the main motivation for this is to *hide elements* from the
> > > menu? As
> > > in, if I unplug the keyboard I cannot find some apps in the
> > > launcher
> > > any more? That sounds arbitrary and frustrating IMO. But I don't
> > > really
> > > understand the point of this feature. What will it bring to the
> > > users?
> > 
> > Not necessarily hiding permanently but rather sorting or showing with
> > proper priority (e.g. on search).
> > 
> > E.g There's no point in having kicad, gimp, libreoffice, inkscape,
> > freecad, gnumeric, ... in a prominent place on a phone when no large
> > screen is attached. It's busywork for the user to have them sort that
> > out
> > by arranging apps manually when the shell can sort applications
> > properly
> > into a 'fits the current device mode' and 'all apps' tabs.
> I don't see how this would be implemented. Right now, it's unclear what
> makes a phone, which peripherals need to be plugged in and enabled to
> make it not a phone anymore. Is a tablet with a keyboard a laptop? Is a
> large phone with a keyboard a laptop? Is a small tablet with a mouse a
> laptop?

If we go by device types (rather than specifying screen resolution and
required/supported input hardware) we'd need clear definitions for all
device types (as mentioned in

> I think that if the user installs KiCad, LibreOffice, or VSCode on a
> phone, they'll likely put it somewhere in the launchers where it
> doesn't get in the way of their normal usage.

Given the amount of application that is not something i would like to do
manually for all applications. I could imagine doing something like:
`Adpaptive=phone;desktop;` as a *hint* to the shell/lanuncher/desktop
environment so it can build different tabs/drawers per device type and
order them accordingly based on detected hardware while what is in the
appstream metadata is the detailed set of requirements.

> There's already a "control" section in appstream:
> https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-requires-recommends-control
> Maybe that's the data you're looking for?

That's part of it yes, the other part is screen size and resolution
which isn't there yet

 -- Guido

More information about the xdg mailing list