Skype Tamer
I use Skype very regularly in my work as a primary phone from my laptop. As great as it is for a small business owner, Skype has a number of "features" that drive me nuts. Enter Autohotkey.
It's nothing particularly sophisticated, but so far this script does the following (Windows client v.6.10.59.104):
1. Reduces the size of the main Skype client window as much as possible, and pins it to the lower right of the screen.
2. Limits to one conversation window open at a time, removing the bottom/oldest instance whenever a new one is spawned. Normally, Skype will open a new window every time a call is initiated, and doesn't close it when the call is done, often leaving many windows to clean up later.
3. When a conversation window is open, pins it to the upper right of the screen. Otherwise, Skype spawns each new window at a random screen location.
4. When a call is active, Tamer attempts to spawn the mini mute/hangup control automatically. When it spawns, it is relocated to the top center of the screen, set to always-on-top and with a partial transparency.
5. I use two different popular call recording apps. They both get moved out of the way when they spawn windows.
6. The annoying call quality questionnaire popup is killed as soon as it appears.
I'm using it on Windows 7, and it's primarily designed for laptop users with limited screen space, but who use Skype heavily. The script runs in the background and leashes Skype's behavior as it happens.
I'm aware it's still somewhat crude, so I'd love suggestions for improvement. Thanks!
; ; Skype Tamer ; #Persistent SetTimer, Skype_Clean, 200 Return ; ------ ------ ------ Skype_Clean: Max_Wins = 1 ; maximum # of Skype call windows open at one time SetTitleMatchMode, 2 WinGet, num, count, ahk_class TConversationForm if (num > Max_Wins) { WinGet, id, list, ahk_class TConversationForm v := id%id% winclose, ahk_id %v% num -= 1 } if (num = 1) { ; pin skype conversation window to upper right WinGetPos, X, Y, W, H, ahk_class TConversationForm NewX := A_ScreenWidth - W WinMove, ahk_class TConversationForm,, NewX, 0 } ; pin skype main to bottom right and reduce size to minimum WinGetPos, X, Y, W, H, ahk_class tSkMainForm NewX := A_ScreenWidth - W NewY := A_ScreenHeight - H WinMove, ahk_class tSkMainForm,, NewX, NewY, 0, 0 ; whenever skype is on a call, bottom the Conv window, activate the top ; and then click top center to activate the minimized control ControlGet, dialing, Visible,, TNonLiveCallToolbar1, ahk_class TConversationForm if (dialing < 1) { if (On_A_Call != 1) { On_A_Call = 1 WinSet, Bottom,, ahk_class TConversationForm WinGet, wList, List WinActivate, ahd_id %wList1% WinActivate NewX := A_ScreenWidth / 2 Sleep 200 Click NewX, 1 } } else { On_A_Call = 0 } ; TCallMonitorForm ; this is the minimized call monitor. move it to middle-top and always on top. IfWinExist, ahk_class TCallMonitorForm { WinGetPos, X, Y, W, H, ahk_class TCallMonitorForm NewX := (A_ScreenWidth / 2) - (W / 2) NewY := 0 WinMove, ahk_class TCallMonitorForm,, NewX, NewY, 0, 0 WinSet, AlwaysOnTop, On WinSet, Transparent, 150, ahk_class TCallMonitorForm } ; Move Skype recorder gadgets to background, out of the way SetTitleMatchMode, 3 WinMove, MP3 Skype Recorder,, 0, 0 WinSet, Bottom,, MP3 Skype Recorder WinSet, Bottom,, ahk_class TRecordPopup ; is that call quality feedback window up? kill it. SetTitleMatchMode, Regex WinClose, ^Skype.*Call quality feedback$ Return