Как установить gtk на linux

Обновлено: 07.07.2024

Тема Fluent GTK направлена ​​на привнесение стиля дизайна Windows в Linux. Он представлен в двух темах: темная и светлая, и, честно говоря, отлично справляется с предоставлением пользователям Linux «опыта, подобного Windows». Вот как настроить его в вашей системе.

Загрузка темы Fluent GTK

Когда процесс загрузки будет завершен, откройте окно терминала и перейдите к следующему разделу руководства.

Извлечение темы Fluent GTK

Попав в каталог «Загрузки», следуйте приведенным ниже инструкциям, чтобы установить программу Unzip на свой компьютер. Утилита Unzip должна работать с ZIP-архивом, в который упакована тема Fluent GTK.

Ubuntu

Чтобы установить приложение Unzip в Ubuntu, запустите Квартира команда ниже в терминале.

Debian

Если вы используете Debian Linux, вы можете получить последнюю версию Unzip на свой компьютер, используя Apt-get команда ниже.

Arch Linux

В Arch Linux пользователи могут получить последнюю версию Unzip, работая со следующими Pacman команда.

Fedora

Те, кто использует Fedora Linux, могут установить утилиту Unzip на свои компьютеры, используя Dnf команда.

OpenSUSE

Если вы используете OpenSUSE Linux, вы сможете получить и запустить Unzip, используя Zypper команда.

После установки утилиты Unzip на свой компьютер вы сможете распаковать файлы темы Fluent GTK из архива ZIP, загруженного ранее. С использованием тыnzip команда для распаковки темы Fluent GTK ZIP.

Или, если вы загрузили темный вариант темы Fluent GTK, выполните следующие действия. распаковать команда.

Когда утилита Unzip завершит распаковку файлов темы Fluent GTK, переходите к следующему разделу руководства.

Установка темы Fluent GTK

Есть два способа заставить тему Fluent GTK работать в Linux. Первый способ установки известен как «однопользовательский», который разрешает доступ к нему только пользователю, установившему тему. Второй метод установки известен как «общесистемный», который дает каждому пользователю доступ к теме независимо от того, была ли она установлена ​​им.

В этом руководстве мы рассмотрим, как установить тему Fluent GTK обоими способами. Чтобы начать процесс установки, откройте окно терминала и следуйте инструкциям ниже.

Один пользователь

Чтобы начать установку темы Fluent GTK в Linux, воспользуйтесь компакт диск и переместите сеанс терминала в каталог «Загрузки», где в настоящее время находятся файлы темы.

Попав в каталог «Загрузки», воспользуйтесь mkdir и создайте каталог «.themes». Эта папка будет содержать файлы темы Fluent GTK в вашем домашнем каталоге.

После создания новой папки запустите мв приведенную ниже команду, чтобы установить файлы темы Fluent GTK на ваш компьютер в однопользовательском режиме.

Вы можете подтвердить, что установка прошла успешно, выполнив следующую команду ls команда.

Общесистемный

Чтобы установить тему Fluent GTK в общесистемном режиме, начните с использования компакт диск , чтобы перейти в каталог «Загрузки», где файлы темы в настоящее время находятся на вашем ПК.

Попав в каталог «Загрузки», используйте sudo -s команда для повышения учетной записи терминала, не выходя из каталога «Загрузки».

Наконец, установите тему Fluent GTK на свой компьютер с Linux в общесистемном режиме, используя мв команда.

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

Активация темы Fluent GTK


Теперь Fluent установлен на вашем ПК с Linux, но вы не можете использовать его, пока он не станет темой GTK по умолчанию на рабочем столе. Чтобы изменить тему по умолчанию на рабочем столе Linux на Fluent, сделайте следующее.

Сначала откройте область «Системные настройки». Оказавшись в «Системных настройках», найдите область «Внешний вид» или «Темы» и измените тему по умолчанию, которую использует рабочий стол, на «Fluent», чтобы использовать тему Fluent GTK.

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

gtk+ - это мультиплатформенный тулкит для создания GUI. Предоставляя полный набор виждетов, gtk+ пригоден в различных проектах: от одноразовых игрушек до набора приложений уровня предприятия.

Сегодня gtk+ работает с любым X сервером, Direct Framebuffer'ом и производными в Microsoft Windows NT. Библиотека gtk+ известна от Linux, где она является базисом для построения виджетов рабочей среды GNOME. gtk+ включен практически во все дистрибутивы Linux, и стабильно работает под управлением Windows NT. (в 2000 работала нестабильно, если мне память не изменяет)

Портирование gtk+ на Mac OS X запланированно, но необходима заинтересованность других людей. Это зов к участию.

2. Установка

2.1 Скачивание/Установка

Linux, MacOSX, FreeBSD и другие: Проверьте наличие требуемых пакетов gtk-sharp, mono в вашем дистрибутиве.

Windows: программируйте Windows.Forms, не хрен лезть в GTK =) [примечание автора]

gdk-sharp (http://www.mono-project.com/monodoc/N:Gdk)
низкоуровневый инструментарий для "рисования", используемый gtk+

Шаг 1. Присядьте удобнее


Мы должны чувствовать себя комфортно. Откройте Dr. Pepper и включите любимую музыку. Хорошо, теперь мы готовы.

Шаг 2. Создание папок и файлов

Для начала нам нужно создать новую директорию для маленького проекта. (Пользователи Windows: давайте не будем использовать пробелы в названии директории, чтобы избежать в дальнейшем головной боли).

Откройте shell (Если вы в Windows, откройте меню сПуск :) далее Программы -> Mono 1.x.x -> Mono Command Prompt. Она автоматически установит нужные пути к mono библиотекам.) Перейдите в только что созданную директорию. Мы часто будем использовать консоль, поэтому оставьте ее запущенной.

Вернемся к делу. Откройте свой любимый редактор (MonoDevelop, vi, emacs, notepad и т.д.) и создайте новый пустой проект (если это возможно) или создайте новый пустой файл. Сохраните файл под именем "helloworld.cs".

Шаг 3. Формирование кода

Это должно выглядеть весьма знакомо для Вас. Только теперь мы можем воспользоваться компилятором. Сохраним исходный код, перейдем в консоль и построим проект:

Для тех кто пользовался csc компилятором в Windows параметр "-pkg:" может показаться незнакомым. Этого параметра не было в csc, потому что Mono пришел из мира Linux. Этот параметр позволяет указать на необходимость подключения пакета gtk-sharp-2.0. Т.е. система ищет файл "gtk-sharp-2.0.pc", который содержит данные о местоположении библиотеки для этого пакета (среди другой информации). Т.е. мы не должны вводить "-r:gtk-sharp-2.0.dll -r:atk-sharp-2.0.dll -r:pango-sharp-2.0.dll . " руками.

Шаг 4. Добавление графического интерфейса GUI

Теперь давайте вернемся обратно к нашему коду. Уберем оператор "Console.WriteLine". Первое, что мы сделаем - создадим новое окно. Проделаем это добавлением нового оператора new Window и блока приложения (для начала нити цикла main). Вот так:

Теперь скомпилируем исходный код так же как мы делали это раньше, и запустим программу


В итоге вы получите что-то вроде этого:

Не так уж и сложно, да?

Первая вещь, которую Вы могли заметить, это то, что в отличии от использования System.Windows.Forms мы не писали код для точной компоновки текста в окне. Например, мы не писали 'myLabel.Left = 100' или 'myLabel.Width = 200' или что-то подобное для размещения текстовой метки на форме, мы просто пишем 'myWin.Add(. )'. И все это потому, что 'Gtk.Window' - это виджет, который наследуется от Bin, или одиночного виджета который размещен в контейнере Container.

Шаг 5. Формирование окна

Возможно Вы захотите спросить себя "Как я смогу добавить новый виджет на окно, если оно может содержать только один виджет?" До этого мы говорили, что Window действительно может содержать в себе только один виджет, но виджет сам по себе может содержать в себе множество других виджетов. Некоторые из этих виджетов наследуются от контейнера Gtk.Box, а в некоторых случаях напрямую от контейнера. Контейнерный виджет Bin наследуется напрямую от виждета-контейнера, как и многие другие виджеты, но Bin может содержать в себе только один элемент управления.

Шаг 6. Добавление событий

Многие их этих событий могут быть обработаны стандартным обработчиком событий. Например:

public static void HandlerMethod(object obj, EventArgs args)

Пример обработки событий нажатия на кнопку:

public static void ButtonPressHandler(object obj, ButtonPressEventArgs args)
  • EventType.Nothing
  • EventType.Delete
  • EventType.Destroy
  • EventType.Expose
  • EventType.MotionNotify
  • EventType.ButtonPress
  • EventType.TwoButtonPress
  • EventType.ThreeButtonPress
  • EventType.ButtonRelease
  • EventType.KeyPress
  • EventType.KeyRelease
  • EventType.EnterNotify
  • EventType.LeaveNotify
  • EventType.FocusChange
  • EventType.Configure
  • EventType.Map
  • EventType.Unmap
  • EventType.PropertyNotify
  • EventType.SelectionClear
  • EventType.SelectionRequest
  • EventType.SelectionNotify
  • EventType.ProximityIn
  • EventType.ProximityOut
  • EventType.DragEnter
  • EventType.DragLeave
  • EventType.DragMotion
  • EventType.DragStatus
  • EventType.DropStart
  • EventType.DropFinished
  • EventType.ClientEvent
  • EventType.VisibilityNotify
  • EventType.NoExpose
  • EventType.Scroll
  • EventType.WindowState
  • EventType.Setting

Например, для использования события Gdk.Event мы можем использовать такой код:

В примере выше вы можете увидеть как обнаружить было ли одиночное нажатие мышкой или это был двойной клик.

4.1.1 Что такое glade файлы?


Файлы, записанные в XML формате, которые представляют собой GUI в GTK+, сохраняя сюда все аттрибуты и свойства.

4.1.2 На что похожи файлы .glade?

Файл .glade содержит в себе всю необходимую информацию для того, чтобы библиотека libglade могла воссоздать GUI.

Шаг 2. Интеграция glade файлов с нашей программой

В намерениях нашего примера мы предпологаем, что GUI был сохранен в файл gui.glade, который содержит описание окна window1, кнопки button1 и метки label1.

4.2.1 Как скомпилировать?

Теперь мы должны скомпилировать исходный файл glade.cs указывая пространство имен для glade, которое находится в библиотеке glade-sharp. Команда компиляции следующая:

Коммандой mcs -pkg:glade-sharp мы создаем программу glade.exe, а опция -resource внедряет файл gui.glade в исполняемую программу.

Передавая null как первый параметр в конструктор Glade.XML, мы сообщаем библиотеке libglade загружать glade файл из ресурсов, как вариант использования конструктора, файл может быть загружен из файловой системы, что особенно полезно тогда, когда Вы не хотите перекомпилировать GUI приложение после каждого изменения .glade файла.

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

4.4 Как обращаться к виджетам определенным в gui.glade

Применяем это определение к нашему примеру как следует ниже в коде:

4.5 Как добавить событие

Для добавления событий Вам необходимо следовать примеру кода ниже. Вы также можете добавлять события из Glade.

GTK+, или GIMP Toolkit - это мультиплатформенный инструментарий для разработки графического пользовательского интерфейса. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off tools to complete application suites.

GTK+, GIMP Toolkit, изначально сделан проектом GNU для GIMP, но теперь это очень популярный инструмент связанный с многими языками. Эта статья будет исследовать инструменты, используемые для настройки GTK+ тем, стилей, иконок, шрифтов и размеров шрифтов, а также подробную ручную настройку.

Contents

Установка

Две версии GTK+ в настоящее время доступны в официальных репозиториях. Они могут быть установлены со следующими пакетами:

  • GTK+ 3.x доступен с пакетом gtk3 .
  • GTK+ 2.x доступен с пакетом gtk2 .
  • GTK+ 1.x доступен с пакетом gtkAUR .

В GTK+ 2, тема по умолчанию Raleigh, но Arch Linux имеет пользовательский файл настроек /usr/share/gtk-2.0/gtkrc , который устанавливает тему по умолчанию Adwaita. В GTK+ 3, тема по умолчанию Adwaita, но также включены темыHighContrast и Raleigh.

Чтобы установить определенную тему, вы можете задать переменные среды.

  • Для GTK+ 2, используйте переменную среду GTK2_RC_FILES например:
  • Для GTK+ 3, используйте переменную среду GTK_THEME например:

Другие темы могут быть установлены из официальных репозиториев или из AUR.

С поддержкой обеих GTK+ 2 и GTK+ 3:

Поддерживается только GTK+ 2:

  • Так как GTK+ 3 быстро меняется, GTK+ 3 темы требуют переработки после выпуска GTK+ 3. По этой причине, не все темы GTK+ 3, могут выглядеть как предполагалось при использовании последней GTK + 3 версии.
  • Некоторые темы могут потребовать librsvg для правильного отображения, но не все указывают его в качестве зависимости. Попробуйте установить его, если выбранная тема выглядит сломанной.
  • Некоторые темы не могут использоваться для отображения панели "как есть" (

светлый текст на светлом фоне), так что вам нужно использовать предоставленный фон панели.

GTK+ и Qt

Если у вас есть GTK+ и Qt (KDE) приложения на рабочем столе, то вы знаете, что их внешность не сочетается/не совпадает.Если вы хотите, чтобы ваши стили GTK+ соответствовали вашим стилям Qt прочитайте Единый внешний вид приложений Qt и GTK.

Средства настройки

Большинство крупных окружений рабочего стола предоставляют инструменты для настройки тем GTK+, иконок, шрифта и размера шрифта, и управляют этими настройками с помощью XSettings:

  • Если вы используете Cinnamon, используйте Themes tool (cinnamon-settings themes): перейдите в Параметры > Параметры системы > Оформление.
  • Если вы используете Enlightenment: перейдите в Settings > All > Look > Application Theme.
  • Если вы используете GNOME, используйте Gnome Tweaks (gnome-tweaks): установите gnome-tweaks .
  • Если вы используете MATE, используйте Appearance Preferences tool (mate-appearance-properties): перейдите в Система > Параметры > Внешний вид.
  • Если вы используете Xfce, используйте Appearance tool: перейдите Настройки > Внешний вид.
  • Если вы используете Openbox, перейдите в obconf > Тема или lxappearance с установленным lxappearance-obconf, тогда lxappearance-obconf > Рамка окна > Тема.

Другие графические инструменты, как правило перезаписывают файлы настроек.

Поддерживаются оба GTK+ 2 и GTK+ 3:

Поддерживается только GTK+ 2:

Настройка

Параметры GTK+ могут быть вручную заданы в файлах настройки, но окружение рабочего стола и приложения могут переопределить эти параметры. В зависимости от версии GTK+, эти файлы находятся по пути:

    GTK+ 2 конкрентного пользователя:

  • Смотрите GTK+ 3 свойства GtkSettings (и GTK+ 2 свойства [устаревшая ссылка 2021-11-10] ) в справочном руководстве программирования GTK+, для полного перечня поддерживаемых в настоящее время вариантов настройки GTK+.
  • Некоторые настройки, описанных ниже (например gtk-icon-sizes ) являются устаревшими и игнорируется с GTK+ 3.10.
  • При редактировании файлов настроек GTK+, только вновь запущенные приложения будет отображать изменения.

Базовая настройка темы

Для ручного изменения темы GTK+, иконок, шрифтов и размера шрифтов, добавьте следующие файлы настроек, например:

Примечание: Название темы значков определено в файле индекса темы, а не в имени своего каталога.

Вариант тёмной темы

Некоторые темы GTK+ 3 содержат тёмный вариант темы, но он используется только когда приложение запрашивает именно его. Чтобы использовать вариант темной темы со всеми GTK+ 3 приложениями, установите:

Горячие клавиши

Keyboard shortcuts (otherwise known as accelerators in GTK+) may be changed by hovering the mouse over the respective menu item, and pressing the desired key combination. To enable this feature, set:

Задержка меню GNOME

Этот параметр управляет задержкой между "указыванием мыши" на меню и "открытием меню". Эта задержка измеряется в миллисекундах.

Уменьшить размер виджетов

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

Для того чтобы иконки были без текста в панели инструментов ((допустимые значения)), используйте

Чтобы использовать меньшие иконки:

Или, чтобы удалить иконки из кнопок полностью:

Вы также можете удалить из меню иконки:

Место запуска выбора файла

Чтобы открывать диалог "выбор файла" (например при открытии/сохранении) в текущем рабочем каталоге а не в последнем (recent) месте (обычно текущий-рабочий-каталог это домашний каталог), сделайте следующее:

Измените DConf с gsettings:

Измените файл настроек

Наследие поведения скроллбара

Примечание: Этот параметр не повиновался всеми приложениями GTK+. Совет: Наследство поведения прокрутки может быть надежно достигнуто, просто используя правую кнопку мыши вместо левой кнопки мыши.

До GTK+ 3.6, щелчёк в обе стороны от ползунка сдвинет прокрутку в направлении щелчка, примерно на одну страницу. Так GTK+ 3.6, слайдер сразу перейдёт к позиции мыши. Такое поведение можно отменить в некоторых приложениях путем создания файла с содержимым, приведенным ниже:

Отключить наложение скролбара

С GTK+ 3.15, наложения полосы прокрутки по умолчанию включено, что означает, что полосы прокрутки будут показываться только при наведении курсора мыши на GTK+ 3 приложение. Такое поведение можно отменить, установив следующую переменную окружения: GTK_OVERLAY_SCROLLING=0 .

Удалить наложенные показателя скролбара

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

GTK+ и HTML с Broadway

GDK Broadway обеспечивает поддержку для отображения GTK+ приложений в веб-браузере, используя HTML5 и веб-соккеты. [3]

При использовании broadwayd, укажите номер дисплея для использования с префиксом двоеточие, похожий на X. На дисплее по умолчанию номер 1.

Порт используемый по умолчанию

В качестве альтернативы, можно установить адрес и порт

Решение проблем

Различные темы приложений между GTK+ 2 и GTK+ 3

В общем, если выбранная тема имеет поддержку как для GTK+ 2 и GTK+ 3, тема будет применяться для всех GTK+ 2 и GTK+ 3 приложений. Если выбранная тема имеет поддержку только GTK+ 2, будет использоваться для GTK+ 2 приложений, и GTK+ тема по умолчанию будет использоваться для GTK+ 3 приложений. Если выбранная тема имеет поддержку только GTK+ 3, то будет использована для GTK+ 3 приложений, и GTK+ тема по умолчанию будет использоваться для GTK+ 2 приложений. Таким образом, для согласования тем приложений, лучше использовать тему, которая имеет поддержку как GTK+ 2 так и GTK+ 3.

Вы можете найти установленные темы на вашей системе с поддержкой обоих версий GTK+ 2 и GTK+ 3, используя эту команду (не работает с именами, содержащими пробелы):

Тема не применяется к root-приложениям

Пользовательский файл темы ( $XDG_CONFIG_HOME/gtk-3.0/settings.ini ,

/.gtkrc-2.0 ) не может быть прочитан другими аккаунтами, выбранная тема не будет применяться к приложениям X запущенных от root. Возможное решение включает в себя:

  • Настройку файла темы для всей системы: /etc/gtk-3.0/settings.ini (GTK+ 3) или /etc/gtk-2.0/gtkrc (GTK+ 2)
  • Создание символьной ссылки, т.е.
  • Смена темы от root
  • Используйте настройки демона (это в большинстве окружений рабочего стола). Вариант desktop-agnostic использует XSettings доступный в AURxsettingsd-gitAUR .

Клиентские декорации

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

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

Чтобы настроить кнопки на панели заголовка, используйте опцию gtk-decoration-layout . [4] Приведенный ниже пример удаляет все кнопки:

Седиль ç/Ç вместо ć/Ć (характерно в основном для Французского языка)

Подавить предупреждение о accessibility bus

вы можете подавить предупреждение, запуская программу с NO_AT_BRIDGE=1 или установить в качестве глобальной переменной окружения

Не соответствует цвет фона в строке заголовка (TitleBar)

Если вы используете оконный менеджер который использует тему декорации окон, которая имитирует цвет темой фона GTK+, вы можете обнаружить, что цвет заголовка окна больше не совпадает полностью с цветом приложений в некоторых приложениях GTK+ 3. В качестве обходного пути, создайте следующий файл:

Неправильный фокус событий в тайловых оконных менеджерах

Примечание: Это отключит поддержку Сенсорного экрана для приложений GTK3. [7]

Определите GDK_CORE_DEVICE_EVENTS=1 для использования стиля ввода GTK2, вместо xinput2. [8]

Поддержка эскизов для диалога файлов GTK + 2

Установите gtk2-patched-filechooser-icon-view AUR чтобы получить возможность просмотра файлов в виде миниатюр, вместо списка, в файловом браузере GTK +.

В сети бытуют страшные слухи об этом фреймворке, однако серией статей о нём на ХабраХабре я попытаюсь разрушить сложившиеся стереотипы.

GTK+ — это фреймворк для создания кроссплатформенного графического интерфейса пользователя (GUI). Наряду с Qt он является одной из двух наиболее популярных на сегодняшний день библиотек для X Window System.

Изначально эта библиотека была частью графического редактора GIMP, но позже стала независимой и приобрела популярность. GTK+ — это свободное ПО, распространяемое на условиях GNU LGPL и позволяющее создавать как свободное, так и проприетарное программное обеспечение.




Как это работает

Внутри GTK+ состоит из двух компонентов: GTK, который содержит набор виджетов (кнопка, метка и т.д.) и GDK, который занят выводом результата на экран.

Внешний вид приложений может меняться программистом и/или пользователем. По-умолчанию приложения выглядят нативно, т.е. так же, как и другие приложение в этой системе. Кроме того, начиная с версии 3.0, можно менять внешний вид элементов с помощью CSS.

Делаем «Hello, World»

Для начала за основу возьмём вот такую заготовку:


Пожалуйста, не используйте одинарные комментарии (//), если как и я решили писать на Си.

Давайте для начала создадим окно нашего приложения. В GTK существует несколько типов окошек, но нам понадобится обычный GtkWindow. Вставьте в нашу заготовку следующий код:


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

В GTK+ виджеты принято размещать не по координатам, а упаковывать в специальные контейнеры. Окно, которое мы создали, также является контейнером, который может содержать только один виджет. Нам этого хватит, но в ином случае нам бы пришлось добавить специальный виджет-контейнер, который может представлять из себя сетку, а также горизонтальные или вертикальные поля. Но об этом я подробнее расскажу в следующем топике.

Пока остановимся на окне. Напомню, что окно — это контейнер, которому мы указали толщину границ в 50 пикселей. Что это значит?


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

Теперь рассмотрим сигналы.

Мы можем связать определённое событие, которое должно произойти с виджетом, со своей функцией.


В данном случае это стандартная фунция gtk_main_quit() , которая безопасно завершит наше приложение.

Теперь создадим кнопку, по нажатию на которую будет появляться окошко с надписью «И тебе привет, %username%!».

Кнопка (GtkButton) — это тоже контейнер, который также может содержать один виджет. Чтобы не усложнять код созданием метки и помещением её в кнопку, сделаем вот так:


Выглядеть это будет так:


Теперь реализация функции welcome :

Результат после нажатия:


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

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