GNOME-SESSION(1) دستورهای کاربر GNOME-SESSION(1)

gnome-session - راه‌اندازی محیط میزکار GNOME

gnome-session [OPTION...]

برنامهٔ gnome-session محیط میزکار GNOME را راه‌اندازی می‌کند. این دستور معمولاً توسط مدیر ورود شما (مانند GDM،‏ SDDM،‏ lightdm یا موارد دیگر) اجرا می‌شود. این برنامه یا نشست ذخیره‌شدهٔ شما را بارگذاری می‌کند، یا یک نشست پیش‌فرض برای کاربر طبق آنچه توسط مدیر سیستم (یا نصب پیش‌فرض GNOME بر روی سیستم شما) تعریف شده است فراهم می‌آورد.

نشست پیش‌فرض در gnome.session تعریف شده است؛ فایلی شبیه به .desktop که در مسیرهای $XDG_CONFIG_HOME/gnome-session/sessions، $XDG_CONFIG_DIRS/gnome-session/sessions و $XDG_DATA_DIRS/gnome-session/sessions جستجو می‌شود.

--session=SESSION

استفاده از برنامه‌های تعریف‌شده در SESSION.session. اگر مشخص نشود، از gnome.session استفاده خواهد شد.

--debug

فعال‌سازی کد اشکال‌زدایی.

برنامهٔ gnome-session برای بخش عمدهٔ مدیریت سرویس‌های خود از systemd استفاده می‌کند. systemd دو تارگت ویژه برای یکپارچگی میزکار ارائه می‌دهد: graphical-session.target و graphical-session-pre.target. این تارگت‌ها در تمام محیط‌های میزکار کار می‌کنند و در صورت امکان باید استفاده شوند. gnome-session تارگت‌های اختصاصی زیر را برای GNOME فراهم می‌کند:

gnome-session.target

واحدی عمومی که در سراسر نشست فعال خواهد بود. مشابه graphical-session.target.

gnome-session-pre.target

برای وظایفی که باید پیش از راه‌اندازی نشست انجام شوند استفاده می‌شود. مشابه graphical-session-pre.target.

gnome-session@SESSION.target

واحد اصلی شروع‌شده برای نشست. SESSION بر اساس نشستی که از طریق --session ارسال شده، تعیین می‌شود.

gnome-session-basic-services.target

واحدی ویژه که سرویس‌های پایه‌ای مورد نیاز هر نشست GNOME ساخته‌شده حول gnome-shell را فهرست می‌کند. این ویژگی امکان استفادهٔ مجدد آسان در نشست‌های کیوسک (مانند صفحهٔ ورود GDM) را فراهم می‌سازد.

gnome-session-x11-services.target

واحدی ویژه که در صورت نیاز به سرویس‌های X11 شروع می‌شود. برنامه‌ها باید به جای DISPLAY از متغیر محیطی ویژهٔ GNOME_SETUP_DISPLAY استفاده کنند.

توجه داشته باشید که باید در تنظیم قوانین مناسب After= دقت شود. همچنین اکیداً توصیه می‌شود این کار همواره در ترکیب با BindsTo= یا PartOf= روی یکی از تارگت‌های اصلی (مانند graphical-session.target) انجام گیرد.

واحدها موظف‌اند CollectMode=inactive-or-failed را تنظیم کنند. علاوه بر این، اکیداً توصیه می‌شود که TimeoutStopSec=5 تنظیم شود تا در صورتی که فرایند به درستی متوقف نشد، خروج از سیستم به طور نامحدود به تعویق نیفتد.

نشست‌ها در فایل‌های .session تعریف می‌شوند که قالبی شبیه به فایل‌های .desktop دارند، و کلیدهای زیر در گروه GNOME Session آن‌ها قرار می‌گیرد:

Name

نام نشست. این مقدار می‌تواند بومی‌سازی شود.

Kiosk

نشست‌های کیوسک (Kiosk) نشست‌های ویژهٔ تک‌منظوره‌ای هستند که حول راه‌اندازی یک برنامهٔ خاص ساخته شده‌اند. برای مثال، یک نشست کیوسک ممکن است یک مرورگر وب تمام‌صفحه را اجرا کند که روی صفحه‌ای خاص قفل شده است. در GNOME، ما از نشست‌های کیوسک برای صفحهٔ ورود (جایی که برنامه همان رابط کاربری صفحهٔ ورود است) و تجربهٔ نخستین راه‌اندازی (initial-setup) استفاده می‌کنیم. هنگامی که روی true تنظیم شود، gnome-session هیچ تلاشی برای اجرای خودکار هیچ‌کدام از فایل‌های .desktop نخواهد کرد، و در عوض ملزم می‌کند که نشست تمام قابلیت‌های لازم را از طریق systemd پیکربندی نماید.

نمونه‌ای از یک تعریف نشست:

[GNOME Session]
Name=GNOME

فایل‌های .session از مسیرهای $XDG_CONFIG_HOME/gnome-session/sessions، $XDG_CONFIG_DIRS/gnome-session/sessions و $XDG_DATA_DIRS/gnome-session/sessions بارگذاری می‌شوند.

تعاریف نشست به خودی خود کاری انجام نمی‌دهند، و باید با پیکربندی systemd همراه باشند تا قابلیت‌هایی را فراهم کنند (یعنی سرویس‌ها را اجرا نمایند). روش توصیه‌شده برای انجام این کار، قلاب شدن به یکی از تارگت‌های شرح‌داده‌شده در بالا است. به عنوان مثال: هنگام تعریف نشستی به نام foobar، می‌توانید یک فایل drop-in متعلق به systemd در مسیر /etc/systemd/user/gnome-session@foobar.target.d/session.conf ایجاد کرده و وابستگی‌های Requires= و Wants= را تعریف کنید تا به systemd اعلام کند هنگام راه‌اندازی این نشست، چه سرویس‌هایی باید اجرا شوند.

$XDG_CONFIG_HOME/autostart
$XDG_CONFIG_DIRS/autostart
/usr/share/gnome/autostart

برنامه‌های تعریف‌شده توسط فایل‌های .desktop در این دایرکتوری‌ها هنگام ورود به سیستم راه‌اندازی خواهند شد. توجه داشته باشید که نسخه‌های قبلی gnome-session سرویس‌ها را از اینجا اجرا می‌کردند، اما اکنون دیگر چنین نیست. سرویس‌ها اکنون باید از طریق فایل‌های واحد systemd پیکربندی شوند.

$XDG_CONFIG_HOME/gnome-session/sessions
$XDG_CONFIG_DIRS/gnome-session/sessions
$XDG_DATA_DIRS/gnome-session/sessions

این دایرکتوری‌ها حاوی فایل‌های .session هستند که می‌توانند با گزینهٔ --session استفاده شوند.

اگر باگی در برنامهٔ gnome-session یافتید، لطفاً آن را در https://gitlab.gnome.org/GNOME/gnome-session/issues گزارش دهید.

gnome-session-quit(1)

gnome-session