'\" t .\" Title: i3status .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 08/19/2024 .\" Manual: راهنمای i3 .\" Source: i3status 2.15 .\" Language: Persian .\" .TH "I3STATUS" "1" "08/19/2024" "i3status 2\&.15" "راهنمای i3" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" i3status \- تولید نوار وضعیت کارآمد برای i3bar، dzen2، xmobar یا lemonbar .SH "خلاصه دستور (SYNOPSIS)" .sp i3status [\-c فایل_پیکربندی] [\-h] [\-v] [\-\-run\-once] .SH "گزینه‌ها (OPTIONS)" .PP \-c \-\-config .RS 4 مسیر متناوب فایل پیکربندی را مشخص می‌کند\&. به‌طور پیش‌فرض، i3status فایل‌های پیکربندی را به ترتیب زیر جستجو می‌کند: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} ~/\&.config/i3status/config (یا $XDG_CONFIG_HOME/i3status/config در صورت تنظیم) .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} /etc/xdg/i3status/config (یا $XDG_CONFIG_DIRS/i3status/config در صورت تنظیم) .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} ~/\&.i3status\&.conf .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} /etc/i3status\&.conf .RE .RE .PP \-h \-\-help .RS 4 چاپ نسخه و نحوه استفاده مختصر\&. .RE .PP \-v \-\-version .RS 4 چاپ نسخه و هرگونه پیکربندی ساخت\&. .RE .PP \-\-run\-once .RS 4 اجرای تنها یک‌باره به‌جای تکرار در حلقه مداوم\&. .RE .SH "توضیحات (DESCRIPTION)" .sp برنامه .B i3status یک برنامه کوچک برای تولید نوار وضعیت برای i3bar، dzen2، xmobar، lemonbar یا برنامه‌های مشابه است\&. این برنامه طوری طراحی شده است که با صدور تعداد بسیار اندکی از فراخوانی‌های سیستمی (system calls) بسیار کارآمد عمل کند، زیرا معمولاً فرد می‌خواهد چنین خط وضعیتی هر ثانیه به‌روزرسانی شود\&. این امر تضمین می‌کند که حتی تحت بار کاری سنگین سیستم، نوار وضعیت شما به‌درستی به‌روزرسانی شود\&. همچنین، با عدم اشغال پردازنده به اندازه‌ای که اجرای مکرر دستورات معادل شل مصرف می‌کرد، مقداری در مصرف انرژی صرفه‌جویی می‌کند\&. .SH "پیکربندی (CONFIGURATION)" .sp ایده اصلی i3status این است که می‌توانید مشخص کنید کدام «ماژول‌ها» باید استفاده شوند (دستور order)\&. سپس می‌توانید هر ماژول را در بخش اختصاصی خودش پیکربندی کنید\&. برای هر ماژول، می‌توانید قالب خروجی را تعیین نمایید\&. برای راهنمای کامل به ادامه مطلب مراجعه کنید\&. .PP \fBنمونه پیکربندی\fR. .sp .if n \{\ .RS 4 .\} .nf general { output_format = "dzen2" colors = true interval = 5 } order += "ipv6" order += "disk /" order += "run_watch DHCP" order += "run_watch VPNC" order += "path_exists VPN" order += "wireless wlan0" order += "ethernet eth0" order += "battery 0" order += "cpu_temperature 0" order += "memory" order += "load" order += "tztime local" order += "tztime berlin" wireless wlan0 { format_up = "W: (%quality at %essid, %bitrate) %ip" format_down = "W: down" } ethernet eth0 { format_up = "E: %ip (%speed)" format_down = "E: down" } battery 0 { format = "%status %percentage %remaining %emptytime" format_down = "No battery" status_chr = "⚡ CHR" status_bat = "🔋 BAT" status_unk = "? UNK" status_full = "☻ FULL" status_idle = "☻ IDLE" path = "/sys/class/power_supply/BAT%d/uevent" low_threshold = 10 } run_watch DHCP { pidfile = "/var/run/dhclient*\&.pid" } run_watch VPNC { # file containing the PID of a vpnc process pidfile = "/var/run/vpnc/pid" } path_exists VPN { # path exists when a VPN tunnel launched by nmcli/nm\-applet is active path = "/proc/sys/net/ipv4/conf/tun0" } tztime local { format = "%Y\-%m\-%d %H:%M:%S" hide_if_equals_localtime = true } tztime berlin { format = "%Y\-%m\-%d %H:%M:%S %Z" timezone = "Europe/Berlin" } load { format = "%5min" } cpu_temperature 0 { format = "T: %degrees \(deC" path = "/sys/devices/platform/coretemp\&.0/temp1_input" } memory { format = "%used" threshold_degraded = "10%" format_degraded = "MEMORY: %free" } disk "/" { format = "%free" } read_file uptime { path = "/proc/uptime" } .fi .if n \{\ .RE .\} .sp .SS "عمومی (General)" .sp دستور colors در صورت تنظیم روی false تمام رنگ‌ها را غیرفعال می‌کند\&. همچنین می‌توانید با استفاده از دستورهای color_good، color_degraded یا color_bad به ترتیب رنگ‌هایی را که برای نمایش مقادیر «خوب»، «افت‌کرده» یا «بد» استفاده می‌شوند مشخص کنید\&. این دستورها تنها در صورتی اعمال می‌شوند که پشتیبانی از رنگ توسط دستور colors غیرفعال نشده باشد\&. قالب ورودی برای مقادیر رنگ، سه‌گانه هگزادسیمال RGB استاندارد است (بدون هیچ جداکننده‌ای میان رنگ‌ها) که پیشوند آن نویسه هش («#») است\&. .sp \fBنمونه پیکربندی\fR: .sp .if n \{\ .RS 4 .\} .nf color_good = "#00FF00" .fi .if n \{\ .RE .\} .sp به همین ترتیب، می‌توانید از دستور color_separator برای تعیین رنگی که برای رسم نوار جداکننده استفاده می‌شود استفاده کنید\&. جداکننده همیشه رنگی چاپ می‌شود، حتی زمانی که رنگ‌ها توسط دستور colors غیرفعال شده باشند\&. این گزینه در صورتی که output_format روی i3bar یا none تنظیم شده باشد اثری ندارد\&. .sp دستور interval مدت زمان به ثانیه را مشخص می‌کند که i3status پیش از چاپ خط وضعیت بعدی متوقف (sleep) می‌شود\&. .sp با استفاده از output_format می‌توانید انتخاب کنید که i3status از کدام رشته‌های قالب‌بندی در خروجی خود استفاده کند\&. موارد موجود در حال حاضر عبارتند از: .PP i3bar .RS 4 همراه با i3 ارائه می‌شود و نوار فضای کاری را فراهم می‌کند که در شرایط چندنمایشگره عملکرد درستی دارد\&. همچنین دارای پشتیبانی از سینی سیستم (tray) است و می‌تواند خروجی i3status را نمایش دهد\&. این نوع خروجی از JSON استفاده می‌کند تا بیشترین اطلاعات متاداده ممکن را به i3bar ارسال کند (مانند رنگ‌ها، اینکه کدام بلوک‌ها را می‌توان به چه شیوه‌ای کوتاه کرد و غیره)\&. .RE .PP dzen2 .RS 4 برنامه Dzen یک برنامه عمومی پیام‌رسانی، اعلان و منوسازی برای X11 است\&. این برنامه طوری طراحی شده است که در هر زبانی اسکریپت‌پذیر باشد و به‌خوبی با مدیران پنجره مانند dwm، wmii و xmonad یکپارچه شود، هرچند با هر مدیر پنجره دیگری نیز کار می‌کند\&. .RE .PP xmobar .RS 4 برنامه xmobar یک نوار وضعیت متنی و کمینه‌گرا است\&. این نوار برای کار با مدیر پنجره xmonad طراحی شده است\&. .RE .PP lemonbar .RS 4 برنامه lemonbar یک نوار سبک‌وزن است که تماماً بر پایه XCB ساخته شده است\&. این برنامه از UTF\-8 پشتیبانی کامل دارد و با EWMH سازگار است\&. .RE .PP term .RS 4 از توالی‌های فرار ANSI برای تولید خروجی ترمینال تا حد ممکن نزدیک به خروجی‌های گرافیکی استفاده می‌کند\&. این ویژگی اشکال‌زدایی فایل پیکربندی شما را کمی آسان‌تر می‌کند زیرا خروجی ترمینال i3status بسیار خواناتر می‌شود، اما فقط باید برای نگاه‌های گذرا استفاده شود، زیرا تنها از قابلیت‌های خروجی بسیار پایه‌ای پشتیبانی می‌کند (برای نمونه تنها ۳ بیت عمق رنگ دریافت می‌کنید)\&. .RE .PP none .RS 4 از هیچ کد رنگی استفاده نمی‌کند\&. به‌طور پیش‌فرض مقادیر را با نویسه پایپ جدا می‌کند\&. این حالت باید همراه با i3bar استفاده شود و می‌تواند برای اسکریپت‌های سفارشی به کار رود\&. .RE .sp همچنین امکان استفاده از دستورهای color_good، color_degraded و color_bad برای تعریف رنگ‌های مشخص به ازای هر ماژول وجود دارد\&. اگر یکی از این دستورها در بخش یک ماژول تعریف شود، مقدار آن بر مقداری که در بخش general تعریف شده صرفاً برای همین ماژول تقدم خواهد داشت\&. .sp اگر جداکننده‌های عمودی پیش‌فرضی را که i3status/i3bar میان ماژول‌ها استفاده می‌کند نمی‌پسندید، می‌توانید از دستور separator برای پیکربندی نحوه جداسازی ماژول‌ها استفاده کنید\&. همچنین می‌توانید جداکننده پیش‌فرض را با تنظیم آن روی رشته خالی به‌طور کامل غیرفعال کنید\&. سپس می‌توانید جداسازی را به عنوان بخشی از رشته قالب‌بندی ماژول تعریف کنید\&. در صورت استفاده از قالب خروجی i3bar این تنها گزینه شماست، زیرا در غیر این صورت جداکننده مستقیماً توسط i3bar رسم می‌شود\&. برای سایر قالب‌های خروجی، رشته غیرخالی ارائه‌شده در صورت فعال بودن پشتیبانی از رنگ، به‌طور خودکار با بخش‌های رنگ‌آمیزی لازم احاطه می‌شود\&. .sp برنامه i3bar از نشانه‌گذاری Pango پشتیبانی می‌کند و به شما امکان می‌دهد در صورتی که دستور markup را روی "pango" تنظیم کنید، فونت، رنگ، اندازه و غیره را در رشته‌های قالب‌بندی خود مشخص نمایید\&. توجه داشته باشید که نویسه‌های امپرسند («&»)، کوچکتری («<»)، بزرگتری («>»)، علامت نقل‌قول تکی («\*(Aq») و علامت نقل‌قول دوتایی («"») به ترتیب باید با «&»، «<»، «>»، «'» و «"» جایگزین شوند\&. این کار برای محتوای تولیدشده (مانند ESSID شبکه بی‌سیم، زمان) به‌طور خودکار انجام می‌شود\&. .sp \fBنمونه پیکربندی\fR: .sp .if n \{\ .RS 4 .\} .nf general { output_format = "xmobar" separator = " " } order += "load" order += "disk /" load { format = "[ load: %1min, %5min, %15min ]" } disk "/" { format = "%avail" } .fi .if n \{\ .RE .\} .SS "IPv6" .sp این ماژول آدرس IPv6 مورد استفاده برای اتصالات خروجی (یعنی بهترین آدرس عمومی IPv6 در دسترس روی رایانه شما) و رابط شبکه‌ای را که به آن اختصاص یافته دریافت می‌کند\&. .sp \fBنمونه format_up\fR: %iface: %ip .sp \fBنمونه format_down\fR: no IPv6 .SS "دیسک (Disk)" .sp مقدار بایت‌های مصرف‌شده، آزاد، در دسترس و کل را در سیستم‌فایل مانت‌شده مشخص‌شده دریافت می‌کند\&. .sp این مقادیر همچنین می‌توانند با قالب‌های percentage_used، percentage_free، percentage_avail و percentage_used_of_avail به صورت درصد بیان شوند\&. .sp اندازه‌های بایت با استفاده از مجموعه‌ای از پیشوندها که نوع آن‌ها را می‌توان از طریق گزینه "prefix_type" مشخص کرد، در قالبی خوانا برای انسان ارائه می‌شوند\&. سه مجموعه پیشوند در دسترس است: .PP binary .RS 4 پیشوندهای IEC (شامل Ki، Mi، Gi، Ti) نمایانگر مضارب توان‌های ۱۰۲۴ هستند\&. این حالت پیش‌فرض است\&. .RE .PP decimal .RS 4 پیشوندهای SI (شامل k، M، G، T) نمایانگر مضارب توان‌های ۱۰۰۰ هستند\&. .RE .PP custom .RS 4 پیشوندهای سفارشی (شامل K، M، G، T) نمایانگر مضارب توان‌های ۱۰۲۴ هستند\&. .RE .sp امکان تعریف یک low_threshold وجود دارد که باعث می‌شود متن دیسک با استفاده از color_bad نمایش داده شود\&. نوع low_threshold می‌تواند از نوع threshold_type با مقادیر "bytes_free"، "bytes_avail"، "percentage_free" یا "percentage_avail" باشد، که دو مورد اول می‌توانند با یک پیشوند عمومی (k, m, g, t) دارای prefix_type همراه شوند\&. بنابراین، اگر low_threshold را روی 2، threshold_type را روی "gbytes_avail" و prefix_type را روی "binary" تنظیم کنید، و فضای در دسترس باقی‌مانده دیسک زیر ۲ گیبی‌بایت باشد، به رنگ وضعیت بد نمایش داده خواهد شد\&. در صورت عدم تعیین، threshold_type برابر با "percentage_avail" و low_threshold برابر با 0 در نظر گرفته می‌شود که به معنای عدم رنگ‌آمیزی است\&. می‌توانید قالب خروجی را در شرایط پایین‌تر از low_threshold با استفاده از format_below_threshold سفارشی‌سازی کنید\&. .sp می‌توانید با گزینه "format_not_mounted" قالب متفاوتی را تعریف کنید که اگر مسیر وجود نداشته باشد یا یک نقطه مانت نباشد استفاده شود\&. مقدار پیش‌فرض برابر با "" است\&. .sp \fBنمونه order\fR: disk /mnt/usbstick .sp \fBنمونه format\fR: %free (%avail)/ %total .sp \fBنمونه format\fR: %percentage_used used, %percentage_free free, %percentage_avail avail .sp \fBنمونه prefix_type\fR: custom .sp \fBنمونه low_threshold\fR: 5 .sp \fBنمونه format_below_threshold\fR: Warning: %percentage_avail .sp \fBنمونه threshold_type\fR: percentage_free .SS "پایش اجرا (Run\-watch)" .sp مسیر داده‌شده را به یک pidfile گسترش می‌دهد و بررسی می‌کند که آیا شناسه پردازش (PID) موجود در آن معتبر است یا خیر (یعنی آیا پردازش در حال اجراست)\&. می‌توانید از این گزینه برای بررسی اجرای یک برنامه خاص، مانند کلاینت VPN یا کلاینت DHCP استفاده کنید\&. همچنین گزینه‌ای به نام format_down وجود دارد\&. با format_down="" می‌توانید خروجی را پنهان کنید\&. .sp \fBنمونه order\fR: run_watch DHCP .sp \fBنمونه format\fR: %title: %status .SS "بررسی وجود مسیر (Path\-exists)" .sp بررسی می‌کند که آیا مسیر داده‌شده در سیستم‌فایل وجود دارد یا خیر\&. می‌توانید از این ماژول برای بررسی فعال بودن چیزی استفاده کنید، مانند یک تونل VPN که توسط NetworkManager مدیریت می‌شود\&. همچنین گزینه‌ای به نام format_down وجود دارد\&. با format_down="" می‌توانید خروجی را پنهان کنید\&. .sp \fBنمونه order\fR: path_exists VPN .sp \fBنمونه format\fR: %title: %status .SS "شبکه بی‌سیم (Wireless)" .sp کیفیت پیوند، فرکانس و ESSID رابط شبکه بی‌سیم داده‌شده را دریافت می‌کند\&. می‌توانید رشته‌های قالب‌بندی متفاوتی را برای حالت متصل بودن یا متصل نبودن شبکه مشخص کنید\&. کیفیت پیوند به‌طور پیش‌فرض با صفرهای آغازین پر می‌شود؛ برای پر کردن با نویسه‌های دیگر از format_bitrate، format_noise، format_quality یا format_signal استفاده کنید\&. .sp نام رابط ویژه _first_ با نخستین رابط شبکه بی‌سیم یافت‌شده در سیستم (به‌جز دستگاه‌هایی که با "lo" شروع می‌شوند) جایگزین خواهد شد\&. .sp \fBنمونه order\fR: wireless wlan0 .sp \fBنمونه format_up\fR: W: (%quality at %essid, %bitrate / %frequency) %ip .sp \fBنمونه format_down\fR: W: down .sp \fBنمونه format_bitrate\fR: "%g %cb/s" .sp \fBنمونه format_noise\fR: "%03d%s" .sp \fBنمونه format_quality\fR: "%03d%s" .sp \fBنمونه format_signal\fR: "%03d%s" .SS "اترنت (Ethernet)" .sp آدرس IP و (در صورت امکان) سرعت پیوند رابط اترنت داده‌شده را دریافت می‌کند\&. اگر آدرس IPv4 موجود نباشد ولی آدرس IPv6 موجود باشد، نمایش داده خواهد شد\&. .sp نام رابط ویژه _first_ با نخستین رابط شبکه غیر بی‌سیم یافت‌شده در سیستم (به‌جز دستگاه‌هایی که با "lo" شروع می‌شوند) جایگزین خواهد شد\&. .sp \fBنمونه order\fR: ethernet eth0 .sp \fBنمونه format_up\fR: E: %ip (%speed) .sp \fBنمونه format_down\fR: E: down .SS "باتری (Battery)" .sp وضعیت (شارژ شدن، دشارژ شدن، نامشخص، پر)، درصد، زمان باقی‌مانده و مصرف توان (به وات) باتری مشخص‌شده و زمان تخمینی خالی شدن آن را دریافت می‌کند\&. اگر می‌خواهید به‌جای ظرفیت اسمی طراحی از آخرین ظرفیت شارژ کامل استفاده کنید (هنگام استفاده از ظرفیت اسمی، ممکن است باتری شما به دلیل کهنگی در حالت شارژ کامل روی ۲۳٪ باشد؛ به‌طور کلی ترجیح این است که این‌گونه دیده شود زیرا میزان فرسودگی باتری را نشان می‌دهد)، کافی است last_full_capacity = true را مشخص کنید\&. با تنظیم hide_seconds = false می‌توانید ثانیه‌ها را در تخمین زمان باقی‌مانده و زمان خالی شدن نمایش دهید\&. .sp اگر می‌خواهید درصد باتری در قالب دیگری نمایش داده شود، از format_percentage استفاده کنید\&. گزینه integer_battery_capacity = true یک گزینه قدیمی برای format_percentage = "%\&.00f%s" است\&. .sp اگر باتری شما در مسیری غیر استاندارد در /sys قرار دارد، حتماً ویژگی path را متناسب با آن تغییر دهید، یعنی اشاره به فایل uevent در سیستم شما\&. اولین وقوع %d با شماره باتری جایگزین می‌شود، اما می‌توانید مسیر را به‌صورت ثابت نیز وارد کنید\&. .sp امکان تعریف یک low_threshold وجود دارد که باعث می‌شود متن باتری به رنگ color_bad درآید\&. نوع low_threshold می‌تواند از نوع threshold_type با مقدار "time" یا "percentage" باشد\&. بنابراین، اگر low_threshold را روی 10 و threshold_type را روی "time" تنظیم کنید و باتری شما ۹ دقیقه دیگر دوام بیاورد، با color_bad رنگ‌آمیزی خواهد شد\&. .sp برای نمایش مجموع تجمیعی تمام باتری‌های سیستم، از "all" به عنوان شماره استفاده کنید\&. در این حالت (برای لینوکس)، مسیر /sys باید حاوی توالی "%d" باشد\&. در غیر این صورت، این عدد نشان‌دهنده اندیس باتری طبق گزارش /sys است\&. .sp به صورت اختیاری می‌توان رشته‌های سفارشی شامل هرگونه نماد UTF\-8 را برای حالت‌های مختلف باتری استفاده کرد\&. این قابلیت نمایش نمادهای مجزا برای هر حالت (شارژ، دشارژ، نامشخص، پر) را امکان‌پذیر می‌سازد\&. البته با فونت‌های آیکونی خاص مانند FontAwesome نیز کار خواهد کرد\&. اگر هر یک از این رشته‌های وضعیت ویژه حذف شوند، از مقادیر پیش‌فرض (CHR, BAT, UNK, FULL) استفاده می‌شود\&. .sp \fBنمونه order (برای نخستین باتری)\fR: battery 0 .sp \fBنمونه order (مجموع تمام باتری‌ها)\fR: battery all .sp \fBنمونه format\fR: %status %remaining (%emptytime %consumption) .sp \fBنمونه format_down\fR: No battery .sp \fBنمونه format_percentage\fR: "%\&.02f%s" .sp \fBنمونه status_chr\fR: ⚡ CHR .sp \fBنمونه status_bat\fR: 🔋 BAT .sp \fBنمونه status_unk\fR: ? UNK .sp \fBنمونه status_full\fR: ☻ FULL .sp \fBنمونه low_threshold\fR: 30 .sp \fBنمونه threshold_type\fR: time .sp \fBنمونه path (جایگزینی %d با شماره عنوان)\fR: /sys/class/power_supply/CMB%d/uevent .sp \fBنمونه path (بدون در نظر گرفتن شماره)\fR: /sys/class/power_supply/CMB1/uevent .SS "دمای پردازنده (CPU\-Temperature)" .sp دمای منطقه حرارتی (thermal zone) داده‌شده را دریافت می‌کند\&. امکان تعریف max_threshold وجود دارد که در صورت داغ شدن بیش از حد منطقه حرارتی مشخص‌شده، دما را به رنگ قرمز درمی‌آورد\&. مقدار پیش‌فرض ۷۵ درجه سانتی‌گراد است\&. قالب خروجی در شرایط بالاتر از max_threshold را می‌توان با format_above_threshold سفارشی کرد\&. .sp \fBنمونه order\fR: cpu_temperature 0 .sp \fBنمونه format\fR: T: %degrees \(deC .sp \fBنمونه max_threshold\fR: 42 .sp \fBنمونه format_above_threshold\fR: Warning T above threshold: %degrees \(deC .sp \fBنمونه path\fR: /sys/devices/platform/coretemp\&.0/temp1_input .SS "مصرف پردازنده (CPU Usage)" .sp درصد مصرف پردازنده را از /proc/stat (در لینوکس) یا sysctl(3) (در FreeBSD/OpenBSD) دریافت می‌کند\&. .sp امکان تعریف یک max_threshold وجود دارد که در صورتی که میانگین مصرف پردازنده در بازه زمانی گذشته از آستانه پیکربندی‌شده فراتر رود، مقدار بار را با color_bad رنگ‌آمیزی می‌کند\&. مقدار پیش‌فرض ۹۵ است\&. قالب خروجی در شرایط بالاتر از max_threshold با format_above_threshold قابل سفارشی‌سازی است\&. .sp امکان تعریف یک degraded_threshold وجود دارد که در صورتی که میانگین مصرف پردازنده در بازه زمانی گذشته از آستانه فراتر رود، مقدار بار را با color_degraded رنگ‌آمیزی می‌کند\&. مقدار پیش‌فرض ۹۰ است\&. قالب خروجی در شرایط بالاتر از degraded_threshold با format_above_degraded_threshold قابل سفارشی‌سازی است\&. .sp برای نمایش میزان مصرف Nامین پردازنده، می‌توانید از رشته قالب %cpu شروع از %cpu0 استفاده کنید\&. این قابلیت در حال حاضر در FreeBSD پشتیبانی نمی‌شود\&. .sp \fBنمونه order\fR: cpu_usage .sp \fBنمونه format\fR: all: %usage CPU_0: %cpu0 CPU_1: %cpu1 .sp \fBنمونه max_threshold\fR: 75 .sp \fBنمونه format_above_threshold\fR: Warning above threshold: %usage .sp \fBنمونه degraded_threshold\fR: 25 .sp \fBنمونه format_above_degraded_threshold\fR: Warning above degraded threshold: %usage .SS "حافظه (Memory)" .sp میزان مصرف حافظه سیستم را در سیستم‌های لینوکسی از /proc/meminfo دریافت می‌کند\&. سایر سیستم‌ها در حال حاضر پشتیبانی نمی‌شوند\&. .sp به عنوان متغیرهای جانگهدار قالب، گزینه‌های total، used، free، available و shared در دسترس هستند\&. این گزینه‌ها مقادیر خوانا برای انسان را چاپ می‌کنند\&. همچنین می‌توان پیشوند _percentage را به این متغیرها اضافه کرد تا مقدار به صورت درصد به دست آید\&. .sp امکان تعریف threshold_degraded و threshold_critical برای تغییر رنگ خروجی نوار وضعیت به color_degraded یا color_bad در صورتی که حافظه در دسترس به زیر آستانه مشخص‌شده برسد وجود دارد\&. مقادیر مجاز آستانه می‌توانند هر عدد صحیحی با پسوند نماد iec (مانند T, G, M, K) باشند\&. همچنین، عدد صحیح می‌تواند پسوند علامت درصد داشته باشد که در این صورت نسبت به کل حافظه سنجیده می‌شود\&. .sp اگر پارامتر format_degraded داده شود و یکی از آستانه‌های critical یا degraded برقرار باشد، format_degraded به عنوان رشته قالب استفاده خواهد شد\&. این گزینه عملکردی معادل format دارد\&. .sp همچنین امکان تعیین یکای اندازه‌گیری برای متغیرهای جانگهدار قالب وجود دارد\&. از آنجا که /proc/meminfo حافظه را بر حسب کیلوبایت (kB) برمی‌گرداند، مقادیر به یکای داده‌شده تبدیل می‌شوند\&. اگر هیچ یکایی داده نشود یا از گزینه auto استفاده شود، تبدیل به‌طور خودکار بیشترین یکای ممکن را انتخاب می‌کند\&. .sp از آنجا که جانگهدار قالب تبدیل‌شده یک عدد اعشاری خواهد بود، تعداد ارقام اعشار را می‌توان از طریق گزینه decimals پیکربندی کرد\&. در صورت عدم تعیین، مقدار تبدیل‌شده دارای یک رقم اعشار خواهد بود\&. .sp از آنجا که meminfo در لینوکس مقدار کل حافظه در حال استفاده را مستقیماً نشان نمی‌دهد، روش‌های متعددی برای تشخیص حافظه واقعاً مصرف‌شده وجود دارد\&. .sp \fBنمونه memory_used_method\fR: memavailable ("کل حافظه" \- "MemAvailable"، منطبق با دستور free) .sp \fBنمونه memory_used_method\fR: classical ("کل حافظه" \- "free" \- "buffers" \- "cache"، منطبق با مانیتور سیستم گنوم) .sp \fBنمونه order\fR: memory .sp \fBنمونه format\fR: %free %available (%used) / %total .sp \fBنمونه format\fR: %percentage_used used, %percentage_free free, %percentage_shared shared .sp \fBنمونه unit\fR: auto, Ki, Mi, Gi, Ti .sp \fBنمونه decimals\fR: 0, 1, 2, 3 .sp \fBنمونه threshold_degraded\fR: 10% .sp \fBنمونه threshold_critical\fR: 5% .sp \fBنمونه format_degraded\fR: Memory LOW: %free .SS "بار کاری سیستم (Load)" .sp بار سیستم (تعداد پردازش‌های منتظر زمان پردازنده در ۱، ۵ و ۱۵ دقیقه گذشته) را دریافت می‌کند\&. امکان تعریف max_threshold وجود دارد که در صورتی که میانگین بار کاری در دقیقه گذشته از آستانه پیکربندی‌شده بیشتر شود، مقدار بار را به رنگ color_bad درمی‌آورد\&. مقدار پیش‌فرض ۵ است\&. قالب خروجی در شرایط بالاتر از max_threshold با format_above_threshold قابل سفارشی‌سازی است\&. .sp \fBنمونه order\fR: load .sp \fBنمونه format\fR: %1min %5min %15min .sp \fBنمونه max_threshold\fR: "0\&.1" .sp \fBنمونه format_above_threshold\fR: Warning: %1min %5min %15min .SS "زمان (Time)" .sp زمان جاری را در منطقه زمانی محلی خروجی می‌دهد\&. برای استفاده از منطقه زمانی دیگر، می‌توانید متغیر محیطی TZ را تنظیم کنید یا از ماژول tztime استفاده نمایید\&. برای جزئیات مربوط به رشته قالب به strftime(3) مراجعه کنید\&. .sp \fBنمونه order\fR: time .sp \fBنمونه format\fR: %Y\-%m\-%d %H:%M:%S .SS "زمان منطقه زمانی (TzTime)" .sp زمان جاری را در منطقه زمانی مشخص‌شده خروجی می‌دهد\&. اگر منطقه زمانی مشخص نشود، از زمان محلی استفاده می‌شود\&. برای جزئیات مربوط به رشته قالب به strftime(3) مراجعه کنید\&. پایگاه‌داده مناطق زمانی سیستم معمولاً در /usr/share/zoneinfo نصب است\&. فایل‌های زیر این مسیر رشته‌های معتبر منطقه زمانی را تشکیل می‌دهند، برای نمونه برای /usr/share/zoneinfo/Europe/Berlin می‌توانید timezone را در ماژول tztime روی Europe/Berlin تنظیم کنید\&. برای بازنویسی تنظیمات محلی (locale) محیط خود، گزینه locale را تنظیم کنید\&. برای نمایش زمان تنها زمانی که منطقه زمانی تنظیم‌شده زمانی متفاوت از زمان محلی دارد، hide_if_equals_localtime را روی true قرار دهید\&. .sp \fBنمونه order\fR: tztime berlin .sp \fBنمونه format\fR: %Y\-%m\-%d %H:%M:%S %Z .sp \fBنمونه timezone\fR: Europe/Berlin .sp \fBنمونه locale\fR: de_DE\&.UTF\-8 .sp اگر مایلید در این بخش از نشانه‌گذاری استفاده کنید، گزینه جداگانه format_time وجود دارد که کاراکترهای آن به‌طور خودکار اسکیپ می‌شوند\&. خروجی آن سپس جایگزین %time در رشته قالب می‌شود\&. .sp \fBنمونه پیکربندی (نشانه‌گذاری)\fR: .sp .if n \{\ .RS 4 .\} .nf tztime berlin { format = "time: %time" format_time = "%H:%M %Z" timezone = "Europe/Berlin" hide_if_equals_localtime = true } .fi .if n \{\ .RE .\} .SS "تاریخ دیسکوردین (DDate)" .sp تاریخ دیسکوردین جاری را در قالب مشخص‌شده توسط کاربر خروجی می‌دهد\&. برای جزئیات رشته قالب به ddate(1) مراجعه کنید\&. \fBتوجه\fR: هیچ‌یک از \fB%\&.\fR و \fB%X\fR هنوز پیاده‌سازی نشده‌اند\&. .sp \fBنمونه order\fR: ddate .sp \fBنمونه format\fR: %{%a, %b %d%}, %Y%N \- %H .SS "میزان صدا (Volume)" .sp میزان صدای میکسر مشخص‌شده را روی دستگاه مشخص‌شده خروجی می‌دهد\&. از PulseAudio و ALSA (فقط لینوکس) پشتیبانی می‌شود\&. در صورت نبود PulseAudio، به دلیل عدم وجود ALSA در FreeBSD و OpenBSD می‌توان از یک پیکربندی ساده‌شده استفاده کرد و گزینه‌های device و mixer را در این سیستم‌ها نادیده گرفت\&. در این سیستم‌ها در صورتی که mixer_idx برابر با \-1 باشد از API سیستم OSS برای پرس‌وجوی مستقیم /dev/mixer استفاده می‌شود، در غیر این صورت از /dev/mixer+mixer_idx+\&. .sp برای دریافت اطلاعات صدای PulseAudio، باید از قالب زیر در خط device استفاده کرد: .sp .if n \{\ .RS 4 .\} .nf device = "pulse" .fi .if n \{\ .RE .\} .sp یا .sp .if n \{\ .RS 4 .\} .nf device = "pulse:N" .fi .if n \{\ .RE .\} .sp که در آن N اندیس یا نام سینک در PulseAudio است\&. می‌توانید نام سینک را با دستور زیر به دست آورید: .sp .if n \{\ .RS 4 .\} .nf $ pacmd list\-sinks | grep name: name: .fi .if n \{\ .RE .\} .sp نام سینک همان چیزی است که داخل براکت‌های زاویه‌دار قرار دارد، بدون احتساب خود آن‌ها\&. اگر سینکی مشخص نشود از سینک پیش‌فرض استفاده می‌شود\&. اگر رشته device وجود نداشته باشد یا روی "default" تنظیم شده باشد، در صورت شناسایی PulseAudio تلاش برای استفاده از آن صورت می‌گیرد و در غیر این صورت به ALSA (در لینوکس) یا OSS (در FreeBSD/OpenBSD) بازگشت می‌کند\&. .sp \fBنمونه order\fR: volume master .sp \fBنمونه format\fR: ♪ (%devicename): %volume .sp \fBنمونه format_muted\fR: ♪ (%devicename): 0%% .sp \fBنمونه پیکربندی\fR: .sp .if n \{\ .RS 4 .\} .nf volume master { format = "♪: %volume" format_muted = "♪: muted (%volume)" device = "default" mixer = "Master" mixer_idx = 0 } .fi .if n \{\ .RE .\} .sp \fBنمونه پیکربندی (PulseAudio)\fR: .sp .if n \{\ .RS 4 .\} .nf volume master { format = "♪: %volume" format_muted = "♪: muted (%volume)" device = "pulse:1" } .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf volume master { format = "♪: %volume" format_muted = "♪: muted (%volume)" device = "pulse:alsa_output\&.pci\-0000_00_14\&.2\&.analog\-stereo" } .fi .if n \{\ .RE .\} .SS "محتوای فایل (File Contents)" .sp محتوای فایل مشخص‌شده را خروجی می‌دهد\&. می‌توانید از این ماژول برای بررسی محتوای فایل‌ها در سیستم خود، مانند /proc/uptime استفاده کنید\&. به‌طور پیش‌فرض این تابع تنها ۲۵۴ کاراکتر اول فایل را می‌خواند؛ اگر می‌خواهید این مقدار را تغییر دهید گزینه Max_characters را تنظیم کنید\&. این تابع هرگز فراتر از ۴۰۹۵ کاراکتر اول را نخواهد خواند\&. اگر فایل پیدا نشود عبارت "no file" چاپ می‌شود و اگر فایل قابل خواندن نباشد "error read" چاپ خواهد شد\&. .sp \fBنمونه order\fR: read_file UPTIME .sp \fBنمونه format\fR: "%title: %content" .sp \fBنمونه format_bad\fR: "%title \- %errno: %error" .sp \fBنمونه path\fR: "/proc/uptime" .sp \fBنمونه Max_characters\fR: 255 .SH "گزینه‌های عمومی ماژول‌ها (UNIVERSAL MODULE OPTIONS)" .sp هنگام استفاده از قالب خروجی i3bar، چند گزینه اضافی وجود دارد که می‌توان با همه ماژول‌ها برای سفارشی‌سازی ظاهر آن‌ها استفاده کرد: .PP align .RS 4 سیاست تراز کردن مورد استفاده هنگامی که حداقل عرض (در ادامه آمده) تامین نشده باشد\&. مقادیر مجاز عبارتند از center (پیش‌فرض)، right یا left\&. .RE .PP min_width .RS 4 حداقل عرض (به پیکسل) که ماژول باید اشغال کند\&. اگر ماژول فضای کمتری از اندازه مشخص‌شده بگیرد، بلوک با توجه به سیاست تراز تعریف‌شده از سمت چپ و/یا راست فاصله پرکننده (padding) می‌گیرد\&. این ویژگی زمانی مفید است که بخواهید از جابه‌جایی کل نوار وضعیت هنگام تغییر طول مقادیر میان هر تکرار جلوگیری کنید\&. این گزینه می‌تواند یک رشته نیز باشد\&. در این حالت، عرض متن ارائه‌شده حداقل عرض بلوک را تعیین می‌کند\&. این حالت زمانی مفید است که بخواهید بدون در نظر گرفتن اینکه از چه فونتی و با چه اندازه خاصی استفاده می‌کنید، یک حداقل عرض معقول تعیین نمایید\&. لطفاً توجه داشته باشید که یک عدد محصور در کوتیشن همچنان به عنوان یک عدد پردازش می‌شود\&. .RE .PP separator .RS 4 یک مقدار بولی که مشخص می‌کند آیا پس از این بلوک باید یک خط جداکننده رسم شود یا خیر\&. مقدار پیش‌فرض true است، به این معنی که خط جداکننده رسم خواهد شد\&. توجه داشته باشید که در صورت غیرفعال کردن خط جداکننده، همچنان یک فاصله پس از بلوک باقی خواهد ماند، مگر اینکه از separator_block_width نیز استفاده کنید\&. .RE .PP separator_block_width .RS 4 میزان فاصله خالی (به پیکسل) که باید پس از بلوک رها شود\&. در میانه این فاصله، در صورتی که separator غیرفعال نشده باشد یک نماد جداکننده رسم خواهد شد\&. به همین دلیل عرض مشخص‌شده باید فضای کافی برای نماد جداکننده باقی بگذارد\&. .RE .sp \fBنمونه پیکربندی\fR: .sp .if n \{\ .RS 4 .\} .nf disk "/" { format = "%avail" align = "left" min_width = 100 separator = false separator_block_width = 1 } .fi .if n \{\ .RE .\} .SH "استفاده از I3STATUS با DZEN2 (USING I3STATUS WITH DZEN2)" .sp پس از نصب dzen2، می‌توانید مستقیماً از آن به همراه i3status استفاده کنید\&. تنها اطمینان حاصل کنید که output_format روی dzen2 تنظیم شده باشد\&. \fBتوجه\fR: گزینه min_width پشتیبانی نمی‌شود\&. .sp \fBنمونه استفاده از i3status با dzen2\fR: .sp .if n \{\ .RS 4 .\} .nf i3status | dzen2 \-fg white \-ta r \-w 1280 \e \-fn "\-misc\-fixed\-medium\-r\-normal\-\-13\-120\-75\-75\-C\-70\-iso8859\-1" .fi .if n \{\ .RE .\} .SH "استفاده از I3STATUS با XMOBAR (USING I3STATUS WITH XMOBAR)" .sp برای راه‌اندازی xmobar، ممکن است لازم باشد فایل پیکربندی پیش‌فرض را در ~/\&.xmobarrc کپی کنید\&. همچنین اطمینان حاصل کنید که گزینه output_format برای i3status روی xmobar تنظیم شده باشد\&. \fBتوجه\fR: گزینه min_width پشتیبانی نمی‌شود\&. .sp \fBنمونه استفاده از i3status با xmobar\fR: .sp .if n \{\ .RS 4 .\} .nf i3status | xmobar \-o \-t "%StdinReader%" \-c "[Run StdinReader]" .fi .if n \{\ .RE .\} .SH "درباره فرکانس پردازنده چطور؟ (WHAT ABOUT CPU FREQUENCY?)" .sp ضمن بحث درباره موارد خاص، لطفاً این بخش را به عنوان توضیحی کلی درباره اینکه چرا اطلاعات مورد علاقه شما در i3status گنجانده نشده است در نظر بگیرید\&. .sp بیایید به‌طور مشخص درباره فرکانس پردازنده صحبت کنیم\&. بسیاری از افراد نحوه عملکرد دقیق مقیاس‌بندی فرکانس را درک نمی‌کنند\&. گاورنر فرکانس پردازنده که عموماً توصیه می‌شود ("ondemand")، فرکانس پردازنده را بسیار سریع‌تر از آنچه i3status بتواند آن را نمایش دهد تغییر می‌دهد\&. بنابراین عدد نمایش‌داده‌شده اغلب نادرست است و اطلاعات مفیدی نیز به شما ارائه نمی‌دهد\&. .sp به‌طور کلی، i3status مایل است مواردی را نمایش دهد که شما گهگاه به آن‌ها نگاه می‌کنید، مانند تاریخ/زمان جاری، اینکه آیا به شبکه وای‌فای متصل هستید یا خیر، و اینکه آیا فضای دیسک کافی برای دانلود آن فایل ۴\&.۳ گیبی‌بایتی دارید یا خیر\&. .sp با این حال، اگر نیاز دارید نوعی اطلاعات را بیش از هر از چند گاهی بررسی کنید، احتمالاً با اسکریپتی که آن کار را انجام داده و پنجره پاپ‌آپ باز کند وضعیت بهتری خواهید داشت\&. از این گذشته، هدف رایانه‌ها این نیست که با کارهای تکراری و خسته‌کننده مانند بررسی مداوم یک عدد، بار اضافی بر دوش شما بگذارند\&. .SH "اسکریپت‌ها/برنامه‌های خارجی با I3STATUS (EXTERNAL SCRIPTS/PROGRAMS WITH I3STATUS)" .sp در i3status، ما نمی‌خواهیم مدیریت پردازش را دوباره پیاده‌سازی کنیم\&. از این رو، هیچ ماژولی برای اجرای اسکریپت‌ها یا دستورات دلخواه وجود ندارد\&. در عوض، باید از شل خود استفاده کنید، برای نمونه مانند این: .sp \fBنمونه افزودن به ابتدای خروجی i3status\fR: .sp .if n \{\ .RS 4 .\} .nf #!/bin/sh # shell script to prepend i3status with more stuff i3status | while : do read line echo "mystuff | $line" || exit 1 done .fi .if n \{\ .RE .\} .sp این کد را در یک اسکریپت، مثلاً \&.bin/my_i3status\&.sh قرار داده و آن را به‌جای i3status اجرا کنید\&. .sp توجه داشته باشید که اگر می‌خواهید از قالب خروجی JSON (همراه با رنگ‌ها در i3bar) استفاده کنید، باید از یک اسکریپت بسته‌بند (wrapper) کمی پیچیده‌تر استفاده نمایید\&. نمونه‌هایی در پوشه contrib/ وجود دارد، نشانی زیر را ببینید: \m[blue]\fBhttps://github\&.com/i3/i3status/tree/master/contrib\fR\m[] .SH "سیگنال‌ها (SIGNALS)" .sp هنگام دریافت SIGUSR1، فراخوانی nanosleep() برنامه i3status قطع خواهد شد و در نتیجه یک به‌روزرسانی اجباری رخ می‌دهد\&. برای مثال می‌توانید پس از تغییر میزان صدای سیستم، از killall \-USR1 i3status برای اجبار به به‌روزرسانی استفاده کنید\&. .SH "همچنین ببینید (SEE ALSO)" .sp strftime(3), date(1), glob(3), dzen2(1), xmobar(1) .SH "نویسندگان (AUTHORS)" .sp Michael Stapelberg and contributors .sp Thorsten Toepper .sp Baptiste Daroussin .sp Axel Wagner .sp Fernando Tarl\('a Cardoso Lemos