Ответ 1
Вы хотите создать свою собственную DE (настольную среду). Обычными примерами являются GNOME и KDE, хотя многие из них были популярны. На самом деле он очень популярен для создания собственного DE, и часто создавались специализированные скриптовые инструменты.
Обычно вам нужно объединить несколько инструментов: оконный менеджер, панель инструментов, диспетчер рабочего стола (значки), диспетчер сеансов, возможно, больше. Из этого только оконный менеджер является обязательной частью (обычно не имеет смысла не запускать какой-либо WM внутри X-сервера), а другие необязательны. Обычно вы не пишете эти инструменты с нуля (это большая работа), но используйте уже имеющиеся компоненты.
Обратите внимание, что как GNOME, так и KDE на самом деле состоит из этих элементов (хорошо интегрированных). Например, GNOME состоит из диспетчера окон (metacity
), панелей инструментов (gnome-panel
), диспетчера рабочего стола (nautilus
) и т.д. Вы можете изменить один элемент на другой, если хотите: он использовался для использования sawfish
в качестве диспетчера окон вместо metacity
, сохраняя все остальные элементы в целости. Теперь популярно использовать compiz
вместо metacity
.
Я использовал FVWM, который является диспетчером окон с дополнительными (неплохими) возможностями сценариев, которые могут быть использованы для создания панели инструментов, меню и другие вещи. Одним из приятных примеров является FVWM-Crystal, который является полным DE, встроенным в FVWM, и несколькими другими инструментами, написанными в сочетании сценариев FVWM и Python, Фактически вы можете изменить любое поведение во время выполнения, просто открыв консоль сценариев FVWM и команды ввода. FVWM-Crystal может быть хорошей отправной точкой, если вы хотите начать с чего-то уже пригодного для использования; голый FVWM хорош, если вы хотите построить свой DE с нуля.
[UPDATE: кажется, что gnome-shell очень похож в этом отношении на FVWM
. Большая часть его поведения написана с использованием JavaScript (вместо пользовательского языка в FVWM), и его очень легко изменить. Он также очень активно развивается, так как он является важной частью GNOME3, с очень хорошей поддержкой композиции. Это хакерское небо; -)]
[UPDATE2: так кажется, я был прав на gnome-shell. Там Cinnamon, который использует ту же структуру (mutter
window manager) как gnome-shell
, но создает рабочий стол, который работает в иначе, чем gnome-shell
.]
Был веб-сайт, который был хорошим источником идей для реализации: lynucs.org. Он не работает уже два года, но он получил в архиве.
Предупреждение: многие из этих компонентов больше не поддерживаются, тем более, что GNOME/KDE начали фактически использоваться. Разработка в этой области обычно обусловлена особыми потребностями встроенных устройств: телефоны или нетбуки.
Теперь, чтобы ответить на ваши актуальные вопросы:
- Linux/OS flaver: все легко настраивается: Debian, Arch, Gentoo, LFS...
- Инструменты/рамки: это зависит от того, чего вы хотите достичь. Если вы хотите написать пользовательскую панель инструментов, вы можете просто использовать некоторые языки сценариев (например, FVWM), настраиваемые инструменты, такие как adesklets, или написать собственный в Qt (если большинство ваших других компонентов находится в Qt) или GTK (если большинство ваших других компонентов находится в GTK).
- Личные интерфейсы: их было много, и сайты, подобные lynucs.org, были хорошей компиляцией из них (lynucs перечислены компоненты, используемые на каждом рабочем столе).
- Сложные эффекты прозрачности: старые инструменты обычно не обрабатывают его изначально или делают простые вещи, например, просто повторно использовать часть рабочего стола в качестве собственного фона (так называемая поддельная прозрачность). Скорее всего, вам нужно будет написать свой собственный код, т.е. как плагин до
compiz
.