Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

petekjohnson

macrumors member
Original poster
May 24, 2012
67
29
Springfield, MO
I don't like the way Finder shows Devices and Servers. Normally, individual share volumes do not appear AT ALL. You can open Finder preferences and enable or disable "Cloud Storage", "Bonjour Computers" and "Connected servers"

Cloud Storage appears to be where the new FileProvider API will place third-party things like DropBox.

Bonjour Computers lists each HOST it finds with Bonjour AND the Network browser (but NOT individual mounted shares)

Connected servers lists each HOST that you have already mounted at least one volume from AND the Network browser (but NOT individual mounted shares)

What I WANT is for mounted volumes to display in Locations, the same place where internal and external drives are listed. You can MANUALLY add them by dragging them there, but they do not disappear when unmounted. On the one hand, I guess that's not COMPLETELY unwelcome behavior since it makes mounting them later fairly easy. But in my experience they also tend to just disappear randomly so you need to drag them another time.

I would Like it if I could have the Locations area display all internal and external drives, and MOUNTED shares, and show the Network browser for quick access to my servers if i need to mount something down the road, but I do NOT want to have an icon for each HOSE i have something mounted on AT ALL. For whatever reason, choosing one of these is EXTREMELY slow to display it's shares, whereas if you have the volumes in the sidebar from manually dragging, clicking on them displays contents instantly. So having the hosts displayed isnt very convenient as a way to get to already mounted volumes because of the delay. But the only way I can find to keep the Network browser will still list each host whether I want it to or not.

All of this seems to now be governed by SharedFileLists (also known as LSSharedFileList) and are managed at ~/Library/Application Support/com.apple.sharedfilelist, which contains about a dozen .sfl2 files (which are just bog standard plists with a different extension), fir various types of items (FavoriteItems, FavoriteServers, FavoriteVolumes, iCloudItems, NetworkBrowser, ProjectsItems, RecentApplications, RecentDocuments, RecentHosts, RecentServers) along with a folder called ApplicationRecentDocuments in which are individual .sfl2 files for what appear to be all the apps you have ever run or the most recent within an unknown amount of time, but which are how you can "Open Recent" in different apps.

Unfortunately these files are almost impossible to make any sense of. All the keys are $class, NS.keys, NS.objects, and values like NSArray and NSObject. The vast majority of the objects are identified with UUIDs which of course I have no way of identifying. To the extent that I can find something recognizable, like prevoiusly mounted volumes (all kinds: drives and server shares), the only thing for them at all is one entry listing the display name followed by two entries, one of which contains an extremely long string of numbers but is too long to be a UUID, the other is clearly a UUID. Oddly these 3 entries are not nested in any way that you would think linked them together.

The entries that ARE nested all use variables and IDs but I can see stuff referring to Volume Groups, with it is internal or external, ejectable or not, Date last seen, and so forth.

I am not really interested in changing any of that stuff. All I want is mounted shares to display AS VOLUMES in the sidebar, and the Network browser for times when I need to go ahead and mount something else, and NOT the HOSTS themselves because they're not helpful and take up vertical space.

I have been trying to find anything online explaining all of this but so far nothing HELPFUL telling me whether i can even do this or how.

Thoughts??

-Pete
 
I too have been looking for a way to programmatically configure Mac OS finder preferences (e.g. Favorites items and other Finder preferences). The Finder Favorites list seems to be
~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.FavoriteItems.sfl2

I was hoping it would instead be .plist file which I could edit with the defaults command. What are the sfl2 files? Are they some sort of SQLite database?

I've found a post on Reddit where someone has posted a Python script that if I interpret it correctly is reading and writing data to the sfl2 file.


My hope was to use the Ansible community.general.osx_defaults module to configure these and other Mac OS settings.
 
.sfl2 files are literally bot-standard .plists with a different extension. Don't have any idea why. You can open them in any Plist app, however since they are binary by default you will need to switch to another with XML, ASCII or JSON to make heads or tails out of it.

com.apple.LSSharedFileList.FavoriteServers
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>$archiver</key>
<string>NSKeyedArchiver</string>
<key>$objects</key>
<array>
<string>$null</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>13</integer>
</dict>
<key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
<integer>2</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>3</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
<integer>4</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>31</integer>
</dict>
</array>
</dict>
<string>items</string>
<string>properties</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>30</integer>
</dict>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
<integer>5</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>17</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>24</integer>
</dict>
</array>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>13</integer>
</dict>
<key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
<integer>6</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>7</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>8</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>9</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>10</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
<integer>11</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>12</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>14</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>15</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>16</integer>
</dict>
</array>
</dict>
<string>visibility</string>
<string>CustomItemProperties</string>
<string>Name</string>
<string>Bookmark</string>
<string>uuid</string>
<integer>0</integer>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>13</integer>
</dict>
<key>NS.keys</key>
<array/>
<key>NS.objects</key>
<array/>
</dict>
<dict>
<key>$classes</key>
<array>
<string>NSDictionary</string>
<string>NSObject</string>
</array>
<key>$classname</key>
<string>NSDictionary</string>
</dict>
<string>10.0.0.8</string>
<data>
Ym9va3wAAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAIAAAAAQAAAADAwAAAAAAIAgAAAABAQAAMTAuMC4wLjgkAAAA/v///wEA
AAAAAAAAAgAAAAMQAAAQAAAAAAAAABDQAAAEAAAAAAAAAA==
</data>
<string>AD1E58C1-3804-4ADC-9C1D-885556CC098F</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>13</integer>
</dict>
<key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
<integer>6</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>7</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>8</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>9</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>10</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
<integer>11</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>18</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>21</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>22</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>23</integer>
</dict>
</array>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>13</integer>
</dict>
<key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
<integer>19</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
<integer>20</integer>
</dict>
</array>
</dict>
<string>com.apple.LSSharedFileList.OverrideIcon.OSType</string>
<string>srvr</string>
<string>smb://hhm.local</string>
<data>
Ym9va4QAAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAKAAAAAQAAAADAwAAAAAAIA8AAAABAQAAc21iOi8vaGhtLmxvY2FsACQA
AAD+////AQAAAAAAAAACAAAAAxAAABAAAAAAAAAAENAAAAQAAAAAAAAA
</data>
<string>EF8155F1-4C3B-4CFD-829A-6249E4947545</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>13</integer>
</dict>
<key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
<integer>6</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>7</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>8</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>9</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>10</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
<integer>11</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>25</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>27</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>28</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>29</integer>
</dict>
</array>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>13</integer>
</dict>
<key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
<integer>26</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
<integer>20</integer>
</dict>
</array>
</dict>
<string>com.apple.LSSharedFileList.OverrideIcon.OSType</string>
<string>smb://Holiday House Media._smb._tcp.local</string>
<data>
Ym9va6QAAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAASAAAAAQAAAADAwAAAAAAIC0AAAABAQAAc21iOi8vSG9saWRheSUyMEhv
dXNlJTIwTWVkaWEuX3NtYi5fdGNwLmxvY2FsAAAAJAAAAP7///8BAAAAAAAA
AAIAAAADEAAAEAAAAAAAAAAQ0AAABAAAAAAAAAA=
</data>
<string>60F9176D-0D5B-4EA9-AD7B-A37546431181</string>
<dict>
<key>$classes</key>
<array>
<string>NSArray</string>
<string>NSObject</string>
</array>
<key>$classname</key>
<string>NSArray</string>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>13</integer>
</dict>
<key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
<integer>32</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
<integer>33</integer>
</dict>
</array>
</dict>
<string>com.apple.LSSharedFileList.ForceTemplateIcons</string>
<false/>
</array>
<key>$top</key>
<dict>
<key>root</key>
<dict>
<key>CF$UID</key>
<integer>1</integer>
</dict>
</dict>
<key>$version</key>
<integer>100000</integer>
</dict>
</plist>


Now dont ask me how to make much use out of any of that?

-Pete
 
This article provides a good explanation of how to interpret NSKeyedArchiver formatted files (e.g. sfl2). Unfortunately they seem to contain a series of nested data structures (some with proprietary data types) which is by no means easy to make sense of (as you're already aware!). I don't think there is an easy way to read and modify these files/data structures outside of the Mac OS applications that use this data. Maybe someone has created a third party tool?

 
I don't like the way Finder shows Devices and Servers
I have almost given up on the "Locations Section". It is such a higgled-piggled mess with no obvious order with uncoloured icons which are further messed up by Service Station. And that is addition to the issues you raise (which I agree with).

What I am doing now:
1. I have told it not to show internal or external disks in the sidebar.
2. I am using the computer name and icon as the lead in to all disk volumes, network volumes etc. So these are now one level down and not in the sidebar. I mostly use column view.
3. Make more use of the Favorites section for frequently used folders.

Advantages of one level down:
a) the list includes all disk and remote volumes,
b) the list is sortable by kind and/or name,
c) icons are controllable and colourful.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.