How to move particular system tray icons to the top or left side of the tray
You cannot order system tray icons, to have a specific icon in the location you would prefer, however you can make some change that would help your icon advance in the hierarchy and go closer to this or the other side of the tray. I use Language Indicator to see a flag for the active language instead of the usual initials displayed by Windows. I want the Language Indicator flag to show up before all other icons, if possible, or at least before most of the other icons in the tray. Since Windows does not provide this option, I thought I should learn if there is some order that Windows follows upon loading these icons, in which case I could try to take advantage of that. And there is indeed!
Windows places first in the system tray icons of programs loaded from the Local Machine Run in the registry (at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run). If this location is populated with several programs, perhaps Windows loads first the icon of the program that opens faster, however, all the icons in that location precede icons loaded from Current User Run or the Startup folders of the Start menu.
Therefore, I disabled the auto-run option of Language Indicator in its Settings, then I created a new String in Local Machine Run, I gave it the name “Language Indicator” and the address of the program on my disk as the value, and the next time I started Windows the icon of Language Indicator was promoted! It is not the very first icon in the tray (as I would prefer), but it is now among the very first.
There seem to be exceptions, some programs loading their icons first no matter when and how they start, but in general you can help an icon advance this way. If you know of a better method, drop me a note.