Расширение для Gnome files на C

20-09-2026 1 min

Рассмотрим как написать расширение для файлового менеджера Nautilus более известного как Files в графической оболочке Gnome используя язык программирования C и систему сборки meson.

Создадим папку проекта, внутри папки файл meson.build

project(
    'nautilus-hyprpaper',
    'c',
    version: '1.0'
)

dependencies = [
    dependency('libnautilus-extension-4'),
    dependency('glib-2.0'),
    dependency('gobject-2.0'),
    dependency('gio-2.0')
]

extension_dir = run_command(
  'pkg-config',
  '--variable=extensiondir',
  'libnautilus-extension-4',
  check: true
).stdout().strip()

shared_module(
    'nautilus-hyprpaper',
    'nautilus-hyprpaper.c',
    dependencies: dependencies,
    install: true,
    install_dir: extension_dir
)

Разберём meson.build. Эти строки задают название проекту 'nautilus-hyprpaper', язык программирования C и версию проекта.

project(
    'nautilus-hyprpaper',
    'c',
    version: '1.0'
)

массив dependencies хранит зависимости проекта:

dependencies = [
    dependency('libnautilus-extension-4'),
    dependency('glib-2.0'),
    dependency('gobject-2.0'),
    dependency('gio-2.0')
]

эта команда получает путь к папке расширений nautilus и записывает в переменную extension_dir

extension_dir = run_command(
  'pkg-config',
  '--variable=extensiondir',
  'libnautilus-extension-4',
  check: true
).stdout().strip()

установим расширение sudo meson install -C build