Крысиный яд
Ratpoison — это чрезвычайно легкий оконный менеджер, который претендует на то, чтобы «не иметь толстых библиотечных зависимостей», что делает его идеальным дополнением к ПК с Linux, у которого не так много свободного места на диске и ресурсов.
Пользователи перемещаются по Ratpoison так же, как и по любому другому тайловому оконному менеджеру. Диспетчер окон поддерживает как режим максимизации, так и настройку мозаики, которую можно найти в большинстве диспетчеров окон на платформе Linux.
Примечательные особенности
- Ratpoison запускает все окна в полноэкранном режиме, когда используется одна программа, и старается максимально увеличить площадь экрана.
- Чрезвычайно легкий и, возможно, один из лучших оконных менеджеров для использования на компьютере почти без ресурсов.
- Комбинации клавиш в оконном менеджере Ratpoison специально разработаны, чтобы не мешать другим программам, поэтому он не мешает вашему рабочему процессу.
Скачать Ratpoison
Ratpoision имеет открытый исходный код и доступен для установки в большинстве дистрибутивов Linux. Чтобы скачать оконный менеджер, ознакомьтесь с Nongnu.org/ratpoison и прокрутите вниз, пока не увидите «Загрузить».
Графический интерфейс пользователя
Графический интерфейс пользователя (Graphical User Interface, GUI) еще называют «визуальный интерфейс» или «графическая оконная среда».
GUI делает возможным использование графики на растровом экране. Графика дает лучшее восприятие элементов управления на экране, визуально богатую среду для передачи информации. В GUI экран становится устройством ввода и показывает различные графические объекты в виде картинок и конструкций для ввода информации, таких как кнопки или полосы прокрутки. Используя клавиатуру и манипулятор (мышь, тачпад), пользователь может непосредственно оперировать объектами на экране. Графические объекты можно перетаскивать, кнопки можно нажимать, полосы прокрутки можно прокручивать. Взаимодействие между пользователем и программой становится более тесным.
Пользователям не надо тратить слишком много времени на то, чтобы научиться пользоваться компьютером и составлять новые программы. Система Windows способствует этому, поскольку все программы для Windows выглядят и воспринимаются одинаково.
Любая программа для Windows имеет окно — прямоугольную область на экране, в котором приложение отображает информацию и получает реакцию от пользователя. Окно идентифицируется заголовком. Большинство функций программы запускается посредством меню. Слишком большой для экрана объем информации может быть просмотрен с помощью полос прокрутки. Некоторые пункты меню вызывают появление окон диалога, в которые пользователь вводит дополнительную информацию.
Программирование Windows-приложений тесно связано с понятиями объектно-ориентированного программирования. Главным объектом в операционной системе Windows является окно. Окно может содержать элементы управления: кнопки, списки, окна редактирования и др. Эти элементы, по сути, также являются окнами, но обладающими особыми свойствами.Активное окно – окно, получающее реакцию от пользователя в данный момент.
Основными элементами окна являются
- 1 — строка заголовка title bar
- 2 — строка меню menu bar
- 3 — системное меню system menu
- 4 — кнопка сворачивания окна minimize box
- 5 — кнопка разворачивания окна maximize box
- 6 — рамка изменения размеров sizing border
- 7 — клиентская область client area
- 8 — горизонтальная и вертикальная полосы прокрутки scroll bars
Как запустить процесс в фоне Linux
Для выполнения команды в фоновом режиме достаточно добавить в конце символ амперсанда (&):
В выводе терминала будут отображены порядковый номер задачи (в квадратных скобках) и идентификатор процесса:
В фоновом режиме можно одновременно запускать сразу два, три, четыре процесса и даже больше.
Работая в фоновом режиме, команда все равно продолжает выводить сообщения в терминал, из которого была запущена. Для этого она использует потоки stdout и stderr, которые можно закрыть при помощи следующего синтаксиса:
Здесь >/dev/null 2>&1 обозначает, что stdout будет перенаправлен на /dev/null, а stderr — к stdout.
Узнать состояние всех остановленных и выполняемых в фоновом режиме задач в рамках текущей сессии терминала можно при помощи утилиты jobs c использованием опции -l:
Вывод содержит порядковый номер задачи, идентификатор фонового процесса, состояние задачи и название команды, которая запустила задание.
В любое время можно вернуть процесс из фонового режима на передний план. Для этого служит команда fg:
Если в фоновом режиме выполняется несколько программ, следует также указывать номер. Например:
Для завершения фонового процесса применяют команду kill с номером программы:
Практикум «запускаем Х и приложения в нём»
Опции: * -retro — запускают с «серым» классическим фоном, а не с чёрным как по умолчанию; * :77 — задаю (можно любой в разумном диапазоне, только :0 уже скорее всего занят под уже запущенную графику) номер экрана, фактический некий уникальный идентификатор, по которому можно будет различать несколько запущенных X’ов; * vt8 — указывает терминал, здесь /dev/tty8, на котором будут отображаться X’ы).
- X’ам требуется доступ к устройствам: терминалу, видеокарте, устройствам ввода,
- Сами X’ы никаких элементов интерфейса не отображают — это серое (если с опцией «—retro») или чёрное полотно определённых размеров (например, 1920×1080 или 1024×768), чтобы запускать в нем графические приложения.
- По движению «крестика» видно, что X’ы отслеживают положения мыши и передают эту информацию запущенным в нём приложениям.
- Также X’ы отлавливают нажатия клавиш на клавиатуре и передают эту информацию приложениям.
- Переменная DISPLAY указывает графическим приложениям, в каком экране (каждые X’ы при запуске запускаются с уникальным номером экрана), а следовательно и в какие из запущенных на моей машине, нужно будет рисовать X’ы. (Также есть возможность в этой переменной указать удалённую машину и отсылать вывод на X’ы, запущенные на другой машине в сети.) Так как X’ы запускали без опции -auth, поэтому нет необходимости разбираться с переменной XAUTHORITY или с командой xhost.
- Графические приложения (или как их называют X-клиенты) отрисовываются в X’ах — при этом без возможности их перемещать/закрывать/изменить «-g (Ширина)x(Высота)+(СдвигОтЛевогоКрая)+(СдвигОтВехнегоКрая)». Со знаком «минус» соответственно от правого и от нижнего края.
- Два термина, которые стоит озвучить: X-сервер (так называют X’ы) и X-клиенты (так называют любое графическое приложение, запускаемое в X’ах). Есть небольшая путаница в понимании этой терминологии, многие понимают её в точности до наоборот. В случае, когда я с «клиентской машины» (в терминологии удалённого доступа) подключаюсь к «серверу» (в терминологии удалённого доступа), чтобы отобразить на своём мониторе графическое приложение с сервера, то X-сервер запускается на той машине, где монитор (то есть на «клиентской машине», а не на «сервере»), а X-клиенты запускаются и работают на «сервере», хоть и отображаются на мониторе «клиентской машины».
Что можно улучшить
Во-первых скрипты надо настраивать руками. Наверняка, из-за необходимости вникать и делать много руками, многие из вас даже не попробуют настроить систему. Если бы была возможность просто поставить пакет и настроить все проще, то, возможно, это бы обрело некоторую популярность. А там гляди и в стандартные дистрибутивы запилили бы приложение.
И, возможно, проще можно сделать. Если по id окна можно узнать id процесса, его создавшего, а по id процесса узнать какая команда его создала, то можно было бы автоматизировать настройку. На самом деле я не разбирался, возможно ли то, что я написал в этом абзаце. Дело в том, что лично для меня устраивает то, как оно работает сейчас. Но если кому-то кроме меня весь подход покажется удобным и кто-то его улучшит, то я с радостью буду использовать лучшее решение.
Другая проблема, как я уже писал, в том, что в некоторых случаях окна нельзя отличить одно от другого. Я пока наблюдал такое только с incognito в chrome/chromium, но, возможно, где-то ещё есть подобное. В крайнем случае, всегда есть вариант универсальных комбинаций Alt+1…Alt+0. Опять же, я использую Firefox и лично для меня эта проблема не существенна.
А вот существенная для меня проблема в том, что по работе я использую Mac OS и там ничего подобного я настроить не смог. Утилиту wmctrl поставить вроде бы смог, но она на Mac OS толком не работает. Что-то можно сделать с приложением Automator, но оно так тормозит, что пользоваться им не удобно даже когда оно работает. Настроить комбинации клавиш так, чтобы они работали во всех программах я тоже не смог. Если вдруг кто-то придумает решение — буду рад им пользоваться.
Sway
Sway — это порт оконного менеджера i3 для протокола сервера отображения Wayland в Linux. Оконный менеджер Sway считается «незаменимой заменой» для i3 и поддерживает все его функции, благодаря чему поклонники оконного менеджера i3 чувствуют себя как дома.
Примечательные особенности
- Sway заимствует и реализует большинство функций оконного менеджера i3, чтобы те, кто знаком с i3, чувствовали себя как дома.
- Поддерживает несколько способов отображения окон, включая горизонтальную мозаику, вертикальную мозаику, режим с накоплением, режим с вкладками и плавающий режим.
Скачать Sway
Оконный менеджер Sway имеет отличную поддержку для пользователей Linux и имеет открытый исходный код, хотя, в отличие от i3, он не работает на платформе BSD. Если вы хотите заполучить последнюю версию Sway, проверьте их страницу Github.
FVWM
F Virtual Window Manager (в F ныне не вкладывается никакого официального значения) — витуальный оконный менеджер для системы X. Первоначально происходя от twm, FVWM развился в мощную и хорошо конфигурируемую среду для систем UNIX.
Вот некоторые из его особенностей:
- Поддержка любого количества виртуальных рабочих столов, каждый из которых может быть разделен на множество страниц.
- Полная поддержка EWMH, ICCCM-2 и хинтов GNOME.
- Полная интернационализация, включая мультибайтные наборы символов и двунаправленный текст.
- Заголовочная панель может быть отключена или размещена на любом краю окна.
- Анимированные тени окон в любом направлении.
- Конфигурируемые панели рабочих столов.
- Есть возможность рисовать мышью формы и связывать их с командами.
- Поддержка Xinerama для использования нескольких мониторов.
- Динамически расширяемые пользовательские модули.
Пробуем XFCE
Если вы интересуетесь другими оконными менеджерами или рабочими столами, вероятно, одним их первых рабочих столов, которые вы попробуете, будет XFCE. XFCE (http://www.xfce.org) существенно более легковесный, так что вы получите множество функциональных возможностей полной среды рабочего стола, таких как панель, иконки рабочего стола и панели задач, но с улучшенной производительностью.
Для того, чтобы установить XFCE, установите пакет xfce4
с помощью менеджера пакетов, которым вы предпочитаете пользоваться. Будет установлена среда рабочего стола и большое количество сопутствующих инструментальных средств. В XFCE есть ряд других не очень существенных плагинов и программ, которые также можно установить. Просто воспользуйтесь в вашем менеджере пакетов функцией поиска с ключевым словом xfce для того, чтобы их все найти.
Как только XFCE будет установлен, выйдите из системы, выберите сессию XFCE, войдите в систему и перед вами предстанет рабочий XFCE, используемый по умолчанию (см. рис. 2-8).
Рис.2-8. Рабочий стол XFCE, используемый в Ubuntu по умолчанию
XFCE представляет собой панель, расположенную в нижней части
рабочего стола, откуда вы можете запускать такие обычные инструменты, как терминал, файловый менеджер xffm
, используемый в XFCE, веб-браузер и другие приложения. Для того, чтобы запустить приложения, которых нет в панели, щелкните правой кнопкой мыши по рабочему столу для того, чтобы открыть главное меню. Вы можете изменить настройки программы запуска программ, щелкнув для этого правой кнопкой мыши по программе запуска, находящейся в панели. Вы также можете щелкнуть правой кнопкой мыши по другим частям панели и добавить в панель новые элементы, такие как программы запуска, пейджеры и другие программы.
В верхней части рабочего стола находится панель задач, в которой вы будете видеть все приложения, открытые на текущем рабочем столе, и между которыми вы сможете переключаться. Щелкните правой кнопкой мыши по любому из приложений, находящемуся в панели задач, для доступа к дополнительным настройкам, таким как возможность максимизировать окно программы, закрыть его или его спрятать.
В XFCE есть графический конфигурационный инструмент, доступ к которому вы можете получить, нажав на иконку с изображением гаечного ключа, расположенную на панели. С помощью этой программы вы можете конфигурировать различные настройки от выбора фона рабочего рабочего стола и до задания сочетаний горячих клавиш, настроек хранителя экрана и панели задач. Щелкните по иконке User Interface (Пользовательский интерфейс) для того, чтобы открыть менеджер тем, в котором вы можете настроить внешний вид XFCE.
Linux-приложения в Windows
Microsoft начала тестирование новой функции операционной системы Windows 10, которая позволяет запускать приложения с графическим интерфейсом (GUI). Об этом сообщается в официальном блоге разработчиков Windows 10.
С появлением данной функции в Windows 10 пользователь получает возможность запускать практически любые Linux-программы, в том числе и «тяжелые» – к примеру, мощный симулятор роботов Gazebo. Как отмечает Microsoft, это, в первую очередь, будет полезно разработчикам кроссплатформенного ПО – сборка и тестирования программ станут для них гораздо проще.
Ранее для запуска GUI-приложений для Linux в Windows 10 было необходимо либо развертывать отдельную виртуальную машину, либо устанавливать специальный X-сервер для Windows 10 и настраивать его взаимодействие с подсистемой WSL.
Приложения для Windows и Linux вперемежку
Разработчики из Microsoft ставят своей целью сделать так, чтобы Linux-приложения «бесшовно» вписывались в окружение Windows. В частности, как утверждается в блоге, окна таких программ корректно отображаются в карусели, которая вызывается по нажатию клавиш Alt+Tab, а также на панели задач и могут сворачиваться в нее. Установленные Linux-приложения наравне с Windows-программами попадают в меню «Пуск». Обмен информацией через буфер обмена работает для программ под Linux и Windows одинаково и в обе стороны.
Стоит отметить, что, судя по опубликованным скриншотам, единообразия в стиле оформления окон разработчикам пока достичь не удалось – Linux-приложение легко отличить по стилю заголовка окна и кнопок управления его состоянием.
Заявлены поддержка воспроизведения звука и записи с микрофона «из коробки» в Linux-приложения. Кроме того, поддерживается аппаратное ускорение с помощью GPU, которое позволяет системе отрисовывать элементы интерфейса плавно и быстро, не нагружая центральный процессор.
Аксессуары и инструменты
Есть несколько дополнительных программ, которые очень хорошо сочетаются с оконными менеджерами. Они помогают расширить функциональность оконного менеджера и помогут настроить вещи по своему вкусу.
Polybar
Polybar — это строка состояния, которая была разработана для работы с i3 и BSPWM, но ее, безусловно, можно применить к другим. Эта строка состояния поставляется с базовым минимальным функционалом, встроенным для многих вещей. Это облегчает начало работы. К счастью, он также позволяет вам настраивать и переопределять любые функции, которые вы хотите. Polybar полностью поддерживает сценарии, поэтому, если вы знакомы с сценариями Bash, вы можете по-настоящему повеселиться с ним.
Lemonbar
Lemonbar — это другая строка состояния, похожая на Polybar. Этот еще более минималистичен, чем Polybar, и у него не так много всего для начала. Вы должны создать функциональность самостоятельно. Он также полностью поддерживает сценарии, поэтому, опять же, у вас нет никаких ограничений.
Rofi
Rofi — минимальная программа запуска приложений. Вы можете сопоставить его с горячей клавишей и использовать для запуска любой программы, которую вы вводите. Rofi запоминает программы, которые вы ищете, и выводит их в список недавно / наиболее часто используемых.
Вы также можете настроить внешний вид Rofi, чтобы он соответствовал вашему рабочему столу. Это не так сложно с помощью файла Xresources в Linux.
URxvt
URxvt, или Rxvt-Unicode, является эмулятором терминала. Вам не обязательно использовать тот или иной эмулятор терминала с оконным менеджером листов, но лучше использовать более минимальный, не привязанный к какой-либо конкретной графической среде. URxvt соответствует этому описанию.
В качестве дополнительного бонуса, URxvt является супер конфигурируемым. Вы можете настроить его практически на любой внешний вид. Это включает в себя цвет, текст и фон.
напор
Vim не имеет большого отношения к оконным менеджерам листов, но когда вы обнаружите, что используете их, вам захочется делать все больше и больше из командной строки. Для этого Вим твой друг.
Vim — очень мощный текстовый редактор. Это, наверное, лучший текстовый редактор в мире. Он имеет и абсолютно безумное количество доступных плагинов, которые делают его способным к еще большему.
Данст
Если вы достигли минимального уровня с помощью оконного менеджера, вам все еще, вероятно, нужны уведомления на рабочем столе. Если вам нужны уведомления, которые вы можете настроить в соответствии с нашим рабочим столом, вы можете использовать Dunst. Dunst — это легкая система уведомлений, которую вы можете легко настроить с помощью простой текстовой конфигурации. Измените размер, цвет и текст уведомлений, которые вы получаете.
Менеджер окон — i3
На вид — — просто сказка для тех кому совершенно не нужны графические прорисовки и кому достаточно малого — окон без обрамления, краткого описания загрузки машины и прочих вещей, итак, скриншот с официального сайта:
Как видим — все интересно и крайне заманчиво — мы можем легко и лазить в коде и фоном смотреть фильм и кроме того справа читать новости) очень интересно. Кроме того, на сайте Вы можете найти горячие клавиши для упрощенного управления данным оконным менеджером:
Ну и как по привычке, прикрепляю картинку дабы сгладить свою вину за тяжело читаемый написанной текст (иначе не могу на данный момент)
Openbox
Openbox — это легкий оконный менеджер с широкими возможностями настройки. Он очень известен тем, что позволяет пользователям с невероятной легкостью настраивать практически каждый его аспект благодаря инструменту Obconf, с которым он поставляется.
Диспетчер окон Openbox является фаворитом пользователей Linux из-за низкого использования ресурсов и возможности использования с другими средами рабочего стола Linux, такими как KDE Plasma 5 и Gnome Shell.
Примечательные особенности
- Openbox не только оконный менеджер, но и специальный сеанс Gnome Shell и KDE 5, в который пользователи могут войти, чтобы получить более легкую и тонкую среду рабочего стола.
- Инструмент настройки Openbox имеет встроенную функцию, которая позволяет пользователям настраивать загружаемые пользователем доки и панели, а также их отображение в диспетчере окон.
- Openbox имеет меню приложения, вызываемое правой кнопкой мыши, известное как «меню конвейера», которое позволяет пользователям запускать приложения, выполнять команды и делать многое другое.
Скачать Openbox
Диспетчер окон Openbox очень хорошо известен, и вы, скорее всего, сможете найти его в используемом вами дистрибутиве Linux, выполнив поиск по запросу «openbox» в диспетчере пакетов. Тем не менее, если вам нужно загрузить его вручную, посетите их веб-сайт для получения дополнительной информации.
Кому доступно и как установить
Первыми оценить новую функцию смогут участники программы предварительного тестирования Windows Insiders. Для этого понадобится загрузить сборку Windows Insider build 21364 и установить WSL c помощью единственной консольной команды: “wsl —install -d Ubuntu”. В данном примере в качестве пользовательского дистрибутива будет установлен Ubuntu. После завершения первого этапа установки WSL потребуется перезагрузка Windows, по завершении которой будет предложено задать имя пользователя и пароль в Linux.
После этого в консоли WSL можно использовать подходящий пакетный менеджер для установки приложений. К, примеру, чтобы инсталлировать популярный медиаплеер Vlc, в Ubuntu понадобится следующая команда: “sudo apt install vlc”. Запуск программы осуществляется простым вводом названия ее исполняемого файла, в данном случае “vlc”.
Если планируется использовать GPU-ускорение, также понадобится драйвер видеокарты. Специальные сборки драйверов, обеспечивающие поддержку DirectX 12 в WSL-окружении, подготовлены AMD, Nvidia и Intel и доступны для загрузки на официальных сайтах этих компаний.
Budgie
Budgie – достаточно молодая графическая оболочка Linux (первая версия появилась в 2014 году), но уже набравшая популярность. Это и понятно, ведь дизайн этой графической оболочки привлекательный, современный и очень удобный.
Budgie реализуется с использованием технологий GNOME. Изначально среда Budgie разрабатывалась проектом Solus, но теперь к разработке присоединились и другие проекты, например, Ubuntu Budgie. И на сегодняшний день графическая оболочка Budgie находится в числе самых популярных, так как используется на популярных дистрибутивах.
Среда Budgie является графической оболочкой по умолчанию в следующих дистрибутивах Linux:
- Solus;
- Ubuntu Budgie.
Дистрибутивы Linux, которые выпускают официальные редакции с графической средой Budgie
Manjaro Linux.
Скриншоты Budgie
Solus 4.0
Рабочий стол и меню
Файловый менеджер
Ubuntu Budgie 19.04
Рабочий стол и меню
Файловый менеджер
Manjaro Linux 18
Рабочий стол и меню
Файловый менеджер
8 ответов
Лучший ответ
Что бы вы ни делали, используйте XCB, а не Xlib. Он современный, асинхронный, более простой и дает вам прямой доступ к протоколу X11.
23
Serge
13 Авг 2010 в 17:01
Я написал серию подробных руководств, в которых показано, как написать оконный менеджер X11 на C ++:
http://seasonofcode.com/posts/how-x-window-managers-work-and-how-to-write-one-part-i.html
Кроме того, вы можете проверить простой пример оконного менеджера, basic_wm, по адресу
https://github.com/jichu4n/basic_wm
Это много комментируется в педагогических целях.
Что касается Xlib против XCB — я бы порекомендовал Xlib вместо XCB, если вы только начинаете. XCB более эффективен, но он гораздо более низкоуровневый и более подробный (подумайте о языке ассемблера для графического интерфейса). Не стоит обременять себя преждевременной оптимизацией, пока у вас уже не будет работающего прототипа.
8
Chuan Ji
10 Дек 2014 в 04:01
Очень минималистичный WM — это wm2. Я не читал исходный код и, следовательно, не знаю, является ли это обучающим примером. Конечно, вы можете использовать библиотеки, которые уже выполняют большую часть работы по абстракции и рисованию, например gdk и gtk. Но поскольку этот проект предназначен только для личного обучения, я бы пошел дальше и использовал Xlib напрямую.
Вот несколько ссылок, которые могут быть вам полезны:
- Руководство по Xlib
- Руководство по программированию Xlib (O’Reilly & Associates, Inc.)
- Руководство по соглашениям о взаимодействии между клиентами
- Подсказки расширенного оконного менеджера
6
quinmars
12 Авг 2010 в 23:07
Взгляните на код для dwm. Кодовая база прекрасна и проста для понимания. Всего около 2000 строк.
6
Dave
21 Июл 2011 в 06:06
http://code.google.com/p/partiwm/ — это попытка написать оконный менеджер (мозаичный, а не стековый) с нуля, вам может быть полезно прочитать код.
2
zwol
12 Авг 2010 в 22:34
Metacity использует gtk для определенных элементов пользовательского интерфейса. Смотрите его HACKING и README.
См. также
2
Community
23 Май 2017 в 12:02
Вы можете взглянуть на оконный менеджер aewm. Код небольшой, и он неплохо справляется с основами. Он написан на C и использует Xlib.
2
Frank Hale
30 Ноя 2010 в 22:43
Gaius
25 Сен 2010 в 09:27
DPKG — система управления пакетами Debian
Dpkg — это базовая система управления пакетами в Debian. Может использоваться для установки, удаления, хранения и получения информации о .deb пакетах.
Это инструмент низкого уровня и есть дополнительные утилиты, которые помогают пользователям устанавливать пакеты из репозиториев, разрешать зависимости и искать пакеты по названию. Это такие программы, как:
Aptitude Package Manager
Это еще одна популярная утилита командной строки для управления пакетами в Debian. Она работает аналогично Apt, но между ними есть некоторые различия. Первоначально он был разработан для Debian, но сейчас может применяться и в Red Hat дистрибутивах.
Synaptic
Synaptic — это графический менеджер пакетов linux, написанный на GTK и использующий apt в качестве бэкенда. Он отлично подходит для пользователей, которые не хотят работать в командной строке. Здесь есть все те же необходимые функции что и в apt.
Gnome Software
Это центр приложений Gnome. Там есть далеко не все программы, которые есть в репозиториях и подход к установке немного другой. Вы устанавливаете не пакеты по отдельности, а саму нужную программу. Обо всём остальном центр приложений заботиться сам, скрывая от вас подробности. Gnome Software поддерживает не только Deb пакеты, но и Rpm в системах, основанных на RHEL, а также snap и flatpack, о которых мы поговорим ниже.
AppGrid
Простенькая альтернатива для центра приложений Ubuntu. Программе очень далеко до функциональности Synaptic. Она позволяет устанавливать приложения так же, как и центр приложений Gnome Software и выглядит очень похоже на Windows Store.