Пользовательский графический интерфейс Linux: с чего начать?


У меня был давний интерес к разработке пользовательского интерфейса ОС с учетом моих потребностей и интересов. Когда я был моложе, я сходил с ума, играя с инструментами для снятия шкур со звездной пристани для Windows. Мне нравилось разрабатывать свои собственные стили окон и идеи макета. С тех пор у меня появился непреодолимый зуд.

  • Я не особенно заинтересован в возиться с операциями ядра более низкого уровня, только презентационные аспекты. Я рассматривал некоторые вкусы Linux.
  • хотя я хотел бы иметь некоторые основные интегрированные инструменты/приложения, которые я создаю сам, меня в первую очередь интересуют презентации основных окон, панелей инструментов, рабочего стола и управления файлами.
  • Я не хочу быть заблокирован от использования существующих приложений, если это возможно. Я, например, не заинтересован в написании своего собственного веб-браузера, но иметь возможность работать с существующими инструментами в дизайне было бы большим плюсом.
  • мои идеи иногда очень визуально в природе, поэтому способность произвести более сложные влияния транспаранта и необыкновенные формы окна была бы полезна. Более или менее способность воспроизводить графическую точность текущих проектов пользовательского интерфейса для OS X или Windows была бы идеальной.
  • ОС вкус и инструменты, которые позволяют мне начать с пустого экрана и работать с нуля или включать основы поощряются. Идея "рабочего стола" в традиционном смысле не должна быть обязательной. Гибкость, чтобы делать разные вещи важно ко мне.

Я ищу:

меня интересует, какие вкусы Linux/OS могут иметь смысл, какие инструменты / фреймворки были бы полезны для выполнения задачи ( Qt, похоже, является популярным предложением здесь), и основная информация о том, как / где можно начать разработку / тестирование такого пользовательского интерфейса. Мне также было бы интересно прочитать о любом "личном" пользовательском интерфейсе, который люди, возможно, разработали.

этот интерес далеко за пределами моего нормального развития работа, так как отказ от ответственности, простите мою наивность, если я кажусь смущенным. Корректирующее понимание приветствуется.

Я понимаю, что это большой вопрос, так что спасибо тем, кто нашел время, чтобы сделать предложения.

4 51

4 ответа:

вы хотите создать свой собственный DE (desktop environment). Общие примеры-GNOME и KDE, хотя больше из них были популярны. На самом деле он был очень популярен для создания собственного DE, и часто создавались специальные скриптовые инструменты.

обычно вам нужно будет объединить несколько инструментов: менеджер окон, панель инструментов, менеджер рабочего стола (значки), менеджер сеансов, возможно, больше. Из этого только оконный менеджер является обязательной частью (обычно это не имеет никакого смысла нет для запуска любого WM внутри X-сервера), а другие являются необязательными. Обычно вы не будете писать эти инструменты с нуля (много работы), но использовать уже имеющиеся компоненты.

обратите внимание, что и GNOME, и KDE фактически состоят из этих элементов (хорошо интегрированы). Например GNOME состоит из оконного менеджера (metacity), панели инструментов (gnome-panel), desktop manager (nautilus) и так далее. Вы можете изменить один элемент в другой, если хотите: раньше он был популярен для использования sawfish в окне менеджер вместо metacity, сохраняя все остальные элементы нетронутыми. Теперь он популярен для использования compiz вместо metacity.

я использовал, чтобы использовать FVWM, который является оконным менеджером с дополнительными (довольно хорошими) возможностями сценариев, которые могут быть использованы для создания панелей инструментов, меню и других вещей. Одним из приятных примеров является FVWM-Хрустальный, который является полным DE, построенным на FVWM и нескольких других инструментах, написанных в сочетании сценариев FVWM и Python. Вы могли бы фактически измените любое поведение во время выполнения, просто открыв консоль сценариев FVWM и введя команды. Fvwm-Crystal может быть хорошей отправной точкой, если вы хотите начать с чего-то уже используемого; голый FVWM хорош, если вы хотите построить свой DE с нуля.

[обновление: кажется, что gnome-shell очень похоже в этом отношении на FVWM. Большая часть его поведения написана с использованием JavaScript (вместо пользовательского языка в FVWM), и очень легко изменение. Он также очень активно развивается, так как является важной частью GNOME3, с очень хорошей поддержкой композиции. Это хакерский рай ; -)]

[UPDATE2: так что, похоже, я был прав на gnome-shell. Там есть корица, который использует ту же структуру (mutter диспетчер окон) как gnome-shell, но строит рабочий стол, который работает иначе, чем gnome-shell.]

там был сайт, который был хорошим источником идей для реализации: lynucs.org. он упал уже два года, но он получил в архиве.

внимание: многие из этих компонентов больше не поддерживаются, тем более, что GNOME/KDE начал фактически использоваться. Развитие в этой области, как правило, больше зависит от конкретных требований встроенных устройств:телефоны или нетбуки.

теперь, чтобы ответить на ваши актуальные вопросы:

  • Linux / OS flaver: все, что легко настраивается: Debian, Arch, Gentoo,LFS...
  • инструменты/фреймворки: это зависит от того, что вы хотите достичь. Если вы хотите написать пользовательскую панель инструментов, вы можете просто использовать некоторые языки сценариев (например, FVWM), пользовательские инструменты, такие как adesklets, или написать свой собственный в Qt (если большинство ваших других компонентов находится в Qt) или GTK (если большинство ваших других компонентов находится в GTK).
  • личные UIs: их было много, и такие сайты, как lynucs.org была хорошая компиляция из них (lynucs перечисленные компоненты, используемые в каждом рабочем столе).
  • сложные эффекты прозрачности: старые инструменты обычно не обрабатывают его изначально или делают простые вещи, такие как просто повторное использование части обоев рабочего стола в качестве собственного фона (так называемая поддельная прозрачность). Скорее всего, вам нужно будет написать свой собственный код, т. е. в качестве плагина для compiz.

Я бы, вероятно, начал с установки Ubuntu и OpenBox оконный менеджер и построить оттуда.

OpenBox - это очень минимальный, но вы можете добавить приложения (например, Docky, Awn и т. д.), Чтобы обеспечить элементы интерфейса рабочего стола или написать свой собственный.

Если вы быстро и прохладно UI я бы предложил посмотреть в Просвещение. Его старше, чем Gnome, и я нашел его чрезвычайно быстрым и низким ресурсоемким вариантом.

вы пробовали Tcl / Tk? Tcl-это язык сценариев. Tk-это графическая часть языка. Ваше приложение будет работать везде, где даже на Android с помощью AndroWish.

Так легко и так быстро.

в течение одного часа, я был в состоянии сделать повестку дня с календарем.