LINUX.ORG.RU

История изменений

Исправление stevejobs, (текущая версия) :

то есть проще один раз при старте сессии подменять имя wm и не париться

эту проблему можно решить просто: скажем, пусть в ~/.config/javaPrefs/WM лежит дескриптор текущего WM, и в нем должны быть записаны его возможности типа репарентинга, типа отрисовки декораций. Типа «стандарт на нестандартные ворзможности».

или по-другому, пусть в /usr/lib/javaPrefs/WM лежат такие дескрипторы для всех установленных в системе WM. Файлы с ними готовят мантейнеры (благо сделать такой файл - считаные минуты). Файлы называются как WM ID. Жабка определяет WM ID как-то самостоятельно, а вот все настройки уже берет из дескрипторов

сам код желательно тоже отрефакторить на паттерн стратегия/плагин. Сделать базовый класс типа WMPlugin, в котором есть дефолтная реализация с автопоиском возможностей. В зависимости от наличия файла-дескриптора возможностей WM, некоторые методы будут подменяться на константы из этого файла. Плюс весь код специфичный для конкретных WM нужно перенести в классы-наследники WMPlugin

более того, неплохо бы, чтобы создатели WM сами могли писать такие плагины и подкладывать их внешним образом. Да хоть туда же в javaPrefs/WM подкладывать скомпилированные классы-наследники WMPlugin называющиеся как WM ID, и потом при старте жабка (точнее AWT) будет динамически грузить их в отдельный класслоадер, желательно в OSGi

Исходная версия stevejobs, :

то есть проще один раз при старте сессии подменять имя wm и не париться

эту проблему можно решить просто: скажем, пусть в ~/.config/javaPrefs/WM лежит дескриптор текущего WM, и в нем должны быть записаны его возможности типа репарентинга, типа отрисовки декораций. Типа «стандарт на нестандартные ворзможности».

или по-другому, пусть в /usr/lib/javaPrefs/WM лежат такие дескрипторы для всех установленных в системе WM. Файлы с ними готовят мантейнеры (благо сделать такой файл - считаные минуты). Файлы называются как WM ID. Жабка определяет WM ID как-то самостоятельно, а вот все настройки уже берет из дескрипторов

сам код желательно тоже отрефакторить - код отрефакторить на паттерн стратегия/плагин. Сделать базовый класс типа WMPlugin, в котором есть дефолтная реализация с автопоиском возможностей. В зависимости от наличия файла-дескриптора возможностей WM, некоторые методы будут подменяться на константы из этого файла. Плюс весь код специфичный для конкретных WM нужно перенести в классы-наследники WMPlugin

более того, неплохо бы, чтобы создатели WM сами могли писать такие плагины и подкладывать их внешним образом. Да хоть туда же в javaPrefs/WM подкладывать скомпилированные классы-наследники WMPlugin называющиеся как WM ID, и потом при старте жабка (точнее AWT) будет динамически грузить их в отдельный класслоадер, желательно в OSGi