PlayOnLinux

PlayOnLinux is a graphical frontend for the Wine software compatibility layer which allows Linux users to install Windows-based video games, Microsoft Office (2000 to 2016), Microsoft Internet Explorer, as well as many other applications such as Apple iTunes and Safari.

While initially developed for Linux-based systems, it is also used on macOS and FreeBSD under the names PlayOnMac and PlayOnBSD, respectively. It can also be used on other operating systems supported by Wine.

Versions
Version 4.0 (2011 ) is able to run on Mac and Linux. It used two separate source trees and was therefore called "POL" on Linux systems and "POM" on Mac.

Version 5.0 Phoenicis
Version 5.0, currently under development, uses the same codebase for Mac and Linux. It has been named POL-POM-5, later POL-POM, and currently is being developed under the name Phoenicis.

Internals
PlayOnLinux is developed using a combination of Bash, Python and wxPython.

The system provides wrapper shell scripts that specify the configuration of Wine needed in order to install and run a particular application.

It uses an online database of scripts to apply to different applications that need special configuration; if the game is not in the database, a manual installation can be performed. Programs can be installed and each one is put in a different container (WINEPREFIX) to prevent interference of one with another. This provides isolation in much the same way that CrossOver's bottles work. Thus, applications may use different versions and configurations of Wine as appropriate. The installation of these is managed by the PlayOnLinux software itself without the requirement to install Wine separately.

The program also allows the user to create virtual partitions, in which specific programs can be installed with different Wine versions and programs, similar to a multi-boot computer.

Scripting language
PlayOnLinux includes advanced functions in Bash allowing the community to make scripts easily by controlling the installation process. Each supported program has its own script written in this language.

For example, the simple following script will popup a setup window with the message Hello World: