.TH EMPTTY 1 "March 2026" "emptty 0.16.1" emptty .SH "نام (NAME)" emptty \- مدیر نمایش خط فرمان بسیار ساده روی TTY .SH "خلاصه دستور (SYNOPSIS)" .B emptty [-v] [--version] [-d] [--daemon] [-c PATH] [--config PATH] [-i] [--ignore-config] [-t TTY] [--tty TTY] [-u defaultUser] [--default-user defaultUser] [-a [session]] [--autologin [session]] .SH "توضیحات (DESCRIPTION)" .B emptty یک مدیر نمایش (Display Manager) ساده در خط فرمان (CLI) است که به کاربر امکان می‌دهد پس از ورود، محیط میزکار (DE) یا مدیر پنجره (WM) مورد نظر خود را انتخاب کند، از پیکربندی از پیش تعریف‌شده بهره ببرد یا در صورتی که کاربر انتخاب‌شده عضو گروه .I nopasswdlogin باشد، امکان ورود خودکار (autologin) را فراهم می‌سازد. .SH "گزینه‌ها (OPTIONS)" .IP "\-v, \-\-version" نمایش نسخه برنامه. .IP "\-d, \-\-daemon" اجرای emptty به عنوان دیمن که نیازی به agetty ندارد. .IP "\-c, \-\-config PATH" بارگذاری پیکربندی از مسیر مشخص‌شده. .IP "\-C, \-\-print\-config" فقط چاپ پیکربندی بارگذاری‌شده و خروج. .IP "\-i, \-\-ignore-config" صرف‌نظر کردن از بارگذاری پیکربندی از فایل و بارگذاری تنها پیکربندی آرگومان‌ها. .IP "\-t, \-\-tty TTY" بازنویسی پیکربندی بارگذاری‌شده با تنظیم TTY مشخص‌شده. می‌تواند به صورت یک عدد (مانند "7") یا نام TTY (مانند "tty7") تعیین شود. .IP "\-u, \-\-default-user defaultUser" بازنویسی پیکربندی بارگذاری‌شده با تعیین defaultUser مشخص‌شده. .IP "\-a, \-\-autologin [session]" بازنویسی پیکربندی بارگذاری‌شده با فعال‌سازی ورود خودکار. در صورت مشخص شدن نشست (session)، نشست ورود خودکار را بازنویسی می‌کند. .SH "پیکربندی (CONFIG)" /etc/emptty/conf .IP TTY_NUMBER شماره TTY که emptty در آن شروع به کار خواهد کرد. .IP SWITCH_TTY تغییر وضعیت به شماره TTY تعیین‌شده را فعال می‌کند. پیش‌فرض true است. .IP PRINT_ISSUE چاپ فایل /etc/issue را در حالت دیمن فعال می‌کند. .IP PRINT_MOTD چاپ motd پیش‌فرض، motd ایستا یا motd پویا را فعال می‌کند. .IP DEFAULT_ENV محیط پیش‌فرض مورد استفاده برای راه‌اندازی نشست‌های تعریف‌نشده (مثلاً از فایل `emptty`) را تعیین می‌کند. مقادیر ممکن "xorg" و "wayland" هستند. مقدار پیش‌فرض xorg است. .IP DEFAULT_USER کاربر از پیش انتخاب‌شده؛ در صورت فعال بودن AUTOLOGIN، این کاربر وارد سیستم می‌شود. .IP DEFAULT_SESSION نشست میزکار از پیش انتخاب‌شده در صورتی که کاربر از فایل `emptty` استفاده نکند. اولویت کمتری نسبت به .I AUTOLOGIN_SESSION دارد. .IP DEFAULT_SESSION_ENV محیط اختیاری برای نشست میزکار از پیش انتخاب‌شده در صورتی که کاربر از فایل `emptty` استفاده نکند. مقادیر ممکن "xorg" و "wayland" هستند. .IP AUTOLOGIN ورود خودکار را در صورت تعریف شدن DEFAULT_USER فعال می‌کند. مقادیر ممکن "true" یا "false" هستند. مقدار پیش‌فرض false است. .PP .B نکته: برای فعال‌سازی ورود خودکار، DEFAULT_USER باید در گروه .I nopasswdlogin باشد، در غیر این صورت کاربر مجاز شناخته نخواهد شد. .IP AUTOLOGIN_SESSION نشست پیش‌فرض مورد استفاده در صورت فعال بودن ورود خودکار. اگر نشست در فهرست نشست‌ها یافت نشود، به مرحله انتخاب دستی هدایت می‌شود. .IP AUTOLOGIN_SESSION_ENV محیط اختیاری برای نشست میزکار ورود خودکار. مقادیر ممکن "xorg" و "wayland" هستند. .IP AUTOLOGIN_MAX_RETRY اگر نشست در بازه زمانی مشخص‌شده به درستی آغاز نشود، تعداد تلاش‌های مجدد در یک بازه کوتاه نگه‌داشته می‌شود تا در نهایت از حلقه بی‌پایان راه‌اندازی‌های مجدد جلوگیری گردد. مقدار \-1 برای تلاش‌های نامحدود و 0 برای عدم تلاش مجدد است. مقدار پیش‌فرض 2 است. .IP AUTOLOGIN_RETRY_PERIOD بازه زمانی به ثانیه که برای بررسی تلاش‌های مجدد ورود به نشست استفاده می‌شود. مقدار پیش‌فرض 2 است. .IP LANG لوکال را برای همه کاربران تعیین می‌کند. مقدار پیش‌فرض "en_US.UTF-8" است. .IP DBUS_LAUNCH پیش از اجرای دستور میزکار، "dbus-launch" را اجرا می‌کند. پس از پایان نشست، "dbus-daemon" متوقف می‌شود. مقدار پیش‌فرض true است. اگر .I پیکربندی کاربر به صورت اسکریپت مدیریت شود (شامل گزینه .I Exec نباشد)، این تنظیم به false بازنویسی می‌شود. .IP ALWAYS_DBUS_LAUNCH تحت هر شرایطی "dbus-launch" را پیش از دستور میزکار اجرا می‌کند و مقدار .I DBUS_LAUNCH نادیده گرفته می‌شود. همچنین حتی اگر .I XINITRC_LAUNCH بر روی `true` تنظیم شده باشد نیز اجرا خواهد شد. پس از پایان نشست، "dbus-daemon" متوقف می‌شود. مقدار پیش‌فرض false است. .IP XINITRC_LAUNCH میزکار Xorg را با فراخوانی اسکریپت .I ~/.xinitrc همراه با دستور اجرای نشست به عنوان آرگومان اجرا می‌کند؛ در صورتی که برابر true باشد، فایل وجود داشته باشد و WM/DE انتخاب‌شده یک نشست Xorg باشد، بر DBUS_LAUNCH اولویت خواهد داشت. اگر .I پیکربندی کاربر به عنوان اسکریپت مدیریت شود (شامل گزینه .I Exec نباشد)، این پیکربندی به false بازنویسی می‌شود. .IP VERTICAL_SELECTION هر یک از گزینه‌های WM/DE در دسترس را به جای چاپ در یک خط، در سطری جدید نمایش می‌دهد. .IP INDENT_SELECTION فاصله افقی (تورفتگی) برای انتخاب عمودی که جهت قرار دادن منو در مرکز صفحه نمایش کاربرد دارد. .IP LOGGING نحوه مدیریت ثبت گزارش‌ها را مشخص می‌کند. مقادیر ممکن "rotate"، "appending" یا "disabled" هستند. مقدار پیش‌فرض "rotate" است. .IP LOGGING_FILE مسیر فایل گزارش را بازنویسی می‌کند. مقدار پیش‌فرض عبارت است از .I /var/log/emptty/[TTY_NUMBER].log .PP .B نکته: وجود دایرکتوری‌های منتهی به مسیر فایل گزارش الزامی است. .IP XORG_ARGS آرگومان‌های ارسالی به کارساز Xorg. .IP DYNAMIC_MOTD امکان استفاده از اسکریپت motd پویا را برای تولید پیام روز سفارشی فراهم می‌کند. مقادیر ممکن "true" یا "false" هستند. مقدار پیش‌فرض false است. .PP .B نکته: اطمینان حاصل کنید که motd پویا دارای محتوا و مجوزهای مناسب (مانند 744) باشد؛ این اسکریپت با هویت کاربر پیش‌فرض اجرا می‌شود که در حالت دیمن به معنای .I root است. .IP DYNAMIC_MOTD_PATH امکان بازنویسی مسیر پیش‌فرض motd پویا را فراهم می‌کند. مقدار پیش‌فرض "/etc/emptty/motd-gen.sh" است. .IP MOTD_PATH امکان بازنویسی مسیر پیش‌فرض motd ایستا را فراهم می‌کند. مقدار پیش‌فرض "/etc/emptty/motd" است. .IP FG_COLOR رنگ پیش‌زمینه (متن) که فقط در حالت دیمن در دسترس است. فهرست رنگ‌ها در زیر آمده است. .IP BG_COLOR رنگ پس‌زمینه که فقط در حالت دیمن در دسترس است. فهرست رنگ‌ها در زیر آمده است. .IP DISPLAY_START_SCRIPT اسکریپتی که پیش از شروع نمایشگر (Xorg/Wayland) اجرا می‌شود. .PP .B نکته: این اسکریپت با هویت کاربر پیش‌فرض اجرا می‌شود که در حالت دیمن به معنای .I root است. .IP DISPLAY_STOP_SCRIPT اسکریپتی که پس از توقف نمایشگر (Xorg/Wayland) اجرا می‌شود. .PP .B نکته: این اسکریپت با هویت کاربر پیش‌فرض اجرا می‌شود که در حالت دیمن به معنای .I root است. .IP ENABLE_NUMLOCK کلید numlock را در حالت دیمن فعال می‌کند. مقادیر ممکن "true" یا "false" هستند. مقدار پیش‌فرض false است. .IP SESSION_ERROR_LOGGING نحوه ثبت گزارش خطاهای نشست را تعیین می‌کند. مقادیر ممکن "rotate"، "appending" یا "disabled" هستند. مقدار پیش‌فرض "disabled" است. .IP SESSION_ERROR_LOGGING_FILE مسیر فایل گزارش خطاهای نشست را بازنویسی می‌کند. مقدار پیش‌فرض عبارت است از .I /var/log/emptty/session-errors.[TTY_NUMBER].log .PP .B نکته: وجود دایرکتوری‌های منتهی به مسیر فایل گزارش الزامی است. .IP NO_XDG_FALLBACK تنظیم مقادیر جایگزین (fallback) برای تمام متغیرهای محیطی XDG را غیرفعال کرده و آن را بر عهده کنترل‌های ورود می‌گذارد. مقادیر ممکن "true" یا "false" هستند. مقدار پیش‌فرض false است. .PP .B نکته: توجه داشته باشید که تنظیم این گزینه بر روی "true" می‌تواند منجر به رفتارهای غیرمنتظره شود. .IP DEFAULT_XAUTHORITY در صورت تنظیم بر روی true، از فایل .emptty-xauth استفاده نکرده و از فایل استاندارد ~/.Xauthority استفاده خواهد کرد. این ویژگی امکان مدیریت مشکلات xauth را فراهم می‌کند. مقادیر ممکن "true" یا "false" هستند. مقدار پیش‌فرض false است. .IP ROOTLESS_XORG در صورت تنظیم بر روی true، اگر سیستم اجازه دهد و emptty در حالت دیمن در حال اجرا باشد، Xorg به صورت بدون ریشه (rootless) راه‌اندازی می‌شود. مقادیر ممکن "true" یا "false" هستند. مقدار پیش‌فرض false است. .IP IDENTIFY_ENVS در صورت تنظیم بر روی true، گروه‌های محیطی برای تفکیک میزکارهای Xorg/Wayland/Custom/UserCustom نمایش داده می‌شوند. مقادیر ممکن "true" یا "false" هستند. مقدار پیش‌فرض false است. .IP HIDE_ENTER_LOGIN در صورت تنظیم بر روی true، عبارت "hostname login:" نمایش داده نمی‌شود. مقادیر ممکن "true" یا "false" هستند. مقدار پیش‌فرض false است. .IP HIDE_ENTER_PASSWORD در صورت تنظیم بر روی true، عبارت "Password:" نمایش داده نمی‌شود. مقادیر ممکن "true" یا "false" هستند. مقدار پیش‌فرض false است. .IP XORG_SESSIONS_PATH مسیر دایرکتوری محل نگهداری فایل‌های دسکتاپ نشست‌های Xorg. مقدار پیش‌فرض "/usr/share/xsessions/" است. .IP WAYLAND_SESSIONS_PATH مسیر دایرکتوری محل نگهداری فایل‌های دسکتاپ نشست‌های Wayland. مقدار پیش‌فرض "/usr/share/wayland-sessions/" است. .IP SELECT_LAST_USER قابلیت ذخیره آخرین کاربر واردشده با موفقیت را برای ورود بعدی فعال می‌کند. مقادیر ممکن عبارتند از "false"، "per-tty" یا "global". مقدار پیش‌فرض false است. .IP AUTO_SELECTION اگر بر روی "true" تنظیم شود و تنها یک میزکار در دسترس باشد، به صورت خودکار آن میزکار را انتخاب می‌کند. مقادیر ممکن "true" یا "false" هستند. مقدار پیش‌فرض false است. .IP ALLOW_COMMANDS در صورت تنظیم بر روی "true" و عدم تعیین کاربر پیش‌فرض، اجازه ورود دستورات در ورودی لاگین را می‌دهد. مقادیر ممکن "true" یا "false" هستند. مقدار پیش‌فرض true است. .IP CMD_POWEROFF دستور مورد استفاده برای خاموش کردن سیستم. مقدار پیش‌فرض "poweroff" است. .IP CMD_REBOOT دستور مورد استفاده برای راه‌اندازی مجدد سیستم. مقدار پیش‌فرض "reboot" است. .IP CMD_SUSPEND دستور مورد استفاده برای تعلیق سیستم. مقدار پیش‌فرض خالی است، اما تلاش می‌کند از "systemctl suspend"، "loginctl suspend" یا "zzz" استفاده کند. .IP WAIT_EXIT_TIMEOUT مهلت زمانی به ثانیه پیش از خروج خودکار emptty. اگر مقدار 0 یا کمتر باشد، هیچ مهلتی اعمال نمی‌شود. مقدار پیش‌فرض \-1 است. .SH "دستورات (COMMANDS)" اگر استفاده از دستورات مجاز باشد و کاربر پیش‌فرض مشخص نشده باشد، می‌توان از دستورات در ورودی لاگین استفاده کرد. تمامی این دستورات باید با علامت دونقطه ":" شروع شوند. کاراکترهای گریز (Escape) نادیده گرفته می‌شوند تا از خطاهای ناشی از حافظه عضلانی ویرایشگر VI جلوگیری گردد. .PP .nf \- :help, :? \- چاپ دستورات در دسترس \- :poweroff, :shutdown \- اجرای دستور خاموش کردن سیستم \- :reboot \- اجرای دستور راه‌اندازی مجدد \- :suspend, :zzz \- اجرای دستور تعلیق سیستم .fi .SH "پیام روز پویا (DYNAMIC MOTD)" فایل اختیاری که به صورت پیش‌فرض در مسیر /etc/emptty/motd-gen.sh ذخیره می‌شود و قابل تغییر است. .PP اگر .I DYNAMIC_MOTD بر روی true تنظیم شده باشد، این فایل وجود داشته باشد و برای مالکش قابل اجرا باشد، خروجی آن به عنوان پیام روز اختصاصی شما چاپ می‌شود. در استفاده از این اسکریپت بسیار مراقب باشید! .SH "پیام روز سفارشی (CUSTOM MOTD)" فایل اختیاری که به صورت پیش‌فرض در مسیر /etc/emptty/motd ذخیره می‌شود و قابل تغییر است. .PP فایل سفارشی که پیام روز شما را چاپ می‌کند. خواندن این فایل از رنگ‌ها پشتیبانی می‌کند (مانند .I \\\x1b[31m یا .I \\\033[32m ). .SH "پیکربندی کاربر (USER CONFIG)" فایل اختیاری ذخیره‌شده به عنوان ${HOME}/.config/emptty یا ${HOME}/.emptty. .PP فایل پیکربندی ذخیره‌شده در ${HOME}/.config/emptty در هنگام بارگذاری اولویت بالاتری دارد. .IP Name نام اختیاری برای استفاده به عنوان نام نشست. .IP Exec دستور شروع به کار محیط میزکار یا مدیر پنجره را مشخص می‌کند. در صورتی که پیکربندی کاربر به عنوان اسکریپت شل ارائه شده باشد (با خط shebang در ابتدا و مجوزهای اجرایی)، نیازی به تعریف این مقدار نیست. .IP Environment مشخص می‌کند چه محیطی باید برای دستور بعدی تعریف شود. مقادیر ممکن "xorg" و "wayland" هستند و پیش‌فرض "xorg" است. .IP Lang لوکال را برای کاربر واردشده مشخص می‌کند و اولویت بالاتری نسبت به LANG در پیکربندی سراسری دارد. .IP Selection انتخاب میزکار را الزامی می‌کند؛ در واقع فایل .I emptty را به .I .xinitrc برای Xorg و Wayland تبدیل می‌نماید. در این حالت از .I Exec صرف‌نظر می‌شود. مقادیر ممکن عبارتند از "false" برای عدم استفاده از منوی انتخاب، "true" برای نمایش همیشگی منوی انتخاب یا "auto" برای نمایش منو یا انتخاب خودکار اولین گزینه در صورت نبود میزکار دیگر. مقدار پیش‌فرض false است. .IP LoginShell شل سفارشی مورد استفاده برای شروع نشست را مشخص می‌کند. این گزینه امکان شروع نشست با شل غیرتعاملی مانند "/bin/bash --login" را فراهم می‌کند. .IP DesktopNames مقداری که به متغیر .I XDG_CURRENT_DESKTOP ارسال می‌شود. .SH "اسکریپت خروج کاربر (USER EXIT SCRIPT)" فایل اسکریپت اختیاری ذخیره‌شده در ${HOME}/.config/emptty-exit که به عنوان اسکریپت شل مدیریت شده و هنگام پایان یافتن نشست اجرا می‌شود. این اسکریپت حتی در صورت خاتمه یافتن خود emptty نیز شروع به کار می‌کند. زمان پیش‌فرض برای اتمام اجرای اسکریپت ۳ ثانیه است، اما از درون خود اسکریپت نیز قابل پیکربندی است. .IP Timeout مهلت زمانی اختیاری و سفارشی برای اتمام کار اسکریپت به ثانیه. مقدار پیش‌فرض ۳ است. .SH "نشست‌های سفارشی (CUSTOM SESSIONS)" پوشه‌های اختیاری برای نشست‌های سفارشی که می‌توانند در سطح سیستم (در مسیر /etc/emptty/custom-sessions/) یا مختص کاربر (در مسیر ${HOME}/.config/emptty-custom-sessions/) در دسترس باشند، اما فاقد فایل .desktop در مسیرهای استاندارد نشست‌های Xorg یا Wayland هستند. پسوند مورد انتظار هر فایل ".desktop" است. .IP Name نام محیط میزکار یا مدیر پنجره را مشخص می‌کند. .IP Exec دستور شروع محیط میزکار یا مدیر پنجره را مشخص می‌کند. می‌تواند مانند فایل‌های ‎*.desktop شامل چندین آرگومان باشد. .IP Environment مشخص می‌کند چه محیطی باید برای دستور بعدی تعریف شود. مقادیر ممکن "xorg" و "wayland" هستند و "xorg" پیش‌فرض است. .IP DesktopNames مقداری که به متغیر محیطی .I XDG_CURRENT_DESKTOP ارسال می‌شود. .IP NoDisplay/Hidden مقدار بولی که نمایش یا پنهان بودن نشست میزکار را کنترل می‌کند. .SH "آخرین نشست (LAST SESSION)" آخرین نشست انتخاب‌شده توسط کاربر در ~/.cache/emptty/last-session ذخیره می‌شود. .SH "ثبت گزارش‌ها (LOGGING)" همان‌طور که در بخش پیکربندی ذکر شد، سه گزینه برای مدیریت ثبت گزارش‌های emptty وجود دارد. گزارش‌ها نه‌تنها حاوی لاگ‌های خود emptty هستند، بلکه در صورت استفاده، لاگ‌های Xorg و WM/DE کاربر را نیز شامل می‌شوند. محل ذخیره فایل گزارش توصیف‌شده ممکن است بر اساس تنظیمات .I LOGGING_FILE در .I /etc/emptty/conf متفاوت باشد. .IP default این گزینه راهکار ساده‌ای ارائه می‌دهد که در آن، نمونه جاری emptty در فایل .I /var/log/emptty/[TTY_NUMBER].log گزارش‌ها را ثبت می‌کند و نسخه قبلی به عنوان .I /var/log/emptty/[TTY_NUMBER].log.old ذخیره می‌شود. .PP .B نکته: نمونه جاری همواره گزارش قبلی را به فایل old منتقل می‌کند؛ اگر emptty متوقف شود یا کرش کند و مجدداً راه‌اندازی شود، گزارش قبلی در .I /var/log/emptty/[TTY_NUMBER].log.old قرار دارد. .IP appending این گزینه قابلیتی را فراهم می‌کند که همه چیز را در .I /var/log/emptty/[TTY_NUMBER].log ثبت می‌کند و خودش چرخش گزارش‌ها (log rotation) را انجام نمی‌دهد؛ این کار را بر عهده خود کاربر می‌گذارد (مثلاً با logrotate). .PP .B نکته: افزودن مداوم به فایل بدون چرخش می‌تواند باعث حجیم شدن بیش از حد فایل گزارش شود؛ اطمینان حاصل کنید که فایل‌های گزارش چرخش داده می‌شوند. .IP disabled این گزینه تمام گزارش‌ها را به .I /dev/null هدایت می‌کند، بنابراین هیچ گزارشی ثبت نخواهد شد. .PP .B نکته: اگر مشکلی پیش آمد و قصد گزارش آن را دارید، مطمئن شوید که از این گزینه استفاده نکرده‌اید. .SH "رنگ‌ها (COLORS)" لطفاً توجه داشته باشید که ممکن است رنگ‌های دارای پیشوند .I LIGHT_ به عنوان رنگ پس‌زمینه در دسترس نباشند. .PP .nf BLACK, RED, GREEN, YELLOW, BLUE, PURPLE, CYAN, WHITE LIGHT_BLACK, LIGHT_RED, LIGHT_GREEN, LIGHT_YELLOW, LIGHT_BLUE, LIGHT_PURPLE, LIGHT_CYAN, LIGHT_WHITE .fi