VLC: Always on top and transparent when out of focus

Is it possible to do the following things with VLC?

  • Make the playback window stay always on top
  • Make the playback window transparent when another window has the focus?

This would allow watching videos while doing other things such as checking emails since you could still access other windows (assuming the player is not maximized).


Solution 1:

To make the playback window always on top select Video -> Always On Top from the menu. (Mac Video -> "Float on Top")

I don't see a way to change the transparency when VLC goes out of focus without using a window manager that has this capability. You can change the transparency in VLC manually though.

To make the playback window transparent:

  • Tools -> Preferences
  • Show All Settings -> Click the plus next to Interface -> Main Interface
  • Change the Interface Module to Qt Interface
  • Click the plus next to Main Interface -> Qt
  • Change the Window Opacity to the desired amount
  • Close and reopen VLC for the change to take effect

Solution 2:

I've adapted an AutoHotKey script from here which will do what you ask (on Windows - I don't know if there's an AutoHotKey for Linux).

When the script is run, it finds a window with "VLC media player" in the title and makes it 60% transparent and 'unclickable'. To exit the script and reactivate VLC, right click the green H in the taskbar and choose Exit.

If you trust me, a (decompilable) compiled version of this which sets one running VLC instance to 60% transparency and unclickable is here: https://www.dropbox.com/s/to4wrlmnuym9kjb/TransparentVLC.exe

If you don't trust me, want to adapt it for use with Media Player Classic (it's just better =), or just want to learn, install AutoHotKey and run this script: https://www.dropbox.com/s/exj00fpssx761lc/TransparentVLC.ahk

If my links are broken, the AHK code follows:

/*
WinSet_Click_Through - Makes a window unclickable. Written by Wicked & SKAN.
I - ID of the window to set as unclickable.
T - The transparency to set the window. Leaving it blank will set it to 254. It can also be set On or Off. Any numbers lower then 0 or greater then 254 will simply be changed to 254.
If the window ID doesn't exist, it returns 0.
*/

WinSet_Click_Through(I, T="254") {
   IfWinExist, % "ahk_id " I
   {
      If (T == "Off")
      {
         WinSet, AlwaysOnTop, Off, % "ahk_id " I
         WinSet, Transparent, Off, % "ahk_id " I
         WinSet, ExStyle, -0x20, % "ahk_id " I
      }
      Else
      {
         WinSet, AlwaysOnTop, On, % "ahk_id " I
         If(T < 0 || T > 254 || T == "On")
            T := 254
         WinSet, Transparent, % T, % "ahk_id " I
         WinSet, ExStyle, +0x20, % "ahk_id " I
      }
   }
   Else
      Return 0
}
#SingleInstance force
#Persistent
;app code starts here
;get window ID for a VLC instance
ID := WinExist("VLC media player")

;set it to 60% transparent and unclickable
WinSet_Click_Through(ID, 0.6 * 255)

;wait until the user quits, then show window again
OnExit, AppEnd
Return

AppEnd:
;set it back to clickable
WinSet_Click_Through(ID, "Off")
ExitApp

Solution 3:

On OSX, when you set Opaqueness in the Interface > macosx, it's sufficient to enter fullscreen and exit fullscreen for the changes to take effect.

Solution 4:

One or more of the Skrommel applications might do the job :

WinWarden - Automatically control how to display a window.
TransOther - Make all windows but the active one transparent.
OnTop - Puts a window on top of all others.

Another possibility is the free Eusing Auto Window Manager which can set VLC to always on-top and transparent.