Подтвердить что ты не робот

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

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

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

Что я ищу:

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

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

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

4b9b3361

Ответ 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.

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

Так просто и так быстро.

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

Ответ 5

Вы пробовали OpenSUSE? Если вы хотите испытать себя, вы можете попробовать создать его с помощью Scratch, но для этого потребуется МНОГО кода, даже если вы создадите магазин приложений или веб-браузер для вашей ОС!