Lync 2013 Does Not Maintain IM Window Size Or Position

I am using Windows 7 64-bit and I just upgraded from Lync 2010 to Lync 2013.

In Lync 2010, after you closed an IM, the next IM opened would be the previous IM's size and position. From my experience so far, this is not the case with Lync 2013.

How do I make Lync 2013 save the IM window size and position?


Details that may or may not make a difference:

  1. I have a dual monitor setup and my Lync windows are typically on my 2nd monitor.

  2. With respect to position and size, I usually drag the IM to the top right corner of my 2nd monitor and then resize the bottom of the window by dragging it down and snapping it to the bottom of the monitor.


Solution 1:

We just switched to Lync 2013 at my company and I ran into this issue. I coded a very quick, very basic workaround in AutoHotKey. It will resize (but not move) your chat windows. Recall that this particular bug in Lync 2013 will remember your window position, but not window size.

The default window size is 430x430; this resizes the window to a much roomier 850x600. Feel free to change the size in the script to suit your liking. It only changes the size the first time the window appears. If you proceed to resize the window, the script will not resize the window, nor will it remember the window size after you close it. It will only set the window size the first time the window appears.

If you're unsure how to use AutoHotKey, check their awesome manual.

#Persistent

SetTimer, FixLyncWindow, 500

FixLyncWindow:
{
    IfWinExist, ahk_class LyncConversationWindowClass
    {
        ; First, get the HWND of the window. 
        ; Exit the loop if we have already resized it.

        WinGet, currID, ID
        IfNotExist, c:\temp\%currID%.txt
        {
            ; If we're here, we haven't acted on the window, 
            ; or no HWND file list exists,
            ; which also means we haven't acted on the window.
            ; So, it's finally time to act on the window.

            WinMove, ahk_id %currID%,,,, 850, 600

            ; Now, we add the HWND to the file so we know we've 
            ; already resized that window and we don't continue 
            ; resizing the window every half-second.

            IfNotExist, c:\temp
                FileCreateDir, c:\temp          
            FileAppend,, c:\temp\%currID%.txt
        }
    }

    ; Now, let's check the file directory to see if any of these 
    ; windows don't exist.  If they do not, we can delete the file.

    FileList = 
    test1 =
    Loop, c:\temp\*.*
    {
        SplitPath, A_LoopFileName,,,, myName
        FileList = %FileList%`,%myName%
    }

    Loop, parse, FileList, `,
    {
        If ( "%A_LoopField%" = "" )
            Return      

        IfWinNotExist, ahk_id %A_LoopField%
        {
            FileDelete, c:\temp\%A_LoopField%.txt
        }
    }
    return
}

Solution 2:

This problem has quite a few references found on Google, but for some reason has not made it into the list of Lync 2013 known issues.

There is one workaround posted that worked for some but not for others :

  1. Open several conversations with the tabbed conversation setting turned on.
  2. Move that window to the place you want it to be.
  3. Close the window.
  4. Subsequent windows will open in that position.

You could also have a look at the registry as detailed in Where are Lync Client Settings Stored? and especially the positional parameters :

IMWindowHeight, IMWindowMax, IMWindowRect, IMWindowWidth

Although not much is known about their effect (if any).