Need some advice on USB headphones, so when students plug it in to a Mac Mini....

steventhemacman
New Contributor III

Hi,

We have some testing next week, and we have a slew of Mac Minis and we just bought USB headphones (with Mics) for the audio part of the test. I have uploaded the .plist (com.apple.audio.DeviceSettings.plist)(com.apple.audio.SystemSettings.plist) after plugging them in and choosing the headphones for output and input. And creating a configuration profile and pushing it out. Didn't work. Just tried sending out the plist files too. Didn't work. It seems to almost be a user setting for the audio too. I log in and set it, then when another person logs in it does not work and they have to go into the system prefs to change it. Any advice?

10 REPLIES 10

dderusha
Contributor

Hi-

try creating the plist in a .DMG and fill user templates and existing users.
profiles work on a system level, and this is a user setting. If you want to profile a user setting, I believe they need to be bound to Active Directory.

steventhemacman
New Contributor III

Good idea, I'll give that a try and let you know...

ahambidge
New Contributor II

@steventhemacman, not to completely disagree with @dderusha (as everyone's experience is different), but you can use profiles on the user level; just change the drop down menu item from "System" to "User" under the "General" tab when you are building your profile in the JSS. At least, I can with v9.22.

That being said, I've had a lot more success in either editing an existing plist or copying my modified plist directly into the user template (/System/Library/CoreServices/User Template<language folder>LibraryPreferences). The plists then get copied into the user's profile on first creation and utilized. If the machines are managed using a drive protection technology, it can be any easy fix. Else, the dmg route that @dderusha suggested would likely be best.

steventhemacman
New Contributor III

Doesn't seem to be working. It is strange, the files that change are in /Library/Preferences/Audio (not the user library). I created a DMG and did fill user template and existing users and still no go. You still have to manually go into system prefs and choose the USB headphones for every user. Frustrating.

steventhemacman
New Contributor III

Just want to clarify what I am doing. I plug in a USB headphone/Mic. It won't work until you go into Sound in the system preferences and choose it for Output and Input. Then it will work for that user automatically when you plug it back in later (only that user). If another user logs in, they have to go to the system preferences again. When I watch with fseventer, the only thing that changes is the plist files in the /Library/Preferences/Audio. Nothing in the local user. I have put them in a DMG as suggested and that did not work. I didnt do the User Template folder because it's not a user setting (well, it is, just not sure how it is working). But I am not an expert by any means.

benleroy
New Contributor II

We struggled with this until finally created an internal Kbase to have students/staff change the setting themselves. By option clicking on the volume icon in the upper bar users can change the sound output device by themselves without elevated access to System Preferences.
external image link

chris_kemp
Contributor III

Here's the thing: The outputs are set in /Library/Preferences/Audio/com.apple.audio.SystemSettings.plist, and are annotated per user via the User ID: you'll see entries for user 501, 502, 503, etc. So assuming users Tom, Dick, and Harry:

Tom sets up USB headphones, his selection is recorded in the array <key>501</key>
Dick uses the optical audio output, his choice is recorded under <key>502</key>
Harry doesn't have headphones/speakers & relies on the internal speaker <key>503</key>

So each of these users has a different audio choice that is recalled when they log back in.

Now, the system records the available device options this way:

<string>AppleHDAEngineOutput:1B,0,1,3:0</string>

with different alphanumeric strings for each AppleHDAEngineOutput, i.e. 1B,0,1,3:0
1B,0,1,4:1
1B,0,1,5:2
(these are taken from my system).

So, I think you'd have to push a file that contained the USB headphone's device string as the default output, and possibly entries selecting it for each possible UID. (Not sure that simply declaring it as default and removing existing user entries would be sufficient, you'd have to test that.)

If you check /Library/Preferences/Audio, you should also see a com.apple.audio.SystemSettings.plist~orig file. This would be a backup of the original settings file, with the basic entries from when the system was first brought online. You could use this, I suppose, replacing the default output with the identifier string of the USB headphones, and see what happens when users are added.

steventhemacman
New Contributor III

Another great idea. I saw that file in there and was not sure how and if I should tinker with it. But your explanation makes sense. I will test some more...Thanks Chris!

joshuasee
Contributor III

When faced with this problem I ended up using SwitchAudioSource and a startup policy/script to set the audio device. It has the advantage that you can address audio devices by their human readable names.

https://code.google.com/p/switchaudio-osx/

Chris_Hafner
Valued Contributor II

... Boy, I hope I don't get flamed on this one. Can't they just hold the option button, click on the "sound" icon and select their new input and output from there. No scripting necessary.