StandardDirectories

StandardDirectories

The purpose of this project is to to map the standard Windows directories (My Documents, Desktop, Recycle Bin) to their Unix equivalents ($HOME, Desktop, Trash).

My Documents

This now defaults to $HOME (location can be overriden with winecfg). The Registry-Key is like in Windows: HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal

Desktop

The desktop directory now maps to ~/Desktop if it exists (location can be overriden with winecfg). This works fine for normal files, but .desktop files and .kdelnk files are treated as normal files rather than links.

The Desktop folder is implemented by a COM object in dlls/shell32/shfldr_desktop.c. For extra credit, get it to parse and handle .desktop and .kdelnk files.

File Dialogs

The file dialogs should look a bit more like the Windows ones. My Documents should show up underneath Desktop, for example, even though in the filesystem, the opposite is true. To do that,

  • An implementation of IShellFolder needs to be made for CLSID_MyDocuments.

  • It needs to filter the Desktop folder out of its children, to avoid an infinitely recursing directory listing.
  • CLSID_MyDocuments needs to be added to HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace.

Trash

Same as for Desktop, but to the standard Trash functionality:

StevenEdwards has submitted a patch for this already:

MikoƂajZalewski is also working on this for the SummerOfCode

StandardDirectories (last edited 2008-05-03 02:06:19 by nathan.n)