Как сделать графическую оболочку для windows

Графическая оболочка X-Windows System.

В начале немного истории . Представим, что нам нужно написать программу, которая будет работать в графическом режиме. Нам потребуется: опрашивать клавиатуру, снимать события и координаты мыши, рисовать на экране.

Как это делалось на MS-DOSе? Очень просто. Пишем одну большую программу, в ней — все: и логика, и обработка событий, и слежение за перемещениями мыши, ну а когда требуется что-то нарисовать, мы даем команду на запись в порты EGA контроллера, рисуем пиксель… Через год появляется контроллер VGA, еще через год SVGA 800×600, 16 цветов, вслед за ним UVGA 1024×768, 256 цветов, затем XGA 1280×1024, 16Мб цветов…

Основная идея X Windows.
Есть две независимые программы. Одна из них ,умеет рисовать на графическом мониторе, и обслуживать все это железо. И называется она X-сервер. Вторая программа — клиент X Windows, рисовать физически не умеет. Но она знает, что именно надо рисовать, и умеет командовать. Команды типа: «нарисовать прямоугольник», «провести линию», «открыть окно», «вывести символ в заданном фонте», «опросить координаты мыши», и т.п. передаются X-серверу, а тот их исполняет — рисует. Формат и спецификации этих команд опубликованы,стандартизованы, и широко известны. Все вместе они называются «Протокол X Windows«.
Итак :
X-сервер. Программа, которая написана специально под конкретное физическое устройство (имеется в виду — монитор, графконтроллер, мышь и клавиатура), умеет на нем рисовать, и умеет понимать команды рисования по протоколу X Windows System.
X-клиент . Прикладная программа, обеспечивающая графический интерфейс с пользователем. Команды для рисования на экране передает X серверу по протоколу X Windows System.
X-терминал . Ящик (монитор, графконтроллер, мышь, клавиатура, ну и, естественно, процессор и оперативная память), на котором запущена программа X-сервер.
X-терминалом может служить самая обыкновенная графическая Unix-рабочая станция, на которой X сервер выполняется, как одна из многих прикладных задач.
Специализированный X-terminal — ящик, на котором запускается только X сервер, и ничего кроме. Можно использовать PC под MS-DOSом, на котором запущена DOSовская программа, реализующая X сервер.
Xlib — библиотека C-ишных функций, реализующих протокол X Windows System. С помощью этой библиотеки можно писать графические программы — X-клиенты.
Что из этого получаеться.
Мы получаем универсальный GAPI — (Graphical Application Programming Interface) — средство программирования графических приложений. Пользовательские графические программы при этом полностью отвязаны от железа, от конкретного графконтроллера.О железе пусть беспокоится X-сервер. Протокол X Windows умеет «ездить» по сети: например по TCP/IP, или по DEC-net. Поэтому X сервер может крутиться на одной машине, а X-клиент — на другой. То есть, картинка рисуется на одной машине, а программа, которая ее обеспечивает — крутится на другой.
X-сервер способен обслуживать сразу много клиентов, причем всех — одновременно.
На нашем графическом экране может быть открыто сразу много окон — каждое окно порождается его собственным X клиентом. Клиенты эти могут быть запущены и на нашей машине (к которой подключена графическая подсистема), и на удаленных машинах, соединенных с нами по сети.
Чего нам это стоит .
Понятно чего. Ресурсов. X Windows очень любит ресурсы — память, процессор, диск.Способен съесть их в неограниченных количествах. А еще ведь надо программировать. (К счастью, не всем надо). Кто видел, как выглядят программы для MS Windows или Mac, может представить себе внешний вид исходных текстов X-овой программы.
Как это запускается.
Пусть в нашей сети есть машина с графической подсистемой и X сервером, и сетевой адрес этой машины pcat107.foms.msk.ru на pcat107 нужно выполнить команду:
xhost + # разрешить X-овым программам с ЛЮБОЙ машины # рисовать на экране машины pcat107Запускаем на нашем компьютере X-овую программу, так, чтобы ее окошко рисовалось на мониторе pcat107. Для этого на нашем компьютере нужно выполнить команду:
xterm -display pcat107:0.0 &Библиотеки, Motif, и война круглых и квадратных кнопок.
Можно писать X-овые программы, используя библиотеку Xlib. Многие так и пишут, хотя это весьма тяжело — уж больно невысок уровень Xlib’а. В помощь программистам было создано несколько toolkit’ов — библиотек более высокого уровня, в которых реализованы различные widget’ы. Widget — непереводимый термин X Windows. Склеен из двух слов — Window и Gadget (приспособление), является графическим объектом с привязанными к нему свойствами и реакциями на действия пользователя. Примеры widgetow: «кнопка», «менюшка», «окошко с текстом»,
«линейка прокрутки»,…
Известны следующие toolkit’ы:
Xaw — Anthena Widgets. Очень черно-белый, очень плоский, весьма небогатый.
Зато — бесплатный. Посмотрите, как выглядят программы xterm, xedit, xman.
Они сделаны на Xaw.
xview — Набор библиотек и объектов, использованных в реализации набора пользовательских утилит Sun-овской версии X Windows — «Open Windows».
Весьма симпатично.Круглые кнопки, «шприцы-иголки» (замечательная вещь!),очень хорошо продуманный интерфейс пользователя, в том числе активно используемая трех-кнопочная мышь. Исходные тексты библиотек xview открыты, предоставляются бесплатно. Однако набор DeskSet — 15 пользовательских утилит входящих в OpenWindows, сделанный на библиотеке xview, SunSoft готов предоставить только за плату. В бинарном виде — весьма дешево ($100). В исходных текстах — весьма дорого ($200K)
Motif — Библиотека поставляются организацией OSF за не совсем маленькую плату. Исходные тексты библиотек недоступны, либо чрезмерно дороги. Кнопки — квадратные, да и вообще Motif’овские приложения до безобразия напоминают MS Windows (что, IMHO, является серьезным преступлением)
В борьбе BSD и Unix V победил, как известно, System V, а в войне круглых и квадратных кнопок выиграл Motif.
Конфигурирование X Windows
В Linux используется X11 в реализации XFree86. Чтобы его сконфигурировать,выполните команду xf86config
Запуск X Windows.
На некоторых машинах он сам запускается. А также иногда удается запустить его вручную командами: startx и/или openwin Solaris:

Читайте также:  Windows media player не открывает vob

Установите переменные окружения:
2.OPENWINHOME=/usr/openwin export OPENWINHOME3. LD_LIBRARY_PATH=/usr/openwin/lib export LD_LIBRARY_PATH4. PATH=/usr/openwin/bin:$PATH export PATH5. XAPPLERESDIR=/usr/openwin/lib/app-defaults export XAPPLERESDIRЗапустите X Windows командой openwin
«Нормальные» Unix’ы:
Установите переменные окружения:
2.PATH=/usr/bin/X11:$PATH3. XAPPLERESDIR=/usr/lib/X11/app-defaultsЗапустите X Windows командой startx
«Ненормальные» Unix’ы (Unixware).
Когда регистрируете пользователя, ответьте Yes на вопрос «Хотите графический DeskTop». Тогда после login’а X Windows будет запускаться автоматически. Если вы прозевали, и ответили No, то никаким осмысленным способом запустить X Windows для себя вам не удастся.
Настройки пользовательского окружения X Windows
При наличии пользовательских настроечных файлов, лежащих в домашнем каталоге пользователя, используются они. Если их нет, используются стандартные,общественные, обычно лежащие в каталоге /usr/lib/X11 или /usr/openwin/lib .

Запуск графической оболочки Linux Bash в Windows 10

В первую очередь необходимо установить Linux Bash в Windows 10. Инструкция по установке Linux Bash описана в следующей статье:

Для установки Ubuntu из Microsoft Store предлагаем выбрать версию Ubuntu 18.04 LTS в операционной системе Windows 10 May 2019 Update (версия 1903).

Параметры установленного дистрибутива Linux расположены в меню Windows Параметры > Приложения > Приложения и возможности. Из списка установленных программ выберите Ubuntu 18.04 и нажмите на Дополнительные параметры.

Так же открыть параметры Ubuntu 18.04 можно нажав правой кнопкой мыши по значку Ubuntu 18.04 в меню Пуск, в открывшемся меню выбираем Дополнительно > Параметры приложения.

Параметры установленного Линукс дистрибутива в Windows 10 (версия 1903):

Расположена файловая система Ubuntu на локальном диске С по следующему адресу:

Таким образом можно получить доступ к нужным файлам и папкам Linux.

После установки и первоначальной настройки системы нужно обновить систему и установить рабочее окружение.

Обновление системы и установленных пакетов:

Установка рабочего окружения и пакета программ Ubuntu (Gnome):

Меняем права доступа к папке кэша:

Далее в систему Windows 10 нам нужно установить приложение для обеспечения оконной системы Linux, которая отвечает за построение и отображение графического интерфейса.

VcXsrv Windows X Server

Таких программ несколько. Предлагаем выбрать активно развивающуюся программу VcXsrv Windows X Server. Устанавливаем с настройками по умолчанию.

После запуска программы VcXsrv Windows X Server в окне Display Settings есть выбор отображения интерфейса оконной системы Linux. В нашем случае отлично работал вариант с большим оконным режимом (One large window). Там же в настройках Display number выставляем значение 0 (если возникнут проблем с запуском интерфейса, то значение нужно изменить, кроме того нужно будет изменить и значение в команде запуска).

Читайте также:  Драйвера для pocketbook 613 для windows 10

Далее оставляем настройки по умолчанию. По окончанию настройки у нас запустится пустое окно.

Переходим в запущенную Linux систему, у нас она открыта в виде командной строки и вводим следующие команды:

Для дальнейших запусков графического окружения нужно вводить команду выше, при этом программа VcXsrv Windows X Server должна быть предварительно открыта.

Также создайте сценарий оболочки start-ubuntu (имя файла необязательно):

Сделайте скрипт оболочки исполняемым:

Запустить скрипт оболочки:

Известные проблемы и их решения

Из недостатков, с которыми столкнулись, отметим следующие: проблема с правами доступа различных приложений и системных функций. В качестве решения можно систему запустить с правами root. В целях безопасности не рекомендуется запускать систему с полными правами администратора, но если есть в этом необходимость, то запустить можно следующим образом: после того как открыли приложение VcXsrv и Linux систему, которая открылась в виде командной строки, нужно ввести команду: sudo su , затем вводим команду для запуска графического окружения:

Теперь нам будут доступны ранее неработающие функции системы, например, русификация и работа некоторых расширений Gnome.

Так же мы столкнулись с тем, что предустановленный браузер Firefox не устанавливает дополнения. Можно воспользоваться другим браузером, например, браузером Opera. В режиме суперпользователя запускать его нужно с помощью терминала командой: opera --no-sandbox.

Система установится на английском языке, установка другого языка доступна только под системой с правами администратора (sudo su). Установить русский язык в систему можно следующими командами:

После этого в настройках системы Ubuntu нужно выбрать и активировать установленный русский язык.

Концепция альтернативной оболочки Windows. Часть 1.

Предположим, Вы приобрели новый компьютер с предустановленной ОС Windows. После загрузки системы и входа в профиль пользователя Вас приветствует Рабочий стол с несколькими иконками и полоска Панели Задач в нижней части экрана — там тоже несколько иконок. После настройки Интернета Вы начинаете скачивать программки — большие и маленькие. После запуска инсталляторов для каждой из них на Рабочем столе (а иногда и на Панели Быстрого запуска) появляются новые ярлычки. Вы начинаете работать с программами, и, возможно, часть созданных документов сохраняете на Рабочий стол.

реклама

На Рабочем столе становится всё больше и больше иконок, и уже глаза начинают разбегаться.

При сильной захламленности Рабочего стола Вас подстерегает ещё одна неприятность. Для создания нового документа нужно активировать ярлык приложения, а для изменения документа нужно дважды кликнуть по иконке документа. Но ярлыки приложений и иконки документов на Рабочем столе перемешаны, и поиск нужного объекта требует некоторого напряжения. Можно, конечно, перетащить все ярлыки приложений в левую (правую, верхнюю или нижнюю) часть Рабочего стола, но не факт, что при очередной перезагрузке этот порядок сохранится.

Положение усугубляется тем, что текст подписей под значками усекается, и не всегда понятно, какой документ где находится — ведь у документов могут быть одинаковые иконки и часть имени может совпадать.

Рассмотрим типовые решения проблемы нехватки места на Рабочем столе.

реклама

Можно всегда сохранять документы в библиотеку «Документы», раскладывая их по папкам, или периодически перемещать туда документы с Рабочего стола.

Можно поступить более радикально — удалить часть объектов в корзину.

Можно так же добавлять ярлыки приложений на Панель Быстрого запуска (в Windows 10 она срослась в единое целое с Панелью Задач). Постепенно там тоже накапливается приличное количество иконок. Иконки начинают занимать несколько рядов, и рабочее пространство для окон приложений сокращается.

Как временное решение, с помощью контекстного меню Рабочего стола можно изменить размер значков с обычных на маленькие.

реклама

Ещё можно купить монитор большего размера или расширить Рабочий стол на несколько мониторов . .

Это, пожалуй, все варианты, которые предлагает ОС.

Что могло бы облегчить работу на компьютере в данной ситуации?

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

Читайте также:  Хороший архиватор для mac os

реклама

Или, скажем, если бы ОС предоставляла возможность иметь в своём распоряжении несколько полноценных Рабочих столов, то можно было бы перераспределить иконки между ними.

Кнопочки на Панели Быстрого Запуска надо тоже как-то поделить. Скажем, иметь несколько Панелей Быстрого Запуска — по одной на каждый Рабочий стол.

Итак, обозначим список наших пожеланий.

  1. Мы хотим, чтобы было много Рабочих столов.
  2. Мы хотим, чтобы на каждом Рабочем столе при необходимости была прокрутка.
  3. Мы хотим, чтобы ярлыки приложений располагались отдельно от иконок документов и папок с документами.
  4. Мы хотим, чтобы для каждого Рабочего стола была своя Панель Быстрого Запуска.
  5. Мы хотим, чтобы текст подписи под значками не усекался, а отображался полностью, в удобоваримом виде.

Как эти требования выполняются в Программном комплексе «Пользовательская оболочка» (в дальнейшем — ПКПО)?

В ПКПО есть аналог Рабочего стола, называемый Составным проектом. Пользователь может создать практически неограниченное количество Составных проектов. Все Составные проекты образуют древовидную структуру и, естественно, у каждого Составного проекта есть имя. Кроме того, Вы можете сразу переходить из одного Составного проекта в другой сразу, вне зависимости от места в Дереве Проектов, если создадите объект «Родственный проект».

Составной проект, с которым в данное время работает пользователь, отображается в специальной панели — Окне Просмотра. Слева от Окна просмотра располагается Панель Кэша Приложений, куда пользователь помещает ярлыки приложений, которые могут понадобиться в текущем Составном проекте. Если в любой из панелей содержится много объектов, автоматически появляется прокрутка. Граница между панелью Кэша Приложений и Окном просмотра изменяемая. Объекты в Окне Просмотра сортируются по одному из выбранных критериев, но сначала отображаются папки, т. е. вложенные Составные проекты (см. Рисунок 1).

В каждой из панелей «Пользовательской оболочки» есть несколько вариантов отображения иконок и подписей к ним, в том числе, без усечения текста.

Рисунок 1. Окно Просмотра и Кэш Приложений

А как насчёт Панели Быстрого Запуска?

Этот элемент интерфейса формируется с помощью другого приложения ПКПО — Пользовательской панели, аналога Панели Задач Windows (см. Рисунок 2). Панель Кэша Приложений (см. Рисунок 2) — это и есть аналог Панели Быстрого Запуска Windows.

Рисунок 2: Пользовательская панель

Таким образом, во время работы над текущим Составным проектом мы можем запустить нужное приложение, нажав кнопку на Панели Кэша Приложений.

Если с помощью средств навигации Окна Просмотра мы переходим в другой Составной проект, содержимое панелей Кэша Приложений обоих приложений полностью обновляется.

Поскольку Кэш Приложений отображается сразу в двух приложениях, Вы можете скрыть панель Кэша Приложений в «Пользовательской оболочке», тем самым увеличивая размер Окна Просмотра (см. Рисунок 1).

У некоторых пользователей может возникнуть возражение — некоторые приложения нужны в нескольких, или даже во всех Составных проектах, например, веб-браузер или пакет офисных программ. Что делать?

Эта проблема так же легко решается с помощью ПКПО.

Для ярлыков приложений, которые нужны во всех Составных проектах, выделяется специальная папка — Список Приложений, формируемая пользователем вручную, по собственному усмотрению. Ярлыки можно группировать в папки. В приложении «Пользовательская оболочка» Список Приложений при необходимости отображается в Правой панели (см. Рисунок 3).

Рисунок 3. Список Приложений в Правой панели

В приложении «Пользовательская панель» Список Приложений отображается в виде панели с кнопками — по одной кнопке на каждый ярлык приложения и каждую папку в корне Списка Приложений. Вложенные в папки Списка Приложений объекты отображаются в виде меню (см. Рисунок 2).

  1. Если иконки не помещаются на какой-либо панели приложения «Пользовательская панель», появляются кнопки для прокрутки (см. кнопку прокрутки Списка Приложений на Рисунке 2).
  2. Панель Кэша Приложений «Пользовательской оболочки» может работать и в режиме отображения Дерева папок (режим по умолчанию), подобно окну Проводника:

Рисунок 4: Панель Кэша Приложений в виде дерева

Дополнительную информацию по ПКПО можно найти на странице программы.

Оцените статью