| I3STATUS(1) | راهنمای i3 | I3STATUS(1) |
نام (NAME)
i3status - تولید نوار وضعیت کارآمد برای i3bar، dzen2، xmobar یا lemonbar
خلاصه دستور (SYNOPSIS)
i3status [-c فایل_پیکربندی] [-h] [-v] [--run-once]
گزینهها (OPTIONS)
-c --config
-h --help
-v --version
--run-once
توضیحات (DESCRIPTION)
برنامه i3status یک برنامه کوچک برای تولید نوار وضعیت برای i3bar، dzen2، xmobar، lemonbar یا برنامههای مشابه است. این برنامه طوری طراحی شده است که با صدور تعداد بسیار اندکی از فراخوانیهای سیستمی (system calls) بسیار کارآمد عمل کند، زیرا معمولاً فرد میخواهد چنین خط وضعیتی هر ثانیه بهروزرسانی شود. این امر تضمین میکند که حتی تحت بار کاری سنگین سیستم، نوار وضعیت شما بهدرستی بهروزرسانی شود. همچنین، با عدم اشغال پردازنده به اندازهای که اجرای مکرر دستورات معادل شل مصرف میکرد، مقداری در مصرف انرژی صرفهجویی میکند.
پیکربندی (CONFIGURATION)
ایده اصلی i3status این است که میتوانید مشخص کنید کدام «ماژولها» باید استفاده شوند (دستور order). سپس میتوانید هر ماژول را در بخش اختصاصی خودش پیکربندی کنید. برای هر ماژول، میتوانید قالب خروجی را تعیین نمایید. برای راهنمای کامل به ادامه مطلب مراجعه کنید.
نمونه پیکربندی.
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 °C"
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"
}
عمومی (General)
دستور colors در صورت تنظیم روی false تمام رنگها را غیرفعال میکند. همچنین میتوانید با استفاده از دستورهای color_good، color_degraded یا color_bad به ترتیب رنگهایی را که برای نمایش مقادیر «خوب»، «افتکرده» یا «بد» استفاده میشوند مشخص کنید. این دستورها تنها در صورتی اعمال میشوند که پشتیبانی از رنگ توسط دستور colors غیرفعال نشده باشد. قالب ورودی برای مقادیر رنگ، سهگانه هگزادسیمال RGB استاندارد است (بدون هیچ جداکنندهای میان رنگها) که پیشوند آن نویسه هش («#») است.
نمونه پیکربندی:
color_good = "#00FF00"
به همین ترتیب، میتوانید از دستور color_separator برای تعیین رنگی که برای رسم نوار جداکننده استفاده میشود استفاده کنید. جداکننده همیشه رنگی چاپ میشود، حتی زمانی که رنگها توسط دستور colors غیرفعال شده باشند. این گزینه در صورتی که output_format روی i3bar یا none تنظیم شده باشد اثری ندارد.
دستور interval مدت زمان به ثانیه را مشخص میکند که i3status پیش از چاپ خط وضعیت بعدی متوقف (sleep) میشود.
با استفاده از output_format میتوانید انتخاب کنید که i3status از کدام رشتههای قالببندی در خروجی خود استفاده کند. موارد موجود در حال حاضر عبارتند از:
i3bar
dzen2
xmobar
lemonbar
term
none
همچنین امکان استفاده از دستورهای color_good، color_degraded و color_bad برای تعریف رنگهای مشخص به ازای هر ماژول وجود دارد. اگر یکی از این دستورها در بخش یک ماژول تعریف شود، مقدار آن بر مقداری که در بخش general تعریف شده صرفاً برای همین ماژول تقدم خواهد داشت.
اگر جداکنندههای عمودی پیشفرضی را که i3status/i3bar میان ماژولها استفاده میکند نمیپسندید، میتوانید از دستور separator برای پیکربندی نحوه جداسازی ماژولها استفاده کنید. همچنین میتوانید جداکننده پیشفرض را با تنظیم آن روی رشته خالی بهطور کامل غیرفعال کنید. سپس میتوانید جداسازی را به عنوان بخشی از رشته قالببندی ماژول تعریف کنید. در صورت استفاده از قالب خروجی i3bar این تنها گزینه شماست، زیرا در غیر این صورت جداکننده مستقیماً توسط i3bar رسم میشود. برای سایر قالبهای خروجی، رشته غیرخالی ارائهشده در صورت فعال بودن پشتیبانی از رنگ، بهطور خودکار با بخشهای رنگآمیزی لازم احاطه میشود.
برنامه i3bar از نشانهگذاری Pango پشتیبانی میکند و به شما امکان میدهد در صورتی که دستور markup را روی "pango" تنظیم کنید، فونت، رنگ، اندازه و غیره را در رشتههای قالببندی خود مشخص نمایید. توجه داشته باشید که نویسههای امپرسند («&»)، کوچکتری («<»)، بزرگتری («>»)، علامت نقلقول تکی («'») و علامت نقلقول دوتایی («"») به ترتیب باید با «&»، «<»، «>»، «'» و «"» جایگزین شوند. این کار برای محتوای تولیدشده (مانند ESSID شبکه بیسیم، زمان) بهطور خودکار انجام میشود.
نمونه پیکربندی:
general {
output_format = "xmobar"
separator = " "
}
order += "load"
order += "disk /"
load {
format = "[ load: %1min, %5min, %15min ]"
}
disk "/" {
format = "%avail"
}
IPv6
این ماژول آدرس IPv6 مورد استفاده برای اتصالات خروجی (یعنی بهترین آدرس عمومی IPv6 در دسترس روی رایانه شما) و رابط شبکهای را که به آن اختصاص یافته دریافت میکند.
نمونه format_up: %iface: %ip
نمونه format_down: no IPv6
دیسک (Disk)
مقدار بایتهای مصرفشده، آزاد، در دسترس و کل را در سیستمفایل مانتشده مشخصشده دریافت میکند.
این مقادیر همچنین میتوانند با قالبهای percentage_used، percentage_free، percentage_avail و percentage_used_of_avail به صورت درصد بیان شوند.
اندازههای بایت با استفاده از مجموعهای از پیشوندها که نوع آنها را میتوان از طریق گزینه "prefix_type" مشخص کرد، در قالبی خوانا برای انسان ارائه میشوند. سه مجموعه پیشوند در دسترس است:
binary
decimal
custom
امکان تعریف یک 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 سفارشیسازی کنید.
میتوانید با گزینه "format_not_mounted" قالب متفاوتی را تعریف کنید که اگر مسیر وجود نداشته باشد یا یک نقطه مانت نباشد استفاده شود. مقدار پیشفرض برابر با "" است.
نمونه order: disk /mnt/usbstick
نمونه format: %free (%avail)/ %total
نمونه format: %percentage_used used, %percentage_free free, %percentage_avail avail
نمونه prefix_type: custom
نمونه low_threshold: 5
نمونه format_below_threshold: Warning: %percentage_avail
نمونه threshold_type: percentage_free
پایش اجرا (Run-watch)
مسیر دادهشده را به یک pidfile گسترش میدهد و بررسی میکند که آیا شناسه پردازش (PID) موجود در آن معتبر است یا خیر (یعنی آیا پردازش در حال اجراست). میتوانید از این گزینه برای بررسی اجرای یک برنامه خاص، مانند کلاینت VPN یا کلاینت DHCP استفاده کنید. همچنین گزینهای به نام format_down وجود دارد. با format_down="" میتوانید خروجی را پنهان کنید.
نمونه order: run_watch DHCP
نمونه format: %title: %status
بررسی وجود مسیر (Path-exists)
بررسی میکند که آیا مسیر دادهشده در سیستمفایل وجود دارد یا خیر. میتوانید از این ماژول برای بررسی فعال بودن چیزی استفاده کنید، مانند یک تونل VPN که توسط NetworkManager مدیریت میشود. همچنین گزینهای به نام format_down وجود دارد. با format_down="" میتوانید خروجی را پنهان کنید.
نمونه order: path_exists VPN
نمونه format: %title: %status
شبکه بیسیم (Wireless)
کیفیت پیوند، فرکانس و ESSID رابط شبکه بیسیم دادهشده را دریافت میکند. میتوانید رشتههای قالببندی متفاوتی را برای حالت متصل بودن یا متصل نبودن شبکه مشخص کنید. کیفیت پیوند بهطور پیشفرض با صفرهای آغازین پر میشود؛ برای پر کردن با نویسههای دیگر از format_bitrate، format_noise، format_quality یا format_signal استفاده کنید.
نام رابط ویژه _first_ با نخستین رابط شبکه بیسیم یافتشده در سیستم (بهجز دستگاههایی که با "lo" شروع میشوند) جایگزین خواهد شد.
نمونه order: wireless wlan0
نمونه format_up: W: (%quality at %essid, %bitrate / %frequency) %ip
نمونه format_down: W: down
نمونه format_bitrate: "%g %cb/s"
نمونه format_noise: "%03d%s"
نمونه format_quality: "%03d%s"
نمونه format_signal: "%03d%s"
اترنت (Ethernet)
آدرس IP و (در صورت امکان) سرعت پیوند رابط اترنت دادهشده را دریافت میکند. اگر آدرس IPv4 موجود نباشد ولی آدرس IPv6 موجود باشد، نمایش داده خواهد شد.
نام رابط ویژه _first_ با نخستین رابط شبکه غیر بیسیم یافتشده در سیستم (بهجز دستگاههایی که با "lo" شروع میشوند) جایگزین خواهد شد.
نمونه order: ethernet eth0
نمونه format_up: E: %ip (%speed)
نمونه format_down: E: down
باتری (Battery)
وضعیت (شارژ شدن، دشارژ شدن، نامشخص، پر)، درصد، زمان باقیمانده و مصرف توان (به وات) باتری مشخصشده و زمان تخمینی خالی شدن آن را دریافت میکند. اگر میخواهید بهجای ظرفیت اسمی طراحی از آخرین ظرفیت شارژ کامل استفاده کنید (هنگام استفاده از ظرفیت اسمی، ممکن است باتری شما به دلیل کهنگی در حالت شارژ کامل روی ۲۳٪ باشد؛ بهطور کلی ترجیح این است که اینگونه دیده شود زیرا میزان فرسودگی باتری را نشان میدهد)، کافی است last_full_capacity = true را مشخص کنید. با تنظیم hide_seconds = false میتوانید ثانیهها را در تخمین زمان باقیمانده و زمان خالی شدن نمایش دهید.
اگر میخواهید درصد باتری در قالب دیگری نمایش داده شود، از format_percentage استفاده کنید. گزینه integer_battery_capacity = true یک گزینه قدیمی برای format_percentage = "%.00f%s" است.
اگر باتری شما در مسیری غیر استاندارد در /sys قرار دارد، حتماً ویژگی path را متناسب با آن تغییر دهید، یعنی اشاره به فایل uevent در سیستم شما. اولین وقوع %d با شماره باتری جایگزین میشود، اما میتوانید مسیر را بهصورت ثابت نیز وارد کنید.
امکان تعریف یک low_threshold وجود دارد که باعث میشود متن باتری به رنگ color_bad درآید. نوع low_threshold میتواند از نوع threshold_type با مقدار "time" یا "percentage" باشد. بنابراین، اگر low_threshold را روی 10 و threshold_type را روی "time" تنظیم کنید و باتری شما ۹ دقیقه دیگر دوام بیاورد، با color_bad رنگآمیزی خواهد شد.
برای نمایش مجموع تجمیعی تمام باتریهای سیستم، از "all" به عنوان شماره استفاده کنید. در این حالت (برای لینوکس)، مسیر /sys باید حاوی توالی "%d" باشد. در غیر این صورت، این عدد نشاندهنده اندیس باتری طبق گزارش /sys است.
به صورت اختیاری میتوان رشتههای سفارشی شامل هرگونه نماد UTF-8 را برای حالتهای مختلف باتری استفاده کرد. این قابلیت نمایش نمادهای مجزا برای هر حالت (شارژ، دشارژ، نامشخص، پر) را امکانپذیر میسازد. البته با فونتهای آیکونی خاص مانند FontAwesome نیز کار خواهد کرد. اگر هر یک از این رشتههای وضعیت ویژه حذف شوند، از مقادیر پیشفرض (CHR, BAT, UNK, FULL) استفاده میشود.
نمونه order (برای نخستین باتری): battery 0
نمونه order (مجموع تمام باتریها): battery all
نمونه format: %status %remaining (%emptytime %consumption)
نمونه format_down: No battery
نمونه format_percentage: "%.02f%s"
نمونه status_chr: ⚡ CHR
نمونه status_bat: 🔋 BAT
نمونه status_unk: ? UNK
نمونه status_full: ☻ FULL
نمونه low_threshold: 30
نمونه threshold_type: time
نمونه path (جایگزینی %d با شماره عنوان): /sys/class/power_supply/CMB%d/uevent
نمونه path (بدون در نظر گرفتن شماره): /sys/class/power_supply/CMB1/uevent
دمای پردازنده (CPU-Temperature)
دمای منطقه حرارتی (thermal zone) دادهشده را دریافت میکند. امکان تعریف max_threshold وجود دارد که در صورت داغ شدن بیش از حد منطقه حرارتی مشخصشده، دما را به رنگ قرمز درمیآورد. مقدار پیشفرض ۷۵ درجه سانتیگراد است. قالب خروجی در شرایط بالاتر از max_threshold را میتوان با format_above_threshold سفارشی کرد.
نمونه order: cpu_temperature 0
نمونه format: T: %degrees °C
نمونه max_threshold: 42
نمونه format_above_threshold: Warning T above threshold: %degrees °C
نمونه path: /sys/devices/platform/coretemp.0/temp1_input
مصرف پردازنده (CPU Usage)
درصد مصرف پردازنده را از /proc/stat (در لینوکس) یا sysctl(3) (در FreeBSD/OpenBSD) دریافت میکند.
امکان تعریف یک max_threshold وجود دارد که در صورتی که میانگین مصرف پردازنده در بازه زمانی گذشته از آستانه پیکربندیشده فراتر رود، مقدار بار را با color_bad رنگآمیزی میکند. مقدار پیشفرض ۹۵ است. قالب خروجی در شرایط بالاتر از max_threshold با format_above_threshold قابل سفارشیسازی است.
امکان تعریف یک degraded_threshold وجود دارد که در صورتی که میانگین مصرف پردازنده در بازه زمانی گذشته از آستانه فراتر رود، مقدار بار را با color_degraded رنگآمیزی میکند. مقدار پیشفرض ۹۰ است. قالب خروجی در شرایط بالاتر از degraded_threshold با format_above_degraded_threshold قابل سفارشیسازی است.
برای نمایش میزان مصرف Nامین پردازنده، میتوانید از رشته قالب %cpu<N> شروع از %cpu0 استفاده کنید. این قابلیت در حال حاضر در FreeBSD پشتیبانی نمیشود.
نمونه order: cpu_usage
نمونه format: all: %usage CPU_0: %cpu0 CPU_1: %cpu1
نمونه max_threshold: 75
نمونه format_above_threshold: Warning above threshold: %usage
نمونه degraded_threshold: 25
نمونه format_above_degraded_threshold: Warning above degraded threshold: %usage
حافظه (Memory)
میزان مصرف حافظه سیستم را در سیستمهای لینوکسی از /proc/meminfo دریافت میکند. سایر سیستمها در حال حاضر پشتیبانی نمیشوند.
به عنوان متغیرهای جانگهدار قالب، گزینههای total، used، free، available و shared در دسترس هستند. این گزینهها مقادیر خوانا برای انسان را چاپ میکنند. همچنین میتوان پیشوند _percentage را به این متغیرها اضافه کرد تا مقدار به صورت درصد به دست آید.
امکان تعریف threshold_degraded و threshold_critical برای تغییر رنگ خروجی نوار وضعیت به color_degraded یا color_bad در صورتی که حافظه در دسترس به زیر آستانه مشخصشده برسد وجود دارد. مقادیر مجاز آستانه میتوانند هر عدد صحیحی با پسوند نماد iec (مانند T, G, M, K) باشند. همچنین، عدد صحیح میتواند پسوند علامت درصد داشته باشد که در این صورت نسبت به کل حافظه سنجیده میشود.
اگر پارامتر format_degraded داده شود و یکی از آستانههای critical یا degraded برقرار باشد، format_degraded به عنوان رشته قالب استفاده خواهد شد. این گزینه عملکردی معادل format دارد.
همچنین امکان تعیین یکای اندازهگیری برای متغیرهای جانگهدار قالب وجود دارد. از آنجا که /proc/meminfo حافظه را بر حسب کیلوبایت (kB) برمیگرداند، مقادیر به یکای دادهشده تبدیل میشوند. اگر هیچ یکایی داده نشود یا از گزینه auto استفاده شود، تبدیل بهطور خودکار بیشترین یکای ممکن را انتخاب میکند.
از آنجا که جانگهدار قالب تبدیلشده یک عدد اعشاری خواهد بود، تعداد ارقام اعشار را میتوان از طریق گزینه decimals پیکربندی کرد. در صورت عدم تعیین، مقدار تبدیلشده دارای یک رقم اعشار خواهد بود.
از آنجا که meminfo در لینوکس مقدار کل حافظه در حال استفاده را مستقیماً نشان نمیدهد، روشهای متعددی برای تشخیص حافظه واقعاً مصرفشده وجود دارد.
نمونه memory_used_method: memavailable ("کل حافظه" - "MemAvailable"، منطبق با دستور free)
نمونه memory_used_method: classical ("کل حافظه" - "free" - "buffers" - "cache"، منطبق با مانیتور سیستم گنوم)
نمونه order: memory
نمونه format: %free %available (%used) / %total
نمونه format: %percentage_used used, %percentage_free free, %percentage_shared shared
نمونه unit: auto, Ki, Mi, Gi, Ti
نمونه decimals: 0, 1, 2, 3
نمونه threshold_degraded: 10%
نمونه threshold_critical: 5%
نمونه format_degraded: Memory LOW: %free
بار کاری سیستم (Load)
بار سیستم (تعداد پردازشهای منتظر زمان پردازنده در ۱، ۵ و ۱۵ دقیقه گذشته) را دریافت میکند. امکان تعریف max_threshold وجود دارد که در صورتی که میانگین بار کاری در دقیقه گذشته از آستانه پیکربندیشده بیشتر شود، مقدار بار را به رنگ color_bad درمیآورد. مقدار پیشفرض ۵ است. قالب خروجی در شرایط بالاتر از max_threshold با format_above_threshold قابل سفارشیسازی است.
نمونه order: load
نمونه format: %1min %5min %15min
نمونه max_threshold: "0.1"
نمونه format_above_threshold: Warning: %1min %5min %15min
زمان (Time)
زمان جاری را در منطقه زمانی محلی خروجی میدهد. برای استفاده از منطقه زمانی دیگر، میتوانید متغیر محیطی TZ را تنظیم کنید یا از ماژول tztime استفاده نمایید. برای جزئیات مربوط به رشته قالب به strftime(3) مراجعه کنید.
نمونه order: time
نمونه format: %Y-%m-%d %H:%M:%S
زمان منطقه زمانی (TzTime)
زمان جاری را در منطقه زمانی مشخصشده خروجی میدهد. اگر منطقه زمانی مشخص نشود، از زمان محلی استفاده میشود. برای جزئیات مربوط به رشته قالب به strftime(3) مراجعه کنید. پایگاهداده مناطق زمانی سیستم معمولاً در /usr/share/zoneinfo نصب است. فایلهای زیر این مسیر رشتههای معتبر منطقه زمانی را تشکیل میدهند، برای نمونه برای /usr/share/zoneinfo/Europe/Berlin میتوانید timezone را در ماژول tztime روی Europe/Berlin تنظیم کنید. برای بازنویسی تنظیمات محلی (locale) محیط خود، گزینه locale را تنظیم کنید. برای نمایش زمان تنها زمانی که منطقه زمانی تنظیمشده زمانی متفاوت از زمان محلی دارد، hide_if_equals_localtime را روی true قرار دهید.
نمونه order: tztime berlin
نمونه format: %Y-%m-%d %H:%M:%S %Z
نمونه timezone: Europe/Berlin
نمونه locale: de_DE.UTF-8
اگر مایلید در این بخش از نشانهگذاری استفاده کنید، گزینه جداگانه format_time وجود دارد که کاراکترهای آن بهطور خودکار اسکیپ میشوند. خروجی آن سپس جایگزین %time در رشته قالب میشود.
نمونه پیکربندی (نشانهگذاری):
tztime berlin {
format = "<span foreground='#ffffff'>time:</span> %time"
format_time = "%H:%M %Z"
timezone = "Europe/Berlin"
hide_if_equals_localtime = true
}
تاریخ دیسکوردین (DDate)
تاریخ دیسکوردین جاری را در قالب مشخصشده توسط کاربر خروجی میدهد. برای جزئیات رشته قالب به ddate(1) مراجعه کنید. توجه: هیچیک از %. و %X هنوز پیادهسازی نشدهاند.
نمونه order: ddate
نمونه format: %{%a, %b %d%}, %Y%N - %H
میزان صدا (Volume)
میزان صدای میکسر مشخصشده را روی دستگاه مشخصشده خروجی میدهد. از PulseAudio و ALSA (فقط لینوکس) پشتیبانی میشود. در صورت نبود PulseAudio، به دلیل عدم وجود ALSA در FreeBSD و OpenBSD میتوان از یک پیکربندی سادهشده استفاده کرد و گزینههای device و mixer را در این سیستمها نادیده گرفت. در این سیستمها در صورتی که mixer_idx برابر با -1 باشد از API سیستم OSS برای پرسوجوی مستقیم /dev/mixer استفاده میشود، در غیر این صورت از /dev/mixer+mixer_idx+.
برای دریافت اطلاعات صدای PulseAudio، باید از قالب زیر در خط device استفاده کرد:
device = "pulse"
یا
device = "pulse:N"
که در آن N اندیس یا نام سینک در PulseAudio است. میتوانید نام سینک را با دستور زیر به دست آورید:
$ pacmd list-sinks | grep name:
name: <alsa_output.pci-0000_00_14.2.analog-stereo>
نام سینک همان چیزی است که داخل براکتهای زاویهدار قرار دارد، بدون احتساب خود آنها. اگر سینکی مشخص نشود از سینک پیشفرض استفاده میشود. اگر رشته device وجود نداشته باشد یا روی "default" تنظیم شده باشد، در صورت شناسایی PulseAudio تلاش برای استفاده از آن صورت میگیرد و در غیر این صورت به ALSA (در لینوکس) یا OSS (در FreeBSD/OpenBSD) بازگشت میکند.
نمونه order: volume master
نمونه format: ♪ (%devicename): %volume
نمونه format_muted: ♪ (%devicename): 0%%
نمونه پیکربندی:
volume master {
format = "♪: %volume"
format_muted = "♪: muted (%volume)"
device = "default"
mixer = "Master"
mixer_idx = 0
}
نمونه پیکربندی (PulseAudio):
volume master {
format = "♪: %volume"
format_muted = "♪: muted (%volume)"
device = "pulse:1"
}
volume master {
format = "♪: %volume"
format_muted = "♪: muted (%volume)"
device = "pulse:alsa_output.pci-0000_00_14.2.analog-stereo"
}
محتوای فایل (File Contents)
محتوای فایل مشخصشده را خروجی میدهد. میتوانید از این ماژول برای بررسی محتوای فایلها در سیستم خود، مانند /proc/uptime استفاده کنید. بهطور پیشفرض این تابع تنها ۲۵۴ کاراکتر اول فایل را میخواند؛ اگر میخواهید این مقدار را تغییر دهید گزینه Max_characters را تنظیم کنید. این تابع هرگز فراتر از ۴۰۹۵ کاراکتر اول را نخواهد خواند. اگر فایل پیدا نشود عبارت "no file" چاپ میشود و اگر فایل قابل خواندن نباشد "error read" چاپ خواهد شد.
نمونه order: read_file UPTIME
نمونه format: "%title: %content"
نمونه format_bad: "%title - %errno: %error"
نمونه path: "/proc/uptime"
نمونه Max_characters: 255
گزینههای عمومی ماژولها (UNIVERSAL MODULE OPTIONS)
هنگام استفاده از قالب خروجی i3bar، چند گزینه اضافی وجود دارد که میتوان با همه ماژولها برای سفارشیسازی ظاهر آنها استفاده کرد:
align
min_width
separator
separator_block_width
نمونه پیکربندی:
disk "/" {
format = "%avail"
align = "left"
min_width = 100
separator = false
separator_block_width = 1
}
استفاده از I3STATUS با DZEN2 (USING I3STATUS WITH DZEN2)
پس از نصب dzen2، میتوانید مستقیماً از آن به همراه i3status استفاده کنید. تنها اطمینان حاصل کنید که output_format روی dzen2 تنظیم شده باشد. توجه: گزینه min_width پشتیبانی نمیشود.
نمونه استفاده از i3status با dzen2:
i3status | dzen2 -fg white -ta r -w 1280 \ -fn "-misc-fixed-medium-r-normal--13-120-75-75-C-70-iso8859-1"
استفاده از I3STATUS با XMOBAR (USING I3STATUS WITH XMOBAR)
برای راهاندازی xmobar، ممکن است لازم باشد فایل پیکربندی پیشفرض را در ~/.xmobarrc کپی کنید. همچنین اطمینان حاصل کنید که گزینه output_format برای i3status روی xmobar تنظیم شده باشد. توجه: گزینه min_width پشتیبانی نمیشود.
نمونه استفاده از i3status با xmobar:
i3status | xmobar -o -t "%StdinReader%" -c "[Run StdinReader]"
درباره فرکانس پردازنده چطور؟ (WHAT ABOUT CPU FREQUENCY?)
ضمن بحث درباره موارد خاص، لطفاً این بخش را به عنوان توضیحی کلی درباره اینکه چرا اطلاعات مورد علاقه شما در i3status گنجانده نشده است در نظر بگیرید.
بیایید بهطور مشخص درباره فرکانس پردازنده صحبت کنیم. بسیاری از افراد نحوه عملکرد دقیق مقیاسبندی فرکانس را درک نمیکنند. گاورنر فرکانس پردازنده که عموماً توصیه میشود ("ondemand")، فرکانس پردازنده را بسیار سریعتر از آنچه i3status بتواند آن را نمایش دهد تغییر میدهد. بنابراین عدد نمایشدادهشده اغلب نادرست است و اطلاعات مفیدی نیز به شما ارائه نمیدهد.
بهطور کلی، i3status مایل است مواردی را نمایش دهد که شما گهگاه به آنها نگاه میکنید، مانند تاریخ/زمان جاری، اینکه آیا به شبکه وایفای متصل هستید یا خیر، و اینکه آیا فضای دیسک کافی برای دانلود آن فایل ۴.۳ گیبیبایتی دارید یا خیر.
با این حال، اگر نیاز دارید نوعی اطلاعات را بیش از هر از چند گاهی بررسی کنید، احتمالاً با اسکریپتی که آن کار را انجام داده و پنجره پاپآپ باز کند وضعیت بهتری خواهید داشت. از این گذشته، هدف رایانهها این نیست که با کارهای تکراری و خستهکننده مانند بررسی مداوم یک عدد، بار اضافی بر دوش شما بگذارند.
اسکریپتها/برنامههای خارجی با I3STATUS (EXTERNAL SCRIPTS/PROGRAMS WITH I3STATUS)
در i3status، ما نمیخواهیم مدیریت پردازش را دوباره پیادهسازی کنیم. از این رو، هیچ ماژولی برای اجرای اسکریپتها یا دستورات دلخواه وجود ندارد. در عوض، باید از شل خود استفاده کنید، برای نمونه مانند این:
نمونه افزودن به ابتدای خروجی i3status:
#!/bin/sh
# shell script to prepend i3status with more stuff
i3status | while :
do
read line
echo "mystuff | $line" || exit 1
done
این کد را در یک اسکریپت، مثلاً .bin/my_i3status.sh قرار داده و آن را بهجای i3status اجرا کنید.
توجه داشته باشید که اگر میخواهید از قالب خروجی JSON (همراه با رنگها در i3bar) استفاده کنید، باید از یک اسکریپت بستهبند (wrapper) کمی پیچیدهتر استفاده نمایید. نمونههایی در پوشه contrib/ وجود دارد، نشانی زیر را ببینید: https://github.com/i3/i3status/tree/master/contrib
سیگنالها (SIGNALS)
هنگام دریافت SIGUSR1، فراخوانی nanosleep() برنامه i3status قطع خواهد شد و در نتیجه یک بهروزرسانی اجباری رخ میدهد. برای مثال میتوانید پس از تغییر میزان صدای سیستم، از killall -USR1 i3status برای اجبار به بهروزرسانی استفاده کنید.
همچنین ببینید (SEE ALSO)
strftime(3), date(1), glob(3), dzen2(1), xmobar(1)
نویسندگان (AUTHORS)
Michael Stapelberg and contributors
Thorsten Toepper
Baptiste Daroussin
Axel Wagner
Fernando Tarlá Cardoso Lemos
| 08/19/2024 | i3status 2.15 |