Разрабатывать приложения в Линуксе можно с помощью фреймворка GTK. Эта библиотека предназначенная для построения графического интерфейса пользователя. GTK — это свободное программное обеспечение, которое распространяется по лицензии GNU LGPL, что позволяет создавать как бесплатные так и коммерческие приложения.
С документациею и описанием библиотеки, Вы можете ознакомиться по следующей ссылке: https://www.gtk.org
Перед написанием приложения необходимо подготовить среду разработки. Для этих целей буду использовать ОС Ubuntu 22.04. Так как приложение будет разрабатываться на языке программирования Си необходимо установить необходимые пакеты и компилятор.
Откройте терминал от имени пользователя root и введите следующую команду:
sudo apt-get install build-essential
Также нам необходимо установить пакеты GTK для разработки приложения. Вводим следующую команду в терминале:
sudo apt-get install -y libgtk-3-dev
Теперь все готово для написания первого приложения. Открываем любой текстовый редактор и пишем следующий код:
#include <gtk/gtk.h>
int main (int argc, char *argv[])
{
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);
gtk_main ();
return 0;
}
Этот код создает окно. Но прежде чем выполнить приложение, давайте разберемся немного с кодом.
#include <gtk/gtk.h> - здесь мы подключаем библиотеку gtk. Без этой библиотеки не будет работать графическое окно и мы не сможем запустить приложение;
GtkWidget *window; - задаем имя/метку окна;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - эта строка создает стандартное окно с рамкой;
gtk_widget_show(window); - отображаем окно на дисплее.
Теперь давайте запустим приложение. Я сохранил код приложения в файле ex1.c в домашней папки.
Открывает терминал и вводим следующие команды:
gcc ex1.c -o ex1 `pkg-config --cflags --libs gtk+-3.0
./ex1

Теперь давайте улучшим код и создадим текстовую метку.
#include <gtk/gtk.h>
int main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *label1;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
label1 = gtk_label_new("Hello! My first Program");
gtk_container_add(GTK_CONTAINER(window), label1);
gtk_widget_show(label1);
gtk_widget_show(window);
gtk_main ();
return 0;
}
GtkWidget *label1; - задаем имя текстовой метки;
label1 = gtk_label_new("Hello! My first Program"); - создаем текстовую метку;
gtk_container_add(GTK_CONTAINER(window), label1); - эта строка кода добавляет метку в контейнер;
gtk_widget_show(label1); - отображаем метку в окне.
Запускаем приложение

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