Как сделать интерфейс как в linux

Обновлено: 05.07.2024

Настоящая статья является дополнением к книге «Инструменты Linux для Windows-программистов». Это не описание как делать GUI приложения в Linux, это описание того, как ПРИСТУПИТЬ к созданию графических приложений в Linux, и, хотелось бы надеяться что это прозвучит - чем принципиально программирование графики в Linux отличается от того же занятия в Windows. Главным требованием здесь была простота. Сделав простейший шаблон GUI прложения, дальше двигаться уже гораздо проще. Кроме того, все эти простейшие приёмы программирования показаны сравнительно: на основе основных графических технологий (библиотек), используемых в UNIX.

Все примеры к тексту вы можете скачать в виде общего архива.

Создание приложений, взаимодействующих с пользователем посредством графического интерфейса (GUI приложений), является частным классом задач, отдельной областью программирования. Из числа других подобных областей приложения можно было бы привести, как примеры:

  • реализация алгоритмов цифровой обработки сигналов (DSP): быстрые спектральные преобразования (FFT и другие), вэйвлеты, авторегрессионные разложения. ;
  • обработка аудио-потоков (пакеты: sox, ogg, speex и другие);
  • задачи IP-телефонии, SIP протокола, реализация разнообразных программных SoftSwitch;

Это сравнительный ряд автономных областей развития приведен как пример таких частных классов, одним из которых является и разработка GUI приложений. И как частный класс, со своей спецификой инструментов и средств, он не заслуживал бы отдельного упоминания, если бы не одно обстоятельство — принципиально отличающееся, диаметрально противоположное отношение к GUI в операционных системах семейства Windows и в UNIX (и в Linux, как его частный вид):

  • В Windows каждое приложение является принципиально GUI, неотъемлемым атрибутом любого приложения в Win32 API (низкого уровня) является главное окно приложения, уже само приложение «вяжется» вокруг его главного окна. Операционная система регистрирует классы окон и уже далее к ним соотносит конкретные приложения. Не может существовать приложения (взаимодействующего с пользователем, не системные службы) без окна, с этим были связаны и первоначальные сложности Windows в реализации консольных (терминальных) приложений.
  • в UNIX картина принципиально обратная: первичным является приложение, которое, по умолчанию, является консольным, текстовым, вся графическая система не является составной частью операционной системы, а является надстройкой пользовательского уровня. Чаще всего такой графической надстройкой является X11 (в реализации Xorg или X11R5), но и это не обязательно: практиковались и другие графические системы, хороший пример тому графические системы Qwindow, а затем Photon в операционной системе QNX, сосуществующие там одновременно с X11.
  • Показательно в этом смысле то, что вся оригинальная часть реализации X11 работает в пространстве пользователя, не в привилегированном режиме ядра (супервизора): работа с аппаратурой видеоадаптеров, устройствами ввода и другое. Отдельные реализации (видеосистемы NVIDIA или ATI Radeon) могут быть реализованы в режиме ядра (модули), но это а) сторонние относительно X11 разработки, и б) решение вопросов только производительности.

Из-за обозначенной специфики, разработка GUI приложений в UNIX (Linux) принципиально отличается:

  • вся работа GUI приложений ведётся через промежуточные слои (библиотеки) пользовательского уровня;
  • из-за того, что это ординарный пользовательский уровень, для разработчика предлагается широкий спектр альтернативных инструментов (библиотек), практически равнозначных, и конкурирующих друг с другом: Xlib, GTK+, Qt, wxWorks и многие другие.
  • базовый API работы с X11 предоставляет Xlib, все другие используют уже её функционал, как это показано на рисунке.


  • разработчик имеет возможность широкого выбора тех уровня и инструментов, которые он предполагает использовать, начиная от Xlib и выше (хотя уровень Xlib и слишком низок и работа с ним громоздкая).

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

Средства Xlib (архив Xlib.tgz ):



Средства GTK+ (архив GTK+.tgz ):

$ gcc gtk.c -o gtk `pkg-config --cflags --libs gtk+-2.0`



Средства Qt (архив Qt.tgz ):

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

Теперь проделываем последовательно:

Исходя из «подручных» файлов исходных кодов, у нас сгенерировался файл проекта и, далее, сценарий сборки ( Makefile ). Далее проделываем традиционную сборку, а заодно и посмотрим опции компиляции и сборки, которые нам сгенерировал проект:

g++ -c -pipe -Wall -W -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables

g++ -o Qt index.o -L/usr/lib/qt-3.3/lib -lqt-mt -lXext -lX11 -lm

index.cc index.o Makefile Qt Qt.pro



Средства wxWidgets (архив wxWidgets.tgz):

simple.cc :

$ g++ simple.cc `wx-config —cxxflags` `wx-config --libs` -o simple



Средства GLUT (архив glut.tgz):

OpenGL Utility Toolkit, как и следует из названия, это средства использования технологии OpenGL в приложениях, которая требует определённой поддержки со стороны видео оборудования.

$ gcc glut.c -o glut -lX11 -lglut



То, что показано выше, это фактически не приложения, а скелеты приложений, но они позволяют: а) сравнить подобие всех GUI технологий в X11, и б) быть отправной точкой для сборки более содержательных GUI приложений. Показано только несколько GUI технологий, применяемых в X11 (большинство из них являются кросс-платформенными, и применимы в большинстве существующих операционных систем). Каждая из этих технологий, а названы только немногие из значительно большего числа, присутствующих в UNIX, могут быть полной альтернативой любой другой из этого же ряда, они взаимно заменимы, и даже взаимно дополняемые.

В данной статье были показаны образцы кода GUI приложений. Естественно, визуальные образы таких приложений строятся не путём непосредственного кодирования, а при использовании некоторых визуальных построителей, в составе тех или иных интегрированных средств разработки (IDE).

Ubuntu - это один из самых популярных дистрибутивов Linux, разрабатываемый компанией Canonical. По умолчанию здесь используется собственная графическая оболочка - Unity. Она применяется поверх окружения рабочего стола Gnome 3 и выглядит красиво.

Но у Unity есть один существенный недостаток - слишком мало настроек, и до сих пор остаются кое-какие ошибки и недоработки. К тому же эта оболочка нравится не всем. Но необязательно использовать именно её, вы можете установить любое из доступных окружений рабочего стола для Linux. Здесь ваш выбор ограничен только вашим вкусом. В этой статье мы рассмотрим лучшие графические оболочки Ubuntu 16.04, а также способы их установки в это системе.

1. GNOME Shell

ajxan

Gnome 3 или GNU Network Object Model Environment входит в состав проекта GNU и разрабатывается командой Gnome Project. Это рабочее окружение используется как графическая оболочка Ubuntu по умолчанию в редакции дистрибутива Ubuntu Gnome.

  • Композитный менеджер Mutter или Compiz;
  • Режим просмотра "Действия" позволяет увидеть все открытые окна на одном экране, перемещать их между рабочими столами, искать и многое другое;
  • Есть система уведомлений для рабочего стола;
  • Поддерживаются расширения, с помощью которых можно изменить внешний вид и функциональность окружения. Вы можете установить их с сайта extensions.gnome.org;
  • По умолчанию окна нельзя сворачивать, для замены этой функции рекомендуется использовать рабочие столы и режим отображения "Действия". Но сворачивание окон можно включить;
  • Динамическое количество рабочих столов. Вы можете открыть их столько, сколько вам нужно.

Для установки выполните:

sudo apt install ubuntu-gnome-desktop

2. Xfce

1404_whisker

Xfce - это легковесное окружение рабочего стола Ubuntu и других дистрибутивов Linux. Оно потребляет очень мало системных ресурсов, красиво выглядит и дружелюбно к пользователям. Вместе с самим окружением поставляется несколько дополнительных приложений, панелей и плагинов, а также используется собственный оконный менеджер Xfwm.

Кроме стандартных компонентов, в это рабочее окружение Ubuntu входят дополнительные программы с префиксом xfce. Чтобы установить окружение рабочего стола xfce в Ubuntu, выполните:

sudo apt-get install xubuntu-desktop

3. KDE Plasma

KDE - это ещё одно очень мощное и красивое окружение рабочего стола по функциональности и потреблению ресурсов похожее на Gnome. Но, в отличие от Gnome, здесь очень много настроек, и вы сможете конфигурировать окружение как захотите. KDE имеет внешний вид, похожий на Windows, а это будет очень кстати для новичков.

  • Можно настраивать огромное количество параметров и буквально любой аспект поведения рабочего окружения;
  • Панели могут быть размещены по краям экрана, использоваться в качестве панелей запуска или таксбара;
  • Вы можете запускать программы из меню, через лаунчер или с помощью ярлыков;
  • На рабочем столе можно разместить виджеты Plasma;
  • Режим действий позволяет переключаться между рабочими столами и пространствами.

Для установки окружения рабочего стола и всех дополнительных пакетов выполните в терминале:

sudo apt install kubuntu-desktop

4. LXDE

ejmkw

LXDE - ещё одно легковесное окружение рабочего стола, ориентированное на минимальное потребление ресурсов и максимальную производительность. В качестве оконного менеджера используется Openbox. Но кроме него в набор входит несколько утилит с префиксом LX: настройки системы, загрузчик приложений, панель, менеджер сессий, аудиоплеер, терминал и многое другое.

  • Потребляет мало CPU и памяти;
  • Выглядит просто и красиво;
  • Есть множество настроек, с помощью которых вы можете заставить окружение выглядеть так, как нужно;
  • Компоненты окружения можно использовать независимо друг от друга.

Чтобы сменить окружение рабочего стола ubuntu, выполните такую команду:

sudo apt-get install lubuntu-desktop

5. Cinnamon

d1ewu

Cinnamon - это форк Gnome 3, разрабатываемый командой дистрибутива Linux Mint. В окружении используется собственная оболочка, которая делает интерфейс Gnome 3 похожим на Gnome 2. Здесь используется новое программное обеспечение, и в то же время вы получаете современный интерфейс и возможность установки расширений. В окружении есть привычные панель внизу экрана и меню запуска приложений, а также возможность добавлять виджеты на рабочий стол.

Для установки выполните:

sudo add-apt-repository ppa:embrosyn/cinnamon
$ sudo apt update
$ sudo apt install cinnamon blueberry

6. MATE

04_desktop

MATE - это форк Gnome 2, который был создан сразу после объявления о выходе версии Gnome 3. Многим пользователям не понравилась новая версия - они хотели сохранить прежний внешний вид. Окружение выглядит точно так же, как и традиционный интерфейс Gnome 2.

  • Имеет традиционный внешний вид Gnome 2;
  • Поставляется со старыми версиями некоторых приложений Gnome 2;
  • Все конфликты между MATE и Gnome 3 были разрешены, поэтому оба окружения могут быть беспрепятственно установлены в системе.
  • Поддерживаются GTK2- и GTK3-приложения.

Для установки используйте такую команду:

sudo apt-get install ubuntu-mate-desktop

7. Pantheon

pantheon_gui

Pantheon - это графическая оболочка для Gnome 3, разработанная в рамках проекта Elementary OS. Но она может быть установлена и в Ubuntu.

  • Верхняя панель называется WingPanel, она смешивает всё лучшее из панелей Gnome 2 и Gnome Shell;
  • Для запуска приложений используется лаунчер Slingshot;
  • В нижней части экрана находиться док-панель Plank;
  • Утилита Cerebere работает в фоне и контролирует работу всех других компонентов, а также перезапускает их в случае ошибки;
  • Вы можете выбрать, какие модули окружения нужно использовать в вашей системе.

Для установки выполните такие команды:

sudo add-apt-repository ppa:elementary-os/daily
$ sudo apt update
$ sudo apt install elementary-desktop

8. GNOME Flashback

to2vx

Это версия классического окружения рабочего стола Gnome, портфированная на новые технологии, такие как GTK3 и другие. Это его главное отличие от MATE: почти тот же Gnome 2, только немного обновлённый - что-то среднее между Gnome 2 и 3. Он лучше работает на старом оборудовании.

  • Имеет классическое меню приложений и панель;
  • Панель настраивается так же, как и в Gnome 2, только для этого нужно нажать Alt;
  • Увеличена общая стабильность, апплеты теперь нельзя перемещать, а также лучше работают вертикальные панели.

Для установки наберите команду:

sudo apt install gnome-session-flashback

9. Awesome

8rcn2

Awesome - это не совсем окружение рабочего стола, это тайловый оконный менеджер. По умолчанию он поставляется с панелью, на которой вы можете разместить апплеты своих приложений, переключения рабочих столов и виждеты. Также здесь есть несколько библиотек виджетов, которые можно добавить на рабочий стол.

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

  • Не тратится впустую пространство экрана;
  • Не нужно выбирать расположение окон с помощью мышки или тачпада;
  • Настройка привязок для окон;
  • Есть поддержка мыши.

Для установки достаточно выполнить:

sudo apt-get install awesome

10. Enlightenment (E)

k9tza

Окружение Enlightenment сосредоточенно на красивом внешнем виде и при этом минимальном потреблении ресурсов. Здесь есть набор своих приложений, а также собственный менеджер окон. Внизу экрана есть док-панель, а на рабочий стол можно добавлять виджеты. Для установки выполните:

sudo add-apt-repository ppa:enlightenment-git/ppa
$ sudo apt-get update
$ sudo apt-get install e20

11. i3wm

kcnkh

i3wm - это ещё один отличный и простой тайловый оконный менеджер. Разработчики сделали акцент на максимальной простоте, как использования, так и кода с настройками.

  • Поддержка нескольких мониторов;
  • Поддержка UTF-8;
  • Прост в настройке (не нужен язык программирования);
  • Создание макетов для расположения окон динамически;
  • Обработка плавающих и всплывающих окон;
  • Различные режимы как в Vim.

Для установки выполните:

sudo apt-get install i3

12. Deepin DE

wpid-deepin3

Дистрибутив Deepin Linux использует собственное, специально разработанное окружение рабочего стола, интегрированное с такими приложениями, как Deepin Video, Deepin Music и другими. Характерная его особенность - боковая панель настроек как в WIndows 8.1, только намного удобнее.

Установка окружения Ubuntu выполняется командой:

13. Budgie

fu8og

Budgie - это окружение рабочего стола, основанное на Gnome и разрабатываемое командой дистрибутива Solus. Разработчики ориентировались на создание максимально красивого интерфейса. Эта графическая оболочка Ubuntu используется по умолчанию в редакции Ubuntu Budgie, которая недавно стала официальной.

  • Интегрируется со стеком Gnome;
  • Есть боковая панель Raven, из которой можно быстро получить доступ к настройкам;
  • Все настройки выполняются через панель Raven.

Для установки наберите такие команды:

sudo add-apt-repository ppa:budgie-remix/ppa
$ sudo apt update
$ sudo apt install budgie-desktop

14. Openbox

s775t

Openbox - это оконный менеджер. Он имеет минималистичный внешний вид и очень высокую настраиваемость. Вы можете изменить практически любые аспекты оболочки. Вы можете настраивать внешний вид, как захотите, а также использовать приложения KDE или Gnome.

Чтобы установить это окружение рабочего стола Ubuntu, выполните:

sudo apt install openbox

Выводы

В этой статье мы рассмотрели лучшие графические оболочки Ubuntu 16.04. Все они могут быть относительно легко установлены в вашей операционной системе. Что выбрать, зависит только от вкуса пользователя. Какое окружение Ubuntu используете вы? Какое бы посоветовали использовать другим пользователям? Напишите в комментариях!

теперь можно предварительно просмотреть подсистема Windows для Linux поддержку для запуска приложений с графическим пользовательским интерфейсом Linux (X11 и вайланд) на Windows в полностью интегрированном рабочем столе.

WSL 2 позволяет приложениям с графическим интерфейсом Linux работать в собственном и естественном виде для Windows.

  • запуск приложений Linux из Windows меню
  • закрепление приложений Linux на панели задач Windows
  • используйте alt-tab для переключения между приложениями Linux и Windows
  • вырезать и вставить в приложениях Windows и Linux

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

снимок экрана: приложения Linux и Windows открыты на рабочем столе

Установка поддержки для приложений с графическим интерфейсом Linux

Предварительные требования

чтобы получить доступ к этой функции, необходимо включить Windows 11 сборки 22000 или более поздней версии . вы можете присоединиться к программе "предварительные оценки" Windows , чтобы получить последние предварительные сборки.

Установленный драйвер для GPU

Чтобы запустить приложения для графического пользовательского интерфейса Linux, сначала необходимо установить драйвер предварительной версии, соответствующий вашей системе. Это позволит использовать виртуальный графический процессор (GPU), чтобы можно было воспользоваться преимуществами визуализации OpenGL с аппаратным ускорением.

Новая установка — нет предыдущей установки WSL

Установите WSL и настройте имя пользователя и пароль для дистрибутива Linux, если вы еще этого не сделали.

Откройте окно командной строки с правами администратора.

нажмите кнопку пуск, введите PowerShell, щелкните правой кнопкой мыши Windows PowerShell, а затем выберите запуск от имени администратора.

Выполните эту команду и перезагрузите компьютер при появлении запроса:

После завершения перезагрузки компьютера установка продолжится, и вам будет предложено ввести имя пользователя и пароль. Это будут учетные данные Linux для дистрибутива Ubuntu.

Теперь вы готовы приступить к использованию приложений с графическим интерфейсом Linux на WSL!

Существующая установка WSL

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

нажмите кнопку пуск, введите PowerShell, щелкните правой кнопкой мыши Windows PowerShell, а затем выберите запуск от имени администратора.

Введите команду WSL Update:

Чтобы обновление вступило в силу, необходимо перезапустить WSL. Вы можете перезапустить WSL, выполнив команду shutdown в PowerShell.

Приложения с графическим интерфейсом Linux поддерживаются только с WSL 2 и не будут работать с дистрибутивом Linux, настроенным для WSL 1. Узнайте , как изменить дистрибутив с WSL 1 на WSL 2.

Запуск приложений с графическим пользовательским интерфейсом Linux

Для загрузки и установки популярных приложений Linux можно выполнить следующие команды в терминале Linux. При использовании другого дистрибутива, отличного от Ubuntu, он может использовать диспетчер пакетов, отличный от apt. После установки приложения Linux его можно найти в меню " Пуск " под именем распространения. Например: Ubuntu -> Microsoft Edge .

Обновление пакетов в дистрибутиве

Установка Gedit

Gedit является текстовым редактором по умолчанию среды GNOME Desktop.

Чтобы запустить файл bashrc в редакторе, введите: gedit

Установка ГИМП

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

Для запуска введите: gimp

Установка Наутилус

Наутилус, также известные как файлы GNOME, — это диспетчер файлов для рабочего стола GNOME. (аналогично Windows проводнике).

Для запуска введите: nautilus

Установка Влк

Влк — это бесплатный мультимедийный проигрыватель и платформа с открытым исходным кодом, который воспроизводит большинство мультимедийных файлов.

Для запуска введите: vlc

Установка приложений X11

Для запуска введите имя инструмента, который вы хотите использовать. Пример:

Установка Google Chrome для Linux

Чтобы установить Google Chrome для Linux, выполните следующие действия.

Для запуска введите: google-chrome

установка Microsoft Teams для Linux

установка Microsoft Teams для Linux:

Для запуска введите: teams

установка обозревателя Microsoft Edge для Linux

сведения о том, как установить браузер Microsoft Edge для Linux, можно найти с помощью командной строки на сайте предварительнойверсии. Выберите получить инструкции в разделе Установка командной строки на странице.

изменить интерфейс по умолчанию в Linux

Советы и хитрости

Практически все, что мы можем сделать в Linux, требует от нас подключения к сети. Независимо от того, разрабатываем ли мы приложения, устанавливаем программное обеспечение, создаем сценарии, обмениваемся файлами или даже смотрим фильмы, нам необходимо рабочее сетевое соединение. Следовательно, утверждение «Мне требуется подключение к сети» — просто преуменьшение. Единственный способ включить сетевое соединение на машине — через сетевой интерфейс.

Сетевой интерфейс — это устройство или точка соединения между устройством и частной или общедоступной сетью. В большинстве случаев сетевой интерфейс представляет собой физическую карту, такую ​​как беспроводной адаптер, сетевая карта и т. Д. Однако это не обязательно означает, что сетевой интерфейс должен быть физическим устройством. Например, адаптер обратной петли, который физически не виден, реализован программно и доступен на всех устройствах.

Это краткое руководство покажет вам, как установить интерфейс по умолчанию в Linux.

Метод 1 — отключите адаптеры

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

Предположим, у вас есть беспроводной адаптер, и вы хотите использовать адаптер Ethernet; в этом случае вы можете отключить адаптер Wi-Fi, используя следующую команду:

$ sudo ifconfig wlan0 down

$ sudo ifconfig eth0 up

Приведенные выше команды отключат беспроводной адаптер и включат адаптер Ethernet.

Это заставит систему переключиться на доступную сеть.

ПРИМЕЧАНИЕ. Для выполнения указанной выше команды требуются права sudo или root с установленным пакетом net-tools.

Метод 2 — Используйте IP-МАРШРУТЫ

Нетрадиционный метод — отредактировать маршруты и указать, какие устройства использовать по умолчанию.

Начните с использования команды:

Эта команда покажет вам шлюз по умолчанию и интерфейс по умолчанию. Например, ниже:

Читайте также: