I’ve received a few questions about a possible port of Kylo to some flavor of desktop Linux. The following is a rundown of what needs to be done or investigated before an official Kylo for Linux version can be released.
1. Fix graphics issues
The Mozilla XUL platform has had a long standing problem with their linux port - translucent windows are not supported (bugzilla issue #408284). Kylo has an issue here because many of the UI elements are based on panels and have effects like shadows, semi-transparency, rounded corners, etc. This translates to issues with these panels not appearing, or showing up with dithering effects or opaque backgrounds.
It’s possible that the graphics acceleration preferences need to be customized for Linux, or perhaps there are other preference settings that are exacerbating the issue. In the meantime, Kylo needs a few Linux-specific customizations to the “Gloss” skin to eliminate rounded corners, shadows, etc.
2. Port “SendKeys” XPCOM component
SendKeys is the binary component responsible for emulating keyboard events through the onscreen keyboard UI. This needs to be ported from the Windows-specific libraries. If it’s simply removed, the onscreen keyboard won’t work.
3. Port or remove “MouseEventTool” and “UDLRTool” components
UDLRTool is a component within the UDLRCursor extension. It allows the arrow keys to move the cursor. This is a non-critical component, and the extension can probably be left out of the build.
MouseEventTool handles the “right-click to go back” functionality, as well shortcuts like clicking the middle mouse button to bring up zoom controls. It’s also non-critical for a beta/development release.
4. Modify the python build script to allow Linux builds
The final output would either be a tarball, deb package, rpm or something similar. The build script should probably allow a selection of output formats.
5. Look for other weird inconsistencies and fix as needed
There may be more UI issues that can be fixed with CSS customizations. There may be a number of preference settings that apply to Linux builds of XULRunner applications. I have not looked in to this yet…