I3(1) i3 Manual I3(1)

i3 - مدیر پنجره کاشی‌کار بهبودیافته

i3 [-a] [-c configfile] [-C] [-d all] [-v] [-V]

-a

غیرفعال‌سازی شروع خودکار (autostart).

-c

یک مسیر جایگزین برای فایل پیکربندی مشخص می‌کند.

-C

بررسی صحت و اعتبار فایل پیکربندی و سپس خروج.

-d all

فعال‌سازی ثبت گزارش اشکال‌زدایی (debug logging). پارامتر all به دلایل تاریخی وجود دارد.

-v

نمایش شماره نسخه (و تاریخ آخرین کامیت).

-V

ارائه خروجی با جزئیات کامل (حالت پرگو).

--force-xinerama

استفاده از Xinerama به جای RandR. از این گزینه تنها در صورتی باید استفاده شود که مجبور به استفاده از درایور قدیمی متن‌بسته nVidia (قدیمی‌تر از 302.17) هستید که از RandR پشتیبانی نمی‌کند.

--get-socketpath

مسیر سوکت IPC برنامه i3 را از X11 دریافت کرده، آن را چاپ می‌کند و خارج می‌شود.

--shmlog-size <limit>

اندازه گزارش حافظه اشتراکی (SHM log) برنامه i3 را به <limit> بایت محدود می‌کند. تنظیم این مقدار روی 0، ثبت گزارش در SHM را کاملاً غیرفعال می‌کند. مقدار پیش‌فرض 0 بایت است.

--replace

جایگزین کردن مدیر پنجره در حال اجرای فعلی.

پروژه i3 از آنجا شکل گرفت که wmii، مدیر پنجره محبوب ما در آن زمان، برخی قابلیت‌های مدنظرمان را نداشت (برای نمونه، پیاده‌سازی اصولی و درست چندمانیتوره)، باگ‌هایی داشت، برای مدت زمان نسبتاً طولانی پیشرفتی نکرده بود و توسعه و هک آن اصلاً آسان نبود (کامنت‌ها و مستندات کد منبع کاملاً ناکافی بود). با این حال، ما معتقدیم توسعه‌دهندگان و مشارکت‌کنندگان wmii کار فوق‌العاده‌ای انجام داده بودند. از آن‌ها برای الهام بخشیدن به ما در ساخت i3 سپاسگزاریم.

لطفاً توجه داشته باشید که i3 در وهله نخست برای کاربران پیشرفته و توسعه‌دهندگان هدف‌گذاری شده است.

اگر از درایور باینری گرافیک nVidia (که به عنوان blob نیز شناخته می‌شود) قبل از نسخه 302.17 استفاده می‌کنید، لازم است هنگام راه‌اندازی i3 از فلگ --force-xinerama (در فایل ~/.xsession خود) به شکل زیر استفاده کنید:

exec i3 --force-xinerama -V >>~/.i3/i3log 2>&1

همچنین برای توضیحات کامل، به docs/multi-monitor مراجعه کنید.

درخت (Tree)

مدیر پنجره i3 چیدمان شما را در یک ساختار داده درختی نگهداری می‌کند.

پنجره (Window)

یک پنجره X11، مانند پنجره مرورگر Firefox یا شبیه‌ساز ترمینال.

پنجره شناور (Floating Window)

پنجره‌ای که روی پنجره‌های دیگر «شناور» است. این سبک در i3 برای نمایش پنجره‌های X11 با نوع "dialog" استفاده می‌شود، مانند کادرهای گفتگوی "Print" یا "Open File" در بسیاری از برنامه‌های گرافیکی. نحوه استفاده از پنجره‌های شناور را می‌توان با دستور for_window دقیق‌تر تنظیم کرد (راهنمای کاربر HTML را ببینید).

کانتینر تفکیک‌شده (Split container)

یک کانتینر تفکیک‌شده شامل چندین کانتینر تفکیک‌شده یا پنجره دیگر است.

کانتینرها را می‌توان در چیدمان‌های مختلف استفاده کرد. حالت پیش‌فرض "default" نامیده می‌شود و اندازه هر کلاینت را به طور یکسان تغییر می‌دهد تا جا شود.

فضای کاری (Workspace)

فضای کاری مجموعه‌ای از کانتینرها است. سایر مدیرهای پنجره به آن «میزکارهای مجازی (Virtual Desktops)» می‌گویند.

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

خروجی (Output)

با استفاده از XRandR، می‌توانید یک صفحه X11 داشته باشید که چندین مانیتور واقعی را پوشش می‌دهد. علاوه بر این، می‌توانید آن‌ها را در حالت شبیه‌سازی (کلون) یا با موقعیت‌های مشخص (مانیتور ۱ در سمت چپ مانیتور ۲) تنظیم کنید.

مدیر پنجره i3 از رابط RandR برای پرس‌وجوی خروجی‌های در دسترس و صفحه‌های متصل به این خروجی‌ها استفاده می‌کند.

در اینجا یک بررسی کوتاه از کلیدهای میانبر پیش‌فرض آورده شده است:

Mod1+Enter

باز کردن یک پنجره شبیه‌ساز ترمینال جدید.

Mod1+d

باز کردن dmenu برای اجرای هر برنامه‌ای با تایپ کردن (بخشی از) نام آن.

j/k/l/;

کلیدهای جهت‌نما (چپ، پایین، بالا، راست). این کلیدها در ردیف اصلی صفحه‌کلید شما قرار دارند (به برآمدگی روی کلید "j" دقت کنید). به عنوان روش جایگزین، می‌توانید از کلیدهای مکان‌نما (جهت‌نما) نیز استفاده کنید.

Mod1+<direction>

تغییر فوکوس به پنجره در جهت <direction>.

Mod1+Shift+<direction>

انتقال پنجره به جهت <direction>.

Mod1+<number>

جابجایی به فضای کاری <number>.

Mod1+Shift+<number>

انتقال پنجره به فضای کاری <number>.

Mod1+f

تغییر وضعیت به حالت تمام‌صفحه.

Mod1+s

فعال‌سازی چیدمان پشته‌ای (stacking) برای کانتینر جاری.

Mod1+e

فعال‌سازی چیدمان پیش‌فرض برای کانتینر جاری.

Mod1+w

فعال‌سازی چیدمان زبانه‌ای (tabbed) برای کانتینر جاری.

Mod1+Shift+Space

تغییر وضعیت کانتینر جاری بین کاشی‌کاری و شناور.

Mod1+Space

انتخاب نخستین کانتینر کاشی‌کاری‌شده در صورتی که کانتینر جاری شناور باشد، و برعکس.

Mod1+Shift+q

بستن پنجره جاری. این معادل «کلیک روی دکمه بستن» است؛ یعنی یک درخواست محترمانه به برنامه برای بستن پنجره ارسال می‌شود. برای نمونه، Firefox نشست خود را پس از چنین درخواستی ذخیره خواهد کرد. اگر برنامه از این درخواست پشتیبانی نکند، پنجره بسته خواهد شد و آنچه رخ می‌دهد به رفتار برنامه بستگی دارد.

Mod1+Shift+r

راه‌اندازی مجدد درجا برای i3. چیدمان پنجره‌های شما حفظ خواهد شد.

Mod1+Shift+e

خروج از i3.

هنگام راه‌اندازی، i3 فایل‌های پیکربندی را به ترتیب زیر جستجو می‌کند:

1.~/.config/i3/config (یا $XDG_CONFIG_HOME/i3/config در صورت تنظیم)
2.~/.i3/config
3./etc/xdg/i3/config (یا $XDG_CONFIG_DIRS/i3/config در صورت تنظیم)
4./etc/i3/config

می‌توانید با استفاده از گزینه -c یک مسیر دلخواه را مشخص کنید.

نمونه پیکربندی.

# فایل پیکربندی i3 (نسخه ۴)
# فونت برای عنوان پنجره‌ها. همچنین توسط نوار (bar) استفاده خواهد شد، مگر اینکه فونت دیگری
# در بلوک bar {} در زیر مشخص شده باشد.
# این فونت به طور گسترده نصب است، گلیف‌های یونیکد زیادی ارائه می‌دهد، از رندر متن
# راست‌به‌چپ پشتیبانی می‌کند و قابلیت مقیاس‌پذیری در نمایشگرهای hidpi/retina را دارد (به لطف pango).
font pango:DejaVu Sans Mono 8
# قبل از i3 نسخه ۴.۸، ما این مورد را به عنوان پیش‌فرض پیشنهاد می‌کردیم:
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# فونت بالا بسیار کم‌مصرف در فضا است، یعنی در اندازه‌های کوچک خوب، واضح و
# شفاف به نظر می‌رسد. با این حال، پوشش گلیف یونیکد آن محدود است، سیستم رندر قدیمی
# فونت‌های اصلی X از راست‌به‌چپ پشتیبانی نمی‌کند و از آنجا که یک فونت بیت‌مپ است،
# در نمایشگرهای hidpi/retina مقیاس‌پذیر نیست.
# استفاده از کلید Mod1+ماوس برای کشیدن پنجره‌های شناور به موقعیت دلخواه
floating_modifier Mod1
# شروع یک ترمینال
bindsym Mod1+Return exec /usr/bin/urxvt
# بستن پنجره فوکوس‌شده
bindsym Mod1+Shift+q kill
# اجرای dmenu (راه‌انداز برنامه)
bindsym Mod1+d exec /usr/bin/dmenu_run
# تغییر فوکوس
bindsym Mod1+j focus left
bindsym Mod1+k focus down
bindsym Mod1+l focus up
bindsym Mod1+semicolon focus right
# به عنوان روش جایگزین، می‌توانید از کلیدهای جهت‌نما استفاده کنید:
bindsym Mod1+Left focus left
bindsym Mod1+Down focus down
bindsym Mod1+Up focus up
bindsym Mod1+Right focus right
# جابجایی پنجره فوکوس‌شده
bindsym Mod1+Shift+j move left
bindsym Mod1+Shift+k move down
bindsym Mod1+Shift+l move up
bindsym Mod1+Shift+semicolon move right
# به عنوان روش جایگزین، می‌توانید از کلیدهای جهت‌نما استفاده کنید:
bindsym Mod1+Shift+Left move left
bindsym Mod1+Shift+Down move down
bindsym Mod1+Shift+Up move up
bindsym Mod1+Shift+Right move right
# تفکیک در جهت افقی
bindsym Mod1+h split h
# تفکیک در جهت عمودی
bindsym Mod1+v split v
# ورود به حالت تمام‌صفحه برای کانتینر فوکوس‌شده
bindsym Mod1+f fullscreen toggle
# تغییر چیدمان کانتینر (stacked، tabbed، default)
bindsym Mod1+s layout stacking
bindsym Mod1+w layout tabbed
bindsym Mod1+e layout default
# تغییر وضعیت بین کاشی‌کاری و شناور
bindsym Mod1+Shift+space floating toggle
# تغییر فوکوس بین پنجره‌های کاشی‌کاری و شناور
bindsym Mod1+space focus mode_toggle
# فوکوس روی کانتینر والد
bindsym Mod1+a focus parent
# فوکوس روی کانتینر فرزند
#bindsym Mod1+d focus child
# جابجایی به فضای کاری
bindsym Mod1+1 workspace 1
bindsym Mod1+2 workspace 2
# ..
# انتقال کانتینر فوکوس‌شده به فضای کاری
bindsym Mod1+Shift+1 move workspace 1
bindsym Mod1+Shift+2 move workspace 2
# ...
# بارگذاری مجدد فایل پیکربندی
bindsym Mod1+Shift+c reload
# راه‌اندازی مجدد درجا برای i3 (چیدمان/نشست شما حفظ می‌شود، برای ارتقای i3 نیز کاربرد دارد)
bindsym Mod1+Shift+r restart
# خروج از i3 (شما را از نشست X خارج می‌کند)
bindsym Mod1+Shift+e exit
# نمایش دکمه‌های فضای کاری به همراه خط وضعیت تولیدشده توسط i3status
bar {
    status_command i3status
}

این فایلی است که باید در آن محلی‌سازی‌ها (locales) را پیکربندی کرده و i3 را اجرا کنید. این فایل به محض ورود شما توسط مدیر ورود (xdm, slim, gdm, ...) اجرا می‌شود.

نمونه xsession.

# غیرفعال کردن خاموش شدن صفحه توسط DPMS
xset -dpms
xset s off
# غیرفعال کردن بوق هشدار
xset -b
# فعال‌سازی بستن اضطراری سرور X با کلیدهای میانبر C-A-<Bksp>
setxkbmap -option terminate:ctrl_alt_bksp
# اعمال محلی‌سازی‌های صحیح از ابتدا:
# مقدار LC_ALL لغو می‌شود زیرا همه متغیرها را بازنویسی می‌کند
# از LANG=de_DE.UTF-8 استفاده می‌شود، به جز موارد زیر:
# مقدار LC_MESSAGES=C هرگز خروجی برنامه‌ها را ترجمه نمی‌کند
# مقدار LC_TIME=en_DK منجر به خروجی تاریخ/زمان yyyy-mm-dd hh:mm می‌شود
unset LC_ALL
export LANG=de_DE.UTF-8
export LC_MESSAGES=C
export LC_TIME=en_DK.UTF-8
# استفاده از XToolkit در برنامه‌های جاوا
export AWT_TOOLKIT=XToolkit
# تنظیم رنگ پس‌زمینه
xsetroot -solid "#333333"
# فعال کردن core dump در صورت بروز مشکل
ulimit -c unlimited
# شروع i3 و ثبت گزارش در ~/.local/share/i3/log
mkdir -p ~/.local/share/i3
echo "Starting at $(date)" >> ~/.local/share/i3/log
exec /usr/bin/i3 -V -d all >> ~/.local/share/i3/log

این متغیر مسیر سوکت IPC را رونویسی و جایگزین می‌کند (برای مکان پیش‌فرض به راهنمای کاربر مراجعه کنید). سوکت IPC توسط برنامه‌های خارجی مانند i3-msg(1)، i3bar(1) یا اسکریپت‌های کاربر استفاده می‌شود.

شما باید یک نسخه از راهنمای کاربر (شامل تصاویر و اسکرین‌شات‌ها که به همین دلیل در این صفحه راهنما ادغام نشده است)، راهنمای اشکال‌زدایی و راهنمای توسعه ("how to hack") را داشته باشید.

همچنین می‌توانید به صورت آنلاین در نشانی https://i3wm.org به این مستندات دسترسی پیدا کنید.

i3-input(1), i3-msg(1), i3bar(1), i3-nagbar(1), i3-config-wizard(1), i3-migrate-config-to-v4(1)

Michael Stapelberg و مشارکت‌کنندگان

02/06/2026 i3 4.25.1