GAPPLICATION(1) دستورهای کاربری GAPPLICATION(1)

gapplication - کنترل و مدیریت برنامههای دارای پشتیبانی از GApplication

gapplication help [COMMAND]
gapplication version
gapplication list-apps
gapplication launch <APP-ID>
gapplication launch <APP-ID> [FILE…]
gapplication list-actions <APP-ID>
gapplication action <APP-ID> <ACTION> [PARAMETER]

دستور gapplication یک پیاده‌سازی خط فرمانی از سمت کلاینت رابط org.freedesktop.Application بر پایه مشخصات ورودی رومیزی (Desktop Entry Specification) مربوط به freedesktop.org است.

می‌توان از gapplication برای آغاز برنامه‌هایی که در فایل‌های .desktop خود مقدار DBusActivatable را برابر با true تنظیم کرده‌اند استفاده کرد، و همچنین می‌توان از آن برای ارسال پیام‌ها به نمونه‌های در حال اجرای دیگر برنامه‌ها بهره برد.

این امکان برای برنامه‌ها وجود دارد که در سطر Exec فایل‌های .desktop خود به gapplication ارجاع دهند تا سازگاری عقبرو با پیاده‌سازی‌هایی که مستقیماً از DBusActivatable پشتیبانی نمی‌کنند حفظ شود.

ابزار gapplication به عنوان بخشی از GLib عرضه می‌شود.

help [COMMAND]

نمایش خلاصه کوتاهی از دستورهای موجود یا ارائه راهنمای با جزئیات درباره یک دستور خاص.

version

چاپ نسخه GLib که gapplication همراه با آن ارائه شده است.

list-apps

فهرستی از تمام شناسه‌های برنامه‌هایی که مشخص شده از فعال‌سازی با D-Bus پشتیبانی می‌کنند را چاپ می‌کند. این فهرست با پویش فایل‌های .desktop بر پایه مقدار فعلی XDG_DATA_DIRS تولید می‌شود.

launch <APP-ID> [FILE…]

یک برنامه را اجرا و راه‌اندازی می‌کند.

نخستین پارامتر، شناسه برنامه (application ID) با سبک آشنای «DNS معکوس» (مانند org.gnome.app) و بدون پسوند .desktop است.

در صورت مشخص شدن پارامترهای دیگر به صورت اختیاری، با آن‌ها به عنوان نام فایل‌هایی که باید باز شوند برخورد می‌شود که می‌توانند نام فایل یا نشانی اینترنتی (URI) باشند. اگر هیچ فایلی مشخص نشود، برنامه تنها فعال‌سازی می‌شود.

list-actions <APP-ID>

فهرست کردن کنش‌های اعلان‌شده در فایل .desktop برنامه. این پارامتر همان شناسه برنامه مطابق بالا است.

action <APP-ID> <ACTION> [PARAMETER]

کنش نام‌برده را فراخوانی می‌کند (به همان شیوه‌ای که هنگام فعال‌سازی کنش مشخص‌شده در فایل .desktop رخ می‌دهد).

شناسه برنامه (مانند بالا) نخستین پارامتر است. سپس نام کنش به دنبال آن می‌آید.

به صورت اختیاری، به دنبال نام کنش می‌تواند یک پارامتر در قالب GVariant قرار گیرد که به شکل یک تک‌آرگومان داده می‌شود. اطمینان حاصل کنید که از نقل‌قول‌ها (Quoting) به اندازه کافی استفاده شود.

راه‌اندازی یک برنامه:

gapplication launch org.example.fooview

باز کردن یک فایل با یک برنامه:

gapplication launch org.example.fooview ~/file.foo

باز کردن چند فایل با یک برنامه:

gapplication launch org.example.fooview ~/foos/*.foo

فراخوانی یک کنش روی یک برنامه:

gapplication action org.example.fooview create

فراخوانی یک کنش روی یک برنامه، به همراه پارامتر:

gapplication action org.example.fooview show-item '"item_id_828739"'

رابط خط فرمانی gapplication به گونه‌ای طراحی شده است که بتوان آن را مستقیماً از خط Exec یک فایل .desktop استفاده کرد.

ممکن است بخواهید این کار را برای برقراری سازگاری عقبرو با پیاده‌سازی‌هایی از مشخصات که روش فعال‌سازی با D-Bus را نمی‌دانند انجام دهید، بدون این که نیاز به نصب یک برنامه کمکی مجزا باشد.

مثال زیر را در نظر بگیرید:

[Desktop Entry]
Version=1.1
Type=Application
Name=Foo Viewer
DBusActivatable=true
MimeType=image/x-foo;
Exec=gapplication launch org.example.fooview %F
Actions=gallery;create;
[Desktop Action gallery]
Name=Browse Gallery
Exec=gapplication action org.example.fooview gallery
[Desktop Action create]
Name=Create a new Foo!
Exec=gapplication action org.example.fooview create

هنگام نصب برنامه‌ای که از فعال‌سازی با D-Bus پشتیبانی می‌کند، ممکن است همچنان بخواهید فایلی را در /usr/bin قرار دهید تا برنامه‌تان از درون یک پایانه قابل اجرا باشد.

امکان دارد که این فایل یک اسکریپت شل باشد. این اسکریپت می‌تواند آرگومان‌هایی مانند --help و --version را مستقیماً مدیریت کند. همچنین می‌تواند دیگر آرگومان‌های خط فرمان را پردازش کرده و آن‌ها را به استفاده از gapplication برای فعال‌سازی برنامه، باز کردن فایل‌ها، یا فراخوانی کنش‌ها تبدیل نماید.

در اینجا یک مثال ساده‌شده آورده شده است، مانند آنچه ممکن است در /usr/bin/fooview نصب شود:

#!/bin/sh
case "$1" in
  --help)
    echo "see ‘man fooview’ for more information"
    ;;
  --version)
    echo "fooview 1.2"
    ;;
  --gallery)
    gapplication action org.example.fooview gallery
    ;;
  --create)
    gapplication action org.example.fooview create
    ;;
  -*)
    echo "unrecognized commandline argument"
    exit 1
    ;;
  *)
    gapplication launch org.example.fooview "$@"
    ;;
esac

Desktop Entry Specification https://specifications.freedesktop.org/desktop-entry-spec/latest، gdbus(1) <man:gdbus(1)>، xdg-open(1) <man:xdg-open(1)>، desktop-file-validate(1) <man:desktop-file-validate(1)>

سپتامبر ۲۰۲۶ glib2