• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Confusion about System Preferences
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Confusion about System Preferences


  • Subject: Re: Confusion about System Preferences
  • From: Ken Thomases via Cocoa-dev <email@hidden>
  • Date: Thu, 9 Jul 2020 04:25:25 -0500

On Jul 9, 2020, at 3:41 AM, Gabriel Zachmann via Cocoa-dev
<email@hidden> wrote:
>
> I am confused about the way system preferences are organized (or preferences
> in general).
>
> I read the man page of defaults(1), but it is still unclear to me what happens
> when I do, for instance,
>
>  defaults -currentHost read com.apple.screensaver idleTime
>
> as opposed to
>
>  defaults read com.apple.screensaver idleTime
>
> I get different results in the two cases.
> Yet, the System Preferences GUI shows me only the value I get from
> "currentHost",
> and that is also the idle time after which the screensaver on my laptop gets
> launched by macOS,
> so it seems to be he only value I should care about.
>
> So, what is the significance of the value of the version without
> "currentHost" ?
> When is it important?

Basically, it's not important.  Something or someone erroneously set that
preference in a non-host-specific domain, but nothing uses that
non-host-specific value.  (For example, somebody may have issued the command
"defaults write com.apple.screensaver idleTime -int 5", unwittingly leaving out
"-currentHost".)

It would be used as a fallback if there were no host-specific setting, as part
of the normal search path.  However, it's not normally set in a
non-host-specific domain, at all.


In general, preferences are organized in a hierarchy of domains, from most
specific to least specific.

1

Current User

Current Application

Current Host

2

Current User

Current Application

Any Host

3

Current User

Any Application

Current Host

4

Current User

Any Application

Any Host

5

Any User

Current Application

Current Host

6

Any User

Current Application

Any Host

7

Any User

Any Application

Current Host

8

Any User

Any Application

Any Host


In most cases, an app will set a preference in the Current User, Current
Application, Any Host domain.  Generally, an app will search for a preference
in the domains in the order listed, using the first one it finds.  (The APIs do
the searching for the app.  The app simply doesn't override that standard
behavior most of the time.)

However, in certain situations, it makes more sense for the app to set the
preference for the Current Host, not Any Host.  For example, consider a
network-mounted home folder that a user may use from a variety of different
Macs.  Because different Macs may have different power constraints (battery vs.
plugged in) or privacy concerns (public vs. private), they may want the screen
saver to kick in after different intervals on different hosts.  So, the screen
saver idle time is stored per-host.  That choice is entirely up to the software
which stores the preference value, usually the Desktop & Screen Saver pane of
System Preferences.

There's nothing preventing other code from setting the value in other domains
(except that it requires admin privileges to set a preference for Any User).
Whether that value gets used in actuality depends on the search path and the
presence or absence of values set earlier in the search.

Regards,
Ken

_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

References: 
 >Confusion about System Preferences (From: Gabriel Zachmann via Cocoa-dev <email@hidden>)

  • Prev by Date: Confusion about System Preferences
  • Next by Date: Re: Confusion about System Preferences
  • Previous by thread: Confusion about System Preferences
  • Next by thread: Re: Confusion about System Preferences
  • Index(es):
    • Date
    • Thread