Configurable desktop items for sysadmins

View: New views
8 Messages — Rating Filter:   Alert me  

Configurable desktop items for sysadmins

by Federico Mena Quintero :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

[Re-sending from the correct address; sorry if you get a duplicate]

Hi, all,

A while ago, during the development of openSUSE 11.1, I wrote an
extensive patch for Nautilus to let a system administrator set up
desktop icons which would show up in users' desktops.

I can't find anything on the mailing list archives related to this, nor
in my Sent folder, so I guess I only talked to this to Alex on IRC.

The idea is this:

You are a system administrator, and you would like to populate your
users' desktops with some icons:  a link to the helpdesk, or some
commonly-used template documents used in your site, or something like
that.

My implementation works like this:

1. The sysadmin sets the /apps/nautilus/desktop/predefined_items_dir key
in GConf to point to a directory.  Nautilus will see what files are in
that directory, and it will show them as icons in users' desktops.

2. Users see the desktop items and can manipulate them as usual, except
that some of them may not be removable.

3. If the sysadmin drops a .desktop file in the predefined_items_dir,
then that file may have an "X-XDG-Is-Mandatory" boolean key.  If it is
true, then the user cannot remove that item.  If it is false, the idea
was that the user could hide that item away from his normal view, and
show it again if he turns on "Show hidden files".

My implementation's policy was biased towards the sysadmin - items are
mandatory by default, and you have to make them non-mandatory
explicitly.  Alex wasn't happy about this, if I remember correctly.
Fortunately, that's easy to change.

Anyway --- my old code for this is here:
http://gitorious.org/nautilus/nautilus - look for the branch called
"sysadmin-desktop-items-opensuse".

I am not happy at all about the code in there, though.  My idea was to
turn NautilusDesktopDirectory into something like
NautilusMergedDirectory, which would combine the contents of ~/Desktop
and the directory which the sysadmin had configured.  This proved to be
rather hard, and the branch in that repository reflects that; there are
a lot of fixes and general cruft that I haven't cleaned up yet.

I just wonder if this is something that people generally want.  If so, I
can rebase the code to a recent version of Nautilus and try to clean it
up.  I'm also wondering if there is an easier way to "merge" the
sysadmin directory into the desktop directory.

  Federico

--
nautilus-list mailing list
nautilus-list@...
http://mail.gnome.org/mailman/listinfo/nautilus-list

Re: Configurable desktop items for sysadmins

by A. Walton-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, Sep 8, 2009 at 5:22 PM, Federico Mena
Quintero<federico@...> wrote:

> [Re-sending from the correct address; sorry if you get a duplicate]
>
> Hi, all,
>
> A while ago, during the development of openSUSE 11.1, I wrote an
> extensive patch for Nautilus to let a system administrator set up
> desktop icons which would show up in users' desktops.
>
> I can't find anything on the mailing list archives related to this, nor
> in my Sent folder, so I guess I only talked to this to Alex on IRC.
>
> The idea is this:
>
> You are a system administrator, and you would like to populate your
> users' desktops with some icons:  a link to the helpdesk, or some
> commonly-used template documents used in your site, or something like
> that.
>
> My implementation works like this:
>
> 1. The sysadmin sets the /apps/nautilus/desktop/predefined_items_dir key
> in GConf to point to a directory.  Nautilus will see what files are in
> that directory, and it will show them as icons in users' desktops.
>
> 2. Users see the desktop items and can manipulate them as usual, except
> that some of them may not be removable.
>
> 3. If the sysadmin drops a .desktop file in the predefined_items_dir,
> then that file may have an "X-XDG-Is-Mandatory" boolean key.  If it is
> true, then the user cannot remove that item.  If it is false, the idea
> was that the user could hide that item away from his normal view, and
> show it again if he turns on "Show hidden files".
>
> My implementation's policy was biased towards the sysadmin - items are
> mandatory by default, and you have to make them non-mandatory
> explicitly.  Alex wasn't happy about this, if I remember correctly.
> Fortunately, that's easy to change.
>
> Anyway --- my old code for this is here:
> http://gitorious.org/nautilus/nautilus - look for the branch called
> "sysadmin-desktop-items-opensuse".
>
> I am not happy at all about the code in there, though.  My idea was to
> turn NautilusDesktopDirectory into something like
> NautilusMergedDirectory, which would combine the contents of ~/Desktop
> and the directory which the sysadmin had configured.  This proved to be
> rather hard, and the branch in that repository reflects that; there are
> a lot of fixes and general cruft that I haven't cleaned up yet.
>
> I just wonder if this is something that people generally want.  If so, I
> can rebase the code to a recent version of Nautilus and try to clean it
> up.  I'm also wondering if there is an easier way to "merge" the
> sysadmin directory into the desktop directory.
>

I can see where the idea comes from, and it's sane from a syadmin's view,
but from the user's point of view, it's quite evil, especially when it creates
things that cannot be removed (easily or otherwise). It's also very complicated
to maintain, as noted in your mail. To date, it's generally policy to turn down
changes like this. For reference: the global templates directory debate.

Perhaps there's a non-Nautilus solution to the problem, a one-shot program
that creates the links at startup if they don't exist, and watches to see
if the user deletes them (or has some preference somewhere to have
the program delete them and not respawn them later).

The proposed solution only services the people who actually need this
capability and doesn't drive users crazy by creating unavoidable clutter
(and prevents distributions/OEMs from shipping tons of likewise
'undestroyable' desktop links and spares us getting bugs about not being
able to delete files from the Desktop).

-A. Walton

>  Federico
>
> --
> nautilus-list mailing list
> nautilus-list@...
> http://mail.gnome.org/mailman/listinfo/nautilus-list
--
nautilus-list mailing list
nautilus-list@...
http://mail.gnome.org/mailman/listinfo/nautilus-list

Re: Configurable desktop items for sysadmins

by Federico Mena Quintero :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, 2009-09-08 at 17:58 -0400, A. Walton wrote:
> I can see where the idea comes from, and it's sane from a syadmin's view,
> but from the user's point of view, it's quite evil, especially when it creates
> things that cannot be removed (easily or otherwise).

The implementation I have is indeed biased towards the sysadmin, but
this is mostly trivial to change (a tweak in the
predefined_file_should_override_user_file() function).  I'm quite happy
to change it to be biased towards users.

My idea was this:

1. .desktop files in the directory pointed
by /apps/nautilus/desktop/predefined-items-dir are scanned to see if
they have an X-XDG-Is-Mandatory key.  If they don't have one, they are
not mandatory.

2. Those files get shown in users' desktops.

3. If a user says "hide this file", then we do the following.  First,
copy the .desktop file to ~/Desktop.  Second, write a key
"X-XDG-Is-Hidden = true" to that file.  Files that have that key are not
shown (unless you do Show Hidden Files).

4. If a file in the sysadmin dir has the same name as one in ~/Desktop
*and* the sysadmin's file is newer than the user's, then the sysadmin's
file gets shown again.  This lets the sysadmin update his preconfigured
files and users will see the changes; they of course have the option of
hiding any file again.

(3) is unfortunately not implemented yet in my patchset, but it
shouldn't be hard to do.

One major missing thing from my code is that ou can't drag a mandatory
icon to another position.  The "drag an icon" machinery sees that the
icon comes from a sysadmin-owned directory, and thinks that the file is
read-only and cannot be moved.  I haven't hunted down exactly how this
happens, to see if the "drag an icon" code needs a special case for the
desktop directory, or something like that.

  Federico

--
nautilus-list mailing list
nautilus-list@...
http://mail.gnome.org/mailman/listinfo/nautilus-list

Re: Configurable desktop items for sysadmins

by Alexander Larsson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tue, 2009-09-08 at 16:22 -0500, Federico Mena Quintero wrote:
> [Re-sending from the correct address; sorry if you get a duplicate]
>
> Hi, all,
>
> A while ago, during the development of openSUSE 11.1, I wrote an
> extensive patch for Nautilus to let a system administrator set up
> desktop icons which would show up in users' desktops.

There are are a variety of interconnected reason why I don't like this.
Let me try to factor them out:

First of all, the intended usecase of the desktop is to be a "work
area", where you put stuff you are currently working on (much like an
rea-life desktop). As such, any unnecessary icons we put there make
this smaller and less useful to users.

It seems to me that in most cases what people want to do is put links or
application launchers on the desktop. (I guess since windows does this?)
This has two negative aspects wrt the mental model of how the gnome
desktop works. First of all it makes people think the desktop is made
for putting links at, which will cause them to not be able to use it
efficiently as a staging area for current files. Secondly, there is an
intended way that application launchers and file bookmarks are designed
to work in the gnome desktop, and putting stuff on the desktop is not
it. So, people may get confused as how these things are supposed to
work.

I fear that if we make it easy to get stuff on the users desktop, then
applications (rather than sysadmins) will take advantage of this and put
crap on the desktop, just like they do on windows. We all know what this
has lead to on windows, with microsoft being forced to add magic dialog
asking you if you want to remove unused desktop links, etc.

The desktop is a very important part of how the user interacts and works
with the computer. Having things there that are non-removable is very
user-unfriendly and will cause much irritation. I understand that there
are some special ("enterprise") cases where we want to lock down things,
and we should consider that, but generally we should try to be on the
side of the user.

In Gnome 3.0 we will move to gnome-shell rather than the current setup.
The exact role of nautilus in this has not been finalized, but in talks
I have had with the gnome-shell people it seems likely that we won't
have the desktop as it currently stands, but rather some kind of file
staging area that can be part of e.g. the sidebar and pulled out on
demand, or something like that. So, if we add this now then it risks
being obsolete soon anyway.

That said, I know we got a lot of demands for this from some directions.
I think we need to go back to them and try to understand exactly what
they want to use this for, and why the current methods of e.g. bookmarks
and application launching is not good enough for them. Maybe they have
some interesting usecases that we could solve generically in a better
way?


--
nautilus-list mailing list
nautilus-list@...
http://mail.gnome.org/mailman/listinfo/nautilus-list

Parent Message unknown Fwd: Configurable desktop items for sysadmins

by bogdanb :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

---------- Forwarded message ----------
From: Bogdan Butnaru <bogdanb@...>
Date: Thu, Sep 17, 2009 at 11:14 AM
Subject: Re: Configurable desktop items for sysadmins
To: Alexander Larsson <alexl@...>


On Wed, Sep 16, 2009 at 10:15 AM, Alexander Larsson <alexl@...> wrote:
> That said, I know we got a lot of demands for this from some directions.
> I think we need to go back to them and try to understand exactly what
> they want to use this for, and why the current methods of e.g. bookmarks
> and application launching is not good enough for them. Maybe they have
> some interesting usecases that we could solve generically in a better
> way?

I've got exactly two use cases for which such a feature would have been useful:

1) My family (no familiarity with computers)
2) Guest users (no familiarity with Ubuntu)

In both cases, though for different reasons, their way of using the
computer is extremely different from mine. While all that
desktop-as-workspace concept applies well enough to me, it doesn't to
the cases above. Other people usually need to use my computer for
simple things: browse the web, check e-mail or chat a bit, and maybe
read or print a document. For anything more complex, they'd ask me to
do it, and I'd use my own account. Also, such users have no
familiarity with Ubuntu or Linux (e.g., position of menus), and
sometimes even with the concept of menu (e.g., my mom).

For these situations I've often wanted a way to create a “default”
account with a handful of big, commonly-used icons (e.g., a link to
Firefox named just “Internet” in big, friendly letters). For my
parents I had to do it by hand, but it's annoying enough that I can't
do it for more people.

-- Bogdan Butnaru
--
nautilus-list mailing list
nautilus-list@...
http://mail.gnome.org/mailman/listinfo/nautilus-list

Parent Message unknown Re: Configurable desktop items for sysadmins

by bogdanb :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I prefer them on the desktop because they're bigger, and for most of
my users at least one of these is true: (1) they don't see very well,
or (2) the concept of “panel” is very unfamiliar.

Since the audience is very non-technical, metaphors need to conform to
real-life better: important things are big and separated. Accessing
all the important (for them) functions of a computer through a few
tiny icons near a corner is not intuitive. Choosing what they need
from a few big (scaled) icons on the desktop with descriptive names is
easier.

Having them undeletable (even fixed in position) I conjecture would be
useful because of the many cases I've encountered where users come to
me for help because they lost an app, or several. It was always just a
case of accidentally dragging them somewhere out of view, in a folder
or recycle bin. This is also a failure of the metaphor:
low-on-computer-skills users don't expect that big concepts as a
browser should be as easy to move and loose like a file, just as you
can't usually misplace your TV...

However, one of your earlier comments is relevant: gnome-shell will
probably be easier to adapt for this kind of users.

-- Bogdan Butnaru

On Thu, Sep 17, 2009 at 2:54 PM, Alexander Larsson <alexl@...> wrote:

>
> Why do you need these on the desktop though, gnome generally puts
> launcher shortcuts on the panel. Also, do you need them to be
> undeletable?
>
> Also, can't you just put the link in /etc/skel ?
>
> On Thu, 2009-09-17 at 11:14 +0200, Bogdan Butnaru wrote:
>> On Wed, Sep 16, 2009 at 10:15 AM, Alexander Larsson <alexl@...> wrote:
>> > That said, I know we got a lot of demands for this from some directions.
>> > I think we need to go back to them and try to understand exactly what
>> > they want to use this for, and why the current methods of e.g. bookmarks
>> > and application launching is not good enough for them. Maybe they have
>> > some interesting usecases that we could solve generically in a better
>> > way?
>>
>> I've got exactly two use cases for which such a feature would have been useful:
>>
>> 1) My family (no familiarity with computers)
>> 2) Guest users (no familiarity with Ubuntu)
>>
>> In both cases, though for different reasons, their way of using the
>> computer is extremely different from mine. While all that
>> desktop-as-workspace concept applies well enough to me, it doesn't to
>> the cases above. Other people usually need to use my computer for
>> simple things: browse the web, check e-mail or chat a bit, and maybe
>> read or print a document. For anything more complex, they'd ask me to
>> do it, and I'd use my own account. Also, such users have no
>> familiarity with Ubuntu or Linux (e.g., position of menus), and
>> sometimes even with the concept of menu (e.g., my mom).
>>
>> For these situations I've often wanted a way to create a “default”
>> account with a handful of big, commonly-used icons (e.g., a link to
>> Firefox named just “Internet” in big, friendly letters). For my
>> parents I had to do it by hand, but it's annoying enough that I can't
>> do it for more people.
--
nautilus-list mailing list
nautilus-list@...
http://mail.gnome.org/mailman/listinfo/nautilus-list

Re: Configurable desktop items for sysadmins

by Federico Mena Quintero :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed, 2009-09-16 at 10:15 +0200, Alexander Larsson wrote:

> First of all, the intended usecase of the desktop is to be a "work
> area", where you put stuff you are currently working on (much like an
> rea-life desktop). As such, any unnecessary icons we put there make
> this smaller and less useful to users.

For the record, let me state that I don't find the desktop very useful,
even as a staging area.  It's always hidden behind other windows!  But
anyway :)

> I fear that if we make it easy to get stuff on the users desktop, then
> applications (rather than sysadmins) will take advantage of this and put
> crap on the desktop, just like they do on windows.

One of the nice things about the way I implemented it is that
applications don't really know where the "sysadmin directory" is, at
least at installation time.  They'd have to read
the /apps/nautilus/desktop/predefined-items-dir key and write their crap
there.  It's not like they can just drop stuff in a well-known,
hard-coded location and have it appear in every user's desktop.

If apps try to do this at runtime, they won't be able to write to that
directory, as it's not owned by the user.

> In Gnome 3.0 we will move to gnome-shell rather than the current setup.
> The exact role of nautilus in this has not been finalized, but in talks
> I have had with the gnome-shell people it seems likely that we won't
> have the desktop as it currently stands, but rather some kind of file
> staging area that can be part of e.g. the sidebar and pulled out on
> demand, or something like that. So, if we add this now then it risks
> being obsolete soon anyway.

Yeah, we yet have to see what gnome-shell will bring in this area.
"Launching stuff" is one of its main functions, so I would expect it to
have something to let sysadmins create customized environments for their
installations.

I basically had only a couple of use cases for the sysadmin-defined
icons:

- The two or three apps that limited workstations use.  I've seen way
too many shops that have a custom point-of-sale system under Windows,
that crashes reasonably often, and the clerks have a hard time launching
again.  If they have a "POS app" icon in the desktop, that's pretty much
the only thing outside the POS system itself that they know how to use.
While it may be possible for sysadmins to configure .desktop files in
menu items, those are not toplevel items and users actually have to go
and hunt them down.

- Links to company-wide network shares; those are always in
impossible-to-remember paths.  Right now it's not possible to define
bookmarks for all users, I think.

Those would work pretty nicely as desktop icons in the current scheme of
things (my complaints about the desktop-hidden-behind-windows
notwithstanding).  I'm not thinking of this as general use cases, but
just for limited, restricted scenarios like point-of-sale systems,
clerks, etc.

  Federico

--
nautilus-list mailing list
nautilus-list@...
http://mail.gnome.org/mailman/listinfo/nautilus-list

Re: Configurable desktop items for sysadmins

by Alexander Larsson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, 2009-10-05 at 19:53 -0500, Federico Mena Quintero wrote:

> On Wed, 2009-09-16 at 10:15 +0200, Alexander Larsson wrote:
>
> > First of all, the intended usecase of the desktop is to be a "work
> > area", where you put stuff you are currently working on (much like an
> > rea-life desktop). As such, any unnecessary icons we put there make
> > this smaller and less useful to users.
>
> For the record, let me state that I don't find the desktop very useful,
> even as a staging area.  It's always hidden behind other windows!  But
> anyway :)
>
> > I fear that if we make it easy to get stuff on the users desktop, then
> > applications (rather than sysadmins) will take advantage of this and put
> > crap on the desktop, just like they do on windows.
>
> One of the nice things about the way I implemented it is that
> applications don't really know where the "sysadmin directory" is, at
> least at installation time.  They'd have to read
> the /apps/nautilus/desktop/predefined-items-dir key and write their crap
> there.  It's not like they can just drop stuff in a well-known,
> hard-coded location and have it appear in every user's desktop.
>
> If apps try to do this at runtime, they won't be able to write to that
> directory, as it's not owned by the user.
>
> > In Gnome 3.0 we will move to gnome-shell rather than the current setup.
> > The exact role of nautilus in this has not been finalized, but in talks
> > I have had with the gnome-shell people it seems likely that we won't
> > have the desktop as it currently stands, but rather some kind of file
> > staging area that can be part of e.g. the sidebar and pulled out on
> > demand, or something like that. So, if we add this now then it risks
> > being obsolete soon anyway.
>
> Yeah, we yet have to see what gnome-shell will bring in this area.
> "Launching stuff" is one of its main functions, so I would expect it to
> have something to let sysadmins create customized environments for their
> installations.
>
> I basically had only a couple of use cases for the sysadmin-defined
> icons:
>
> - The two or three apps that limited workstations use.  I've seen way
> too many shops that have a custom point-of-sale system under Windows,
> that crashes reasonably often, and the clerks have a hard time launching
> again.  If they have a "POS app" icon in the desktop, that's pretty much
> the only thing outside the POS system itself that they know how to use.
> While it may be possible for sysadmins to configure .desktop files in
> menu items, those are not toplevel items and users actually have to go
> and hunt them down.

Yes, this seems reasonable. But in such a setup maybe its not that hard
to just add the links in the skel user and make them undeletable (chmod
a-w)?

> - Links to company-wide network shares; those are always in
> impossible-to-remember paths.  Right now it's not possible to define
> bookmarks for all users, I think.

There is a lot of work outstanding on the bookmarks stuff (see
discussions between me and davidz on this) and how it should interact
nicely with mounted network shares. I think this is a better approach
than hardcoding something like this to just a desktop icon.


--
nautilus-list mailing list
nautilus-list@...
http://mail.gnome.org/mailman/listinfo/nautilus-list