.ie \n(.g .ds Aq \(aq .el .ds Aq ' .TH i3status-rs 1 "i3status-rs 0.36.1" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .SH "نام (NAME)" i3status\-rs \- جایگزینی پرامکانات و کم‌مصرف برای i3status، نوشته‌شده به زبان Rust. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .SH "خلاصه دستور (SYNOPSIS)" \fBi3status\-rs\fR [\fB\-\-never\-pause\fR] [\fB\-j\fR|\fB\-\-threads\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] [\fICONFIG\fR] .ie \n(.g .ds Aq \(aq .el .ds Aq ' .SH "توضیحات (DESCRIPTION)" جایگزینی سرشار از ویژگی و بهینه از نظر مصرف منابع برای i3status(1) که به زبان Rust نوشته شده است. برنامهٔ i3status\-rs جریانی از «بلوک‌های» پیکربندی‌پذیر داده‌های سیستم (زمان، وضعیت باتری، بلندی صدا و غیره) را در قالب JSON قابل‌فهم برای i3bar(1) و sway\-bar(5) در خروجی استاندارد می‌نویسد. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .SH "گزینه‌ها (OPTIONS)" .TP \fB\-\-never\-pause\fR نادیده گرفتن هرگونه تلاش توسط i3 برای متوقف کردن نوار وضعیت در حالت پنهان یا تمام‌صفحه .TP \fB\-j\fR, \fB\-\-threads\fR=\fIBLOCKING_THREADS\fR [پیش‌فرض: 2] حداکثر تعداد رشته‌های مسدودکننده (blocking threads) ایجادشده توسط tokio .TP \fB\-h\fR, \fB\-\-help\fR چاپ راهنما (مشاهدهٔ خلاصه‌ای با \*(Aq\-h\*(Aq) .TP \fB\-V\fR, \fB\-\-version\fR چاپ نسخه .TP [\fICONFIG\fR] [پیش‌فرض: config.toml] یک فایل پیکربندی TOML را تعیین می‌کند 1. در صورت ارائهٔ مسیر مطلق کامل، دقیقاً همان استفاده می‌شود: `/home/foo/i3rs\-config.toml` 2. در صورت ارائهٔ نام فایل، مثلاً "custom_theme.toml"، ابتدا در `$XDG_CONFIG_HOME/i3status\-rust` جستجو می‌شود 3. سپس در `$XDG_DATA_HOME/i3status\-rust` به دنبال آن می‌گردد 4. در غیر این صورت آن را در `/usr/share/i3status\-rust` جستجو می‌کند .SH "بلوک‌ها (BLOCKS)" .SS amd_gpu نمایش وضعیت و آمارهای کارت گرافیک AMD شما .SS "پیکربندی (Configuration)" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]device\f[R] T}@T{ دستگاه در \f[CR]/sys/class/drm/\f[R] برای خواندن اطلاعات. T}@T{ هر کارت گرافیک AMD T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای متغیرهای جایگزین موجود به بخش زیر مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $utilization \[dq]\f[R] T} T{ \f[CR]format_alt\f[R] T}@T{ در صورت تعیین، بلوک با هر کلیک بین \f[CR]format\f[R] و \f[CR]format_alt\f[R] جابه‌جا خواهد شد T}@T{ \f[CR]None\f[R] T} T{ \f[CR]interval\f[R] T}@T{ بازهٔ زمانی به‌روزرسانی بر حسب ثانیه T}@T{ \f[CR]5\f[R] T} .TE .PP .TS tab(@); lw(18.8n) lw(33.2n) lw(7.2n) lw(10.8n). T{ جانگهدار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ آیکون T}@T{ \- T} T{ \f[CR]utilization\f[R] T}@T{ میزان استفاده از GPU T}@T{ عدد T}@T{ % T} T{ \f[CR]vram_total\f[R] T}@T{ کل حافظهٔ VRAM T}@T{ عدد T}@T{ بایت T} T{ \f[CR]vram_used\f[R] T}@T{ حافظهٔ VRAM مصرفی T}@T{ عدد T}@T{ بایت T} T{ \f[CR]vram_used_percents\f[R] T}@T{ حافظهٔ VRAM مصرفی / کل VRAM T}@T{ عدد T}@T{ % T} .TE .PP .TS tab(@); lw(15.1n) lw(40.7n) lw(14.2n). T{ عملیات T}@T{ توضیحات T}@T{ کلید پیش‌فرض T} _ T{ \f[CR]toggle_format\f[R] T}@T{ جابه‌جایی میان \f[CR]format\f[R] و \f[CR]format_alt\f[R] T}@T{ کلید چپ T} .TE.SS مثال .IP .EX \f[B][[block]]\f[R] block = \[dq]amd_gpu\[dq] format = \[dq] $icon $utilization \[dq] format_alt = \[dq] $icon MEM: $vram_used_percents ($vram_used/$vram_total) \[dq] interval = 1 .EE .SS آیکون‌های استفاده‌شده .IP \[bu] 2 \f[CR]gpu\f[R] .SS backlight روشنایی یک دستگاه نور پس‌زمینه (backlight) .PP این بلوک اطلاعات روشنایی را مستقیماً از فایل‌سیستم می‌خواند، بنابراین هم در X11 و هم در Wayland کار می‌کند. این بلوک از \f[CR]inotify\f[R] برای گوش دادن مستقیم به تغییرات روشنایی دستگاه استفاده می‌کند، بنابراین نیازی به تنظیم بازهٔ به‌روزرسانی (interval) نیست. این بلوک از DBus برای تنظیم سطح روشنایی با استفاده از چرخ ماوس استفاده می‌کند، اما در صورتی که از \f[CR]systemd\-logind\f[R] استفاده نشود، به sysfs بازمی‌گردد. .SS مقیاس‌بندی ریشه‌ای (Root scaling) برخی دستگاه‌ها مقادیر خامی را ارائه می‌دهند که مدیریت آن‌ها با مقیاس‌بندی غیرخطی به بهترین نحو انجام می‌شود. درک انسان از روشنایی به ریشهٔ سوم درخشندگی نسبی نزدیک است، بنابراین مقادیر بین 2.4 و 3.0 برای \f[CR]root_scaling\f[R] ارزش امتحان کردن دارند. برای دستگاه‌هایی با پله‌های گسستهٔ اندک، این مقدار باید 1.0 (خطی) باشد. اطلاعات بیشتر: \c .UR https://en.wikipedia.org/wiki/Lightness .UE \c .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]device\f[R] T}@T{ یک عبارت باقاعده (regex) برای تطبیق با دستگاه‌های \f[CR]/sys/class/backlight\f[R] جهت خواندن اطلاعات روشنایی (می‌تواند با ۱ یا چند دستگاه مطابقت داشته باشد). وقتی هیچ \f[CR]device\f[R] مشخص نشده باشد، این بلوک اطلاعات تمام دستگاه‌های یافت‌شده در دایرکتوری \f[CR]/sys/class/backlight\f[R] را نمایش می‌دهد. T}@T{ دستگاه پیش‌فرض T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. جای‌نماهای دردسترس را در ادامه ببینید. T}@T{ \f[CR]\[dq] $icon $brightness \[dq]\f[R] T} T{ \f[CR]missing_format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. هیچ جای‌نمایی موجود نیست T}@T{ \f[CR]\[dq] no backlight devices \[dq]\f[R] T} T{ \f[CR]step_width\f[R] T}@T{ گام افزایش روشنایی هنگام پیمایش، بر حسب درصد T}@T{ \f[CR]5\f[R] T} T{ \f[CR]minimum\f[R] T}@T{ حداقل روشنایی که می‌توان با پیمایش به سمت پایین به آن رسید T}@T{ \f[CR]5\f[R] T} T{ \f[CR]maximum\f[R] T}@T{ حداکثر روشنایی که می‌توان با پیمایش به سمت بالا به آن رسید T}@T{ \f[CR]100\f[R] T} T{ \f[CR]cycle\f[R] T}@T{ سطوح روشنایی برای گردش متناوب با هر کلیک T}@T{ \f[CR][minimum, maximum]\f[R] T} T{ \f[CR]root_scaling\f[R] T}@T{ معکوس توان مقیاس‌بندی (یعنی ریشه) T}@T{ \f[CR]1.0\f[R] T} T{ \f[CR]invert_icons\f[R] T}@T{ معکوس کردن ترتیب آیکون‌ها، در صورتی که ایموجی‌های رنگی دارید مفید است T}@T{ \f[CR]false\f[R] T} T{ \f[CR]ddcci_sleep_multiplier\f[R] T}@T{ \c .UR https://www.ddcutil.com/performance_options/#option-sleep-multiplier مستندات ddcutil را ببینید .UE \c T}@T{ \f[CR]1.0\f[R] T} T{ \f[CR]ddcci_max_tries_write_read\f[R] T}@T{ حداکثر دفعات تلاش برای نوشتن در یا خواندن از یک مانیتور ddcci T}@T{ \f[CR]10\f[R] T} .TE .PP .TS tab(@); lw(11.5n) lw(38.1n) lw(7.1n) lw(13.3n). T{ جای‌نما T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ آیکون بر اساس وضعیت نور پس‌زمینه T}@T{ Icon T}@T{ \- T} T{ \f[CR]brightness\f[R] T}@T{ روشنایی کنونی T}@T{ Number T}@T{ % T} .TE .PP .TS tab(@); l l. T{ کنش T}@T{ دکمهٔ پیش‌فرض T} _ T{ \f[CR]cycle\f[R] T}@T{ Left T} T{ \f[CR]brightness_up\f[R] T}@T{ Wheel Up T} T{ \f[CR]brightness_down\f[R] T}@T{ Wheel Down T} .TE.SS مثال (Example) .IP .EX \f[B][[block]]\f[R] block = \[dq]backlight\[dq] device = \[dq]intel_backlight\[dq] .EE .PP مخفی کردن نور پس‌زمینهٔ ناموجود: .IP .EX \f[B][[block]]\f[R] block = \[dq]backlight\[dq] missing_format = \[dq]\[dq] .EE .SS calibright کالیبراسیون اضافی روشنایی نمایشگر را می‌توان در \f[CR]$XDG_CONFIG_HOME/calibright/config.toml\f[R] تنظیم کرد. برای جزئیات بیشتر به \c .UR https://github.com/bim9262/calibright .UE \c \ مراجعه کنید. این بلوک بر هر پیکربندی سراسری تنظیم‌شده در \f[CR]$XDG_CONFIG_HOME/calibright/config.toml\f[R] اولویت دارد و آن را بازنویسی می‌کند. .SS حالت جایگزین D\-Bus (D\-Bus Fallback) اگر از \f[CR]systemd\-logind\f[R] استفاده نمی‌کنید، i3status\-rust تلاش خواهد کرد روشنایی را با استفاده از sysfs تنظیم کند. برای انجام این کار، باید دسترسی نوشتن داشته باشید. می‌توانید این کار را با نوشتن یک قاعدهٔ \f[CR]udev\f[R] برای سیستم خود انجام دهید. .PP ابتدا با استفاده از دستور \f[CR]groups\f[R] بررسی کنید که کاربر شما عضو گروه \[lq]video\[rq] باشد. سپس قاعده‌ای در دایرکتوری \f[CR]/etc/udev/rules.d/\f[R] حاوی موارد زیر اضافه کنید، برای مثال در فایل \f[CR]backlight.rules\f[R]: .IP .EX ACTION==\[dq]add\[dq], SUBSYSTEM==\[dq]backlight\[dq], GROUP=\[dq]video\[dq], MODE=\[dq]0664\[dq] .EE .PP این کار به گروه video اجازه می‌دهد تمام دستگاه‌های نور پس‌زمینه را تغییر دهند. همچنین برای اعمال این قاعده باید سیستم را مجدداً راه‌اندازی کنید. .SS آیکون‌های استفاده‌شده (Icons Used) .IP \[bu] 2 \f[CR]backlight\f[R] (به‌صورت پیش‌رونده) .SS battery اطلاعات دربارهٔ منبع تغذیهٔ داخلی .PP این بلوک می‌تواند وضعیت فعلی باتری (Full، Charging یا Discharging)، درصد شارژ و زمان تخمینی تا شارژ/تخلیه شدن را برای یک منبع تغذیهٔ داخلی نمایش دهد. .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]device\f[R] T}@T{ sysfs/UPower: دستگاهی در \f[CR]/sys/class/power_supply/\f[R] برای خواندن اطلاعات (همچنین برای UPower می‌تواند \[lq]DisplayDevice\[rq] باشد که یک منبع تغذیهٔ منطقی واحد به نمایندگی از همهٔ منابع تغذیهٔ فیزیکی است. این مورد برای مثال زمانی مفید است که سیستم شما چندین باتری داشته باشد، که در این حالت DisplayDevice طوری رفتار می‌کند که گویی یک باتری واحدِ بزرگ‌تر دارید). apc_ups: به‌صورت IPv4Address:port یا hostname:port T}@T{ sysfs: اولین دستگاه باتریِ یافت‌شده در /sys/class/power_supply، که ورودی‌های \[lq]BATx\[rq] یا \[lq]CMBx\[rq] در آن اولویت دارند. apc_ups: مقدار \[lq]localhost:3551\[rq]. upower: \f[CR]DisplayDevice\f[R] T} T{ \f[CR]driver\f[R] T}@T{ یکی از مقادیر \f[CR]\[dq]sysfs\[dq]\f[R]، \f[CR]\[dq]apc_ups\[dq]\f[R] یا \f[CR]\[dq]upower\[dq]\f[R] T}@T{ \f[CR]\[dq]sysfs\[dq]\f[R] T} T{ \f[CR]model\f[R] T}@T{ در صورت وجود، محتوای \f[CR]/sys/class/power_supply/.../model_name\f[R] باید با این مقدار مطابقت داشته باشد. کاربرد معمول آن انتخاب بر اساس نام مدل در دستگاه‌هایی است که مسیر آن‌ها تغییر می‌کند. T}@T{ ندارد T} T{ \f[CR]interval\f[R] T}@T{ بازهٔ به‌روزرسانی به ثانیه. تنها برای driver = \[lq]sysfs\[rq] یا \[lq]apc_ups\[rq] کاربرد دارد. T}@T{ \f[CR]10\f[R] T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای نگه‌دارنده‌های مکانِ در دسترس، به ادامه مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $percentage \[dq]\f[R] T} T{ \f[CR]full_format\f[R] T}@T{ مشابه \f[CR]format\f[R] اما برای زمانی که باتری پر است T}@T{ \f[CR]\[dq] $icon \[dq]\f[R] T} T{ \f[CR]charging_format\f[R] T}@T{ مشابه \f[CR]format\f[R] اما برای زمانی که باتری در حال شارژ است T}@T{ ارجاع به \f[CR]format\f[R] T} T{ \f[CR]empty_format\f[R] T}@T{ مشابه \f[CR]format\f[R] اما برای زمانی که باتری خالی است T}@T{ \f[CR]\[dq] $icon \[dq]\f[R] T} T{ \f[CR]not_charging_format\f[R] T}@T{ مشابه \f[CR]format\f[R] اما برای زمانی که باتری در حال شارژ نیست. به‌طور پیش‌فرض از آیکون باتری پر استفاده می‌کند، زیرا بسیاری از باتری‌ها هنگامی که پر هستند این وضعیت را گزارش می‌دهند. T}@T{ \f[CR]\[dq] $icon \[dq]\f[R] T} T{ \f[CR]missing_format\f[R] T}@T{ مشابه \f[CR]format\f[R] در صورتی که باتری پیدا نشود. T}@T{ \f[CR]\[dq] $icon \[dq]\f[R] T} T{ \f[CR]info\f[R] T}@T{ حداقل سطح باتری، جایی که وضعیت روی info تنظیم می‌شود T}@T{ \f[CR]60\f[R] T} T{ \f[CR]good\f[R] T}@T{ حداقل سطح باتری، جایی که وضعیت روی good تنظیم می‌شود T}@T{ \f[CR]60\f[R] T} T{ \f[CR]warning\f[R] T}@T{ حداقل سطح باتری، جایی که وضعیت روی warning تنظیم می‌شود T}@T{ \f[CR]30\f[R] T} T{ \f[CR]critical\f[R] T}@T{ حداقل سطح باتری، جایی که وضعیت روی critical تنظیم می‌شود T}@T{ \f[CR]15\f[R] T} T{ \f[CR]full_threshold\f[R] T}@T{ درصدی که بالاتر از آن باتری پر در نظر گرفته می‌شود (نمایش \f[CR]full_format\f[R]) T}@T{ \f[CR]95\f[R] T} T{ \f[CR]empty_threshold\f[R] T}@T{ درصدی که پایین‌تر از آن باتری خالی در نظر گرفته می‌شود T}@T{ \f[CR]7.5\f[R] T} .TE.PP .TS tab(@); lw(8.3n) lw(46.5n) lw(12.1n) lw(3.2n). T{ جای‌نگهدار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ آیکون بر اساس وضعیت باتری T}@T{ آیکون T}@T{ \- T} T{ \f[CR]percentage\f[R] T}@T{ سطح باتری، به درصد T}@T{ عدد T}@T{ درصد T} T{ \f[CR]time_remaining\f[R] T}@T{ زمان باقی‌مانده تا تکمیل (تخلیه) شارژ. تنها در صورتی ارائه می‌شود که وضعیت باتری در حال (تخلیه) شارژ باشد. T}@T{ مدت‌زمان T}@T{ \- T} T{ \f[CR]time\f[R] T}@T{ زمان باقی‌مانده تا تکمیل (تخلیه) شارژ. تنها در صورتی ارائه می‌شود که وضعیت باتری در حال (تخلیه) شارژ باشد. T}@T{ رشته \f[I]منسوخ‌شده\f[R] T}@T{ \- T} T{ \f[CR]power\f[R] T}@T{ توان مصرفی باتری یا از منبع تغذیه هنگام شارژ شدن T}@T{ رشته یا عدد اعشاری T}@T{ وات T} .TE .PP استفاده از \f[CR]time\f[R] منسوخ شده و \f[CR]time_remaining\f[R] جایگزین آن شده است. .SS "مثال‌ها (EXAMPLES)" کاربرد پایه: .IP .EX \f[B][[block]]\f[R] block = \[dq]battery\[dq] format = \[dq] $icon $percentage \[dq] .EE .IP .EX \f[B][[block]]\f[R] block = \[dq]battery\[dq] format = \[dq] $percentage {$time_remaining.dur(hms:true, min_unit:m) |}\[dq] device = \[dq]DisplayDevice\[dq] driver = \[dq]upower\[dq] .EE .PP پنهان کردن باتری ناموجود: .IP .EX \f[B][[block]]\f[R] block = \[dq]battery\[dq] missing_format = \[dq]\[dq] .EE.SS شمایل‌های مورد استفاده (Icons Used) .IP \[bu] 2 \f[CR]bat\f[R] (به‌صورت مرحله‌ای) .IP \[bu] 2 \f[CR]bat_charging\f[R] (به‌صورت مرحله‌ای) .IP \[bu] 2 \f[CR]bat_not_available\f[R] .SS bluetooth پایش دستگاه بلوتوث .PP این بلوک وضعیت اتصال یک دستگاه بلوتوث مشخص و در صورت پشتیبانی، سطح باتری آن را نمایش می‌دهد. به D\-Bus API مربوط به Bluez وابسته است. .PP هنگامی که دستگاه بتواند به‌عنوان یک هدست صوتی، صفحه‌کلید، جوی‌استیک یا ماوس شناسایی شود، از شمایل مربوطه استفاده می‌کند. در غیر این صورت، به نماد عمومی بلوتوث بازمی‌گردد. .PP کلیک‌راست روی بلوک برای اتصال (یا قطع اتصال) دستگاه تلاش خواهد کرد. .PP نکته: اطلاعات سطح باتری برای برخی از دستگاه‌ها گزارش نمی‌شود. \c .UR https://wiki.archlinux.org/title/bluetooth#Enabling_experimental_features فعال‌سازی قابلیت‌های آزمایشی \f[CR]bluez\f[R] .UE \c \ ممکن است آن را برطرف کند. .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]mac\f[R] T}@T{ نشانی MAC دستگاه بلوتوث T}@T{ \f[B]اجباری\f[R] T} T{ \f[CR]adapter_mac\f[R] T}@T{ نشانی MAC آداپتور بلوتوث (در صورتی که دستگاه شما به چندین آداپتور دردسترس متصل شده باشد) T}@T{ \f[CR]None\f[R] T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای جایگزین‌های دردسترس به ادامه مراجعه کنید. T}@T{ \[dq] $icon $name{ $percentage|} \[dq] T} T{ \f[CR]disconnected_format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای جایگزین‌های دردسترس به ادامه مراجعه کنید. T}@T{ \[dq] $icon{ $name|} \[dq] T} T{ \f[CR]battery_state\f[R] T}@T{ نگاشتی از درصد باتری به وضعیت (رنگ) بلوک. مثال زیر را ببینید. T}@T{ 0..15 \-> critical, 16..30 \-> warning, 31..60 \-> info, 61..100 \-> good T} .TE .PP .TS tab(@); lw(10.5n) lw(49.7n) lw(5.6n) lw(4.2n). T{ متغیر جایگزین T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ شمایل بر پایه نوع دستگاه متصل‌شده T}@T{ شمایل T}@T{ \- T} T{ \f[CR]name\f[R] T}@T{ نام دستگاه T}@T{ متن T}@T{ \- T} T{ \f[CR]percentage\f[R] T}@T{ سطح باتری دستگاه (در صورت پشتیبانی‌نشدن دستگاه ممکن است وجود نداشته باشد) T}@T{ عدد T}@T{ % T} T{ \f[CR]battery_icon\f[R] T}@T{ شمایل باتری (در صورت پشتیبانی‌نشدن دستگاه ممکن است وجود نداشته باشد) T}@T{ شمایل T}@T{ \- T} T{ \f[CR]available\f[R] T}@T{ در صورت دردسترس بودن دستگاه وجود دارد T}@T{ پرچم T}@T{ \- T} .TE .PP .TS tab(@); l l. T{ عملیات T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]toggle\f[R] T}@T{ راست T} .TE.SS "مثال‌ها (Examples)" این مثال تنها زمانی که دستگاه متصل است آیکون را نشان می‌دهد. .IP .EX \f[B][[block]]\f[R] block = \[dq]bluetooth\[dq] mac = \[dq]00:18:09:92:1B:BA\[dq] disconnected_format = \[dq]\[dq] format = \[dq] $icon \[dq] \f[B][block.battery_state]\f[R] \[dq]0..20\[dq] = \[dq]critical\[dq] \[dq]21..70\[dq] = \[dq]warning\[dq] \[dq]71..100\[dq] = \[dq]good\[dq] .EE .SS "آیکون‌های استفاده‌شده (Icons Used)" .IP \[bu] 2 \f[CR]headphones\f[R] برای دستگاه‌های بلوتوثی که به‌عنوان \[lq]audio\-card\[rq]، \[lq]audio\-headset\[rq] یا \[lq]audio\-headphones\[rq] شناسایی می‌شوند .IP \[bu] 2 \f[CR]joystick\f[R] برای دستگاه‌های بلوتوثی که به‌عنوان \[lq]input\-gaming\[rq] شناسایی می‌شوند .IP \[bu] 2 \f[CR]keyboard\f[R] برای دستگاه‌های بلوتوثی که به‌عنوان \[lq]input\-keyboard\[rq] شناسایی می‌شوند .IP \[bu] 2 \f[CR]mouse\f[R] برای دستگاه‌های بلوتوثی که به‌عنوان \[lq]input\-mouse\[rq] شناسایی می‌شوند .IP \[bu] 2 \f[CR]bluetooth\f[R] برای تمامی دستگاه‌های دیگر .SS calendar تقویم (Calendar) .PP این بلوک رویدادهای پیش‌روی تقویم را که از یک سرور CalDav ICalendar بازیابی شده‌اند، نمایش می‌دهد. .SS "پیکربندی (Configuration)" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]next_event_format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک هنگامی که رویداد بعدی در تقویم وجود دارد. برای جای‌نگه‌دارهای موجود به زیر مراجعه کنید. T}@T{ \[dq] $icon $start.datetime(f:`%a %H:%M') $summary \[dq] T} T{ \f[CR]ongoing_event_format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک در حین برگزاری یک رویداد. T}@T{ \[dq] $icon $summary (ends at $end.datetime(f:`%H:%M')) \[dq] T} T{ \f[CR]no_events_format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک هنگامی که هیچ رویدادی وجود ندارد T}@T{ \[dq] $icon \[dq] T} T{ \f[CR]redirect_format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک هنگامی که اعطای مجوز درخواست می‌شود T}@T{ \[dq] $icon Check your web browser \[dq] T} T{ \f[CR]fetch_interval\f[R] T}@T{ بازهٔ زمانی واکشی رویدادها به ثانیه T}@T{ \f[CR]60\f[R] T} T{ \f[CR]alternate_events_interval\f[R] T}@T{ بازهٔ زمانی تناوب رویدادهای هم‌پوشان به ثانیه T}@T{ \f[CR]10\f[R] T} T{ \f[CR]events_within_hours\f[R] T}@T{ تعداد ساعت‌ها برای بررسی و یافتن رویدادها در آینده T}@T{ \f[CR]48\f[R] T} T{ \f[CR]source\f[R] T}@T{ آرایه‌ای از منابع برای دریافت تقویم‌ها از آن‌ها T}@T{ \f[CR][]\f[R] T} T{ \f[CR]warning_threshold\f[R] T}@T{ آستانهٔ هشدار به ثانیه برای رویداد پیش‌رو T}@T{ \f[CR]300\f[R] T} T{ \f[CR]browser_cmd\f[R] T}@T{ دستور برای باز کردن جزئیات رویداد در مرورگر. این بلوک پیوند HTML را به‌عنوان یک آرگومان ارسال می‌کند T}@T{ \f[CR]\[dq]xdg\-open\[dq]\f[R] T} .TE.SS "پیکربندی منبع (Source Configuration)" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]url\f[R] T}@T{ نشانی URL سرور تقویم CalDav T}@T{ ندارد T} T{ \f[CR]auth\f[R] T}@T{ پیکربندی احراز هویت (unauthenticated، basic یا oauth2) T}@T{ \f[CR]unauthenticated\f[R] T} T{ \f[CR]calendars\f[R] T}@T{ فهرست نام‌های تقویم جهت پایش. در صورت خالی بودن، همهٔ تقویم‌ها واکشی خواهند شد. T}@T{ \f[CR][]\f[R] T} .TE .PP نکته: در حال حاضر تنها از یک منبع پشتیبانی می‌شود .PP .TS tab(@); lw(15.1n) lw(40.7n) lw(14.2n). T{ کنش T}@T{ توضیحات T}@T{ دکمهٔ پیش‌فرض T} _ T{ \f[CR]open_link\f[R] T}@T{ پیوند HTML مربوط به رویداد را باز می‌کند T}@T{ چپ T} .TE .SS "مثال‌ها (EXAMPLES)" .SS "بدون احراز هویت (Unauthenticated)" .IP .EX \f[B][[block]]\f[R] block = \[dq]calendar\[dq] next_event_format = \[dq] $icon $start.datetime(f:\[aq]%a %H:%M\[aq]) $summary \[dq] ongoing_event_format = \[dq] $icon $summary (ends at $end.datetime(f:\[aq]%H:%M\[aq])) \[dq] no_events_format = \[dq] $icon no events \[dq] fetch_interval = 30 alternate_events_interval = 10 events_within_hours = 48 warning_threshold = 600 browser_cmd = \[dq]firefox\[dq] \f[B][[block.source]]\f[R] url = \[dq]https://caldav.example.com/calendar/\[dq] calendars = [\[dq]user/calendar\[dq]] \f[B][block.source.auth]\f[R] type = \[dq]unauthenticated\[dq] .EE .SS "احراز هویت پایه (Basic Authentication)" .IP .EX \f[B][[block]]\f[R] block = \[dq]calendar\[dq] next_event_format = \[dq] $icon $start.datetime(f:\[aq]%a %H:%M\[aq]) $summary \[dq] ongoing_event_format = \[dq] $icon $summary (ends at $end.datetime(f:\[aq]%H:%M\[aq])) \[dq] no_events_format = \[dq] $icon no events \[dq] fetch_interval = 30 alternate_events_interval = 10 events_within_hours = 48 warning_threshold = 600 browser_cmd = \[dq]firefox\[dq] \f[B][[block.source]]\f[R] url = \[dq]https://caldav.example.com/calendar/\[dq] calendars = [ \[dq]Holidays\[dq] ] \f[B][block.source.auth]\f[R] type = \[dq]basic\[dq] username = \[dq]your_username\[dq] password = \[dq]your_password\[dq] .EE .PP نکته: شما همچنین می‌توانید \f[CR]username\f[R] و \f[CR]password\f[R] را در یک فایل TOML جداگانه پیکربندی کنید. .PP \f[CR]\[ti]/.config/i3status\-rust/example_credentials.toml\f[R] .IP .EX username = \[dq]my\-username\[dq] password = \[dq]my\-password\[dq] .EE .PP پیکربندی احراز هویت منبع با \f[CR]credentials_path\f[R]: .IP .EX \f[B][block.source.auth]\f[R] type = \[dq]basic\[dq] credentials_path = \[dq]\[ti]/.config/i3status\-rust/example_credentials.toml\[dq] .EE.SS احراز هویت OAuth2 (Google Calendar) برای دسترسی به CalDav API گوگل، مراحل زیر را جهت فعال‌سازی API و دریافت \f[CR]client_id\f[R] و \f[CR]client_secret\f[R] دنبال کنید: 1. \f[B]به Google Cloud Console بروید\f[R]: به \c .UR https://console.cloud.google.com Google Cloud Console .UE \c \& مراجعه کنید. 2. \f[B]ایجاد یک پروژه جدید\f[R]: اگر از قبل پروژه‌ای ندارید، روی منوی کشویی پروژه‌ها کلیک کرده و \[lq]New Project\[rq] را انتخاب کنید. نامی برای پروژه خود مشخص کرده و روی \[lq]Create\[rq] کلیک کنید. 3. \f[B]فعال‌سازی CalDAV API\f[R]: در پیشخوان پروژه، به مسیر \[lq]APIs & Services\[rq] > \[lq]Library\[rq] بروید. عبارت \[lq]CalDAV API\[rq] را جستجو کرده و روی آن کلیک کنید، سپس \[lq]Enable\[rq] را بزنید. 4. \f[B]راه‌اندازی OAuth consent screen\f[R]: به مسیر \[lq]APIs & Services\[rq] > \[lq]OAuth consent screen\[rq] بروید. اطلاعات مورد نیاز را پر کرده و ذخیره کنید. 5. \f[B]ایجاد اعتبارنامه‌ها (Credentials)\f[R]: \- به مسیر \[lq]APIs & Services\[rq] > \[lq]Credentials\[rq] بروید. \- روی \[lq]Create Credentials\[rq] کلیک کرده و \[lq]OAuth 2.0 Client IDs\[rq] را انتخاب کنید. \- در صورتی که از قبل صفحه رضایت را پیکربندی نکرده‌اید، آن را تنظیم کنید. \- نوع برنامه را روی \[lq]Web application\[rq] تنظیم کنید. \- آدرس‌های redirect URI مجاز خود را اضافه کنید. به عنوان مثال، \f[CR]http://localhost:8080\f[R]. \- روی \[lq]Create\[rq] کلیک کرده و مقادیر \f[CR]client_id\f[R] و \f[CR]client_secret\f[R] را یادداشت نمایید. 6. \f[B]بارگیری اعتبارنامه‌ها\f[R]: روی نماد بارگیری در کنار OAuth 2.0 Client ID خود کلیک کنید تا فایل JSON حاوی client ID و client secret شما دانلود شود. از این مقادیر در پیکربندی خود استفاده نمایید. .IP .EX \f[B][[block]]\f[R] block = \[dq]calendar\[dq] next_event_format = \[dq] $icon $start.datetime(f:\[aq]%a %H:%M\[aq]) $summary \[dq] ongoing_event_format = \[dq] $icon $summary (ends at $end.datetime(f:\[aq]%H:%M\[aq])) \[dq] no_events_format = \[dq] $icon no events \[dq] fetch_interval = 30 alternate_events_interval = 10 events_within_hours = 48 warning_threshold = 600 browser_cmd = \[dq]firefox\[dq] \f[B][[block.source]]\f[R] url = \[dq]https://apidata.googleusercontent.com/caldav/v2/\[dq] calendars = [\[dq]primary\[dq]] \f[B][block.source.auth]\f[R] type = \[dq]oauth2\[dq] client_id = \[dq]your_client_id\[dq] client_secret = \[dq]your_client_secret\[dq] auth_url = \[dq]https://accounts.google.com/o/oauth2/auth\[dq] token_url = \[dq]https://oauth2.googleapis.com/token\[dq] auth_token = \[dq]\[ti]/.config/i3status\-rust/calendar.auth_token\[dq] redirect_port = 8080 scopes = [\[dq]https://www.googleapis.com/auth/calendar\[dq], \[dq]https://www.googleapis.com/auth/calendar.events\[dq]] .EE .PP نکته: شما همچنین می‌توانید \f[CR]client_id\f[R] و \f[CR]client_secret\f[R] را در یک فایل TOML جداگانه پیکربندی کنید. .PP \f[CR]\[ti]/.config/i3status\-rust/google_credentials.toml\f[R] .IP .EX client_id = \[dq]my\-client_id\[dq] client_secret = \[dq]my\-client_secret\[dq] .EE .PP پیکربندی احراز هویت منبع با استفاده از \f[CR]credentials_path\f[R]: .IP .EX \f[B][block.source.auth]\f[R] type = \[dq]oauth2\[dq] credentials_path = \[dq]\[ti]/.config/i3status\-rust/google_credentials.toml\[dq] auth_url = \[dq]https://accounts.google.com/o/oauth2/auth\[dq] token_url = \[dq]https://oauth2.googleapis.com/token\[dq] auth_token = \[dq]\[ti]/.config/i3status\-rust/calendar.auth_token\[dq] redirect_port = 8080 scopes = [\[dq]https://www.googleapis.com/auth/calendar\[dq], \[dq]https://www.googleapis.com/auth/calendar.events\[dq]] .EE.SS پیکربندی قالب (Format Configuration) پیکربندی قالب رشته‌ای است که می‌تواند شامل جای‌نگه‌دارهایی باشد که با محتوای پویا جایگزین می‌شوند. جای‌نگه‌دارها می‌توانند این موارد باشند: \- \f[CR]$summary\f[R]: خلاصه رویداد \- \f[CR]$description\f[R]: شرح رویداد \- \f[CR]$url\f[R]: نشانی وب (URL) رویداد \- \f[CR]$location\f[R]: مکان رویداد \- \f[CR]$start\f[R]: زمان شروع رویداد \- \f[CR]$end\f[R]: زمان پایان رویداد .SS نمادهای استفاده‌شده (Icons Used) .IP \[bu] 2 \f[CR]calendar\f[R] .SS پردازنده (cpu) آمار و اطلاعات پردازنده .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای مشاهده جای‌نگه‌دارهای موجود به جدول زیر مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $utilization \[dq]\f[R] T} T{ \f[CR]format_alt\f[R] T}@T{ در صورت تنظیم، بلوک با هر کلیک بین \f[CR]format\f[R] و \f[CR]format_alt\f[R] جابه‌جا می‌شود T}@T{ \f[CR]None\f[R] T} T{ \f[CR]interval\f[R] T}@T{ بازه به‌روزرسانی بر حسب ثانیه T}@T{ \f[CR]5\f[R] T} T{ \f[CR]info_cpu\f[R] T}@T{ درصد استفاده از پردازنده که در آن وضعیت روی info تنظیم می‌شود T}@T{ \f[CR]30.0\f[R] T} T{ \f[CR]warning_cpu\f[R] T}@T{ درصد استفاده از پردازنده که در آن وضعیت روی warning تنظیم می‌شود T}@T{ \f[CR]60.0\f[R] T} T{ \f[CR]critical_cpu\f[R] T}@T{ درصد استفاده از پردازنده که در آن وضعیت روی critical تنظیم می‌شود T}@T{ \f[CR]90.0\f[R] T} .TE .PP .TS tab(@); lw(10.8n) lw(44.5n) lw(5.1n) lw(9.5n). T{ جای‌نگه‌دار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک نماد (آیکون) T}@T{ Icon T}@T{ \- T} T{ \f[CR]utilization\f[R] T}@T{ میانگین بهره‌وری پردازنده T}@T{ Number T}@T{ % T} T{ \f[CR]utilization\f[R] T}@T{ بهره‌وری N-اُمین پردازنده منطقی T}@T{ Number T}@T{ % T} T{ \f[CR]barchart\f[R] T}@T{ بهره‌وری تمام پردازنده‌های منطقی که به‌صورت نمودار میله‌ای نمایش داده می‌شود T}@T{ Text T}@T{ \- T} T{ \f[CR]frequency\f[R] T}@T{ میانگین فرکانس پردازنده (در صورت پشتیبانی نشدن پردازنده ممکن است وجود نداشته باشد) T}@T{ Number T}@T{ Hz T} T{ \f[CR]frequency\f[R] T}@T{ فرکانس N-اُمین پردازنده منطقی (در صورت پشتیبانی نشدن پردازنده ممکن است وجود نداشته باشد) T}@T{ Number T}@T{ Hz T} T{ \f[CR]max_frequency\f[R] T}@T{ بیشینه فرکانس تمام پردازنده‌های منطقی T}@T{ Number T}@T{ Hz T} T{ \f[CR]boost\f[R] T}@T{ وضعیت شتاب توربو (turbo boost) پردازنده (در صورت پشتیبانی نشدن پردازنده ممکن است وجود نداشته باشد) T}@T{ Text T}@T{ \- T} .TE .PP .TS tab(@); lw(15.1n) lw(40.7n) lw(14.2n). T{ کنش T}@T{ توضیحات T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]toggle_format\f[R] T}@T{ جابه‌جایی بین \f[CR]format\f[R] و \f[CR]format_alt\f[R] T}@T{ چپ (Left) T} .TE.SS مثال (Example) .IP .EX \f[B][[block]]\f[R] block = \[dq]cpu\[dq] interval = 1 format = \[dq] $icon $barchart $utilization \[dq] format_alt = \[dq] $icon $frequency{ $boost|} \[dq] info_cpu = 20 warning_cpu = 50 critical_cpu = 90 .EE .SS آیکون‌های استفاده‌شده (Icons Used) .IP \[bu] 2 \f[CR]cpu\f[R] (به صورت مرحله‌ای) .IP \[bu] 2 \f[CR]cpu_boost_on\f[R] .IP \[bu] 2 \f[CR]cpu_boost_off\f[R] .SS custom خروجی یک دستور شل سفارشی .PP برای سفارشی‌سازی بیشتر، از گزینهٔ \f[CR]json\f[R] استفاده کنید تا دستور شل یک خروجی JSON معتبر بر اساس طرح‌وارهٔ (schema) زیر تولید کند: .IP .EX {\[dq]icon\[dq]: \[dq]...\[dq], \[dq]state\[dq]: \[dq]...\[dq], \[dq]text\[dq]: \[dq]...\[dq], \[dq]short_text\[dq]: \[dq]...\[dq]} .EE .PP \f[CR]icon\f[R] اختیاری است (پیش‌فرض \[lq]\[rq]). \f[CR]state\f[R] اختیاری است و می‌تواند Idle، Info، Good، Warning یا Critical باشد (پیش‌فرض Idle). \f[CR]short_text\f[R] اختیاری است. .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. جایگزین‌های موجود را در ادامه ببینید. T}@T{ \[dq]{ $icon|} $text.pango\-str() \[dq] T} T{ \f[CR]command\f[R] T}@T{ دستور شل برای اجرا و نمایش T}@T{ \f[CR]None\f[R] T} T{ \f[CR]persistent\f[R] T}@T{ اجرای دستور در پس‌زمینه؛ به‌روزرسانی نمایشگر با هر خط خروجی دستور T}@T{ \f[CR]false\f[R] T} T{ \f[CR]cycle\f[R] T}@T{ دستورهایی که هنگام کلیک روی دکمه اجرا شده و جابه‌جا می‌شوند T}@T{ \f[CR]None\f[R] T} T{ \f[CR]interval\f[R] T}@T{ بازهٔ زمانی به‌روزرسانی به ثانیه (یا \[lq]once\[rq] برای به‌روزرسانی تنها یک‌بار) T}@T{ \f[CR]10\f[R] T} T{ \f[CR]json\f[R] T}@T{ استفاده از JSON خروجی دستور برای قالب‌بندی بلوک. اگر JSON معتبر نباشد، بلوک با خطا مواجه خواهد شد. T}@T{ \f[CR]false\f[R] T} T{ \f[CR]watch_files\f[R] T}@T{ پایش فایل‌ها برای به‌روزرسانی هنگام تغییر فایل. از گسترش مسیر مانند \f[CR]\[ti]\f[R] پشتیبانی می‌کند. T}@T{ \f[CR]None\f[R] T} T{ \f[CR]hide_when_empty\f[R] T}@T{ هنگامی که خروجی دستور (یا فیلد متنی json) خالی باشد، بلوک را پنهان می‌کند T}@T{ \f[CR]false\f[R] T} T{ \f[CR]shell\f[R] T}@T{ مشخص‌کردن شل مورد استفاده برای اجرای دستورها T}@T{ \f[CR]$SHELL\f[R] در صورت تنظیم، در غیر این صورت \f[CR]sh\f[R] T} .TE .PP .TS tab(@); lw(11.9n) lw(42.0n) lw(5.6n) lw(10.5n). T{ جایگزین T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ مقدار فیلد icon از خروجی JSON در صورت غیرخالی بودن T}@T{ آیکون T}@T{ \- T} T{ \f[CR]text\f[R] T}@T{ خروجی اسکریپت یا فیلد text از خروجی JSON T}@T{ متن T}@T{ T} T{ \f[CR]short_text\f[R] T}@T{ فیلد short_text از خروجی JSON T}@T{ متن T}@T{ T} .TE .PP .TS tab(@); l l. T{ عملیات T}@T{ دکمهٔ پیش‌فرض T} _ T{ \f[CR]cycle\f[R] T}@T{ چپ T} .TE.SS "مثال‌ها (EXAMPLES)" نمایش دما، به‌روزرسانی هر ۱۰ ثانیه: .IP .EX \f[B][[block]]\f[R] block = \[dq]custom\[dq] command = \[aq]\[aq]\[aq] cat /sys/class/thermal/thermal_zone0/temp | awk \[aq]{printf(\[dq]%.1f\[rs]n\[dq],$1/1000)}\[aq] \[aq]\[aq]\[aq] .EE .PP چرخش بین \[lq]ON\[rq] و \[lq]OFF\[rq]، به‌روزرسانی هر ۱ ثانیه، اجرای دستور چرخه بعدی هنگام کلیک روی بلوک: .IP .EX \f[B][[block]]\f[R] block = \[dq]custom\[dq] cycle = [\[dq]echo ON\[dq], \[dq]echo OFF\[dq]] interval = 1 \f[B][[block.click]]\f[R] button = \[dq]left\[dq] action = \[dq]cycle\[dq] .EE .PP استفاده از خروجی JSON: .IP .EX \f[B][[block]]\f[R] block = \[dq]custom\[dq] command = \[dq]echo \[aq]{\[rs]\[dq]icon\[rs]\[dq]:\[rs]\[dq]weather_thunder\[rs]\[dq],\[rs]\[dq]state\[rs]\[dq]:\[rs]\[dq]Critical\[rs]\[dq], \[rs]\[dq]text\[rs]\[dq]: \[rs]\[dq]Danger!\[rs]\[dq]}\[aq]\[dq] json = true .EE .PP نمایش کرنل، به‌روزرسانی بلوک تنها یک‌بار: .IP .EX \f[B][[block]]\f[R] block = \[dq]custom\[dq] command = \[dq]uname \-r\[dq] interval = \[dq]once\[dq] .EE .PP نمایش روشنایی صفحه در یک دستگاه intel و به‌روزرسانی آن تنها هنگامی که \f[CR]pkill \-SIGRTMIN+4 i3status\-rs\f[R] فراخوانی شود: .IP .EX \f[B][[block]]\f[R] block = \[dq]custom\[dq] command = \[aq]\[aq]\[aq] cat /sys/class/backlight/intel_backlight/brightness | awk \[aq]{print $1}\[aq] \[aq]\[aq]\[aq] signal = 4 interval = \[dq]once\[dq] .EE .PP به‌روزرسانی بلوک هنگامی که یک یا چند فایل مشخص‌شده تغییر کنند: .IP .EX \f[B][[block]]\f[R] block = \[dq]custom\[dq] command = \[dq]cat custom_status\[dq] watch_files = [\[dq]custom_status\[dq]] interval = \[dq]once\[dq] .EE .SS "کارهای باقی‌مانده (TODO):" .IP \[bu] 2 استفاده از \f[CR]shellexpand\f[R] .SS custom_dbus بلوکی کنترل‌شده توسط DBus .PP این بلوک یک شیء جدید DBus در سرویس \f[CR]rs.i3status\f[R] ایجاد می‌کند. این شیء رابط \f[CR]rs.i3status.custom\f[R] را پیاده‌سازی می‌کند که به شما امکان می‌دهد آیکون، متن و وضعیت بلوک را تنظیم کنید. .PP خروجی \f[CR]busctl \-\-user introspect rs.i3status / rs.i3status.custom\f[R]: .IP .EX NAME TYPE SIGNATURE RESULT/VALUE FLAGS rs.i3status.custom interface \- \- \- \&.SetIcon method s s \- \&.SetState method s s \- \&.SetText method ss s \- .EE.SS پیکربندی .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. T}@T{ \[dq]{ $icon|}{ $text.pango\-str()|} \[dq] T} .TE .PP .TS tab(@); lw(12.0n) lw(42.3n) lw(5.4n) lw(10.2n). T{ جای‌نگهدار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ مقدار آیکون تنظیم‌شده از طریق \f[CR]SetIcon\f[R] در صورتی که مقدار، یک رشته‌ی غیرخالی باشد. T}@T{ Icon T}@T{ \- T} T{ \f[CR]text\f[R] T}@T{ مقدار نخستین رشته از SetText T}@T{ Text T}@T{ \- T} T{ \f[CR]short_text\f[R] T}@T{ مقدار دومین رشته از SetText T}@T{ Text T}@T{ \- T} .TE .SS مثال پیکربندی: .IP .EX \f[B][[block]]\f[R] block = \[dq]custom_dbus\[dq] path = \[dq]/my_path\[dq] .EE .PP کاربرد: .IP .EX \f[I]### تنظیم متن کامل روی \[aq]hello\[aq] و متن کوتاه روی \[aq]hi\[aq]\f[R] busctl \-\-user call rs.i3status /my_path rs.i3status.custom SetText ss hello hi \f[I]### تنظیم آیکون روی \[aq]music\[aq]\f[R] busctl \-\-user call rs.i3status /my_path rs.i3status.custom SetIcon s music \f[I]### تنظیم وضعیت روی \[aq]good\[aq]\f[R] busctl \-\-user call rs.i3status /my_path rs.i3status.custom SetState s good .EE .PP از آن‌جا که انتشار اشیاء با نام یکسان از فرایندهای مختلف غیرممکن است، داشتن چندین بلوک dbus در نوارهای مختلف کار نخواهد کرد. به عنوان یک راه‌حل، می‌توانید متغیر محیطی \f[CR]I3RS_DBUS_NAME\f[R] را برای تعیین رابطی که یک نوار روی آن کار می‌کند تنظیم کنید تا میان فرایندهای مختلف تمایز ایجاد شود. برای مثال، تنظیم این متغیر روی \[aq]top\[aq]، به شما اجازه می‌دهد از \f[CR]rs.i3status.top\f[R] استفاده کنید..SS در دست انجام (TODO) .IP \[bu] 2 ارسال یک سیگنال هنگام کلیک؟ .SS disk_iostats آمار ورودی/خروجی (I/O) دیسک .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]device\f[R] T}@T{ نام دستگاه بلوکی یا پارتیشن برای پایش (همان‌گونه که در \f[CR]/dev/\f[R] مشخص شده است) T}@T{ در صورت تنظیم نشدن، دستگاه در هر \f[CR]interval\f[R] به‌طور خودکار انتخاب خواهد شد T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای جای‌نگه‌دارهای موجود به زیر مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $speed_read.eng(prefix:K) $speed_write.eng(prefix:K) \[dq]\f[R] T} T{ \f[CR]interval\f[R] T}@T{ بازهٔ به‌روزرسانی بر حسب ثانیه T}@T{ \f[CR]2\f[R] T} T{ \f[CR]missing_format\f[R] T}@T{ مشابه \f[CR]format\f[R] اما برای زمانی که دستگاه موجود نیست T}@T{ \f[CR]\[dq] × \[dq]\f[R] T} .TE .PP .TS tab(@); l l l l. T{ جای‌نگه‌دار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک شمایل ایستا T}@T{ Icon T}@T{ \- T} T{ \f[CR]device\f[R] T}@T{ نام دستگاه T}@T{ Text T}@T{ \- T} T{ \f[CR]speed_read\f[R] T}@T{ سرعت خواندن T}@T{ Number T}@T{ بایت بر ثانیه T} T{ \f[CR]speed_write\f[R] T}@T{ سرعت نوشتن T}@T{ Number T}@T{ بایت بر ثانیه T} .TE.SS "مثال‌ها (Examples)" .IP .EX \f[B][[block]]\f[R] block = \[dq]disk_iostats\[dq] device = \[dq]sda\[dq] format = \[dq] $icon $speed_write.eng(prefix:K) \[dq] .EE .PP استفاده از پارتیشن برچسب‌خورده Games از طریق نام‌های دستگاه پایدار از /dev/disk/by\-*/ .IP .EX \f[B][[block]]\f[R] block = \[dq]disk_iostats\[dq] device = \[dq]disk/by\-partlabel/Games\[dq] format = \[dq] $icon $speed_write.eng(prefix:K) \[dq] .EE .SS "آیکون‌های استفاده‌شده (Icons Used)" .IP \[bu] 2 \f[CR]disk_drive\f[R] .SS disk_space آمار مصرف دیسک .SS "پیکربندی (Configuration)" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]path\f[R] T}@T{ مسیری که اطلاعات از آن جمع‌آوری می‌شود. از بسط مسیر مانند \f[CR]\[ti]\f[R] پشتیبانی می‌کند. T}@T{ \f[CR]\[dq]/\[dq]\f[R] T} T{ \f[CR]interval\f[R] T}@T{ زمان به‌روزرسانی بر حسب ثانیه T}@T{ \f[CR]20\f[R] T} T{ \f[CR]format\f[R] T}@T{ یک رشته برای سفارشی‌سازی خروجی این بلوک. برای جای‌نگهدار‌های دردسترس به زیر مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $available \[dq]\f[R] T} T{ \f[CR]format_alt\f[R] T}@T{ در صورت تنظیم، بلوک با هر کلیک بین \f[CR]format\f[R] و \f[CR]format_alt\f[R] جابه‌جا خواهد شد T}@T{ \f[CR]None\f[R] T} T{ \f[CR]warning\f[R] T}@T{ مقداری که وضعیت هشدار (warning) بلوک را فعال می‌کند T}@T{ \f[CR]20.0\f[R] T} T{ \f[CR]alert\f[R] T}@T{ مقداری که وضعیت بحرانی (critical) بلوک را فعال می‌کند T}@T{ \f[CR]10.0\f[R] T} T{ \f[CR]info_type\f[R] T}@T{ تعیین می‌کند که کدام اطلاعات بر وضعیت بلوک اثر بگذارد. مقادیر ممکن عبارتند از \f[CR]\[dq]available\[dq]\f[R]، \f[CR]\[dq]free\[dq]\f[R] و \f[CR]\[dq]used\[dq]\f[R] T}@T{ \f[CR]\[dq]available\[dq]\f[R] T} T{ \f[CR]alert_unit\f[R] T}@T{ واحد گزینه‌های \f[CR]alert\f[R] و \f[CR]warning\f[R]. در صورت عدم تنظیم، از درصد استفاده می‌شود. مقادیر ممکن عبارتند از \f[CR]\[dq]B\[dq]\f[R]، \f[CR]\[dq]KB\[dq]\f[R]، \f[CR]\[dq]KiB\[dq]\f[R]، \f[CR]\[dq]MB\[dq]\f[R]، \f[CR]\[dq]MiB\[dq]\f[R]، \f[CR]\[dq]GB\[dq]\f[R]، \f[CR]\[dq]Gib\[dq]\f[R]، \f[CR]\[dq]TB\[dq]\f[R] و \f[CR]\[dq]TiB\[dq]\f[R] T}@T{ \f[CR]None\f[R] T} T{ \f[CR]backend\f[R] T}@T{ بک‌اند مورد استفاده هنگام استعلام مصرف دیسک. مقادیر ممکن عبارتند از \f[CR]\[dq]vfs\[dq]\f[R] (مانند \f[CR]du(1)\f[R]) و \f[CR]\[dq]btrfs\[dq]\f[R] T}@T{ \f[CR]\[dq]vfs\[dq]\f[R] T} .TE .PP .TS tab(@); lw(9.5n) lw(49.6n) lw(5.8n) lw(5.1n). T{ جای‌نگهدار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ Icon T}@T{ \- T} T{ \f[CR]path\f[R] T}@T{ مقدار گزینه \f[CR]path\f[R] T}@T{ Text T}@T{ \- T} T{ \f[CR]percentage\f[R] T}@T{ درصد آزاد یا مصرف‌شده. وابسته به \f[CR]info_type\f[R] T}@T{ Number T}@T{ % T} T{ \f[CR]total\f[R] T}@T{ کل فضای دیسک T}@T{ Number T}@T{ Bytes T} T{ \f[CR]used\f[R] T}@T{ فضای مصرف‌شده دیسک T}@T{ Number T}@T{ Bytes T} T{ \f[CR]free\f[R] T}@T{ فضای آزاد دیسک T}@T{ Number T}@T{ Bytes T} T{ \f[CR]available\f[R] T}@T{ فضای دردسترس دیسک (فضای آزاد منهای فضای رزروشده سیستم) T}@T{ Number T}@T{ Bytes T} .TE.PP .TS tab(@); lw(15.1n) lw(40.7n) lw(14.2n). T{ کنش T}@T{ توضیحات T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]toggle_format\f[R] T}@T{ جابه‌جایی میان \f[CR]format\f[R] و \f[CR]format_alt\f[R] T}@T{ چپ T} .TE .SS مثال‌ها .IP .EX \f[B][[block]]\f[R] block = \[dq]disk_space\[dq] info_type = \[dq]available\[dq] alert_unit = \[dq]GB\[dq] alert = 10.0 warning = 15.0 format = \[dq] $icon $available \[dq] format_alt = \[dq] $icon $available / $total \[dq] .EE .PP به‌روزرسانی بلوک با کلیک‌راست: .IP .EX \f[B][[block]]\f[R] block = \[dq]disk_space\[dq] \f[B][[block.click]]\f[R] button = \[dq]right\[dq] update = true .EE .PP نمایش بلوک تنها در صورتی که کمتر از ۱۰ گیگابایت فضا در دسترس باشد: .IP .EX \f[B][[block]]\f[R] block = \[dq]disk_space\[dq] format = \[dq] $free.eng(range:..10e9) |\[dq] .EE .SS آیکون‌های مورد استفاده .IP \[bu] 2 \f[CR]disk_drive\f[R] .SS docker وضعیت دیمن محلی docker .SS پیکربندی .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]interval\f[R] T}@T{ بازه زمانی به‌روزرسانی، به ثانیه. T}@T{ \f[CR]5\f[R] T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای متغیرهای جایگزین موجود به بخش زیر مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $running.eng(w:1) \[dq]\f[R] T} T{ \f[CR]socket_path\f[R] T}@T{ مسیر منتهی به سوکت docker. از بسط مسیر مانند \f[CR]\[ti]\f[R] پشتیبانی می‌کند. T}@T{ \f[CR]\[dq]/var/run/docker.sock\[dq]\f[R] T} .TE .PP .TS tab(@); l l l l. T{ کلید T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ Icon T}@T{ \- T} T{ \f[CR]total\f[R] T}@T{ مجموع کانتینرهای روی میزبان T}@T{ Number T}@T{ \- T} T{ \f[CR]running\f[R] T}@T{ کانتینرهای در حال اجرا روی میزبان T}@T{ Number T}@T{ \- T} T{ \f[CR]stopped\f[R] T}@T{ کانتینرهای متوقف‌شده روی میزبان T}@T{ Number T}@T{ \- T} T{ \f[CR]paused\f[R] T}@T{ کانتینرهای در حالت مکث روی میزبان T}@T{ Number T}@T{ \- T} T{ \f[CR]images\f[R] T}@T{ مجموع ایمیج‌های روی میزبان T}@T{ Number T}@T{ \- T} .TE.SS مثال (Example) .IP .EX \f[B][[block]]\f[R] block = \[dq]docker\[dq] interval = 2 format = \[dq] $icon $running/$total \[dq] .EE .SS آیکون‌های استفاده‌شده (Icons Used) .IP \[bu] 2 \f[CR]docker\f[R] .SS external_ip نشانی IP خارجی و اطلاعات گوناگون درباره آن .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای جایگزین‌های موجود به پایین مراجعه کنید. T}@T{ \f[CR]\[dq] $ip $country_flag \[dq]\f[R] T} T{ \f[CR]interval\f[R] T}@T{ فاصله زمانی بر حسب ثانیه برای به‌روزرسانی‌های خودکار T}@T{ \f[CR]300\f[R] T} T{ \f[CR]with_network_manager\f[R] T}@T{ اگر `true' باشد، به رویدادهای NetworkManager گوش می‌دهد و در صورت تغییر، IP را بی‌درنگ به‌روزرسانی می‌کند T}@T{ \f[CR]true\f[R] T} T{ \f[CR]use_ipv4\f[R] T}@T{ اگر `true' باشد، برای دریافت تمام اطلاعات از IPv4 استفاده می‌کند T}@T{ \f[CR]false\f[R] T} .TE .PP .TS tab(@); lw(14.6n) lw(20.4n) lw(17.5n) lw(17.5n). T{ کلید T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]ip\f[R] T}@T{ نشانی IP خارجی، آن‌گونه که از یک سرور دوردست دیده می‌شود T}@T{ متن T}@T{ \- T} T{ \f[CR]version\f[R] T}@T{ IPv4 یا IPv6 T}@T{ متن T}@T{ \- T} T{ \f[CR]city\f[R] T}@T{ نام شهر، مانند \[lq]San Francisco\[rq] T}@T{ متن T}@T{ \- T} T{ \f[CR]region\f[R] T}@T{ نام منطقه، مانند \[lq]California\[rq] T}@T{ متن T}@T{ \- T} T{ \f[CR]region_code\f[R] T}@T{ کد منطقه، مانند \[lq]CA\[rq] برای California T}@T{ متن T}@T{ \- T} T{ \f[CR]country\f[R] T}@T{ کد کشور (۲ حرفی، ISO 3166\-1 alpha\-2) T}@T{ متن T}@T{ \- T} T{ \f[CR]country_name\f[R] T}@T{ نام کوتاه کشور T}@T{ متن T}@T{ \- T} T{ \f[CR]country_code\f[R] T}@T{ کد کشور (۲ حرفی، ISO 3166\-1 alpha\-2) T}@T{ متن T}@T{ \- T} T{ \f[CR]country_code_iso3\f[R] T}@T{ کد کشور (۳ حرفی، ISO 3166\-1 alpha\-3) T}@T{ متن T}@T{ \- T} T{ \f[CR]country_capital\f[R] T}@T{ پایتخت کشور T}@T{ متن T}@T{ \- T} T{ \f[CR]country_tld\f[R] T}@T{ دامنه سطح‌بالای اختصاصی کشور (TLD) T}@T{ متن T}@T{ \- T} T{ \f[CR]continent_code\f[R] T}@T{ کد قاره T}@T{ متن T}@T{ \- T} T{ \f[CR]in_eu\f[R] T}@T{ کد منطقه، مانند \[lq]CA\[rq] T}@T{ پرچم (Flag) T}@T{ \- T} T{ \f[CR]postal\f[R] T}@T{ کد پستی / ZIP T}@T{ متن T}@T{ \- T} T{ \f[CR]latitude\f[R] T}@T{ عرض جغرافیایی T}@T{ عدد T}@T{ \- (TODO: تبدیل به درجه؟) T} T{ \f[CR]longitude\f[R] T}@T{ طول جغرافیایی T}@T{ عدد T}@T{ \- (TODO: تبدیل به درجه؟) T} T{ \f[CR]timezone\f[R] T}@T{ شهر T}@T{ متن T}@T{ \- T} T{ \f[CR]utc_offset\f[R] T}@T{ انحراف UTC (با احتساب ساعت تابستانی) به‌صورت +HHMM یا \-HHMM (HH ساعت، MM دقیقه است) T}@T{ متن T}@T{ \- T} T{ \f[CR]country_calling_code\f[R] T}@T{ پیش‌شماره تلفن کشور (کد تماس، جداشده با کاما) T}@T{ متن T}@T{ \- T} T{ \f[CR]currency\f[R] T}@T{ کد ارز (ISO 4217) T}@T{ متن T}@T{ \- T} T{ \f[CR]currency_name\f[R] T}@T{ نام ارز T}@T{ متن T}@T{ \- T} T{ \f[CR]languages\f[R] T}@T{ زبان‌های مکالمه (کد ۲ یا ۳ حرفی ISO 639 جداشده با کاما به همراه پسوند اختیاری کشور که با خط تیره جدا می‌شود) T}@T{ متن T}@T{ \- T} T{ \f[CR]country_area\f[R] T}@T{ مساحت کشور (بر حسب کیلومتر مربع) T}@T{ عدد T}@T{ \- T} T{ \f[CR]country_population\f[R] T}@T{ جمعیت کشور T}@T{ عدد T}@T{ \- T} T{ \f[CR]timezone\f[R] T}@T{ منطقه زمانی T}@T{ متن T}@T{ \- T} T{ \f[CR]org\f[R] T}@T{ سازمان T}@T{ متن T}@T{ \- T} T{ \f[CR]asn\f[R] T}@T{ سیستم خودمختار (AS) T}@T{ متن T}@T{ \- T} T{ \f[CR]country_flag\f[R] T}@T{ پرچم کشور T}@T{ متن (گلیف) T}@T{ \- T} .TE.TE .SS مثال .IP .EX \f[B][[block]]\f[R] block = \[dq]external_ip\[dq] format = \[dq] $ip $country_code \[dq] .EE .SS نکات تمامی اطلاعات از \c .UR https://ipapi.co/json .UE \c \ دریافت می‌شود؛ مستندات آن‌ها را اینجا بررسی کنید: \c .UR https://ipapi.co/api/#complete-location5 .UE \c .PP آدرس IP در این مواقع استعلام می‌شود: ۱) هنگام شروع i3status\-rs، ۲) زمانی که سیگنالی در D\-Bus مبنی بر تغییر پیکربندی شبکه دریافت شود، ۳) هر ۵ دقیقه یک‌بار. این تازه‌سازی دوره‌ای برای دریافت به‌روزرسانی‌های IP وجود دارد که اعلانی ایجاد نمی‌کنند، برای مثال به دلیل تازه‌سازی IP در روتر. .PP پرچم‌ها: آن‌ها آیکون نیستند بلکه گلیف‌های یونیکد هستند. شما به فونتی نیاز خواهید داشت که شامل آن‌ها باشد. آزمایش‌شده با: \c .UR https://www.babelstone.co.uk/Fonts/Flags.html .UE \c .SS focused_window پنجره دارای فوکوس فعلی .PP این بلوک عنوان و/یا نشان‌های فعال (هنگام استفاده با \f[CR]sway\f[R]/\f[CR]i3\f[R]) پنجره‌ای را که در حال حاضر فوکوس دارد نمایش می‌دهد. مدیر پنجره‌های پشتیبانی‌شده عبارتند از: \f[CR]sway\f[R]، \f[CR]i3\f[R] و بیشتر کامپوزیتورهای مبتنی بر wlroots. برای اطلاعات بیشتر گزینه \f[CR]driver\f[R] را ببینید. .SS پیکربندی .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای متغیرهای جایگزین موجود به زیر مراجعه کنید. T}@T{ \[dq] $title.str(max_w:21) |\[dq] T} T{ \f[CR]driver\f[R] T}@T{ کدام درایور استفاده شود. مقادیر موجود: \f[CR]sway_ipc\f[R] \- برای \f[CR]i3\f[R] و \f[CR]sway\f[R]، \f[CR]wlr_toplevel_management\f[R] \- برای کامپوزیتورهای Wayland که پروتکل \c .UR https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/blob/master/unstable/wlr-foreign-toplevel-management-unstable-v1.xml wlr\-foreign\-toplevel\-management\-unstable\-v1 .UE \c \ را پیاده‌سازی کرده‌اند، \f[CR]auto\f[R] \- تلاش برای حدس زدن خودکار درایور مناسب. T}@T{ \f[CR]\[dq]auto\[dq]\f[R] T} .TE .PP .TS tab(@); lw(11.4n) lw(50.7n) lw(4.3n) lw(3.6n). T{ متغیر جایگزین T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]title\f[R] T}@T{ عنوان پنجره (ممکن است وجود نداشته باشد) T}@T{ متن T}@T{ \- T} T{ \f[CR]marks\f[R] T}@T{ نشان‌های پنجره (تنها با sway/i3 موجود است) T}@T{ متن T}@T{ \- T} T{ \f[CR]visible_marks\f[R] T}@T{ نشان‌های پنجره که با \f[CR]_\f[R] آغاز نمی‌شوند (تنها با sway/i3 موجود است) T}@T{ متن T}@T{ \- T} .TE.SS مثال (Example) .IP .EX \f[B][[block]]\f[R] block = \[dq]focused_window\[dq] \f[B][block.format]\f[R] full = \[dq] $title.str(max_w:15) |\[dq] short = \[dq] $title.str(max_w:10) |\[dq] .EE .PP این مثال به‌جای پنهان کردن بلوک در زمانی که عنوان پنجره خالی است، \[lq]Missing\[rq] را نمایش می‌دهد: .IP .EX \f[B][[block]]\f[R] block = \[dq]focused_window\[dq] format = \[dq] $title.str(0,21) | Missing \[dq] .EE .SS github تعداد اعلان‌های GitHub .PP این بلوک تعداد اعلان‌های خوانده‌نشده یک حساب GitHub را نمایش می‌دهد. یک \c .UR https://github.com/settings/tokens/new توکن دسترسی شخصی (personal access token) .UE \c \ گیت‌هاب با دامنه دسترسی (scope) \[lq]notifications\[rq] مورد نیاز است، و باید با استفاده از متغیر محیطی \f[CR]I3RS_GITHUB_TOKEN\f[R] یا گزینه پیکربندی \f[CR]token\f[R] مشخص شود. به‌صورت اختیاری، رنگ بلوک بر اساس بالاترین اعلان در فهرست‌های زیر (از بالاترین به پایین‌ترین اولویت) تعیین می‌شود: \f[CR]critical\f[R]، \f[CR]warning\f[R]، \f[CR]info\f[R]، \f[CR]good\f[R] .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای نگه‌دارنده‌های مکان موجود، بخش زیر را ببینید. T}@T{ \f[CR]\[dq] $icon $total.eng(w:1) \[dq]\f[R] T} T{ \f[CR]interval\f[R] T}@T{ فاصله به‌روزرسانی بر حسب ثانیه T}@T{ \f[CR]30\f[R] T} T{ \f[CR]token\f[R] T}@T{ یک توکن دسترسی شخصی GitHub با دامنه دسترسی \[lq]notifications\[rq] T}@T{ \f[CR]None\f[R] T} T{ \f[CR]hide_if_total_is_zero\f[R] T}@T{ پنهان کردن این بلوک در صورتی که تعداد کل اعلان‌ها صفر باشد T}@T{ \f[CR]false\f[R] T} T{ \f[CR]critical\f[R] T}@T{ فهرستی از انواع اعلان‌ها که رنگ بلوک را به حالت بحرانی (critical) تغییر می‌دهند T}@T{ \f[CR]None\f[R] T} T{ \f[CR]warning\f[R] T}@T{ فهرستی از انواع اعلان‌ها که رنگ بلوک را به حالت هشدار (warning) تغییر می‌دهند T}@T{ \f[CR]None\f[R] T} T{ \f[CR]info\f[R] T}@T{ فهرستی از انواع اعلان‌ها که رنگ بلوک را به حالت اطلاع‌رسانی (info) تغییر می‌دهند T}@T{ \f[CR]None\f[R] T} T{ \f[CR]good\f[R] T}@T{ فهرستی از انواع اعلان‌ها که رنگ بلوک را به حالت مناسب (good) تغییر می‌دهند T}@T{ \f[CR]None\f[R] T} .TE .PP تمام نگه‌دارنده‌های مکان (placeholders) اعدادی بدون واحد هستند. .PP .TS tab(@); lw(53.2n) lw(16.8n). T{ نگه‌دارنده مکان T}@T{ مقدار T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T} T{ \f[CR]total\f[R] T}@T{ تعداد کل اعلان‌ها T} T{ \f[CR]assign\f[R] T}@T{ شما به یک موضوع (issue) اختصاص داده شدید T} T{ \f[CR]author\f[R] T}@T{ شما این گفتگو (thread) را ایجاد کرده‌اید T} T{ \f[CR]comment\f[R] T}@T{ شما در این گفتگو دیدگاهی ارسال کرده‌اید T} T{ \f[CR]ci_activity\f[R] T}@T{ اجرای گردش‌کار (workflow run) در GitHub Actions که شما آغاز کرده بودید، تکمیل شد T} T{ \f[CR]invitation\f[R] T}@T{ شما دعوت‌نامه‌ای برای مشارکت در مخزن را پذیرفتید T} T{ \f[CR]manual\f[R] T}@T{ شما در گفتگو (از طریق یک issue یا pull request) مشترک شدید T} T{ \f[CR]mention\f[R] T}@T{ شما به‌طور خاص در محتوا مورد خطاب قرار گرفتید (\[at]mentioned) T} T{ \f[CR]review_requested\f[R] T}@T{ از شما، یا تیمی که در آن عضو هستید، درخواست بازبینی (review) یک pull request شد T} T{ \f[CR]security_alert\f[R] T}@T{ گیت‌هاب یک آسیب‌پذیری امنیتی در مخزن شما کشف کرد T} T{ \f[CR]state_change\f[R] T}@T{ شما وضعیت گفتگو را تغییر دادید (برای مثال، بستن یک issue یا ادغام یک pull request) T} T{ \f[CR]subscribed\f[R] T}@T{ شما در حال دنبال کردن (watch) مخزن هستید T} T{ \f[CR]team_mention\f[R] T}@T{ شما در تیمی بودید که منشن (mention) شد T} .TE.SS "مثال‌ها (EXAMPLES)" .IP .EX \f[B][[block]]\f[R] block = \[dq]github\[dq] format = \[dq] $icon $total.eng(w:1)|$mention.eng(w:1) \[dq] interval = 60 token = \[dq]...\[dq] .EE .IP .EX \f[B][[block]]\f[R] block = \[dq]github\[dq] token = \[dq]...\[dq] format = \[dq] $icon $total.eng(w:1) \[dq] info = [\[dq]total\[dq]] warning = [\[dq]mention\[dq],\[dq]review_requested\[dq]] hide_if_total_is_zero = true .EE .SS "آیکون‌های استفاده‌شده" .IP \[bu] 2 \f[CR]github\f[R] .SS hueshift مدیریت دمای رنگ نمایشگر .PP این بلوک دمای رنگ فعلی را بر حسب کلوین نمایش می‌دهد. هنگام اسکرول کردن روی بلوک، دمای رنگ تغییر می‌کند. کلیک چپ روی بلوک، دمای رنگ را روی \f[CR]click_temp\f[R] تنظیم می‌کند که مقدار پیش‌فرض آن \f[CR]6500K\f[R] است. کلیک راست، دمای رنگ را به‌طور کامل به مقدار پیش‌فرض آن (\f[CR]6500K\f[R]) بازنشانی می‌کند. .SS پیکربندی .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای جانگهدارنده‌های موجود، بخش زیر را ببینید. T}@T{ \f[CR]\[dq] $temperature \[dq]\f[R] T} T{ \f[CR]step\f[R] T}@T{ گام افزایش یا کاهش دمای رنگ بر حسب کلوین. T}@T{ \f[CR]100\f[R] T} T{ \f[CR]hue_shifter\f[R] T}@T{ برنامه مورد استفاده برای کنترل رنگ صفحه نمایش. T}@T{ تشخیص خودکار T} T{ \f[CR]max_temp\f[R] T}@T{ حداکثر دمای رنگ بر حسب کلوین. T}@T{ \f[CR]10000\f[R] T} T{ \f[CR]min_temp\f[R] T}@T{ حداقل دمای رنگ بر حسب کلوین. T}@T{ \f[CR]1000\f[R] T} T{ \f[CR]click_temp\f[R] T}@T{ دمای رنگ کلیک چپ بر حسب کلوین. T}@T{ \f[CR]6500\f[R] T} .TE .PP .TS tab(@); lw(20.5n) lw(28.0n) lw(7.5n) lw(14.0n). T{ جانگهدارنده T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]temperature\f[R] T}@T{ دمای فعلی T}@T{ عدد T}@T{ \- T} .TE .PP .TS tab(@); l l. T{ عملیات T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]set_click_temp\f[R] T}@T{ چپ T} T{ \f[CR]reset\f[R] T}@T{ راست T} T{ \f[CR]temperature_up\f[R] T}@T{ چرخ ماوس به بالا T} T{ \f[CR]temperature_down\f[R] T}@T{ چرخ ماوس به پایین T} .TE.SS تغییردهنده‌های ته‌رنگ در دسترس (Available Hue Shifters) .PP .TS tab(@); l l. T{ نام T}@T{ پشتیبانی T} _ T{ \f[CR]\[dq]redshift\[dq]\f[R] T}@T{ X11 T} T{ \f[CR]\[dq]sct\[dq]\f[R] T}@T{ X11 T} T{ \f[CR]\[dq]gammastep\[dq]\f[R] T}@T{ X11 و Wayland T} T{ \f[CR]\[dq]wl_gammarelay\[dq]\f[R] T}@T{ Wayland T} T{ \f[CR]\[dq]wl_gammarelay_rs\[dq]\f[R] T}@T{ Wayland T} T{ \f[CR]\[dq]wlsunset\[dq]\f[R] T}@T{ Wayland T} .TE .PP توجه داشته باشید که در حال حاضر، تنها \c .UR https://github.com/jeremija/wl-gammarelay \f[CR]wl_gammarelay\f[R] .UE \c \ و \c .UR https://github.com/MaxVerevkin/wl-gammarelay-rs \f[CR]wl_gammarelay_rs\f[R] .UE \c \ مشترک رویدادها می‌شوند و در صورت تغییر خارجی دما، نوار را به‌روزرسانی می‌کنند. همچنین در حال حاضر این‌ها تنها درایورهایی هستند که تحت Wayland بدون پرش تصویر کار می‌کنند. .SS مثال (Example) .IP .EX \f[B][[block]]\f[R] block = \[dq]hueshift\[dq] hue_shifter = \[dq]redshift\[dq] step = 50 click_temp = 3500 .EE .PP یک محدودیت سخت برای \f[CR]max_temp\f[R] روی \f[CR]10000K\f[R] و به‌همین‌ترتیب برای \f[CR]min_temp\f[R] روی \f[CR]1000K\f[R] تنظیم شده است. برای \f[CR]step\f[R] نیز یک محدودیت سخت معادل \f[CR]500K\f[R] تعیین شده است تا از تغییرات بیش از حد ناگهانی جلوگیری شود. .SS kdeconnect نشانگر \c .UR https://community.kde.org/KDEConnect KDEConnect .UE .PP نمایش اطلاعات از دستگاه متصل فعلی در KDEConnect، که به‌صورت ناهمگام به‌روزرسانی می‌شود. .PP رنگ‌های بلوک بر اساس سطح باتری به‌روزرسانی می‌شوند، مگر اینکه تمام آستانه‌های bat_* روی 0 تنظیم شده باشند، که در این حالت رنگ‌های بلوک در عوض به تعداد اعلان‌ها وابسته خواهند بود..SS "پیکربندی (Configuration)" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]device_id\f[R] T}@T{ شناسهٔ دستگاه مطابق با خروجی \f[CR]kdeconnect \-\-list\-devices\f[R]. T}@T{ نخستین دستگاه یافت‌شده را در صورت وجود برمی‌گزیند. T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای متغیرهای جانشین موجود به بخش زیر مراجعه کنید. T}@T{ \[dq] $icon $name{ $bat_icon $bat_charge|}{ $notif_icon|} \[dq] T} T{ \f[CR]format_disconnected\f[R] T}@T{ مشابه \f[CR]format\f[R] اما هنگامی که اتصال دستگاه قطع است T}@T{ \f[CR]\[dq] $icon \[dq]\f[R] T} T{ \f[CR]format_missing\f[R] T}@T{ مشابه \f[CR]format\f[R] اما هنگامی که دستگاه وجود ندارد T}@T{ \f[CR]\[dq] $icon x \[dq]\f[R] T} T{ \f[CR]bat_info\f[R] T}@T{ حداقل سطح باتری که پایین‌تر از آن وضعیت روی info تنظیم می‌شود. T}@T{ \f[CR]60\f[R] T} T{ \f[CR]bat_good\f[R] T}@T{ حداقل سطح باتری که پایین‌تر از آن وضعیت روی good تنظیم می‌شود. T}@T{ \f[CR]60\f[R] T} T{ \f[CR]bat_warning\f[R] T}@T{ حداقل سطح باتری که پایین‌تر از آن وضعیت روی warning تنظیم می‌شود. T}@T{ \f[CR]30\f[R] T} T{ \f[CR]bat_critical\f[R] T}@T{ حداقل سطح باتری که پایین‌تر از آن وضعیت روی critical تنظیم می‌شود. T}@T{ \f[CR]15\f[R] T} .TE .PP .TS tab(@); lw(12.5n) lw(48.9n) lw(5.3n) lw(3.3n). T{ متغیر جانشین T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ آیکون بر پایهٔ وضعیت اتصال T}@T{ آیکون T}@T{ \- T} T{ \f[CR]bat_icon\f[R] T}@T{ نشانگر سطح باتری (تنها هنگام اتصال و در صورت پشتیبانی) T}@T{ آیکون T}@T{ \- T} T{ \f[CR]bat_charge\f[R] T}@T{ سطح شارژ باتری (تنها هنگام اتصال و در صورت پشتیبانی) T}@T{ عدد T}@T{ % T} T{ \f[CR]network_icon\f[R] T}@T{ نشانگر شبکهٔ همراه (تنها هنگام اتصال و در صورت پشتیبانی) T}@T{ آیکون T}@T{ \- T} T{ \f[CR]network_type\f[R] T}@T{ نوع شبکهٔ همراه (تنها هنگام اتصال و در صورت پشتیبانی) T}@T{ متن T}@T{ \- T} T{ \f[CR]network_strength\f[R] T}@T{ سطح سیگنال شبکهٔ همراه (تنها هنگام اتصال و در صورت پشتیبانی) T}@T{ عدد T}@T{ % T} T{ \f[CR]notif_icon\f[R] T}@T{ تنها هنگام اتصال و در صورت وجود اعلان‌ها T}@T{ آیکون T}@T{ \- T} T{ \f[CR]notif_count\f[R] T}@T{ تعداد اعلان‌های تلفن همراه شما (تنها هنگام اتصال و غیرصفر بودن) T}@T{ عدد T}@T{ \- T} T{ \f[CR]name\f[R] T}@T{ نام دستگاه شما طبق گزارش KDEConnect (در صورت در دسترس بودن) T}@T{ متن T}@T{ \- T} .TE.SS "مثال (Example)" نام نمایش داده نشود، وضعیت \[lq]good\[rq] تنظیم نشود. .IP .EX \f[B][[block]]\f[R] block = \[dq]kdeconnect\[dq] format = \[dq] $icon {$bat_icon $bat_charge |}{$notif_icon |}{$network_icon$network_strength $network_type |}\[dq] bat_good = 101 .EE .SS "آیکون‌های استفاده‌شده (Icons Used)" .IP \[bu] 2 \f[CR]bat\f[R] (به‌صورت پیش‌رونده) .IP \[bu] 2 \f[CR]bat_charging\f[R] (به‌صورت پیش‌رونده) .IP \[bu] 2 \f[CR]net_cellular\f[R] (به‌صورت پیش‌رونده) .IP \[bu] 2 \f[CR]notification\f[R] .IP \[bu] 2 \f[CR]phone\f[R] .IP \[bu] 2 \f[CR]phone_disconnected\f[R] .SS keyboard_layout نشانگر چیدمان صفحه‌کلید .PP شش راه‌انداز در دسترس است: \- \f[CR]xkbevent\f[R] که می‌تواند به‌روزرسانی‌های ناهمگام را از رویدادهای x11 بخواند \- \f[CR]setxkbmap\f[R] (نام مستعار برای \f[CR]xkbevent\f[R]) \f[I]منسوخ‌شده\f[R] \- \f[CR]xkbswitch\f[R] (نام مستعار برای \f[CR]xkbevent\f[R]) \f[I]منسوخ‌شده\f[R] \- \f[CR]localebus\f[R] که می‌تواند به‌روزرسانی‌های ناهمگام را از مسیر D\-Bus سامانه systemd در \f[CR]org.freedesktop.locale1\f[R] بخواند \- \f[CR]kbddbus\f[R] که از \c .UR https://github.com/qnikst/kbdd kbdd .UE \c \ برای پایش تغییرات چیدمان به‌ازای هر پنجره از طریق DBus استفاده می‌کند \- \f[CR]sway\f[R] که می‌تواند به‌روزرسانی‌های ناهمگام را از sway IPC بخواند .PP \f[CR]setxkbmap\f[R] و \f[CR]xkbswitch\f[R] منسوخ شده‌اند و در نسخهٔ v0.35.0 حذف خواهند شد. .PP این‌که کدام‌یک از این روش‌ها مناسب است به پیکربندی سیستم شما بستگی دارد. .SS "پیکربندی (Configuration)" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]driver\f[R] T}@T{ یکی از موارد \f[CR]\[dq]xkbevent\[dq]\f[R]، \f[CR]\[dq]setxkbmap\[dq]\f[R]، \f[CR]\[dq]xkbswitch\[dq]\f[R]، \f[CR]\[dq]localebus\[dq]\f[R]، \f[CR]\[dq]kbddbus\[dq]\f[R] یا \f[CR]\[dq]sway\[dq]\f[R]، بسته به سیستم شما. T}@T{ \f[CR]\[dq]xkbevent\[dq]\f[R] T} T{ \f[CR]interval\f[R] \f[I]منسوخ‌شده\f[R] T}@T{ بازهٔ زمانی به‌روزرسانی به ثانیه. تنها توسط راه‌انداز \f[CR]\[dq]setxkbmap\[dq]\f[R] استفاده می‌شود. T}@T{ \f[CR]60\f[R] T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای متغیرهای جایگزین دردسترس به ادامه مراجعه کنید. T}@T{ \f[CR]\[dq] $layout \[dq]\f[R] T} T{ \f[CR]sway_kb_identifier\f[R] T}@T{ شناسهٔ دستگاهی که می‌خواهید پایش کنید، همان‌طور که در خروجی \f[CR]swaymsg \-t get_inputs\f[R] یافت می‌شود. T}@T{ پیش‌فرض نخستین ورودیِ یافت‌شده است T} T{ \f[CR]mappings\f[R] T}@T{ نگاشت \f[CR]layout (variant)\f[R] به نام کوتاه سفارشی. T}@T{ \f[CR]None\f[R] T} .TE .PP \f[CR]interval\f[R] منسوخ شده است و در v0.35.0 حذف خواهد شد. .PP .TS tab(@); l l l. T{ کلید T}@T{ مقدار T}@T{ نوع T} _ T{ \f[CR]layout\f[R] T}@T{ نام چیدمان صفحه‌کلید T}@T{ String T} T{ \f[CR]variant\f[R] T}@T{ نام گونهٔ صفحه‌کلید یا \f[CR]N/A\f[R] در صورت عدم کاربرد T}@T{ String T} .TE.SS "مثال‌ها (Examples)" گوش دادن به D\-Bus برای تغییرات: .IP .EX \f[B][[block]]\f[R] block = \[dq]keyboard_layout\[dq] driver = \[dq]localebus\[dq] .EE .PP گوش دادن به kbdd برای تغییرات؛ متن در قالب زیر است: \[lq]English (US)\[rq] \- {$layout ($variant)} از block.mappings برای جایگزینی آن با نام‌های کوتاه‌تر، همان‌گونه که در زیر نشان داده شده است استفاده کنید. همچنین از format = \[rq] $layout ($variant) \[rq] برای دیدن متن کامل جهت نگاشت استفاده کنید، یا می‌توانید از dbus\-monitor interface=ru.gentoo.kbdd برای دیدن نگارش دقیق گونه (variant) بهره ببرید .IP .EX \f[B][[block]]\f[R] block = \[dq]keyboard_layout\[dq] driver = \[dq]kbddbus\[dq] \f[B][block.mappings]\f[R] \[dq]English (US)\[dq] = \[dq]us\[dq] \[dq]Bulgarian (new phonetic)\[dq] = \[dq]bg\[dq] .EE .PP گوش دادن به sway برای تغییرات: .IP .EX \f[B][[block]]\f[R] block = \[dq]keyboard_layout\[dq] driver = \[dq]sway\[dq] sway_kb_identifier = \[dq]1133:49706:Gaming_Keyboard_G110\[dq] .EE .PP گوش دادن به sway برای تغییرات و بازنویسی نگاشت‌ها: .IP .EX \f[B][[block]]\f[R] block = \[dq]keyboard_layout\[dq] driver = \[dq]sway\[dq] format = \[dq] $layout \[dq] \f[B][block.mappings]\f[R] \[dq]English (Workman)\[dq] = \[dq]EN\[dq] \[dq]Russian (N/A)\[dq] = \[dq]RU\[dq] .EE .PP گوش دادن به رویدادهای xkb برای تغییرات: .IP .EX \f[B][[block]]\f[R] block = \[dq]keyboard_layout\[dq] driver = \[dq]xkbevent\[dq] .EE .SS load میانگین بار سیستم .SS "پیکربندی (Configuration)" .PP .TS tab(@); lw(7.3n) lw(57.5n) lw(5.3n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای نگه‌دارنده‌های دردسترس به زیر مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $1m.eng(w:4) \[dq]\f[R] T} T{ \f[CR]interval\f[R] T}@T{ فاصله‌ی زمانی به‌روزرسانی برحسب ثانیه T}@T{ \f[CR]3\f[R] T} T{ \f[CR]info\f[R] T}@T{ حداقل بار برای تنظیم وضعیت روی info T}@T{ \f[CR]0.3\f[R] T} T{ \f[CR]warning\f[R] T}@T{ حداقل بار برای تنظیم وضعیت روی warning T}@T{ \f[CR]0.6\f[R] T} T{ \f[CR]critical\f[R] T}@T{ حداقل بار برای تنظیم وضعیت روی critical T}@T{ \f[CR]0.9\f[R] T} .TE .PP .TS tab(@); l l l l. T{ نگه‌دارنده T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ Icon T}@T{ \- T} T{ \f[CR]1m\f[R] T}@T{ میانگین بار ۱ دقیقه T}@T{ Number T}@T{ \- T} T{ \f[CR]5m\f[R] T}@T{ میانگین بار ۵ دقیقه T}@T{ Number T}@T{ \- T} T{ \f[CR]15m\f[R] T}@T{ میانگین بار ۱۵ دقیقه T}@T{ Number T}@T{ \- T} .TE.SS مثال .IP .EX \f[B][[block]]\f[R] block = \[dq]load\[dq] format = \[dq] $icon 1min avg: $1m.eng(w:4) \[dq] interval = 1 .EE .SS آیکون‌های استفاده‌شده .IP \[bu] 2 \f[CR]cogs\f[R] .SS maildir نامه‌های خوانده‌نشده. تنها از قالب maildir پشتیبانی می‌کند. .PP توجه داشته باشید که برای استفاده از این بلوک باید ویژگی \f[CR]maildir\f[R] را فعال کنید: .IP .EX cargo build \-\-release \-\-features maildir .EE .SS پیکربندی .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای شخصی‌سازی خروجی این بلوک. برای مشاهده جای‌بان‌های موجود، به زیر مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $status \[dq]\f[R] T} T{ \f[CR]inboxes\f[R] T}@T{ فهرستی از صندوق‌های maildir برای جستجوی نامه‌ها در آن‌ها. از بسط‌های مسیر/glob پشتیبانی می‌کند (مانند\ \f[CR]\[ti]\f[R] و \f[CR]*\f[R]). T}@T{ \f[B]الزامی\f[R] T} T{ \f[CR]threshold_warning\f[R] T}@T{ تعداد نامه‌های خوانده‌نشده‌ای که در آن وضعیت روی هشدار (warning) تنظیم می‌شود. T}@T{ \f[CR]1\f[R] T} T{ \f[CR]threshold_critical\f[R] T}@T{ تعداد نامه‌های خوانده‌نشده‌ای که در آن وضعیت روی بحرانی (critical) تنظیم می‌شود. T}@T{ \f[CR]10\f[R] T} T{ \f[CR]interval\f[R] T}@T{ فاصله زمانی به‌روزرسانی، به ثانیه. T}@T{ \f[CR]5\f[R] T} T{ \f[CR]display_type\f[R] T}@T{ کدام بخش از maildir شمارش شود: \f[CR]\[dq]new\[dq]\f[R]، \f[CR]\[dq]cur\[dq]\f[R] یا \f[CR]\[dq]all\[dq]\f[R]. T}@T{ \f[CR]\[dq]new\[dq]\f[R] T} .TE .PP .TS tab(@); l l l l. T{ جای‌بان T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ آیکون T}@T{ \- T} T{ \f[CR]status\f[R] T}@T{ تعداد ایمیل‌ها T}@T{ عدد T}@T{ \- T} .TE.SS "مثال‌ها" .IP .EX \f[B][[block]]\f[R] block = \[dq]maildir\[dq] interval = 60 inboxes = [\[dq]\[ti]/mail/local\[dq], \[dq]\[ti]/maildir/account1/*\[dq]] threshold_warning = 1 threshold_critical = 10 display_type = \[dq]new\[dq] .EE .SS "آیکون‌های استفاده‌شده" .IP \[bu] 2 \f[CR]mail\f[R] .SS memory میزان مصرف حافظه و swap .SS "پیکربندی" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک هنگام قرار داشتن در نمای \[lq]Memory\[rq]. برای جای‌نگه‌دارهای موجود به پایین مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $mem_used.eng(prefix:Mi)/$mem_total.eng(prefix:Mi)($mem_used_percents.eng(w:2)) \[dq]\f[R] T} T{ \f[CR]format_alt\f[R] T}@T{ در صورت تنظیم، بلوک با هر کلیک بین \f[CR]format\f[R] و \f[CR]format_alt\f[R] جابه‌جا خواهد شد T}@T{ \f[CR]None\f[R] T} T{ \f[CR]interval\f[R] T}@T{ فاصله زمانی به‌روزرسانی به ثانیه T}@T{ \f[CR]5\f[R] T} T{ \f[CR]warning_mem\f[R] T}@T{ درصد مصرف حافظه که در آن وضعیت روی warning تنظیم می‌شود T}@T{ \f[CR]80.0\f[R] T} T{ \f[CR]warning_swap\f[R] T}@T{ درصد مصرف swap که در آن وضعیت روی warning تنظیم می‌شود T}@T{ \f[CR]80.0\f[R] T} T{ \f[CR]critical_mem\f[R] T}@T{ درصد مصرف حافظه که در آن وضعیت روی critical تنظیم می‌شود T}@T{ \f[CR]95.0\f[R] T} T{ \f[CR]critical_swap\f[R] T}@T{ درصد مصرف swap که در آن وضعیت روی critical تنظیم می‌شود T}@T{ \f[CR]95.0\f[R] T} .TE .PP .TS tab(@); lw(14.9n) lw(46.5n) lw(4.6n) lw(4.0n). T{ جای‌نگه‌دار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ آیکون حافظه T}@T{ آیکون T}@T{ \- T} T{ \f[CR]icon_swap\f[R] T}@T{ آیکون swap T}@T{ آیکون T}@T{ \- T} T{ \f[CR]mem_total\f[R] T}@T{ کل حافظه فیزیکی (RAM) در دسترس T}@T{ عدد T}@T{ بایت T} T{ \f[CR]mem_free\f[R] T}@T{ حافظه آزاد که هنوز توسط کرنل یا userspace استفاده نشده است (به‌طور کلی باید از mem_avail استفاده کنید) T}@T{ عدد T}@T{ بایت T} T{ \f[CR]mem_free_percents\f[R] T}@T{ مانند بالا، اما به‌صورت درصدی از کل حافظه T}@T{ عدد T}@T{ درصد T} T{ \f[CR]mem_avail\f[R] T}@T{ تخمین کرنل از حافظه آزادِ قابل استفاده که شامل حافظه کَش‌شده و بافرها می‌شود T}@T{ عدد T}@T{ بایت T} T{ \f[CR]mem_avail_percents\f[R] T}@T{ مانند بالا، اما به‌صورت درصدی از کل حافظه T}@T{ عدد T}@T{ درصد T} T{ \f[CR]mem_total_used\f[R] T}@T{ mem_total \- mem_free T}@T{ عدد T}@T{ بایت T} T{ \f[CR]mem_total_used_percents\f[R] T}@T{ مانند بالا، اما به‌صورت درصدی از کل حافظه T}@T{ عدد T}@T{ درصد T} T{ \f[CR]mem_used\f[R] T}@T{ حافظه استفاده‌شده، بدون احتساب حافظه کَش‌شده و بافرها؛ مشابه نوار سبز htop T}@T{ عدد T}@T{ بایت T} T{ \f[CR]mem_used_percents\f[R] T}@T{ مانند بالا، اما به‌صورت درصدی از کل حافظه T}@T{ عدد T}@T{ درصد T} T{ \f[CR]buffers\f[R] T}@T{ بافرها، مشابه نوار آبی htop T}@T{ عدد T}@T{ بایت T} T{ \f[CR]buffers_percent\f[R] T}@T{ مانند بالا، اما به‌صورت درصدی از کل حافظه T}@T{ عدد T}@T{ درصد T} T{ \f[CR]cached\f[R] T}@T{ حافظه کَش‌شده (با در نظر گرفتن کَش ZFS ARC)، مشابه نوار زرد htop T}@T{ عدد T}@T{ بایت T} T{ \f[CR]cached_percent\f[R] T}@T{ مانند بالا، اما به‌صورت درصدی از کل حافظه T}@T{ عدد T}@T{ درصد T} T{ \f[CR]swap_total\f[R] T}@T{ کل swap T}@T{ عدد T}@T{ بایت T} T{ \f[CR]swap_free\f[R] T}@T{ مقدار آزاد swap T}@T{ عدد T}@T{ بایت T} T{ \f[CR]swap_free_percents\f[R] T}@T{ مانند بالا، اما به‌صورت درصدی از کل حافظه T}@T{ عدد T}@T{ درصد T} T{ \f[CR]swap_used\f[R] T}@T{ مقدار استفاده‌شده swap T}@T{ عدد T}@T{ بایت T} T{ \f[CR]swap_used_percents\f[R] T}@T{ مانند بالا، اما به‌صورت درصدی از کل حافظه T}@T{ عدد T}@T{ درصد T} T{ \f[CR]zram_compressed\f[R] T}@T{ میزان مصرف حافظه فشرده‌شده zram T}@T{ عدد T}@T{ بایت T} T{ \f[CR]zram_decompressed\f[R] T}@T{ میزان مصرف حافظه غیرفشرده zram T}@T{ عدد T}@T{ بایت T} T{ `zram_comp_ratio' T}@T{ نسبت حافظه غیرفشرده به فشرده‌شده zram T}@T{ عدد T}@T{ \- T} T{ \f[CR]zswap_compressed\f[R] T}@T{ میزان مصرف حافظه فشرده‌شده zswap (>=Linux 5.19) T}@T{ عدد T}@T{ بایت T} T{ \f[CR]zswap_decompressed\f[R] T}@T{ میزان مصرف حافظه غیرفشرده zswap (>=Linux 5.19) T}@T{ عدد T}@T{ بایت T} T{ \f[CR]zswap_decompressed_percents\f[R] T}@T{ مانند بالا، اما به‌صورت درصدی از کل حافظه zswap (>=Linux 5.19) T}@T{ عدد T}@T{ درصد T} T{ `zswap_comp_ratio' T}@T{ نسبت حافظه غیرفشرده به فشرده‌شده zswap (>=Linux 5.19) T}@T{ عدد T}@T{ \- T} .TE.TE .PP .TS tab(@); lw(15.1n) lw(40.7n) lw(14.2n). T{ کنش T}@T{ توضیحات T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]toggle_format\f[R] T}@T{ جابه‌جایی میان \f[CR]format\f[R] و \f[CR]format_alt\f[R] T}@T{ Left T} .TE .SS "مثال‌ها (EXAMPLES)" .IP .EX \f[B][[block]]\f[R] block = \[dq]memory\[dq] format = \[dq] $icon $mem_used_percents.eng(w:1) \[dq] format_alt = \[dq] $icon_swap $swap_free.eng(w:3,u:B,p:Mi)/$swap_total.eng(w:3,u:B,p:Mi)($swap_used_percents.eng(w:2)) \[dq] interval = 30 warning_mem = 70 critical_mem = 90 .EE .PP نمایش swap و پنهان‌سازی آن در صورت صفر بودن: .IP .EX \f[B][[block]]\f[R] block = \[dq]memory\[dq] format = \[dq] $icon $swap_used.eng(range:1..) |\[dq] .EE .SS "آیکون‌های استفاده‌شده" .IP \[bu] 2 \f[CR]memory_mem\f[R] .IP \[bu] 2 \f[CR]memory_swap\f[R] .SS menu یک منوی سفارشی .PP این بلوک به شما اجازه می‌دهد تا به‌سرعت یک دستور شل سفارشی را اجرا کنید. برای فعال کردن این بلوک، روی آن چپ\-کلیک کنید، سپس میان موارد پیکربندی‌شده پیمایش نمایید. برای اجرای هر مورد روی آن چپ\-کلیک کرده و در صورت نیاز با چپ\-کلیک مجدد، عملیات را تأیید کنید. در هر زمان می‌توانید برای غیرفعال کردن این بلوک، راست\-کلیک کنید. .SS "پیکربندی (Configuration)" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]text\f[R] T}@T{ متنی که هنگام غیرفعال بودن بلوک نمایش داده خواهد شد. T}@T{ \f[B]الزامی\f[R] T} T{ \f[CR]items\f[R] T}@T{ فهرستی از \[lq]items\[rq]. مثال‌های زیر را ببینید. T}@T{ \f[B]الزامی\f[R] T} .TE.SS مثال (Example) .IP .EX \f[B][[block]]\f[R] block = \[dq]menu\[dq] text = \[dq]\[rs]uf011\[dq] \f[B][[block.items]]\f[R] display = \[dq] \-> Sleep <\-\[dq] cmd = \[dq]systemctl suspend\[dq] \f[B][[block.items]]\f[R] display = \[dq] \-> Power Off <\-\[dq] cmd = \[dq]poweroff\[dq] confirm_msg = \[dq]Are you sure you want to power off?\[dq] \f[B][[block.items]]\f[R] display = \[dq] \-> Reboot <\-\[dq] cmd = \[dq]reboot\[dq] confirm_msg = \[dq]Are you sure you want to reboot?\[dq] .EE .SS music عنوان و نام هنرمند آهنگ فعلی .PP همچنین دکمه‌هایی برای پخش/توقف، قبلی و بعدی فراهم می‌کند. .PP از تمام پخش‌کننده‌های موسیقی که \c .UR https://specifications.freedesktop.org/mpris-spec/latest/Player_Interface.html MediaPlayer2 Interface .UE \c \& را پیاده‌سازی کرده باشند پشتیبانی می‌کند. این شامل موارد زیر است: .IP \[bu] 2 Spotify .IP \[bu] 2 VLC .IP \[bu] 2 mpd (از طریق \c .UR https://github.com/eonpatapon/mpDris2 mpDris2 .UE \c ) .PP و بسیاری موارد دیگر. .PP به‌طور پیش‌فرض این بلوک تمام پخش‌کننده‌های موجود روی گذرگاه (bus) MPRIS را رهگیری می‌کند. کلیک‌راست روی بلوک، آن را به پخش‌کنندهٔ بعدی تغییر می‌دهد. می‌توانید با استفاده از تنظیم \[lq]player\[rq]، ابزارک را روی یک پخش‌کنندهٔ مشخص ثابت (pin) کنید. .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای متغیرهای جایگزین موجود به بخش زیر مراجعه کنید. T}@T{ \[dq] $icon {$combo.str(max_w:25,rot_interval:0.5) $play |}\[dq] T} T{ \f[CR]format_alt\f[R] T}@T{ در صورت تنظیم، بلوک با هر کلیک بین \f[CR]format\f[R] و \f[CR]format_alt\f[R] جابه‌جا خواهد شد T}@T{ \f[CR]None\f[R] T} T{ \f[CR]player\f[R] T}@T{ نام رابط (های) MPRIS پخش‌کننده(های) موسیقی. این مقدار می‌تواند نام یک پخش‌کننده یا آرایه‌ای از نام‌های پخش‌کننده‌های موسیقی باشد. دستور busctl \-\-user list | grep \[dq]org.mpris.MediaPlayer2.\[dq] | cut \-d\[aq] \[aq] \-f1 را اجرا کنید؛ نام مورد نظر بخش بعد از \[lq]org.mpris.MediaPlayer2.\[rq] است. T}@T{ \f[CR]None\f[R] T} T{ \f[CR]interface_name_exclude\f[R] T}@T{ فهرستی از الگوهای عبارات باقاعده (regex) برای نام‌های رابط MPRIS پخش‌کننده که باید نادیده گرفته شوند. T}@T{ \f[CR][\[dq]playerctld\[dq]]\f[R] T} T{ \f[CR]separator\f[R] T}@T{ رشته‌ای که باید بین نام هنرمند و عنوان آهنگ قرار گیرد. T}@T{ \f[CR]\[dq] \- \[dq]\f[R] T} T{ \f[CR]seek_step_secs\f[R] T}@T{ تعداد ثانیه‌های مثبت برای پرش به جلو/عقب هنگام اسکرول روی نوار. نیازی نیست حتماً یک عدد صحیح باشد. T}@T{ \f[CR]1\f[R] T} T{ \f[CR]seek_forward_step_secs\f[R] T}@T{ تعداد ثانیه‌های مثبت برای پرش به جلو هنگام اسکرول روی نوار. نیازی نیست حتماً یک عدد صحیح باشد. T}@T{ \f[CR]seek_step_secs\f[R] T} T{ \f[CR]seek_backward_step_secs\f[R] T}@T{ تعداد ثانیه‌های مثبت برای پرش به عقب هنگام اسکرول روی نوار. نیازی نیست حتماً یک عدد صحیح باشد. T}@T{ \f[CR]seek_step_secs\f[R] T} T{ \f[CR]volume_step\f[R] T}@T{ درصد افزایش/کاهش میزان صدا برای دستگاه صوتی انتخاب‌شده هنگام اسکرول کردن. به‌طور خودکار حداکثر روی ۵۰ محدود می‌شود. T}@T{ \f[CR]5\f[R] T} .TE .PP نکته: تمام متغیرهای جایگزین به‌جز \f[CR]icon\f[R] می‌توانند وجود نداشته باشند. برای یادگیری نحوه مدیریت این وضعیت، مثال‌های زیر را ببینید. .PP .TS tab(@); lw(27.2n) lw(31.1n) lw(11.7n). T{ متغیر جایگزین T}@T{ مقدار T}@T{ نوع T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ آیکون T} T{ \f[CR]artist\f[R] T}@T{ هنرمند فعلی T}@T{ متن T} T{ \f[CR]title\f[R] T}@T{ عنوان فعلی T}@T{ متن T} T{ \f[CR]url\f[R] T}@T{ نشانی اینترنتی (URL) آهنگ فعلی T}@T{ متن T} T{ \f[CR]combo\f[R] T}@T{ بسته به این‌که چه اطلاعاتی موجود باشد، به \[lq]\f[CR]$artist[sep]$title\[dq]\f[R]، \f[CR]\[dq]$artist\[dq]\f[R]، \f[CR]\[dq]$title\[dq]\f[R] یا \f[CR]\[dq]$url\[dq]\f[R] تبدیل می‌شود. \f[CR][sep]\f[R] توسط گزینهٔ \f[CR]separator\f[R] تعیین می‌شود. T}@T{ متن T} T{ \f[CR]player\f[R] T}@T{ نام پخش‌کنندهٔ فعلی (برگرفته از بخش پایانی نام گذرگاه MPRIS آن) T}@T{ متن T} T{ \f[CR]avail\f[R] T}@T{ تعداد کل پخش‌کننده‌های در دسترس برای جابه‌جایی میان آن‌ها T}@T{ عدد T} T{ \f[CR]cur\f[R] T}@T{ شماره شاخص پخش‌کنندهٔ فعلی از میان پخش‌کننده‌های در دسترس T}@T{ عدد T} T{ \f[CR]play\f[R] T}@T{ دکمه پخش/توقف T}@T{ آیکون قابل کلیک T} T{ \f[CR]next\f[R] T}@T{ دکمه بعدی T}@T{ آیکون قابل کلیک T} T{ \f[CR]prev\f[R] T}@T{ دکمه قبلی T}@T{ آیکون قابل کلیک T} T{ \f[CR]volume_icon\f[R] T}@T{ آیکون بر اساس میزان صدا. در صورت عدم پشتیبانی وجود ندارد. T}@T{ آیکون T} T{ \f[CR]volume\f[R] T}@T{ میزان صدای فعلی. در صورت بی‌صدا بودن یا عدم پشتیبانی وجود ندارد. T}@T{ عدد T} .TE.PP .TS tab(@); l l. T{ ابزارک T}@T{ جای‌نگهدار T} _ T{ \f[CR]play_pause_btn\f[R] T}@T{ \f[CR]$play\f[R] T} T{ \f[CR]next_btn\f[R] T}@T{ \f[CR]$next\f[R] T} T{ \f[CR]prev_btn\f[R] T}@T{ \f[CR]$prev\f[R] T} .TE .PP .TS tab(@); l l. T{ عملیات T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]play_pause\f[R] T}@T{ کلیک چپ روی \f[CR]play_pause_btn\f[R] T} T{ \f[CR]next\f[R] T}@T{ کلیک چپ روی \f[CR]next_btn\f[R] T} T{ \f[CR]prev\f[R] T}@T{ کلیک چپ روی \f[CR]prev_btn\f[R] T} T{ \f[CR]next_player\f[R] T}@T{ کلیک راست T} T{ \f[CR]seek_forward\f[R] T}@T{ اسکرول به بالا T} T{ \f[CR]seek_backward\f[R] T}@T{ اسکرول به پایین T} T{ \f[CR]volume_up\f[R] T}@T{ \- T} T{ \f[CR]volume_down\f[R] T}@T{ \- T} T{ \f[CR]toggle_format\f[R] T}@T{ کلیک چپ T} .TE.SS "مثال‌ها (EXAMPLES)" نمایش آهنگ در حال پخش تنها در Spotify، همراه با دکمه‌های play و next و محدود کردن عرض به ۲۰ نویسه: .IP .EX \f[B][[block]]\f[R] block = \[dq]music\[dq] format = \[dq] $icon {$combo.str(max_w:20) $play $next |}\[dq] player = \[dq]spotify\[dq] .EE .PP همان مورد برای هر پخش‌کننده‌ی سازگار، انتخاب نخستین موردِ فعال روی گذرگاه، اما نادیده گرفتن \[lq]mpd\[rq] یا هر چیزی که شامل \[lq]kdeconnect\[rq] در نام خود باشد: .IP .EX \f[B][[block]]\f[R] block = \[dq]music\[dq] format = \[dq] $icon {$combo.str(max_w:20) $play $next |}\[dq] interface_name_exclude = [\[dq].*kdeconnect.*\[dq], \[dq]mpd\[dq]] .EE .PP همانند بالا، اما با نمایش متن به‌صورت چرخشی: .IP .EX \f[B][[block]]\f[R] block = \[dq]music\[dq] format = \[dq] $icon {$combo.str(max_w:20,rot_interval:0.5) $play $next |}\[dq] interface_name_exclude = [\[dq].*kdeconnect.*\[dq], \[dq]mpd\[dq]] .EE .PP کلیک در هر نقطه برای پخش/مکث، کلیک وسط برای تغییر قالب نمایش: .IP .EX \f[B][[block]]\f[R] block = \[dq]music\[dq] format = \[dq] format 1 \[dq] format_alt = \[dq] format 2 \[dq] \f[B][[block.click]]\f[R] button = \[dq]left\[dq] action = \[dq]play_pause\[dq] \f[B][[block.click]]\f[R] button = \[dq]middle\[dq] widget = \[dq].\[dq] action = \[dq]toggle_format\[dq] .EE .PP پیمایش (اسکرول) برای تغییر حجم صدای پخش‌کننده، استفاده از دکمه‌های forward و back برای پرش زمانی (seek): .IP .EX \f[B][[block]]\f[R] block = \[dq]music\[dq] format = \[dq] $icon $volume_icon $combo $play $next| \[dq] seek_step_secs = 10 \f[B][[block.click]]\f[R] button = \[dq]up\[dq] action = \[dq]volume_up\[dq] \f[B][[block.click]]\f[R] button = \[dq]down\[dq] action = \[dq]volume_down\[dq] \f[B][[block.click]]\f[R] button = \[dq]forward\[dq] action = \[dq]seek_forward\[dq] \f[B][[block.click]]\f[R] button = \[dq]back\[dq] action = \[dq]seek_backward\[dq] .EE .SS "آیکون‌های مورداستفاده (Icons Used)" .IP \[bu] 2 \f[CR]music\f[R] .IP \[bu] 2 \f[CR]music_next\f[R] .IP \[bu] 2 \f[CR]music_play\f[R] .IP \[bu] 2 \f[CR]music_prev\f[R] .IP \[bu] 2 \f[CR]volume_muted\f[R] .IP \[bu] 2 \f[CR]volume\f[R] (به‌صورت پیش‌رونده).SS net اطلاعات شبکه .PP این بلوک از \f[CR]sysfs\f[R] و \f[CR]netlink\f[R] استفاده می‌کند و بنابراین به هیچ وابستگی خارجی نیاز ندارد. .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]device\f[R] T}@T{ رابط شبکه برای پایش (همان‌گونه که در \f[CR]/sys/class/net/\f[R] مشخص شده است). از regex پشتیبانی می‌کند. T}@T{ در صورت تنظیم نشدن، دستگاه در هر \f[CR]interval\f[R] به‌طور خودکار انتخاب می‌شود T} T{ \f[CR]interval\f[R] T}@T{ بازه به‌روزرسانی بر حسب ثانیه T}@T{ \f[CR]2\f[R] T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای جای‌نگهدار‌های موجود به بخش زیر مراجعه کنید. T}@T{ \f[CR]\[dq] $icon \[ha]icon_net_down $speed_down.eng(prefix:K) \[ha]icon_net_up $speed_up.eng(prefix:K) \[dq]\f[R] T} T{ \f[CR]format_alt\f[R] T}@T{ در صورت تنظیم، بلوک با هر کلیک بین \f[CR]format\f[R] و \f[CR]format_alt\f[R] جابه‌جا خواهد شد T}@T{ \f[CR]None\f[R] T} T{ \f[CR]inactive_format\f[R] T}@T{ مشابه \f[CR]format\f[R]، اما برای زمانی که رابط غیرفعال است T}@T{ \f[CR]\[dq] $icon Down \[dq]\f[R] T} T{ \f[CR]missing_format\f[R] T}@T{ مشابه \f[CR]format\f[R]، اما برای زمانی که دستگاه یافت نمی‌شود T}@T{ \f[CR]\[dq] × \[dq]\f[R] T} .TE .PP .TS tab(@); lw(15.1n) lw(40.7n) lw(14.2n). T{ کنش T}@T{ توضیحات T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]toggle_format\f[R] T}@T{ بین \f[CR]format\f[R] و \f[CR]format_alt\f[R] جابه‌جا می‌شود T}@T{ چپ (Left) T} .TE .PP .TS tab(@); lw(18.0n) lw(29.0n) lw(8.0n) lw(15.0n). T{ جای‌نگهدار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ آیکون بر اساس نوع دستگاه T}@T{ آیکون T}@T{ \- T} T{ \f[CR]speed_down\f[R] T}@T{ سرعت دانلود T}@T{ عدد T}@T{ بایت بر ثانیه T} T{ \f[CR]speed_up\f[R] T}@T{ سرعت آپلود T}@T{ عدد T}@T{ بایت بر ثانیه T} T{ \f[CR]graph_down\f[R] T}@T{ نمودار سرعت دانلود T}@T{ متن T}@T{ \- T} T{ \f[CR]graph_up\f[R] T}@T{ نمودار سرعت آپلود T}@T{ متن T}@T{ \- T} T{ \f[CR]device\f[R] T}@T{ نام دستگاه T}@T{ متن T}@T{ \- T} T{ \f[CR]ssid\f[R] T}@T{ شناسه SSID شبکه (تنها WiFi) T}@T{ متن T}@T{ \- T} T{ \f[CR]frequency\f[R] T}@T{ فرکانس WiFi T}@T{ عدد T}@T{ هرتز (Hz) T} T{ \f[CR]signal_strength\f[R] T}@T{ سیگنال WiFi T}@T{ عدد T}@T{ % T} T{ \f[CR]bitrate\f[R] T}@T{ نرخ بیت اتصال WiFi T}@T{ عدد T}@T{ بیت بر ثانیه T} T{ \f[CR]ip\f[R] T}@T{ آدرس IPv4 رابط T}@T{ متن T}@T{ \- T} T{ \f[CR]ipv6\f[R] T}@T{ آدرس IPv6 رابط T}@T{ متن T}@T{ \- T} T{ \f[CR]nameserver\f[R] T}@T{ کارساز نام (Nameserver) T}@T{ متن T}@T{ \- T} .TE.SS مثال (Example) نمایش اطلاعات WiFi در صورت دردسترس بودن .IP .EX \f[B][[block]]\f[R] block = \[dq]net\[dq] format = \[dq] $icon {$signal_strength $ssid $frequency|Wired connection} via $device \[dq] .EE .PP نمایش دقیق دستگاه .IP .EX \f[B][[block]]\f[R] block = \[dq]net\[dq] device = \[dq]\[ha]wlo0$\[dq] .EE .SS آیکون‌های استفاده‌شده .IP \[bu] 2 \f[CR]net_loopback\f[R] .IP \[bu] 2 \f[CR]net_vpn\f[R] .IP \[bu] 2 \f[CR]net_wired\f[R] .IP \[bu] 2 \f[CR]net_wireless\f[R] (به‌صورت مرحله‌ای) .IP \[bu] 2 \f[CR]net_up\f[R] .IP \[bu] 2 \f[CR]net_down\f[R] .SS notify نمایش و تغییر وضعیت دیمن اعلان‌ها .PP کلیک چپ روی این بلوک، اعلان‌ها را فعال/غیرفعال می‌کند. .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]driver\f[R] T}@T{ مشخص می‌کند کدام دیمن اعلان در حال اجرا است. راه‌اندازهای موجود عبارتند از: \f[CR]\[dq]dunst\[dq]\f[R] و \f[CR]\[dq]swaync\[dq]\f[R] T}@T{ \f[CR]\[dq]dunst\[dq]\f[R] T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای مشاهده جای‌نگه‌دارهای موجود به جدول زیر مراجعه کنید. T}@T{ \f[CR]\[dq] $icon \[dq]\f[R] T} .TE .PP .TS tab(@); lw(26.7n) lw(35.0n) lw(5.1n) lw(3.2n). T{ جای‌نگه‌دار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ آیکون بر اساس وضعیت اعلان T}@T{ Icon T}@T{ \- T} T{ \f[CR]notification_count\f[R][1] T}@T{ تعداد اعلان‌ها (اگر 0 باشد حذف می‌شود) T}@T{ Number T}@T{ \- T} T{ \f[CR]history_count\f[R][2] T}@T{ تعداد اعلان‌ها در تاریخچه (اگر 0 باشد حذف می‌شود) T}@T{ Number T}@T{ \- T} T{ \f[CR]paused\f[R] T}@T{ تنها در صورتی وجود دارد که اعلان‌ها غیرفعال باشند T}@T{ Flag T}@T{ \- T} .TE .PP .TS tab(@); l l. T{ عملیات T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]toggle_paused\f[R] T}@T{ Left T} T{ \f[CR]show\f[R] T}@T{ \- T} T{ \f[CR]show_all\f[R] T}@T{ \- T} .TE .PP عملیات‌های \f[CR]show\f[R] و \f[CR]show_all\f[R] برای SwayNC یکسان هستند..SS مثال‌ها نحوه استفاده از پرچم \f[CR]paused\f[R] .IP .EX \f[B][[block]]\f[R] block = \[dq]notify\[dq] format = \[dq] $icon {$paused{Off}|On} \[dq] .EE .PP نحوه استفاده از \f[CR]notification_count\f[R] .IP .EX \f[B][[block]]\f[R] block = \[dq]notify\[dq] format = \[dq] $icon {($notification_count.eng(w:1)) |}\[dq] .EE .PP نحوه نگاشت مجدد کنش‌ها .IP .EX \f[B][[block]]\f[R] block = \[dq]notify\[dq] driver = \[dq]swaync\[dq] \f[B][[block.click]]\f[R] button = \[dq]left\[dq] action = \[dq]show\[dq] \f[B][[block.click]]\f[R] button = \[dq]right\[dq] action = \[dq]toggle_paused\[dq] .EE .SS آیکون‌های استفاده‌شده .IP \[bu] 2 \f[CR]bell\f[R] .IP \[bu] 2 \f[CR]bell\-slash\f[R] .SS notmuch شمارش پیام‌های notmuch .PP این بلوک از یک پایگاه‌داده notmuch پرس‌وجو کرده و تعداد پیام‌ها را نمایش می‌دهد. .PP ساده‌ترین پیکربندی، تعداد کل پیام‌های موجود در پایگاه‌داده notmuch ذخیره‌شده در $HOME/.mail را بازمی‌گرداند. .PP توجه داشته باشید که برای استفاده از این بلوک باید ویژگی \f[CR]notmuch\f[R] را فعال کنید: .IP .EX cargo build \-\-release \-\-features notmuch .EE .SS پیکربندی .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای جانگه‌دارهای موجود به بخش زیر مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $count \[dq]\f[R] T} T{ \f[CR]maildir\f[R] T}@T{ مسیر دایرکتوری حاوی پایگاه‌داده notmuch. از بسط مسیر مانند \f[CR]\[ti]\f[R] پشتیبانی می‌کند. T}@T{ \f[CR]\[ti]/.mail\f[R] T} T{ \f[CR]query\f[R] T}@T{ پرس‌وجو برای اجرا روی پایگاه‌داده. T}@T{ \f[CR]\[dq]\[dq]\f[R] T} T{ \f[CR]threshold_critical\f[R] T}@T{ تعداد نامه‌هایی که وضعیت \f[CR]critical\f[R] را فعال می‌کند. T}@T{ \f[CR]99999\f[R] T} T{ \f[CR]threshold_warning\f[R] T}@T{ تعداد نامه‌هایی که وضعیت \f[CR]warning\f[R] را فعال می‌کند. T}@T{ \f[CR]99999\f[R] T} T{ \f[CR]threshold_good\f[R] T}@T{ تعداد نامه‌هایی که وضعیت \f[CR]good\f[R] را فعال می‌کند. T}@T{ \f[CR]99999\f[R] T} T{ \f[CR]threshold_info\f[R] T}@T{ تعداد نامه‌هایی که وضعیت \f[CR]info\f[R] را فعال می‌کند. T}@T{ \f[CR]99999\f[R] T} T{ \f[CR]interval\f[R] T}@T{ فاصله زمانی به‌روزرسانی بر حسب ثانیه. T}@T{ \f[CR]10\f[R] T} .TE .PP .TS tab(@); lw(12.2n) lw(44.6n) lw(8.1n) lw(5.1n). T{ جانگه‌دار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ آیکون T}@T{ \- T} T{ \f[CR]count\f[R] T}@T{ تعداد پیام‌ها برای پرس‌وجو T}@T{ عدد T}@T{ \- T} .TE.SS مثال (Example) .IP .EX \f[B][[block]]\f[R] block = \[dq]notmuch\[dq] query = \[dq]tag:alert and not tag:trash\[dq] threshold_warning = 1 threshold_critical = 10 \f[B][[block.click]]\f[R] button = \[dq]left\[dq] update = true .EE .SS آیکون‌های استفاده‌شده (Icons Used) .IP \[bu] 2 \f[CR]mail\f[R] .SS nvidia_gpu نمایش آمار و وضعیت پردازندهٔ گرافیکی NVidia شما .PP به‌طور پیش‌فرض \f[CR]show_temperature\f[R] حافظهٔ مصرف‌شده را نمایش می‌دهد. کلیک چپ ماوس روی بخش \[lq]temperature\[rq] از بلوک، نمایش آن را بین حافظهٔ مصرفی یا کل حافظهٔ در دسترس تغییر می‌دهد. .PP کلیک چپ ماوس روی بخش \[lq]fan speed\[rq] بلوک باعث ورود آن به حالت تنظیم سرعت فن می‌شود. در این حالت می‌توانید با چرخاندن چرخ ماوس (اسکرول) روی بلوک سرعت فن را تغییر دهید، و با کلیک چپ از این حالت خارج شوید. .PP برای نمایش اطلاعات به \f[CR]nvidia\-smi\f[R] و برای تنظیم سرعت فن به \f[CR]nvidia_settings\f[R] نیاز است. .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]gpu_id\f[R] T}@T{ شناسه GPU در سیستم. T}@T{ \f[CR]0\f[R] T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای متغیرهای جایگزین موجود به ادامه مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $utilization $memory $temperature \[dq]\f[R] T} T{ \f[CR]interval\f[R] T}@T{ بازه زمانی به‌روزرسانی بر حسب ثانیه. T}@T{ \f[CR]1\f[R] T} T{ \f[CR]idle\f[R] T}@T{ حداکثر دما که پایین‌تر از آن، وضعیت روی idle تنظیم می‌شود T}@T{ \f[CR]50\f[R] T} T{ \f[CR]good\f[R] T}@T{ حداکثر دما که پایین‌تر از آن، وضعیت روی good تنظیم می‌شود T}@T{ \f[CR]70\f[R] T} T{ \f[CR]info\f[R] T}@T{ حداکثر دما که پایین‌تر از آن، وضعیت روی info تنظیم می‌شود T}@T{ \f[CR]75\f[R] T} T{ \f[CR]warning\f[R] T}@T{ حداکثر دما که پایین‌تر از آن، وضعیت روی warning تنظیم می‌شود T}@T{ \f[CR]80\f[R] T} .TE .PP .TS tab(@); l l l. T{ متغیر جایگزین T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ آیکون T}@T{ \- T} T{ \f[CR]name\f[R] T}@T{ متن T}@T{ \- T} T{ \f[CR]utilization\f[R] T}@T{ عدد T}@T{ درصد T} T{ \f[CR]memory\f[R] T}@T{ عدد T}@T{ بایت T} T{ \f[CR]temperature\f[R] T}@T{ عدد T}@T{ درجه T} T{ \f[CR]fan_speed\f[R] T}@T{ عدد T}@T{ درصد T} T{ \f[CR]clocks\f[R] T}@T{ عدد T}@T{ هرتز T} T{ \f[CR]power\f[R] T}@T{ عدد T}@T{ وات T} .TE .PP .TS tab(@); l l. T{ ویجت T}@T{ متغیر جایگزین T} _ T{ \f[CR]mem_btn\f[R] T}@T{ \f[CR]$memory\f[R] T} T{ \f[CR]fan_btn\f[R] T}@T{ \f[CR]$fan_speed\f[R] T} .TE.PP .TS tab(@); l l. T{ عملیات T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]toggle_mem_total\f[R] T}@T{ کلیک چپ روی \f[CR]mem_btn\f[R] T} T{ \f[CR]toggle_fan_controlled\f[R] T}@T{ کلیک چپ روی \f[CR]fan_btn\f[R] T} T{ \f[CR]fan_speed_up\f[R] T}@T{ اسکرول به بالا روی \f[CR]fan_btn\f[R] T} T{ \f[CR]fan_speed_down\f[R] T}@T{ اسکرول به پایین روی \f[CR]fan_btn\f[R] T} .TE .SS مثال (Example) .IP .EX \f[B][[block]]\f[R] block = \[dq]nvidia_gpu\[dq] interval = 1 format = \[dq] $icon GT 1030 $utilization $temperature $clocks \[dq] .EE .SS آیکون‌های استفاده‌شده (Icons Used) .IP \[bu] 2 \f[CR]gpu\f[R] .SS کارهای آینده (TODO) .IP \[bu] 2 ارائه‌ی گزینه‌ی \f[CR]mappings\f[R] مشابه با \f[CR]keyboard_layout\f[R] برای نگاشت نام‌های GPU به برچسب‌ها؟ .SS بسته‌ها (packages) به‌روزرسانی‌های معلق برای مدیر بسته‌های مختلف مانند apt، pacman و غیره. .PP در حال حاضر، این مدیر بسته‌ها پشتیبانی می‌شوند: \- \f[CR]apk\f[R] برای Alpine Linux \- \f[CR]apt\f[R] برای سیستم‌های مبتنی بر Debian/Ubuntu \- \f[CR]aur\f[R] برای سیستم‌های مبتنی بر Arch \- \f[CR]brew\f[R] برای مدیر بسته‌ی Homebrew \- \f[CR]dnf\f[R] برای سیستم‌های مبتنی بر Fedora \- \f[CR]flatpak\f[R] برای بسته‌های Flatpak \- \f[CR]pacman\f[R] برای سیستم‌های مبتنی بر Arch \- \f[CR]snap\f[R] برای بسته‌های Snap \- \f[CR]xbps\f[R] برای Void Linux \- \f[CR]zypper\f[R] برای openSUSE .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]interval\f[R] T}@T{ بازه‌ی زمانی به‌روزرسانی بر حسب ثانیه. T}@T{ \f[CR]600\f[R] T} T{ \f[CR]package_manager\f[R] T}@T{ مدیر بسته جهت بررسی برای به‌روزرسانی‌ها T}@T{ به‌طور خودکار از الگوهای format مشتق می‌شود، اما می‌تواند برای اثرگذاری بر مقدار \f[CR]$total\f[R] استفاده شود T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای جهت سفارشی‌سازی خروجی این بلوک. جانگهدارنده‌های دردسترس را در زیر ببینید. T}@T{ \f[CR]\[dq] $icon $total.eng(w:1) \[dq]\f[R] T} T{ \f[CR]format_singular\f[R] T}@T{ مشابه \f[CR]format\f[R]، اما برای زمانی که دقیقاً یک به‌روزرسانی موجود است. T}@T{ \f[CR]\[dq] $icon $total.eng(w:1) \[dq]\f[R] T} T{ \f[CR]format_up_to_date\f[R] T}@T{ مشابه \f[CR]format\f[R]، اما برای زمانی که هیچ به‌روزرسانی‌ای موجود نیست. T}@T{ \f[CR]\[dq] $icon $total.eng(w:1) \[dq]\f[R] T} T{ \f[CR]warning_updates_regex\f[R] T}@T{ نمایش بلوک در حالت اخطار (warning) در صورتی که به‌روزرسانی‌های منطبق با عبارت باقاعده موجود باشند. T}@T{ \f[CR]None\f[R] T} T{ \f[CR]critical_updates_regex\f[R] T}@T{ نمایش بلوک در حالت بحرانی (critical) در صورتی که به‌روزرسانی‌های منطبق با عبارت باقاعده موجود باشند. T}@T{ \f[CR]None\f[R] T} T{ \f[CR]ignore_updates_regex\f[R] T}@T{ به‌روزرسانی‌های منطبق با عبارت باقاعده را در شمارش لحاظ نمی‌کند. T}@T{ \f[CR]None\f[R] T} T{ \f[CR]ignore_phased_updates\f[R] T}@T{ به‌روزرسانی‌های مرحله‌ای که احتمالاً معوق مانده‌اند را در شمارش لحاظ نمی‌کند. (برای سیستم‌های مبتنی بر Debian/Ubuntu) T}@T{ \f[CR]false\f[R] T} T{ \f[CR]aur_command\f[R] T}@T{ دستور AUR جهت بررسی به‌روزرسانی‌های دردسترس، که خروجی را با همان قالب pacman تولید می‌کند. به‌عنوان مثال: \f[CR]yay \-Qua\f[R] (برای سیستم‌های مبتنی بر Arch) T}@T{ در صورت استفاده از \f[CR]$aur\f[R] الزامی است T} .TE .PP .TS tab(@); lw(8.4n) lw(53.1n) lw(5.2n) lw(3.2n). T{ جانگهدارنده T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ آیکون T}@T{ \- T} T{ \f[CR]apk\f[R] T}@T{ تعداد به‌روزرسانی‌های دردسترس در Alpine Linux T}@T{ عدد T}@T{ \- T} T{ \f[CR]apt\f[R] T}@T{ تعداد به‌روزرسانی‌های دردسترس در سیستم‌های مبتنی بر Debian/Ubuntu T}@T{ عدد T}@T{ \- T} T{ \f[CR]aur\f[R] T}@T{ تعداد به‌روزرسانی‌های دردسترس در سیستم‌های مبتنی بر Arch T}@T{ عدد T}@T{ \- T} T{ \f[CR]brew\f[R] T}@T{ تعداد به‌روزرسانی‌های دردسترس در مدیر بسته‌ی Homebrew T}@T{ عدد T}@T{ \- T} T{ \f[CR]dnf\f[R] T}@T{ تعداد به‌روزرسانی‌های دردسترس در سیستم‌های مبتنی بر Fedora T}@T{ عدد T}@T{ \- T} T{ \f[CR]flatpak\f[R] T}@T{ تعداد به‌روزرسانی‌های دردسترس در بسته‌های Flatpak T}@T{ عدد T}@T{ \- T} T{ \f[CR]pacman\f[R] T}@T{ تعداد به‌روزرسانی‌های دردسترس در سیستم‌های مبتنی بر Arch T}@T{ عدد T}@T{ \- T} T{ \f[CR]snap\f[R] T}@T{ تعداد به‌روزرسانی‌های دردسترس در بسته‌های Snap T}@T{ عدد T}@T{ \- T} T{ \f[CR]xbps\f[R] T}@T{ تعداد به‌روزرسانی‌های دردسترس در Void Linux T}@T{ عدد T}@T{ \- T} T{ \f[CR]zypper\f[R] T}@T{ تعداد به‌روزرسانی‌های دردسترس در openSUSE T}@T{ عدد T}@T{ \- T} T{ \f[CR]total\f[R] T}@T{ تعداد به‌روزرسانی‌های دردسترس در تمام مدیر بسته‌های فهرست‌شده T}@T{ عدد T}@T{ \- T} .TE.TE .SS Apt این بلوک در پشت صحنه از \f[CR]apt\f[R] استفاده می‌کند و برای اجرای آن بدون دسترسی‌های ریشه (root)، برنامه i3status\-rust پایگاه‌داده بسته‌های مخصوص به خود را در \f[CR]/tmp/i3rs\-apt/\f[R] ایجاد می‌کند که ممکن است چندین مگابایت یا بیشتر فضا اشغال کند. اگر پیکربندی سفارشی برای apt دارید، ممکن است این بلوک مطابق انتظار کار نکند \- در این صورت لطفاً یک issue گزارش کنید. .PP نکته: می‌توانید فهرست به‌روزرسانی‌های در دسترس را با استفاده از \f[CR]APT_CONFIG=/tmp/i3rs\-apt/apt.conf apt list \-\-upgradable\f[R] دریافت کنید. .SS Pacman نیازمند نصب بودن fakeroot است (فقط برای pacman لازم است). .PP نکته: می‌توانید فهرست به‌روزرسانی‌های در دسترس را با استفاده از \f[CR]fakeroot pacman \-Qu \-\-dbpath /tmp/checkup\-db\-i3statusrs\-$USER/\f[R] دریافت کنید. اگر متغیر محیطی \f[CR]CHECKUPDATES_DB\f[R] روی سیستم شما تنظیم شده است، آن دایرکتوری را جایگزین کنید. .PP یادداشت: در صورت عدم اتصال به اینترنت، \f[CR]pikaur\f[R] ممکن است کل بلوک را معلق (hang) کند \c .UR https://github.com/actionless/pikaur/issues/595 مرجع .UE \c \&. در این صورت، از یک دستیار AUR دیگر استفاده کنید. .SS قلاب Pacman (Pacman hook) نکته: در Arch Linux می‌توانید یک قلاب \f[CR]pacman\f[R] تنظیم کنید تا پس از ارتقای بسته‌ها، سیگنالی به i3status\-rs برای به‌روزرسانی ارسال کند؛ بنابراین اطلاعات کهنه در بلوک pacman شما باقی نخواهد ماند. .PP در پیکربندی بلوک، مقدار \f[CR]signal = 1\f[R] را قرار دهید (یا اگر \f[CR]1\f[R] توسط بلوک دیگری استفاده می‌شود، عددی دیگر): .IP .EX \f[B][[block]]\f[R] block = \[dq]packages\[dq] signal = 1 .EE .PP فایل \f[CR]/etc/pacman.d/hooks/i3status\-rust.hook\f[R] را با محتویات زیر بسازید: .IP .EX \f[B][Trigger]\f[R] Operation = Upgrade Type = Package Target = * \f[B][Action]\f[R] When = PostTransaction Exec = /usr/bin/pkill \-SIGRTMIN+1 i3status\-rs .EE .SS مثال (Example) پیکربندی اختصاصی Apk: .IP .EX \f[B][[block]]\f[R] block = \[dq]packages\[dq] package_manager = [\[dq]apk\[dq]] interval = 1800 error_interval = 300 max_retries = 5 format = \[dq] $icon $apk.eng(w:1) updates available \[dq] format_singular = \[dq] $icon One update available \[dq] format_up_to_date = \[dq] $icon system up to date \[dq] \f[B][[block.click]]\f[R] \f[I]### نمایش dmenu با به‌روزرسانی‌های در دسترس. هر جایگزین دیگری برای dmenu نیز کار خواهد کرد.\f[R] button = \[dq]left\[dq] cmd = \[dq]apk \-\-no\-cache \-\-upgradable list | dmenu \-l 10\[dq] .EE .PP پیکربندی اختصاصی Apt: .IP .EX \f[B][[block]]\f[R] block = \[dq]packages\[dq] interval = 1800 error_interval = 300 max_retries = 5 package_manager = [\[dq]apt\[dq]] format = \[dq] $icon $apt updates available\[dq] format_singular = \[dq] $icon One update available \[dq] format_up_to_date = \[dq] $icon system up to date \[dq] \f[B][[block.click]]\f[R] \f[I]### نمایش dmenu با به‌روزرسانی‌های ذخیره‌شده موجود. هر جایگزین دیگری برای dmenu نیز کار خواهد کرد.\f[R] button = \[dq]left\[dq] cmd = \[dq]APT_CONFIG=/tmp/i3rs\-apt/apt.conf apt list \-\-upgradable | tail \-n +2 | rofi \-dmenu\[dq] \f[B][[block.click]]\f[R] \f[I]### به‌روزرسانی بلوک با کلیک راست\f[R] button = \[dq]right\[dq] update = true .EE .PP پیکربندی اختصاصی Brew: .IP .EX \f[B][[block]]\f[R] block = \[dq]packages\[dq] package_manager = [\[dq]brew\[dq]] interval = 1800 error_interval = 300 max_retries = 5 format = \[dq] $icon $brew.eng(w:1) updates available \[dq] format_singular = \[dq] $icon One update available \[dq] format_up_to_date = \[dq] $icon system up to date \[dq] \f[B][[block.click]]\f[R] \f[I]### نمایش dmenu با به‌روزرسانی‌های در دسترس. هر جایگزین دیگری برای dmenu نیز کار خواهد کرد.\f[R] button = \[dq]left\[dq] cmd = \[dq]brew outdated | dmenu \-l 10\[dq] .EE .PP پیکربندی اختصاصی Dnf: .IP .EX \f[B][[block]]\f[R] block = \[dq]packages\[dq] package_manager = [\[dq]dnf\[dq]] interval = 1800 error_interval = 300 max_retries = 5 format = \[dq] $icon $dnf.eng(w:1) updates available \[dq] format_singular = \[dq] $icon One update available \[dq] format_up_to_date = \[dq] $icon system up to date \[dq] \f[B][[block.click]]\f[R] \f[I]### نمایش dmenu با به‌روزرسانی‌های ذخیره‌شده موجود. هر جایگزین دیگری برای dmenu نیز کار خواهد کرد.\f[R] button = \[dq]left\[dq] cmd = \[dq]dnf list \-q \-\-upgrades | tail \-n +2 | rofi \-dmenu\[dq] .EE .PP پیکربندی اختصاصی Flatpak: .IP .EX \f[B][[block]]\f[R] block = \[dq]packages\[dq] package_manager = [\[dq]flatpak\[dq]] interval = 1800 error_interval = 300 max_retries = 5 format = \[dq] $icon $flatpak.eng(w:1) updates available \[dq] format_singular = \[dq] $icon One update available \[dq] format_up_to_date = \[dq] $icon system up to date \[dq] \f[B][[block.click]]\f[R] \f[I]### نمایش dmenu با به‌روزرسانی‌های ذخیره‌شده موجود. هر جایگزین دیگری برای dmenu نیز کار خواهد کرد.\f[R] button = \[dq]left\[dq] cmd = \[dq]flatpak remote\-ls \-\-updates \-\-columns=ref | rofi \-dmenu\[dq] .EE .PP پیکربندی اختصاصی Pacman: .IP .EX \f[B][[block]]\f[R] block = \[dq]packages\[dq] package_manager = [\[dq]pacman\[dq]] interval = 600 error_interval = 300 max_retries = 5 format = \[dq] $icon $pacman updates available \[dq] format_singular = \[dq] $icon $pacman update available \[dq] format_up_to_date = \[dq] $icon system up to date \[dq] \f[B][[block.click]]\f[R] \f[I]### باز کردن منوی نمایش‌دهنده به‌روزرسانی‌های موجود. wofi را با دستور منوی دلخواه خود جایگزین کنید.\f[R] button = \[dq]left\[dq] cmd = \[dq]fakeroot pacman \-Qu \-\-dbpath /tmp/checkup\-db\-i3statusrs\-$USER/ | wofi \-\-show dmenu\[dq] \f[B][[block.click]]\f[R] \f[I]### به‌روزرسانی بلوک با کلیک راست\f[R] button = \[dq]right\[dq] update = true .EE .PP پیکربندی Pacman و دستیار AUR: .IP .EX \f[B][[block]]\f[R] block = \[dq]packages\[dq] package_manager = [\[dq]pacman\[dq], \[dq]aur\[dq]] interval = 600 error_interval = 300 max_retries = 5 format = \[dq] $icon $pacman + $aur = $total updates available \[dq] format_singular = \[dq] $icon $total update available \[dq] format_up_to_date = \[dq] $icon system up to date \[dq] \f[I]### دستور aur_command باید به‌روزرسانی‌های موجود را در خروجی استاندارد چاپ کند (مانند echo \-ne \[dq]update\[rs]n\[dq])\f[R] aur_command = \[dq]yay \-Qua\[dq] .EE.PP پیکربندی فقط Snap: .IP .EX \f[B][[block]]\f[R] block = \[dq]packages\[dq] package_manager = [\[dq]snap\[dq]] interval = 1800 error_interval = 300 max_retries = 5 format = \[dq] $icon $snap.eng(w:1) updates available \[dq] format_singular = \[dq] $icon One update available \[dq] format_up_to_date = \[dq] $icon system up to date \[dq] \f[B][[block.click]]\f[R] \f[I]### dmenu را با به‌روزرسانی‌های موجود نمایش می‌دهد. هر جایگزین دیگری برای dmenu نیز باید کار کند.\f[R] button = \[dq]left\[dq] cmd = \[dq]snap refresh \-\-list | dmenu \-l 10\[dq] .EE .PP پیکربندی فقط Xbps: .IP .EX \f[B][[block]]\f[R] block = \[dq]packages\[dq] package_manager = [\[dq]xbps\[dq]] interval = 1800 error_interval = 300 max_retries = 5 format = \[dq] $icon $xbps.eng(w:1) updates available \[dq] format_singular = \[dq] $icon One update available \[dq] format_up_to_date = \[dq] $icon system up to date \[dq] \f[B][[block.click]]\f[R] \f[I]### dmenu را با به‌روزرسانی‌های موجود نمایش می‌دهد. هر جایگزین دیگری برای dmenu نیز باید کار کند.\f[R] button = \[dq]left\[dq] cmd = \[dq]xbps\-install \-Mun | dmenu \-l 10\[dq] .EE .PP پیکربندی فقط Zypper: .IP .EX \f[B][[block]]\f[R] block = \[dq]packages\[dq] package_manager = [\[dq]zypper\[dq]] interval = 1800 error_interval = 300 max_retries = 5 format = \[dq] $icon $zypper.eng(w:1) updates available \[dq] format_singular = \[dq] $icon One update available \[dq] format_up_to_date = \[dq] $icon system up to date \[dq] \f[B][[block.click]]\f[R] \f[I]### dmenu را با به‌روزرسانی‌های موجود نمایش می‌دهد. هر جایگزین دیگری برای dmenu نیز باید کار کند.\f[R] button = \[dq]left\[dq] cmd = \[dq]zypper \-q list\-updates | tail \-n +3 | rofi \-dmenu \-window\-title \[aq]Upgradable packages:\[aq]\[dq] .EE .PP پیکربندی چند مدیر بسته: .PP به‌روزرسانی فهرست به‌روزرسانی‌های در انتظار هر سی دقیقه (1800 ثانیه): .IP .EX \f[B][[block]]\f[R] block = \[dq]packages\[dq] package_manager = [\[dq]apk\[dq], \[dq]apt\[dq], \[dq]aur\[dq], \[dq]brew\[dq], \[dq]dnf\[dq], \[dq]flatpak\[dq], \[dq]pacman\[dq], \[dq]snap\[dq], \[dq]xbps\[dq], \[dq]zypper\[dq]] interval = 1800 error_interval = 300 max_retries = 5 format = \[dq] $icon $apk + $apt + $aur + $brew + $dnf + $flatpak + $pacman + $snap + $xbps + $zypper = $total updates available \[dq] format_singular = \[dq] $icon One update available \[dq] format_up_to_date = \[dq] $icon system up to date \[dq] \f[I]### اگر یک به‌روزرسانی linux موجود باشد، اما بستهٔ ZFS موجود نباشد، عملاً امکان\f[R] \f[I]### ارتقای سیستم وجود نخواهد داشت، بنابراین یک هشدار نمایش می‌دهیم.\f[R] warning_updates_regex = \[dq](linux|linux\-lts|linux\-zen)\[dq] \f[I]### اگر ZFS در دسترس باشد، می‌دانیم که می‌توانیم و باید ارتقا را انجام دهیم، بنابراین\f[R] \f[I]### وضعیت را به صورت بحرانی نمایش می‌دهیم.\f[R] critical_updates_regex = \[dq](zfs|zfs\-lts)\[dq] .EE .SS "آیکون‌های استفاده‌شده" .IP \[bu] 2 \f[CR]update\f[R] .SS pomodoro یک \c .UR https://en.wikipedia.org/wiki/Pomodoro_Technique تایمر پومودورو .UE \c.SS تکنیک (Technique) در تکنیک اصلی شش مرحله وجود دارد: ۱) درباره کاری که باید انجام شود تصمیم‌گیری کنید. ۲) زمان‌سنج پومودورو را تنظیم کنید (به‌طور سنتی روی ۲۵ دقیقه). ۳) روی کار تمرکز و فعالیت کنید. ۴) با زنگ خوردن زمان‌سنج کار را پایان دهید و یک علامت تیک روی تکه‌ای کاغذ بگذارید. ۵) اگر کمتر از چهار علامت تیک دارید، یک استراحت کوتاه (۳\[en]۵ دقیقه) داشته باشید و سپس به مرحله ۲ بازگردید. ۶) پس از چهار پومودورو، یک استراحت طولانی‌تر (۱۵\[en]۳۰ دقیقه) داشته باشید، شمارش تیک‌های خود را صفر کنید، سپس به مرحله ۱ بروید. .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ قالب مورد استفاده در حالت‌های idle، prompt، یا notify T}@T{ \[dq] $icon{ $message|} \[dq] T} T{ \f[CR]pomodoro_format\f[R] T}@T{ قالب مورد استفاده زمانی که پومودورو در حال اجرا یا متوقف‌شده (paused) است T}@T{ \[dq] $icon $status_icon{ $completed_pomodoros.tally()|} $time_remaining.duration(hms:true) \[dq] T} T{ \f[CR]break_format\f[R] T}@T{ قالب مورد استفاده زمانی که پومودورو در زمان استراحت است T}@T{ \[dq] $icon $status_icon Break: $time_remaining.duration(hms:true) \[dq] T} T{ \f[CR]message\f[R] T}@T{ پیام هنگام به پایان رسیدن زمان‌سنج T}@T{ \f[CR]\[dq]Pomodoro over! Take a break!\[dq]\f[R] T} T{ \f[CR]break_message\f[R] T}@T{ پیام هنگام پایان یافتن استراحت T}@T{ \f[CR]\[dq]Break over! Time to work!\[dq]\f[R] T} T{ \f[CR]notify_cmd\f[R] T}@T{ یک دستور پوسته برای اجرا به عنوان اعلان‌کننده. \f[CR]{msg}\f[R] با \f[CR]message\f[R] یا \f[CR]break_message\f[R] جایگزین خواهد شد. T}@T{ \f[CR]None\f[R] T} T{ \f[CR]blocking_cmd\f[R] T}@T{ آیا \f[CR]notify_cmd\f[R] مسدودکننده است؟ اگر باشد، بلوک پومودورو تا پیش از پایان یافتن دستور برای ادامه منتظر خواهد ماند. در غیر این صورت، برای ادامه باید روی بلوک کلیک کنید. T}@T{ \f[CR]false\f[R] T} .TE .PP .TS tab(@); lw(16.6n) lw(35.4n) lw(7.5n) lw(10.5n). T{ جانگهدار T}@T{ مقدار T}@T{ نوع T}@T{ پشتیبانی‌شده در T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ Icon T}@T{ تمام قالب‌ها T} T{ \f[CR]status_icon\f[R] T}@T{ آیکونی که وضعیت پومودورو را منعکس می‌کند T}@T{ Icon T}@T{ \f[CR]pomodoro_format\f[R], \f[CR]break_format\f[R] T} T{ \f[CR]message\f[R] T}@T{ پیام کنونی T}@T{ Text T}@T{ \f[CR]format\f[R] T} T{ \f[CR]time_remaining\f[R] T}@T{ زمان باقی‌مانده (به دقیقه) T}@T{ Duration T}@T{ \f[CR]pomodoro_format\f[R], \f[CR]break_format\f[R] T} T{ \f[CR]completed_pomodoros\f[R] T}@T{ تعداد پومودوروهای تکمیل‌شده T}@T{ Number T}@T{ \f[CR]pomodoro_format\f[R] T} .TE.SS مثال (Example) استفاده از \f[CR]swaynag\f[R] به‌عنوان اعلان‌گر: .IP .EX \f[B][[block]]\f[R] block = \[dq]pomodoro\[dq] notify_cmd = \[dq]swaynag \-m \[aq]{msg}\[aq]\[dq] blocking_cmd = true .EE .PP استفاده از \f[CR]notify\-send\f[R] به‌عنوان اعلان‌گر: .IP .EX \f[B][[block]]\f[R] block = \[dq]pomodoro\[dq] notify_cmd = \[dq]notify\-send \[aq]{msg}\[aq]\[dq] blocking_cmd = false .EE .SS آیکون‌های استفاده‌شده (Icons Used) .IP \[bu] 2 \f[CR]pomodoro\f[R] .IP \[bu] 2 \f[CR]pomodoro_started\f[R] .IP \[bu] 2 \f[CR]pomodoro_stopped\f[R] .IP \[bu] 2 \f[CR]pomodoro_paused\f[R] .IP \[bu] 2 \f[CR]pomodoro_break\f[R] .SS privacy ناظر حریم خصوصی .SS پیکربندی (Configuration) .PP .TS tab(@); lw(28.5n) lw(20.7n) lw(20.7n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]driver\f[R] T}@T{ پیکربندی یک درایور (به زیر مراجعه کنید). T}@T{ \f[B]الزامی\f[R] T} T{ \f[CR]format\f[R] T}@T{ رشته قالب‌بندی. T}@T{ \[dq]{ $icon_audio |}{ $icon_audio_sink |}{ $icon_video |}{ $icon_webcam |}{ $icon_unknown |}\[dq] T} T{ \f[CR]format_alt\f[R] T}@T{ رشته قالب‌بندی. T}@T{ \[dq]{ $icon_audio $info_audio |}{ $icon_audio_sink $info_audio_sink |}{ $icon_video $info_video |}{ $icon_webcam $info_webcam |}{ $icon_unknown $info_unknown |}\[dq] T} .TE .SS گزینه‌های pipewire (نیازمند فعال بودن قابلیت pipewire) .PP .TS tab(@); lw(9.3n) lw(18.7n) lw(23.3n) lw(18.7n). T{ کلید T}@T{ مقادیر T}@T{ الزامی T}@T{ پیش‌فرض T} _ T{ \f[CR]name\f[R] T}@T{ \f[CR]pipewire\f[R] T}@T{ بله T}@T{ ندارد T} T{ \f[CR]exclude_output\f[R] T}@T{ یک گره خروجی برای نادیده گرفتن، مثال: \f[CR][\[dq]HD Pro Webcam C920\[dq]]\f[R] T}@T{ خیر T}@T{ \f[CR][]\f[R] T} T{ \f[CR]exclude_input\f[R] T}@T{ یک گره ورودی برای نادیده گرفتن، مثال: \f[CR][\[dq]openrgb\[dq]]\f[R] T}@T{ خیر T}@T{ \f[CR][]\f[R] T} T{ \f[CR]display\f[R] T}@T{ کدام فیلد گره باید به عنوان نام نمایشی استفاده شود، گزینه‌ها: \f[CR]name\f[R]، \f[CR]description\f[R]، \f[CR]nickname\f[R] T}@T{ خیر T}@T{ \f[CR]name\f[R] T} .TE.SS گزینه‌های vl4 .PP .TS tab(@); lw(9.3n) lw(18.7n) lw(23.3n) lw(18.7n). T{ کلید T}@T{ مقادیر T}@T{ الزامی T}@T{ پیش‌فرض T} _ T{ \f[CR]name\f[R] T}@T{ \f[CR]vl4\f[R] T}@T{ بله T}@T{ ندارد T} T{ \f[CR]exclude_device\f[R] T}@T{ دستگاهی برای نادیده‌گرفتن، به عنوان مثال: \f[CR][\[dq]/dev/video5\[dq]]\f[R] T}@T{ خیر T}@T{ \f[CR][]\f[R] T} T{ \f[CR]exclude_consumer\f[R] T}@T{ فرایندهایی برای نادیده‌گرفتن T}@T{ خیر T}@T{ \f[CR][\[dq]pipewire\[dq], \[dq]wireplumber\[dq]]\f[R] T} .TE .SS کلیدهای قالب در دسترس .PP .TS tab(@); lw(30.6n) lw(30.0n) lw(6.2n) lw(3.1n). T{ جای‌نگهدار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon_{audio,audio_sink,video,webcam,unknown}\f[R] T}@T{ یک آیکون ایستا T}@T{ آیکون T}@T{ \- T} T{ \f[CR]info_{audio,audio_sink,video,webcam,unknown}\f[R] T}@T{ نگاشت منابعی که در حال مصرف هستند T}@T{ متن T}@T{ \- T} .TE .PP می‌توانید از پسوندهای ذکرشده در بالا برای دریافت موارد زیر استفاده کنید: .PP .TS tab(@); l l. T{ پسوند T}@T{ توضیحات T} _ T{ \f[CR]audio\f[R] T}@T{ صدای ضبط‌شده (مثلاً میکروفون) T} T{ \f[CR]audio_sink\f[R] T}@T{ صدای دریافت‌شده از یک سینک (مثلاً openrgb) T} T{ \f[CR]video\f[R] T}@T{ ضبط ویدیو (مثلاً ضبط صفحه‌نمایش) T} T{ \f[CR]webcam\f[R] T}@T{ ضبط وب‌کم T} T{ \f[CR]unknown\f[R] T}@T{ هر چیز دیگر T} .TE.SS "کنش‌های در دسترس (Available Actions)" .PP .TS tab(@); lw(15.1n) lw(40.7n) lw(14.2n). T{ کنش T}@T{ توضیحات T}@T{ دکمهٔ پیش‌فرض T} _ T{ \f[CR]toggle_format\f[R] T}@T{ جابه‌جایی میان \f[CR]format\f[R] و \f[CR]format_alt\f[R] T}@T{ چپ T} .TE .SS "مثال (Example)" .IP .EX \f[B][[block]]\f[R] block = \[dq]privacy\[dq] \f[B][[block.driver]]\f[R] name = \[dq]v4l\[dq] \f[B][[block.driver]]\f[R] name = \[dq]pipewire\[dq] exclude_input = [\[dq]openrgb\[dq]] display = \[dq]nickname\[dq] .EE .SS "نمادهای استفاده‌شده (Icons Used)" .IP \[bu] 2 \f[CR]microphone\f[R] .IP \[bu] 2 \f[CR]volume\f[R] .IP \[bu] 2 \f[CR]xrandr\f[R] .IP \[bu] 2 \f[CR]webcam\f[R] .IP \[bu] 2 \f[CR]unknown\f[R] .SS rofication تعداد اعلان‌های در انتظار در rofication\-daemon .PP در صورت وجود اعلان‌های بحرانی، از رنگ متفاوتی استفاده می‌شود. .SS "پیکربندی (Configuration)" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]interval\f[R] T}@T{ نرخ تازه‌سازی بر حسب ثانیه. T}@T{ \f[CR]1\f[R] T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای شخصی‌سازی خروجی این بلوک. برای جانگهدارها به بخش زیر مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $num.eng(w:1) \[dq]\f[R] T} T{ \f[CR]socket_path\f[R] T}@T{ مسیر سوکت برای دیمن rofication. از بسط مسیر مانند \f[CR]\[ti]\f[R] پشتیبانی می‌کند. T}@T{ \f[CR]\[dq]/tmp/rofi_notification_daemon\[dq]\f[R] T} .TE .PP .TS tab(@); l l l l. T{ جانگهدار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک نماد ایستا T}@T{ نماد T}@T{ \- T} T{ \f[CR]num\f[R] T}@T{ تعداد اعلان‌های در انتظار T}@T{ عدد T}@T{ \- T} .TE.SS مثال .IP .EX \f[B][[block]]\f[R] block = \[dq]rofication\[dq] interval = 1 socket_path = \[dq]/tmp/rofi_notification_daemon\[dq] \f[B][[block.click]]\f[R] button = \[dq]left\[dq] cmd = \[dq]rofication\-gui\[dq] .EE .SS آیکون‌های مورد استفاده .IP \[bu] 2 \f[CR]bell\f[R] .SS scratchpad نشانگر scratchpad .SS پیکربندی .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک T}@T{ \f[CR]$icon $count.eng(range:1..) |\f[R] T} .TE .PP .TS tab(@); lw(12.2n) lw(44.6n) lw(8.1n) lw(5.1n). T{ جای‌نگهدار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ آیکون T}@T{ \- T} T{ \f[CR]count\f[R] T}@T{ تعداد پنجره‌ها در scratchpad T}@T{ عدد T}@T{ \- T} .TE .SS مثال .IP .EX \f[B][[block]]\f[R] block = \[dq]scratchpad\[dq] .EE .SS آیکون‌های مورد استفاده .IP \[bu] 2 \f[CR]scratchpad\f[R] .SS service_status نمایش وضعیت یک سرویس .PP در حال حاضر تنها از \f[CR]systemd\f[R] پشتیبانی می‌شود..SS "پیکربندی (Configuration)" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]driver\f[R] T}@T{ کدام سیستم init سرویس را اجرا می‌کند. راه‌اندازهای در دسترس عبارتند از: \f[CR]\[dq]systemd\[dq]\f[R] T}@T{ \f[CR]\[dq]systemd\[dq]\f[R] T} T{ \f[CR]service\f[R] T}@T{ نام سرویس T}@T{ \f[B]اجباری\f[R] T} T{ \f[CR]user\f[R] T}@T{ در صورت true بودن، وضعیت یک سرویس کاربر به جای یک سرویس سیستم پایش می‌شود. T}@T{ \f[CR]false\f[R] T} T{ \f[CR]active_format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای جانگهدارهای موجود، به بخش زیر مراجعه کنید. T}@T{ \f[CR]\[dq] $service active \[dq]\f[R] T} T{ \f[CR]inactive_format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای جانگهدارهای موجود، به بخش زیر مراجعه کنید. T}@T{ \f[CR]\[dq] $service inactive \[dq]\f[R] T} T{ \f[CR]active_state\f[R] T}@T{ یک [\f[CR]State\f[R]] معتبر T}@T{ [\f[CR]State::Idle\f[R]] T} T{ \f[CR]inactive_state\f[R] T}@T{ یک [\f[CR]State\f[R]] معتبر T}@T{ [\f[CR]State::Critical\f[R]] T} .TE .PP .TS tab(@); l l l l. T{ جانگهدار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]service\f[R] T}@T{ نام سرویس T}@T{ متن T}@T{ \- T} .TE.SS مثال مثال با استفاده از یک آیکون: .IP .EX \f[B][[block]]\f[R] block = \[dq]service_status\[dq] service = \[dq]cups\[dq] active_format = \[dq] \[ha]icon_tea \[dq] inactive_format = \[dq] no \[ha]icon_tea \[dq] .EE .PP مثال برای بازنویسی \f[CR]inactive_state\f[R] پیش‌فرض: .IP .EX \f[B][[block]]\f[R] block = \[dq]service_status\[dq] service = \[dq]shadow\[dq] active_format = \[dq]\[dq] inactive_format = \[dq] Integrity of password and group files failed \[dq] inactive_state = \[dq]Warning\[dq] .EE .SS sound سطح صدا .PP این بلوک میزان بلندی صدا را (مطابق با PulseAudio یا ALSA) نمایش می‌دهد. برای قطع/وصل صدا کلیک‌راست کنید، و برای تنظیم بلندی صدا پیمایش (اسکرول) نمایید. .PP نیازمند نصب PulseAudio یا بستهٔ \f[CR]alsa\-utils\f[R] برای ALSA است. .PP توجه داشته باشید اگر از دستورات PulseAudio (مانند \f[CR]pactl\f[R]) برای تنظیم صدای خود استفاده می‌کنید، باید راه‌انداز \f[CR]\[dq]pulseaudio\[dq]\f[R] (یا \f[CR]\[dq]auto\[dq]\f[R]) را انتخاب کنید تا تغییرات صدایی که فراتر از ۱۰۰٪ می‌روند را مشاهده نمایید. .SS پیکربندی .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]driver\f[R] T}@T{ \f[CR]\[dq]auto\[dq]\f[R]، \f[CR]pipewire\f[R]، \f[CR]\[dq]pulseaudio\[dq]\f[R]، \f[CR]\[dq]alsa\[dq]\f[R]. T}@T{ \f[CR]\[dq]auto\[dq]\f[R] (ابتدا Pipewire، سپس با جایگزین Pulseaudio و جایگزین ALSA) T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. جای‌نگهدارهای در دسترس را در زیر ببینید. T}@T{ \[dq] $icon {$volume.eng(w:2) |}\[dq] T} T{ \f[CR]format_alt\f[R] T}@T{ در صورت تنظیم، بلوک با هر بار کلیک بین \f[CR]format\f[R] و \f[CR]format_alt\f[R] جابه‌جا می‌شود. T}@T{ \f[CR]None\f[R] T} T{ \f[CR]name\f[R] T}@T{ نام دستگاه PulseAudio، یا نام کنترلگر ALSA مطابق با خروجی دستور \f[CR]amixer \-D yourdevice scontrols\f[R]. T}@T{ PulseAudio: \f[CR]\[at]DEFAULT_SINK\[at]\f[R] / ALSA: \f[CR]Master\f[R] T} T{ \f[CR]device\f[R] T}@T{ نام دستگاه ALSA، معمولاً در قالب \[lq]hw:X\[rq] یا \[lq]hw:X,Y\[rq] که در آن \f[CR]X\f[R] شماره کارت و \f[CR]Y\f[R] شماره دستگاه مطابق با خروجی دستور \f[CR]aplay \-l\f[R] است. T}@T{ \f[CR]default\f[R] T} T{ \f[CR]device_kind\f[R] T}@T{ نوع دستگاه PulseAudio: مقدار \f[CR]source\f[R] یا \f[CR]sink\f[R]. T}@T{ \f[CR]\[dq]sink\[dq]\f[R] T} T{ \f[CR]natural_mapping\f[R] T}@T{ هنگام استفاده از راه‌انداز ALSA، مقدار \[lq]صدای نگاشته‌شده (mapped volume)\[rq] را مطابق با خروجی \f[CR]alsamixer\f[R]/\f[CR]amixer \-M\f[R] نمایش می‌دهد، که بلندی صدا را از نظر گوش انسان به صورت طبیعی‌تری بازنمایی می‌کند. T}@T{ \f[CR]false\f[R] T} T{ \f[CR]step_width\f[R] T}@T{ درصد افزایش/کاهش بلندی صدا برای دستگاه صوتی انتخاب‌شده در هنگام پیمایش. به‌طور خودکار روی ۵۰ محدود می‌شود. T}@T{ \f[CR]5\f[R] T} T{ \f[CR]max_vol\f[R] T}@T{ حداکثر درصد بلندی صدا که می‌توان از طریق پیمایش تنظیم کرد. توجه داشته باشید اگر توسط برنامهٔ دیگری تغییر کند، همچنان ممکن است فراتر از این مقدار تنظیم شود. T}@T{ \f[CR]None\f[R] T} T{ \f[CR]show_volume_when_muted\f[R] T}@T{ نمایش بلندی صدا حتی اگر در حال حاضر بی‌صدا (mute) باشد. T}@T{ \f[CR]false\f[R] T} T{ \f[CR]headphones_indicator\f[R] T}@T{ تغییر آیکون هنگام وصل بودن هدفون (فقط در pulseaudio) T}@T{ \f[CR]false\f[R] T} T{ \f[CR]mappings\f[R] T}@T{ نگاشت \f[CR]output_name\f[R] به یک نام دلخواه. T}@T{ \f[CR]None\f[R] T} T{ \f[CR]mappings_use_regex\f[R] T}@T{ امکان تطبیق \f[CR]mappings\f[R] با استفاده از عبارات باقاعده (regex) به جای برابری سادهٔ رشته‌ای. جایگزینی، عبارات باقاعده را در نظر می‌گیرد و می‌تواند شامل گروه‌های تصاحب (capture groups) باشد. T}@T{ \f[CR]true\f[R] T} T{ \f[CR]active_port_mappings\f[R] T}@T{ نگاشت \f[CR]active_port\f[R] به یک نام دلخواه. جایگزینی، عبارات باقاعده را در نظر می‌گیرد و می‌تواند شامل گروه‌های تصاحب باشد. T}@T{ \f[CR]None\f[R] T} .TE .PP .TS tab(@); lw(18.6n) lw(31.0n) lw(7.1n) lw(13.3n). T{ جای‌نگهدار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ آیکون بر اساس بلندی صدا T}@T{ آیکون T}@T{ \- T} T{ \f[CR]volume\f[R] T}@T{ بلندی صدای فعلی. در صورت بی‌صدا بودن وجود نخواهد داشت. T}@T{ عدد T}@T{ % T} T{ \f[CR]output_name\f[R] T}@T{ نام دستگاه PulseAudio یا ALSA T}@T{ متن T}@T{ \- T} T{ \f[CR]output_description\f[R] T}@T{ توضیحات دستگاه PulseAudio؛ در صورتی که هیچ توضیحی در دسترس نباشد، از \f[CR]output_name\f[R] به عنوان جایگزین استفاده خواهد شد و توسط نگاشت‌ها بازنویسی می‌شود (نگاشت‌ها همچنان از \f[CR]output_name\f[R] استفاده خواهند کرد) T}@T{ متن T}@T{ \- T} T{ \f[CR]active_port\f[R] T}@T{ درگاه فعال (مشابه با اطلاعات بخش Ports در خروجی دستور \f[CR]pactl list cards\f[R]). اگر توسط \f[CR]driver\f[R] پشتیبانی نشود یا در \f[CR]active_port_mappings\f[R] به \f[CR]\[dq]\[dq]\f[R] نگاشت شده باشد، غایب خواهد بود. T}@T{ متن T}@T{ \- T} .TE.PP .TS tab(@); l l. T{ عملیات T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]toggle_format\f[R] T}@T{ چپ T} T{ \f[CR]toggle_mute\f[R] T}@T{ راست T} T{ \f[CR]volume_down\f[R] T}@T{ چرخ رو به پایین T} T{ \f[CR]volume_up\f[R] T}@T{ چرخ رو به بالا T} .TE .SS "مثال‌ها (EXAMPLES)" تغییر عرض گام پیش‌فرض پیمایش به ۳ درصد: .IP .EX \f[B][[block]]\f[R] block = \[dq]sound\[dq] step_width = 3 .EE .PP تغییر نام خروجی نمایش‌داده‌شده: .IP .EX \f[B][[block]]\f[R] block = \[dq]sound\[dq] format = \[dq] $icon $output_name{ $volume|} \[dq] \f[B][block.mappings]\f[R] \[dq]alsa_output.usb\-Harman_Multimedia_JBL_Pebbles_1.0.0\-00.analog\-stereo\[dq] = \[dq]Speakers\[dq] \[dq]alsa_output.pci\-0000_00_1b.0.analog\-stereo\[dq] = \[dq]Headset\[dq] .EE .PP از آنجا که مقدار پیش‌فرض برای کلید \f[CR]device_kind\f[R] برابر با \f[CR]sink\f[R] است، برای نمایش بلوک \f[B]\f[BI]microphone\f[B]\f[R] باید از مقدار \f[CR]source\f[R] استفاده کنید: .IP .EX \f[B][[block]]\f[R] block = \[dq]sound\[dq] driver = \[dq]pulseaudio\[dq] device_kind = \[dq]source\[dq] .EE .PP نمایش هشدار در بلوک در صورتی که میکروفون از درگاه نادرست استفاده کند: .IP .EX \f[B][[block]]\f[R] block = \[dq]sound\[dq] driver = \[dq]pulseaudio\[dq] device_kind = \[dq]source\[dq] format = \[dq] $icon { $volume|} {$active_port |}\[dq] \f[B][block.active_port_mappings]\f[R] \[dq]analog\-input\-rear\-mic\[dq] = \[dq]\[dq] \f[I]# نگاشت به یک رشته خالی موجب عدم وجود \[ga]$active_port\[ga] می‌شود\f[R] \[dq]analog\-input\-front\-mic\[dq] = \[dq]ERR!\[dq] .EE .SS "آیکون‌های مورد استفاده (Icons Used)" .IP \[bu] 2 \f[CR]microphone_muted\f[R] (به صورت توالی) .IP \[bu] 2 \f[CR]microphone\f[R] (به صورت توالی) .IP \[bu] 2 \f[CR]volume_muted\f[R] (به صورت توالی) .IP \[bu] 2 \f[CR]volume\f[R] (به صورت توالی) .IP \[bu] 2 \f[CR]headphones\f[R].SS speedtest سرعت‌های پینگ، دانلود و آپلود .PP این بلوک نیازمند \c .UR https://github.com/sivel/speedtest-cli \f[CR]speedtest\-cli\f[R] .UE \c \& است. .SS "پیکربندی (Configuration)" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای جای‌نگه‌دارهای موجود به بخش زیر مراجعه کنید. T}@T{ \f[CR]\[dq] \[ha]icon_ping $ping \[ha]icon_net_down $speed_down \[ha]icon_net_up $speed_up \[dq]\f[R] T} T{ \f[CR]interval\f[R] T}@T{ بازه به‌روزرسانی بر حسب ثانیه T}@T{ \f[CR]1800\f[R] T} .TE .PP .TS tab(@); l l l l. T{ جای‌نگه‌دار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]ping\f[R] T}@T{ تأخیر پینگ T}@T{ عدد T}@T{ ثانیه T} T{ \f[CR]speed_down\f[R] T}@T{ سرعت دانلود T}@T{ عدد T}@T{ بیت بر ثانیه T} T{ \f[CR]speed_up\f[R] T}@T{ سرعت آپلود T}@T{ عدد T}@T{ بیت بر ثانیه T} .TE .SS "مثال (Example)" نمایش تنها پینگ (همراه با یک آیکون) .IP .EX \f[B][[block]]\f[R] block = \[dq]speedtest\[dq] interval = 1800 format = \[dq] \[ha]icon_ping $ping \[dq] .EE .PP مخفی کردن پینگ و نمایش سرعت بر حسب بایت بر ثانیه هر کدام با استفاده از ۴ نویسه (بدون آیکون) .IP .EX \f[B][[block]]\f[R] block = \[dq]speedtest\[dq] interval = 1800 format = \[dq] $speed_down.eng(w:4,u:B) $speed_up(w:4,u:B) \[dq] .EE.SS آیکون‌های مورداستفاده (Icons Used) .IP \[bu] 2 \f[CR]ping\f[R] .IP \[bu] 2 \f[CR]net_down\f[R] .IP \[bu] 2 \f[CR]net_up\f[R] .SS taskwarrior تعداد وظایف از فهرست taskwarrior .PP کلیک راست ماوس روی آیکون، نمای بلوک را به‌نوبت بین فیلترهای کاربر جابه‌جا می‌کند. .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]interval\f[R] T}@T{ بازه زمانی به‌روزرسانی بر حسب ثانیه T}@T{ \f[CR]600\f[R] (۱۰ دقیقه) T} T{ \f[CR]warning_threshold\f[R] T}@T{ آستانه وظایف در انتظار (یا آغازشده) که با رسیدن به آن، بلوک به وضعیت هشدار (warning) درمی‌آید T}@T{ \f[CR]10\f[R] T} T{ \f[CR]critical_threshold\f[R] T}@T{ آستانه وظایف در انتظار (یا آغازشده) که با رسیدن به آن، بلوک به وضعیت بحرانی (critical) درمی‌آید T}@T{ \f[CR]20\f[R] T} T{ \f[CR]filters\f[R] T}@T{ فهرستی از جدول‌ها برای توصیف فیلترها (زیر را ببینید) T}@T{ \f[CR][{name = \[dq]pending\[dq], filter = \[dq]\-COMPLETED \-DELETED\[dq]}]\f[R] T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای متغیرهای جایگزین موجود، زیر را ببینید. T}@T{ \f[CR]\[dq] $icon $count.eng(w:1) \[dq]\f[R] T} T{ \f[CR]format_singular\f[R] T}@T{ مشابه \f[CR]format\f[R] اما برای زمانی که دقیقاً یک وظیفه در انتظار است. T}@T{ \f[CR]\[dq] $icon $count.eng(w:1) \[dq]\f[R] T} T{ \f[CR]format_everything_done\f[R] T}@T{ مشابه \f[CR]format\f[R] اما برای زمانی که همه وظایف تکمیل شده‌اند. T}@T{ \f[CR]\[dq] $icon $count.eng(w:1) \[dq]\f[R] T} T{ \f[CR]data_location\f[R] T}@T{ دایرکتوری‌ای که taskwarrior فایل‌های داده خود را در آن ذخیره می‌کند. از بسط مسیر مانند \f[CR]\[ti]\f[R] پشتیبانی می‌کند. T}@T{ \f[CR]\[dq]\[ti]/.task\[dq]\f[R] T} .TE.SS پیکربندی فیلتر (Filter configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]name\f[R] T}@T{ نام فیلتر T}@T{ T} T{ \f[CR]filter\f[R] T}@T{ معیارهایی را تعیین می‌کند که باید برقرار باشند تا یک وظیفه در این فیلتر شمارش شود T}@T{ T} T{ \f[CR]config_override\f[R] T}@T{ آرایه‌ای شامل بازنویسی‌های پیکربندی؛ مناسب برای تعیین صریح context یا سایر متغیرهای پیکربندی T}@T{ \f[CR][]\f[R] T} .TE .SS جای‌نگه‌دارها (Placeholders) .PP .TS tab(@); lw(13.6n) lw(43.8n) lw(7.8n) lw(4.9n). T{ جای‌نگه‌دار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ آیکون T}@T{ \- T} T{ \f[CR]count\f[R] T}@T{ تعداد وظایف منطبق با فیلتر فعلی T}@T{ عدد T}@T{ \- T} T{ \f[CR]filter_name\f[R] T}@T{ نام فیلتر فعلی T}@T{ متن T}@T{ \- T} .TE .SS کنش‌ها (Actions) .PP .TS tab(@); l l. T{ کنش T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]next_filter\f[R] T}@T{ راست (Right) T} .TE.SS "مثال (Example)" در این مثال، اگر \f[CR]count\f[R] صفر باشد، بلوک پنهان خواهد شد. .IP .EX \f[B][[block]]\f[R] block = \[dq]taskwarrior\[dq] interval = 60 format = \[dq] $icon count.eng(w:1) tasks \[dq] format_singular = \[dq] $icon 1 task \[dq] format_everything_done = \[dq]\[dq] warning_threshold = 10 critical_threshold = 20 \f[B][[block.filters]]\f[R] name = \[dq]today\[dq] filter = \[dq]+PENDING +OVERDUE or +DUETODAY\[dq] \f[B][[block.filters]]\f[R] name = \[dq]some\-project\[dq] filter = \[dq]project:some\-project +PENDING\[dq] config_override = [\[dq]rc.context:none\[dq]] .EE .SS "آیکون‌های استفاده‌شده (Icons Used)" .IP \[bu] 2 \f[CR]tasks\f[R] .SS tea_timer زمان‌سنج .SS "پیکربندی (Configuration)" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای جای‌نگهدارهای موجود، بخش زیر را ببینید. T}@T{ \[dq] $icon {$time.duration(hms:true) |}\[dq] T} T{ \f[CR]increment\f[R] T}@T{ تعداد ثانیه‌هایی که با هر بار کلیک روی بلوک اضافه می‌شود. T}@T{ 30 T} T{ \f[CR]done_cmd\f[R] T}@T{ دستوری برای اجرا در \f[CR]sh\f[R] پس از پایان زمان‌سنج. T}@T{ None T} .TE .PP .TS tab(@); lw(14.4n) lw(40.0n) lw(6.2n) lw(9.4n). T{ جای‌نگهدار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ Icon T}@T{ \- T} T{ \f[CR]time\f[R] T}@T{ زمان باقی‌مانده زمان‌سنج T}@T{ Duration T}@T{ \- T} T{ \f[CR]hours\f[R] \f[I]منسوخ‌شده\f[R] T}@T{ ساعت‌های باقی‌مانده زمان‌سنج T}@T{ Text T}@T{ h T} T{ \f[CR]minutes\f[R] \f[I]منسوخ‌شده\f[R] T}@T{ دقیقه‌های باقی‌مانده زمان‌سنج T}@T{ Text T}@T{ mn T} T{ \f[CR]seconds\f[R] \f[I]منسوخ‌شده\f[R] T}@T{ ثانیه‌های باقی‌مانده زمان‌سنج T}@T{ Text T}@T{ s T} .TE .PP هنگامی که زمان‌سنج غیرفعال باشد، مقادیر \f[CR]time\f[R]، \f[CR]hours\f[R]، \f[CR]minutes\f[R] و \f[CR]seconds\f[R] مقداردهی نشده‌اند. .PP متغیرهای \f[CR]hours\f[R]، \f[CR]minutes\f[R] و \f[CR]seconds\f[R] به نفع \f[CR]time\f[R] منسوخ شده‌اند. .PP .TS tab(@); l l. T{ عملیات T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]increment\f[R] T}@T{ کلیک چپ / چرخ رو به بالا (Left / Wheel Up) T} T{ \f[CR]decrement\f[R] T}@T{ چرخ رو به پایین (Wheel Down) T} T{ \f[CR]reset\f[R] T}@T{ کلیک راست (Right) T} .TE.SS مثال (EXAMPLE) .IP .EX \f[B][[block]]\f[R] block = \[dq]tea_timer\[dq] format = \[dq] $icon {$minutes:$seconds |}\[dq] done_cmd = \[dq]notify\-send \[aq]Timer Finished\[aq]\[dq] .EE .SS نمادهای استفاده‌شده (ICONS USED) .IP \[bu] 2 \f[CR]tea\f[R] .SS دما (temperature) دمای سیستم .PP این بلوک دمای سیستم را بر اساس کتابخانهٔ \f[CR]libsensors\f[R] نمایش می‌دهد. .PP این بلوک دارای دو حالت است: «جمع‌شده» (\[lq]collapsed\[rq]) که تنها از رنگ به عنوان شاخص استفاده می‌کند، و «گسترش‌یافته» (\[lq]expanded\[rq]) که محتوای رشتهٔ \f[CR]format\f[R] را نمایش می‌دهد. دمای میانگین، کمینه و بیشینه با استفاده از تمام حسگرهای نمایش‌داده‌شده توسط \f[CR]sensors\f[R] محاسبه می‌شوند، یا می‌توانند به صورت اختیاری با \f[CR]chip\f[R] و \f[CR]inputs\f[R] فیلتر شوند. .PP نیازمند \f[CR]libsensors\f[R] و ماژول‌های هستهٔ مناسب برای سخت‌افزار شما است. .PP برای مشاهدهٔ فهرست تراشه‌ها و ورودی‌های موجود، دستور \f[CR]sensors\f[R] را اجرا کنید. .PP توجه داشته باشید که رنگ بلوک همواره بر اساس بیشینهٔ دما در تمام حسگرها تعیین می‌شود، نه میانگین آن. در صورتی که حسگری با رفتار نادرست دارید، ممکن است نیاز باشد این نکته را مد نظر داشته باشید. .SS پیکربندی (CONFIGURATION) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای جای‌نگهدارهای موجود به بخش زیر مراجعه کنید T}@T{ \f[CR]\[dq] $icon $average avg, $max max \[dq]\f[R] T} T{ \f[CR]format_alt\f[R] T}@T{ در صورت تنظیم، بلوک با هر کلیک بین \f[CR]format\f[R] و \f[CR]format_alt\f[R] جابه‌جا می‌شود T}@T{ \f[CR]None\f[R] T} T{ \f[CR]interval\f[R] T}@T{ بازهٔ به‌روزرسانی بر حسب ثانیه T}@T{ \f[CR]5\f[R] T} T{ \f[CR]scale\f[R] T}@T{ یکی از مقادیر \f[CR]\[dq]celsius\[dq]\f[R] یا \f[CR]\[dq]fahrenheit\[dq]\f[R] T}@T{ \f[CR]\[dq]celsius\[dq]\f[R] T} T{ \f[CR]good\f[R] T}@T{ بیشینهٔ دما برای تنظیم وضعیت به good T}@T{ \f[CR]20\f[R] °C (\f[CR]68\f[R] °F) T} T{ \f[CR]idle\f[R] T}@T{ بیشینهٔ دما برای تنظیم وضعیت به idle T}@T{ \f[CR]45\f[R] °C (\f[CR]113\f[R] °F) T} T{ \f[CR]info\f[R] T}@T{ بیشینهٔ دما برای تنظیم وضعیت به info T}@T{ \f[CR]60\f[R] °C (\f[CR]140\f[R] °F) T} T{ \f[CR]warning\f[R] T}@T{ بیشینهٔ دما برای تنظیم وضعیت به warning. فراتر از این دما، وضعیت روی critical تنظیم می‌شود T}@T{ \f[CR]80\f[R] °C (\f[CR]176\f[R] °F) T} T{ \f[CR]chip\f[R] T}@T{ نتایج را به نام یک تراشهٔ خاص محدود می‌کند. می‌توان از \f[CR]*\f[R] به عنوان نویسهٔ عام (wildcard) استفاده کرد. T}@T{ None T} T{ \f[CR]inputs\f[R] T}@T{ نتایج را به ورودی‌های مجزای گزارش‌شده توسط هر تراشه محدود می‌کند. T}@T{ None T} .TE .PP .TS tab(@); lw(15.1n) lw(40.7n) lw(14.2n). T{ کنش T}@T{ توضیحات T}@T{ دکمهٔ پیش‌فرض T} _ T{ \f[CR]toggle_format\f[R] T}@T{ جابه‌جایی بین \f[CR]format\f[R] و \f[CR]format_alt\f[R] T}@T{ Left T} .TE .PP .TS tab(@); l l l l. T{ جای‌نگهدار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]min\f[R] T}@T{ کمینهٔ دما میان تمام ورودی‌ها T}@T{ عدد T}@T{ درجه T} T{ \f[CR]average\f[R] T}@T{ میانگین دما میان تمام ورودی‌ها T}@T{ عدد T}@T{ درجه T} T{ \f[CR]max\f[R] T}@T{ بیشینهٔ دما میان تمام ورودی‌ها T}@T{ عدد T}@T{ درجه T} .TE.PP توجه داشته باشید که وقتی بلوک جمع شده باشد، هیچ جانگهدارنده‌ای ارائه نمی‌شود. .SS مثال (Example) .IP .EX \f[B][[block]]\f[R] block = \[dq]temperature\[dq] format = \[dq] $icon $max max \[dq] format_alt = \[dq] $icon $min min, $max max, $average avg \[dq] interval = 10 chip = \[dq]*\-isa\-*\[dq] .EE .SS آیکون‌های مورد استفاده (Icons Used) .IP \[bu] 2 \f[CR]thermometer\f[R] .SS time زمان فعلی. .SS پیکربندی (Configuration) .PP .TS tab(@); lw(28.5n) lw(20.7n) lw(20.7n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته قالب‌بندی. برای مشاهده همه گزینه‌ها به \c .UR https://docs.rs/chrono/0.3.0/chrono/format/strftime/index.html#specifiers مستندات chrono .UE \c \ مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $timestamp.datetime() \[dq]\f[R] T} T{ \f[CR]interval\f[R] T}@T{ بازه به‌روزرسانی به ثانیه T}@T{ \f[CR]10\f[R] T} T{ \f[CR]timezone\f[R] T}@T{ یک مشخص‌کننده منطقه زمانی (مانند\ \[lq]Europe/Lisbon\[rq]) T}@T{ منطقه زمانی محلی T} .TE .PP .TS tab(@); lw(13.2n) lw(42.6n) lw(9.5n) lw(4.7n). T{ جانگهدارنده T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ Icon T}@T{ \- T} T{ \f[CR]timestamp\f[R] T}@T{ زمان فعلی T}@T{ Datetime T}@T{ \- T} .TE .PP .TS tab(@); l l. T{ کنش T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]next_timezone\f[R] T}@T{ چپ T} T{ \f[CR]prev_timezone\f[R] T}@T{ راست T} .TE.SS مثال (Example) .IP .EX \f[B][[block]]\f[R] block = \[dq]time\[dq] interval = 60 \f[B][block.format]\f[R] full = \[dq] $icon $timestamp.datetime(f:\[aq]%a %Y\-%m\-%d %R %Z\[aq], l:fr_BE) \[dq] short = \[dq] $icon $timestamp.datetime(f:%R) \[dq] .EE .SS تقویم‌های غیرمیلادی (Non Gregorian calendars) می‌توانید با افزودن شناسهٔ تقویم در رشتهٔ locale، از تقویم‌هایی به‌جز تقویم میلادی استفاده کنید. هنگام استفاده از این قابلیت، نمی‌توانید از رشتهٔ قالب به سبک chrono استفاده نمایید و باید از یکی از گزینه‌های ارائه‌شده توسط کریت \f[CR]icu4x\f[R] استفاده کنید: \f[CR]short\f[R]، \f[CR]medium\f[R]، \f[CR]long\f[R]، \f[CR]full\f[R]. .PP ** تنها با استفاده از قابلیت \f[CR]icu_calendar\f[R] در دسترس است. ** .SS مثال (Example) .IP .EX \f[B][[block]]\f[R] block = \[dq]time\[dq] interval = 60 format = \[dq]$timestamp.datetime(locale:\[aq]fa_IR\-u\-ca\-persian\[aq], f:\[aq]full\[aq])\[dq] .EE .SS آیکون‌های استفاده‌شده (Icons Used) .IP \[bu] 2 \f[CR]time\f[R] .SS toggle یک بلوک ضامن (Toggle) .PP می‌توانید دستورهایی را برای غیرفعال کردن ضامن (\f[CR]command_off\f[R]) و فعال کردن آن (\f[CR]command_on\f[R]) تعیین کنید. اگر این دستورها با وضعیتی غیر از صفر خارج شوند، وضعیت ضامن تغییر نخواهد کرد و حالت بلوک به \f[CR]critical\f[R] تغییر می‌یابد تا یک هشدار بصری از بروز خطا ارائه دهد. همچنین باید دستوری را برای تعیین وضعیت ضامن مشخص کنید (\f[CR]command_state\f[R]). هنگامی که این دستور هیچ خروجی نداشته باشد، ضامن غیرفعال است؛ در غیر این صورت فعال خواهد بود. با مشخص کردن ویژگی interval می‌توانید تعیین کنید که command_state به‌طور مداوم اجرا شود. .PP برای اجرای این دستورها، شل مشخص‌شده در متغیر محیطی \f[CR]$SHELL\f[R] استفاده می‌شود. اگر چنین متغیری تعریف نشده باشد، \f[CR]sh\f[R] به کار می‌رود. .SS پیکربندی (Configuration) .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای شخصی‌سازی خروجی این بلوک. برای جای‌بان‌های در دسترس، بخش زیر را ببینید T}@T{ \f[CR]\[dq] $icon \[dq]\f[R] T} T{ \f[CR]command_on\f[R] T}@T{ دستور شل برای فعال کردن ضامن T}@T{ \f[B]الزامی\f[R] T} T{ \f[CR]command_off\f[R] T}@T{ دستور شل برای غیرفعال کردن ضامن T}@T{ \f[B]الزامی\f[R] T} T{ \f[CR]command_state\f[R] T}@T{ دستور شل برای تعیین وضعیت. خروجی خالی => خیر، در غیر این صورت => بله. T}@T{ \f[B]الزامی\f[R] T} T{ \f[CR]icon_on\f[R] T}@T{ جایگزین آیکون برای دکمهٔ ضامن در وضعیت روشن T}@T{ \f[CR]\[dq]toggle_on\[dq]\f[R] T} T{ \f[CR]icon_off\f[R] T}@T{ جایگزین آیکون برای دکمهٔ ضامن در وضعیت خاموش T}@T{ \f[CR]\[dq]toggle_off\[dq]\f[R] T} T{ \f[CR]interval\f[R] T}@T{ فاصلهٔ زمانی به‌روزرسانی بر حسب ثانیه. در صورت عدم تنظیم، \f[CR]command_state\f[R] تنها با کلیک اجرا خواهد شد. T}@T{ ندارد T} T{ \f[CR]state_on\f[R] T}@T{ [\f[CR]State\f[R]] (رنگ) این بلوک در وضعیت روشن T}@T{ [idle][State::Idle] T} T{ \f[CR]state_off\f[R] T}@T{ [\f[CR]State\f[R]] (رنگ) این بلوک در وضعیت خاموش T}@T{ [idle][State::Idle] T} .TE .PP .TS tab(@); lw(13.6n) lw(43.8n) lw(7.8n) lw(4.9n). T{ جای‌بان T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ آیکون بر اساس وضعیت ضامن T}@T{ Icon T}@T{ \- T} .TE .PP .TS tab(@); l l. T{ عمل T}@T{ دکمهٔ پیش‌فرض T} _ T{ \f[CR]toggle\f[R] T}@T{ چپ (Left) T} .TE.SS "مثال‌ها" از این پیکربندی می‌توان برای تغییر وضعیت یک نمایشگر خارجی استفاده کرد: .IP .EX \f[B][[block]]\f[R] block = \[dq]toggle\[dq] format = \[dq] $icon 4k \[dq] command_state = \[dq]xrandr | grep \[aq]DP1 connected 38\[aq] | grep \-v eDP1\[dq] command_on = \[dq]\[ti]/.screenlayout/4kmon_default.sh\[dq] command_off = \[dq]\[ti]/.screenlayout/builtin.sh\[dq] interval = 5 state_on = \[dq]good\[dq] state_off = \[dq]warning\[dq] .EE .SS "آیکون‌های استفاده‌شده" .IP \[bu] 2 \f[CR]toggle_off\f[R] .IP \[bu] 2 \f[CR]toggle_on\f[R] .SS uptime مدت‌زمان بالا بودن سیستم .PP این بلوک مدت‌زمان بالا بودن سیستم را بر حسب دو واحد بزرگ‌تر نمایش می‌دهد؛ بنابراین دقیقه و ثانیه، یا ساعت و دقیقه، یا روز و ساعت، یا هفته و روز. .SS "پیکربندی" .PP .TS tab(@); lw(16.4n) lw(41.7n) lw(11.9n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای مشاهدهٔ متغیرهای جایگزین موجود به بخش زیر مراجعه کنید T}@T{ \f[CR]\[dq] $icon $uptime \[dq]\f[R] T} T{ \f[CR]interval\f[R] T}@T{ بازهٔ زمانی به‌روزرسانی بر حسب ثانیه T}@T{ \f[CR]60\f[R] T} .TE .PP .TS tab(@); l l l l. T{ متغیر جایگزین T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ آیکون T}@T{ \- T} T{ \f[CR]text\f[R] \f[I]منسوخ‌شده\f[R] T}@T{ مدت‌زمان فعلی بالا بودن سیستم T}@T{ متن T}@T{ \- T} T{ \f[CR]uptime\f[R] T}@T{ مدت‌زمان فعلی بالا بودن سیستم T}@T{ مدت‌زمان T}@T{ \- T} .TE .PP \f[CR]text\f[R] منسوخ شده و \f[CR]uptime\f[R] جایگزین آن شده است..SS مثال .IP .EX \f[B][[block]]\f[R] block = \[dq]uptime\[dq] interval = 3600 \f[I]# به‌روزرسانی در هر ساعت\f[R] .EE .SS آیکون‌های استفاده‌شده .IP \[bu] 2 \f[CR]uptime\f[R] .SS vpn وضعیت فعلی اتصال برای شبکه‌های VPN را نمایش می‌دهد. .PP این ویجت با کلیک چپ، وضعیت اتصال را تغییر می‌دهد (قطع/وصل می‌کند). .SS پیکربندی .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]driver\f[R] T}@T{ مشخص می‌کند کدام vpn باید استفاده شود. راه‌اندازهای موجود عبارتند از: \f[CR]\[dq]nordvpn\[dq]\f[R]، \f[CR]\[dq]mullvad\[dq]\f[R]، \f[CR]\[dq]tailscale\[dq]\f[R] T}@T{ \f[CR]\[dq]nordvpn\[dq]\f[R] T} T{ \f[CR]interval\f[R] T}@T{ بازه زمانی به‌روزرسانی بر حسب ثانیه. T}@T{ \f[CR]10\f[R] T} T{ \f[CR]format_connected\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی در صورت متصل بودن شبکه. برای جای‌نگهدارهای موجود به بخش زیر مراجعه کنید. T}@T{ \f[CR]\[dq] VPN: $icon \[dq]\f[R] T} T{ \f[CR]format_disconnected\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی در صورت قطع بودن شبکه. برای جای‌نگهدارهای موجود به بخش زیر مراجعه کنید. T}@T{ \f[CR]\[dq] VPN: $icon \[dq]\f[R] T} T{ \f[CR]state_connected\f[R] T}@T{ وضعیت ویجت در صورتی که شبکه vpn متصل باشد. T}@T{ \f[CR]info\f[R] T} T{ \f[CR]state_disconnected\f[R] T}@T{ وضعیت ویجت در صورتی که شبکه vpn قطع باشد. T}@T{ \f[CR]idle\f[R] T} .TE .PP .TS tab(@); lw(9.9n) lw(48.6n) lw(6.6n) lw(4.9n). T{ جای‌نگهدار T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ آیکون T}@T{ \- T} T{ \f[CR]country\f[R] T}@T{ کشوری که در حال حاضر به آن متصل است T}@T{ متن T}@T{ \- T} T{ \f[CR]flag\f[R] T}@T{ پرچم ویژه کشور (وابسته به قلمی که از آنها پشتیبانی کند) T}@T{ متن T}@T{ \- T} T{ \f[CR]profile\f[R] T}@T{ پیکربندی نمایه در حال حاضر انتخاب‌شده (tailnet) T}@T{ متن T}@T{ \- T} T{ \f[CR]error\f[R] T}@T{ پیام خطا در صورت وجود T}@T{ متن T}@T{ \- T} .TE .PP .TS tab(@); l l l. T{ عمل T}@T{ دکمه پیش‌فرض T}@T{ توضیحات T} _ T{ \f[CR]toggle\f[R] T}@T{ Left T}@T{ اتصال شبکه vpn را تغییر وضعیت می‌دهد (قطع/وصل می‌کند) T} .TE.SS "راه‌اندازها (Drivers)" .SS Mullvad در پشت صحنه، راه‌انداز mullvad از باینری خط فرمان \f[CR]mullvad\f[R] استفاده می‌کند. برای اینکه این مورد به درستی کار کند، فایل باینری باید قابل اجرا باشد و دیمن mullvad در حال اجرا باشد. .SS nordvpn در پشت صحنه، راه‌انداز nordvpn از باینری خط فرمان \f[CR]nordvpn\f[R] استفاده می‌کند. برای اینکه این مورد به درستی کار کند، فایل باینری باید بدون امتیازات ریشه (root) قابل اجرا باشد. .SS Tailscale در پشت صحنه، راه‌انداز tailscale از باینری خط فرمان \f[CR]tailscale\f[R] استفاده می‌کند. برای اینکه این مورد به درستی کار کند، دیمن tailscale باید در حال اجرا باشد و کاربر باید به عنوان اپراتور پیکربندی شده باشد: .IP .EX sudo tailscale set \-\-operator=$USER .EE .SS Cloudflare WARP در پشت صحنه، راه‌انداز WARP از باینری خط فرمان \f[CR]warp\-cli\f[R] استفاده می‌کند. تنها اطمینان حاصل کنید که فایل باینری بدون امتیازات ریشه (root) قابل اجرا باشد. .SS "مثال (Example)" وضعیت فعلی شبکه vpn را نمایش می‌دهد: .IP .EX \f[B][[block]]\f[R] block = \[dq]vpn\[dq] driver = \[dq]nordvpn\[dq] interval = 10 format_connected = \[dq]VPN: $icon \[dq] format_disconnected = \[dq]VPN: $icon \[dq] state_connected = \[dq]good\[dq] state_disconnected = \[dq]warning\[dq] .EE .PP مقادیر ممکن برای \f[CR]state_connected\f[R] و \f[CR]state_disconnected\f[R]: .IP .EX warning critical good info idle .EE .SS "آیکون‌های استفاده‌شده (Icons Used)" .IP \[bu] 2 \f[CR]net_vpn\f[R] .IP \[bu] 2 \f[CR]net_wired\f[R] .IP \[bu] 2 \f[CR]net_down\f[R] .IP \[bu] 2 پرچم‌های کد کشور (در صورت پشتیبانی توسط قلم) .PP پرچم‌ها: آن‌ها آیکون نیستند، بلکه نشانه‌های یونیکد هستند. به قلمی نیاز خواهید داشت که شامل آن‌ها باشد. آزمایش‌شده با: \c .UR https://www.babelstone.co.uk/Fonts/Flags.html .UE \c .SS watson آمار Watson .PP \c .UR http://tailordev.github.io/Watson Watson .UE \c \ یک برنامه ساده خط فرمان (CLI) برای ردیابی زمان است. این بلوک نام پروژه فعال فعلی شما، برچسب‌ها و در صورت تمایل زمان ثبت‌شده را نشان می‌دهد. کلیک کردن روی ویجت، متغیر \f[CR]show_time\f[R] را به صورت پویا تغییر وضعیت می‌دهد. .SS "پیکربندی (Configuration)" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای متغیرهای جایگزین موجود، به پایین مراجعه کنید T}@T{ \f[CR]\[dq] $text |\[dq]\f[R] T} T{ \f[CR]show_time\f[R] T}@T{ نمایش یا عدم نمایش زمان ثبت‌شده. T}@T{ \f[CR]false\f[R] T} T{ \f[CR]state_path\f[R] T}@T{ مسیر فایل وضعیت Watson. از بسط مسیر مانند \f[CR]\[ti]\f[R] پشتیبانی می‌کند. T}@T{ \f[CR]$XDG_CONFIG_HOME/watson/state\f[R] T} T{ \f[CR]interval\f[R] T}@T{ فاصله زمانی به‌روزرسانی، به ثانیه. T}@T{ \f[CR]60\f[R] T} .TE .PP .TS tab(@); l l l l. T{ متغیر جایگزین T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]text\f[R] T}@T{ فعالیت فعلی T}@T{ متن T}@T{ \- T} .TE .PP .TS tab(@); l l l. T{ عملیات T}@T{ توضیحات T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]toggle_show_time\f[R] T}@T{ تغییر وضعیت مقدار \f[CR]show_time\f[R] T}@T{ چپ T} .TE.SS "مثال (Example)" .IP .EX \f[B][[block]]\f[R] block = \[dq]watson\[dq] show_time = true state_path = \[dq]\[ti]/.config/watson/state\[dq] .EE .SS "کارهای آینده (TODO)" .IP \[bu] 2 گسترش قابلیت‌ها: شروع / توقف watson با استفاده از این بلوک .SS weather آب‌وهوای کنونی .PP این بلوک، اطلاعات آب‌وهوا و دمای محلی را نمایش می‌دهد. برای استفاده از این بلوک، به دسترسی به یک سرویس API آب‌وهوای پشتیبانی‌شده نیاز خواهید داشت. در زمان نگارش این مستند، OpenWeatherMap، met.no و US National Weather Service پشتیبانی می‌شوند. .PP پیکربندی این بلوک نیازمند پیکربندی یک سرویس آب‌وهوا است که ممکن است به کلیدهای API و پارامترهای دیگر نیاز داشته باشد. .PP در صورت استفاده از ویژگی \f[CR]autolocate\f[R]، بازه به‌روزرسانی autolocate را به گونه‌ای تنظیم کنید که از محدودیت روزانه ۱۰۰۰ درخواست رایگان ipapi.co فراتر نروید. یا از \f[CR]autolocate_interval = \[dq]once\[dq]\f[R] استفاده کنید تا تنها هنگام مقداردهی اولیه اجرا شود. .SS "پیکربندی (Configuration)" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]service\f[R] T}@T{ پیکربندی یک سرویس آب‌وهوا (پایین را ببینید). T}@T{ \f[B]الزامی\f[R] T} T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای جای‌نماهای موجود به بخش زیر مراجعه کنید. ممکن است نیاز به گریز دادن متن باشد؛ به Escaping Text مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $weather $temp \[dq]\f[R] T} T{ \f[CR]format_alt\f[R] T}@T{ در صورت تنظیم، بلوک با هر بار کلیک بین \f[CR]format\f[R] و \f[CR]format_alt\f[R] جابه‌جا خواهد شد. T}@T{ \f[CR]None\f[R] T} T{ \f[CR]interval\f[R] T}@T{ بازه به‌روزرسانی بر حسب ثانیه. T}@T{ \f[CR]600\f[R] T} T{ \f[CR]autolocate\f[R] T}@T{ موقعیت مکانی شما را با استفاده از سرویس مکان‌یابی IP در ipapi.co دریافت می‌کند (نیازی به کلید API نیست). اگر فراخوانی API با شکست مواجه شود، بلوک به پیکربندی مکان اختصاصی سرویس بازمی‌گردد. T}@T{ \f[CR]false\f[R] T} T{ \f[CR]autolocate_interval\f[R] T}@T{ بازه به‌روزرسانی برای \f[CR]autolocate\f[R] بر حسب ثانیه یا \[lq]once\[rq] T}@T{ \f[CR]interval\f[R] T} .TE.SS گزینه‌های OpenWeatherMap برای استفاده از این سرویس به یک کلید API (رایگان) نیاز خواهید داشت. .PP .TS tab(@); lw(9.3n) lw(18.7n) lw(23.3n) lw(18.7n). T{ کلید T}@T{ مقادیر T}@T{ ضروری T}@T{ پیش‌فرض T} _ T{ \f[CR]name\f[R] T}@T{ \f[CR]openweathermap\f[R]. T}@T{ بله T}@T{ ندارد T} T{ \f[CR]api_key\f[R] T}@T{ کلید API حساب OpenWeatherMap شما. T}@T{ بله T}@T{ ندارد T} T{ \f[CR]coordinates\f[R] T}@T{ مختصات عرض و طول جغرافیایی GPS به‌صورت یک چندتایی (tuple)، مانند: \f[CR][\[dq]39.2362\[dq],\[dq]9.3317\[dq]]\f[R] T}@T{ بله* T}@T{ ندارد T} T{ \f[CR]city_id\f[R] T}@T{ شناسه OpenWeatherMap برای شهر. (منسوخ‌شده) T}@T{ بله* T}@T{ ندارد T} T{ \f[CR]place\f[R] T}@T{ پرس‌وجوی جستجوی OpenWeatherMap براساس \(lqBy {city name},{state code},{country code}\(rq. مشاهده در \c .UR https://openweathermap.org/api/geocoding-api#direct_name اینجا .UE \c \&. یک فراخوانی API اضافی مصرف می‌کند T}@T{ بله* T}@T{ ندارد T} T{ \f[CR]zip\f[R] T}@T{ پرس‌وجوی جستجوی OpenWeatherMap براساس \(lqBy {zip code},{country code}\(rq. مشاهده در \c .UR https://openweathermap.org/api/geocoding-api#direct_zip اینجا .UE \c \&. یک فراخوانی API اضافی مصرف می‌کند T}@T{ بله* T}@T{ ندارد T} T{ \f[CR]units\f[R] T}@T{ یا \f[CR]\[dq]metric\[dq]\f[R] یا \f[CR]\[dq]imperial\[dq]\f[R]. T}@T{ خیر T}@T{ \f[CR]\[dq]metric\[dq]\f[R] T} T{ \f[CR]lang\f[R] T}@T{ کد زبان. مشاهده در \c .UR https://openweathermap.org/current#multi اینجا .UE \c \&. در حال حاضر فقط بر کلید \f[CR]weather_verbose\f[R] اثر می‌گذارد. T}@T{ خیر T}@T{ \f[CR]\[dq]en\[dq]\f[R] T} T{ \f[CR]forecast_hours\f[R] T}@T{ چند ساعت باید پیش‌بینی شود (باید مضاربی از ۳ ساعت باشد، حداکثر ۱۲۰ ساعت) T}@T{ خیر T}@T{ 12 T} .TE .PP ارائه یکی از گزینه‌های \f[CR]coordinates\f[R]، \f[CR]city_id\f[R]، \f[CR]place\f[R] یا \f[CR]zip\f[R] الزامی است. اگر بیش از یکی مشخص شده باشد، \f[CR]coordinates\f[R] نسبت به \f[CR]city_id\f[R] اولویت دارد، که خود نسبت به \f[CR]place\f[R] و آن نیز نسبت به \f[CR]zip\f[R] تقدم دارد. .PP گزینه‌های \f[CR]api_key\f[R]، \f[CR]city_id\f[R]، \f[CR]place\f[R]، \f[CR]zip\f[R] را می‌توان در فایل پیکربندی حذف کرد؛ در این صورت باید مقدار آن‌ها از طریق متغیرهای محیطی \f[CR]OPENWEATHERMAP_API_KEY\f[R]، \f[CR]OPENWEATHERMAP_CITY_ID\f[R]، \f[CR]OPENWEATHERMAP_PLACE\f[R] و \f[CR]OPENWEATHERMAP_ZIP\f[R] تعیین شود. .PP پیش‌بینی‌ها فقط در صورتی دریافت می‌شوند که forecast_hours > 0 باشد و ساختار قالب شامل کلیدهای مربوط به پیش‌بینی آب‌وهوا باشد..SS گزینه‌های met.no .PP .TS tab(@); lw(9.3n) lw(18.7n) lw(23.3n) lw(18.7n). T{ کلید T}@T{ مقادیر T}@T{ الزامی T}@T{ پیش‌فرض T} _ T{ \f[CR]name\f[R] T}@T{ \f[CR]metno\f[R]. T}@T{ بله T}@T{ ندارد T} T{ \f[CR]coordinates\f[R] T}@T{ مختصات عرض و طول جغرافیایی GPS به صورت یک چندتایی، به عنوان مثال: \f[CR][\[dq]39.2362\[dq],\[dq]9.3317\[dq]]\f[R] T}@T{ الزامی در صورت \f[CR]autolocate = false\f[R] T}@T{ ندارد T} T{ \f[CR]lang\f[R] T}@T{ کد زبان: \f[CR]en\f[R]، \f[CR]nn\f[R] یا \f[CR]nb\f[R] T}@T{ خیر T}@T{ \f[CR]en\f[R] T} T{ \f[CR]altitude\f[R] T}@T{ ارتفاع زمین از سطح دریا بر حسب متر T}@T{ خیر T}@T{ تخمین‌زده‌شده توسط سرور T} T{ \f[CR]forecast_hours\f[R] T}@T{ تعداد ساعاتی که باید پیش‌بینی شوند T}@T{ خیر T}@T{ 12 T} .TE .PP سرویس Met.no از نام مکان پشتیبانی نمی‌کند، اما اگر autolocate فعال باشد، مقدار شهر در autolocate استفاده خواهد شد. .SS گزینه‌های US National Weather Service .PP .TS tab(@); lw(9.3n) lw(18.7n) lw(23.3n) lw(18.7n). T{ کلید T}@T{ مقادیر T}@T{ الزامی T}@T{ پیش‌فرض T} _ T{ \f[CR]name\f[R] T}@T{ \f[CR]nws\f[R]. T}@T{ بله T}@T{ ندارد T} T{ \f[CR]coordinates\f[R] T}@T{ مختصات عرض و طول جغرافیایی GPS به صورت یک چندتایی، به عنوان مثال: \f[CR][\[dq]39.2362\[dq],\[dq]9.3317\[dq]]\f[R] T}@T{ الزامی در صورت \f[CR]autolocate = false\f[R] T}@T{ ندارد T} T{ \f[CR]forecast_hours\f[R] T}@T{ تعداد ساعاتی که باید پیش‌بینی شوند T}@T{ خیر T}@T{ 12 T} T{ \f[CR]units\f[R] T}@T{ یا \f[CR]\[dq]metric\[dq]\f[R] یا \f[CR]\[dq]imperial\[dq]\f[R]. T}@T{ خیر T}@T{ \f[CR]\[dq]metric\[dq]\f[R] T} .TE .PP پیش‌بینی‌ها آمار را از هر ساعت بین زمان فعلی و مقدار \f[CR]forecast_hours\f[R] جمع‌آوری می‌کنند و وضعیت پیش‌بینی‌شده آب‌وهوا را برای تعداد ساعات تعیین‌شده در آینده ارائه می‌دهند..SS کلیدهای قالب در دسترس .PP .TS tab(@); lw(22.7n) lw(39.8n) lw(5.0n) lw(2.5n). T{ کلید T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]location\f[R] T}@T{ نام مکان (قالب دقیق به سرویس بستگی دارد) T}@T{ متن T}@T{ \- T} T{ \f[CR]icon{,_ffin}\f[R] T}@T{ شمایل نمایانگر وضعیت آب‌وهوا T}@T{ شمایل T}@T{ \- T} T{ \f[CR]weather{,_ffin}\f[R] T}@T{ توضیح متنی کوتاه از آب‌وهوا، مانند \[lq]Raining\[rq] T}@T{ متن T}@T{ \- T} T{ \f[CR]weather_verbose{,_ffin}\f[R] T}@T{ توضیح متنی مفصل از آب‌وهوا، مانند \[lq]overcast clouds\[rq] T}@T{ متن T}@T{ \- T} T{ \f[CR]temp{,_{favg,fmin,fmax,ffin}}\f[R] T}@T{ دما T}@T{ عدد T}@T{ درجه T} T{ \f[CR]apparent{,_{favg,fmin,fmax,ffin}}\f[R] T}@T{ دمای ظاهری استرالیایی T}@T{ عدد T}@T{ درجه T} T{ \f[CR]humidity{,_{favg,fmin,fmax,ffin}}\f[R] T}@T{ رطوبت T}@T{ عدد T}@T{ % T} T{ \f[CR]wind{,_{favg,fmin,fmax,ffin}}\f[R] T}@T{ سرعت باد T}@T{ عدد T}@T{ \- T} T{ \f[CR]wind_kmh{,_{favg,fmin,fmax,ffin}}\f[R] T}@T{ سرعت باد. سرعت باد بر حسب کیلومتر بر ساعت T}@T{ عدد T}@T{ \- T} T{ \f[CR]direction{,_{favg,fmin,fmax,ffin}}\f[R] T}@T{ جهت باد، مانند \[lq]NE\[rq] T}@T{ متن T}@T{ \- T} T{ \f[CR]sunrise\f[R] T}@T{ زمان طلوع خورشید (ممکن است در روز قطبی یا شب قطبی موجود نباشد)[3] T}@T{ تاریخ و زمان T}@T{ \- T} T{ \f[CR]sunset\f[R] T}@T{ زمان غروب خورشید (ممکن است در روز قطبی یا شب قطبی موجود نباشد)[4] T}@T{ تاریخ و زمان T}@T{ \- T} .TE .PP می‌توانید از پسوندهای ذکرشده در بالا برای دریافت موارد زیر استفاده کنید: .PP .TS tab(@); l l. T{ پسوند T}@T{ توضیحات T} _ T{ هیچ‌کدام T}@T{ آب‌وهوای کنونی T} T{ \f[CR]_favg\f[R] T}@T{ مقدار میانگین پیش‌بینی T} T{ \f[CR]_fmin\f[R] T}@T{ مقدار کمینه پیش‌بینی T} T{ \f[CR]_fmax\f[R] T}@T{ مقدار بیشینه پیش‌بینی T} T{ \f[CR]_ffin\f[R] T}@T{ مقدار نهایی پیش‌بینی T} .TE .PP .TS tab(@); lw(15.1n) lw(40.7n) lw(14.2n). T{ کنش T}@T{ توضیحات T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]toggle_format\f[R] T}@T{ جابه‌جایی میان \f[CR]format\f[R] و \f[CR]format_alt\f[R] T}@T{ چپ T} .TE.SS "مثال‌ها (EXAMPLES)" نمایش وضعیت دقیق آب‌وهوا در سان‌فرانسیسکو از طریق سرویس OpenWeatherMap: .IP .EX \f[B][[block]]\f[R] block = \[dq]weather\[dq] format = \[dq] $icon $weather ($location) $temp, $wind m/s $direction \[dq] format_alt = \[dq] $icon_ffin Forecast (9 hour avg) {$temp_favg ({$temp_fmin}\-{$temp_fmax})|Unavailable} \[dq] \f[B][block.service]\f[R] name = \[dq]openweathermap\[dq] api_key = \[dq]XXX\[dq] city_id = \[dq]5398563\[dq] units = \[dq]metric\[dq] forecast_hours = 9 .EE .PP نمایش زمان طلوع و غروب خورشید در null island .IP .EX \f[B][[block]]\f[R] block = \[dq]weather\[dq] format = \[dq]up $sunrise.datetime(f:\[aq]%R\[aq]) down $sunset.datetime(f:\[aq]%R\[aq])\[dq] \f[B][block.service]\f[R] name = \[dq]metno\[dq] coordinates = [\[dq]0\[dq], \[dq]0\[dq]] .EE .SS "آیکون‌های استفاده‌شده (USED ICONS)" .IP \[bu] 2 \f[CR]weather_sun\f[R] (هنگامی که وضعیت آب‌وهوا در طول روز \[lq]Clear\[rq] گزارش شود) .IP \[bu] 2 \f[CR]weather_moon\f[R] (هنگامی که وضعیت آب‌وهوا در شب \[lq]Clear\[rq] گزارش شود) .IP \[bu] 2 \f[CR]weather_clouds\f[R] (هنگامی که وضعیت آب‌وهوا در طول روز \[lq]Clouds\[rq] گزارش شود) .IP \[bu] 2 \f[CR]weather_clouds_night\f[R] (هنگامی که وضعیت آب‌وهوا در شب \[lq]Clouds\[rq] گزارش شود) .IP \[bu] 2 \f[CR]weather_fog\f[R] (هنگامی که وضعیت آب‌وهوا در طول روز \[lq]Fog\[rq] یا \[lq]Mist\[rq] گزارش شود) .IP \[bu] 2 \f[CR]weather_fog_night\f[R] (هنگامی که وضعیت آب‌وهوا در شب \[lq]Fog\[rq] یا \[lq]Mist\[rq] گزارش شود) .IP \[bu] 2 \f[CR]weather_rain\f[R] (هنگامی که وضعیت آب‌وهوا در طول روز \[lq]Rain\[rq] یا \[lq]Drizzle\[rq] گزارش شود) .IP \[bu] 2 \f[CR]weather_rain_night\f[R] (هنگامی که وضعیت آب‌وهوا در شب \[lq]Rain\[rq] یا \[lq]Drizzle\[rq] گزارش شود) .IP \[bu] 2 \f[CR]weather_snow\f[R] (هنگامی که وضعیت آب‌وهوا \[lq]Snow\[rq] گزارش شود) .IP \[bu] 2 \f[CR]weather_thunder\f[R] (هنگامی که وضعیت آب‌وهوا در طول روز \[lq]Thunderstorm\[rq] گزارش شود) .IP \[bu] 2 \f[CR]weather_thunder_night\f[R] (هنگامی که وضعیت آب‌وهوا در شب \[lq]Thunderstorm\[rq] گزارش شود) .SS xrandr اطلاعات صفحه نمایش X11 .PP اطلاعات صفحه نمایش X11 (نام، روشنایی، وضوح تصویر، نرخ نوسازی). با یک کلیک می‌توانید بین نمایشگرهای فعال خود جابه‌جا شوید و با چرخاندن چرخ ماوس به بالا یا پایین، روشنایی نمایشگرهای انتخاب‌شده را تنظیم کنید. در رابطه با کنترل روشنایی، xrandr روشنایی نمایشگر را به جای تغییر سخت‌افزاری با استفاده از گاما تغییر می‌دهد؛ بنابراین اگر این رفتار مطلوب نیست، استفاده از بلوک \f[CR]backlight\f[R] را به عنوان جایگزین در نظر بگیرید. .PP نکته: برخی کاربران گزارش داده‌اند که هنگام استفاده از این بلوک با مشکلاتی (برای نمونه\ \c .UR https://github.com/greshake/i3status-rust/issues/274 اینجا .UE \c \ و\ \c .UR https://github.com/greshake/i3status-rust/issues/668 اینجا .UE \c \) مواجه شده‌اند. علت این مسئله در حال حاضر ناشناخته است، با این حال تنظیم یک بازه به‌روزرسانی طولانی‌تر ممکن است کمک‌کننده باشد..SS "پیکربندی (Configuration)" .PP .TS tab(@); lw(14.0n) lw(28.0n) lw(28.0n). T{ کلید T}@T{ مقادیر T}@T{ پیش‌فرض T} _ T{ \f[CR]format\f[R] T}@T{ رشته‌ای برای سفارشی‌سازی خروجی این بلوک. برای جانگهدارنده‌های موجود به بخش زیر مراجعه کنید. T}@T{ \f[CR]\[dq] $icon $display $brightness_icon $brightness \[dq]\f[R] T} T{ \f[CR]step_width\f[R] T}@T{ گامی که روشنایی بر اساس آن برای صفحه نمایش انتخاب‌شده افزایش/کاهش می‌یابد (هنگامی که بیشتر از ۵۰ باشد، به ۵۰ محدود می‌شود). T}@T{ \f[CR]5\f[R] T} T{ \f[CR]interval\f[R] T}@T{ بازه زمانی به‌روزرسانی بر حسب ثانیه. T}@T{ \f[CR]5\f[R] T} T{ \f[CR]invert_icons\f[R] T}@T{ معکوس کردن ترتیب آیکون‌ها؛ در صورتی که ایموجی‌های رنگی دارید مفید است T}@T{ \f[CR]false\f[R] T} .TE .PP .TS tab(@); lw(17.7n) lw(29.6n) lw(7.9n) lw(14.8n). T{ جانگهدارنده T}@T{ مقدار T}@T{ نوع T}@T{ واحد T} _ T{ \f[CR]icon\f[R] T}@T{ یک آیکون ایستا T}@T{ آیکون T}@T{ \- T} T{ \f[CR]display\f[R] T}@T{ نام نمایشگر T}@T{ متن T}@T{ \- T} T{ \f[CR]brightness\f[R] T}@T{ روشنایی نمایشگر T}@T{ عدد T}@T{ % T} T{ \f[CR]brightness_icon\f[R] T}@T{ یک آیکون ایستا T}@T{ آیکون T}@T{ \- T} T{ \f[CR]resolution\f[R] T}@T{ تفکیک‌پذیری نمایشگر T}@T{ متن T}@T{ \- T} T{ \f[CR]res_icon\f[R] T}@T{ یک آیکون ایستا T}@T{ آیکون T}@T{ \- T} T{ \f[CR]refresh_rate\f[R] T}@T{ نرخ نوسازی نمایشگر T}@T{ عدد T}@T{ هرتز T} .TE .PP .TS tab(@); l l. T{ عملیات T}@T{ دکمه پیش‌فرض T} _ T{ \f[CR]cycle_outputs\f[R] T}@T{ چپ T} T{ \f[CR]brightness_up\f[R] T}@T{ چرخ به بالا T} T{ \f[CR]brightness_down\f[R] T}@T{ چرخ به پایین T} .TE.SS مثال .IP .EX \f[B][[block]]\f[R] block = \[dq]xrandr\[dq] format = \[dq] $icon $brightness $resolution $refresh_rate \[dq] .EE .SS "آیکون‌های مورد استفاده" .IP \[bu] 2 \f[CR]xrandr\f[R] .IP \[bu] 2 \f[CR]backlight\f[R] .IP \[bu] 2 \f[CR]resolution\f[R] .SH "نکات (NOTES)" .SS [1] .PP هنگام استفاده از \f[CR]notification_count\f[R] با درایور \f[CR]dunst\f[R]، از dunst > 1.9.0 استفاده کنید. .SS [2] .PP متغیر \f[CR]history_count\f[R] در SwayNC معادل \f[CR]notification_count\f[R] است. .SS [3] .PP در روزهای قطبی و شب‌های قطبی، ممکن است طلوع یا غروب خورشید در یک روز مشخص رخ ندهد و بنابراین مقدار متناظر آن موجود نباشد. این رفتار به سرویس هواشناسی مورد استفاده بستگی دارد. برای met.no و nws، هم طلوع و هم غروب خورشید در روزها و شب‌های قطبی وجود نخواهد داشت، اما OpenWeatherMap زمان یکسانی را برای هر دو طلوع و غروب خورشید نمایش می‌دهد. .SS [4] .PP در روزهای قطبی و شب‌های قطبی، ممکن است طلوع یا غروب خورشید در یک روز مشخص رخ ندهد و بنابراین مقدار متناظر آن موجود نباشد. این رفتار به سرویس هواشناسی مورد استفاده بستگی دارد. برای met.no و nws، هم طلوع و هم غروب خورشید در روزها و شب‌های قطبی وجود نخواهد داشت، اما OpenWeatherMap زمان یکسانی را برای هر دو طلوع و غروب خورشید نمایش می‌دهد. .SH "تم‌ها (THEMES)" .SS "انتخاب تم و مجموعه آیکون" برای استفاده از تم یا مجموعه آیکونی غیر از پیش‌فرض، آن‌ها را مانند زیر به فایل پیکربندی خود اضافه کنید: .IP .EX \f[B][theme]\f[R] theme = \[dq]solarized\-dark\[dq] \f[B][icons]\f[R] icons = \[dq]awesome6\[dq] .EE .PP هر دوی تم و مجموعه آیکون را می‌توان از یک فایل جداگانه بارگذاری کرد. .IP .EX \f[B][theme]\f[R] theme = \[dq]\[dq] \f[B][icons]\f[R] icons = \[dq]\[dq] .EE .PP که در آن \f[CR]\f[R] می‌تواند یک نام فایل یا یک مسیر کامل باشد و با این ترتیب بررسی خواهد شد: .IP "1." 3 اگر مسیر کامل و مطلق داده شده باشد، همان‌طور که هست استفاده می‌شود: \f[CR]/home/foo/custom_theme.toml\f[R] .IP "2." 3 اگر نام فایل داده شده باشد، برای نمونه\ \[lq]custom_theme.toml\[rq]، ابتدا \f[CR]$XDG_CONFIG_HOME/i3status\-rust/themes\f[R] بررسی می‌شود .IP "3." 3 سپس در \f[CR]$XDG_DATA_HOME/i3status\-rust/themes\f[R] جستجو می‌شود .IP "4." 3 در غیر این صورت در \f[CR]/usr/share/i3status\-rust/themes\f[R] جستجو خواهد شد .PP نکات: \- در مورد مجموعه‌های آیکون، فایل باید به‌جای \f[CR]themes\f[R] در زیردایرکتوری \f[CR]icons\f[R] قرار داشته باشد. \- می‌توانید هنگام مشخص کردن پارامترهای \f[CR]file\f[R] از پسوند \f[CR].toml\f[R] صرف‌نظر کنید. \- تمام تم‌های از پیش تعریف‌شده به‌صورت فایل ارائه شده‌اند، بنابراین می‌توانید از آن‌ها به‌عنوان نمونه‌هایی برای چگونگی نوشتن تم‌ها/مجموعه‌های آیکون خود استفاده کنید. .SS "تم‌های موجود" نکته: نماگرفت‌ها با استفاده از این پیکربندی همراه با این پیکربندی swaybar تولید شده‌اند. .IP \[bu] 2 \f[CR]plain\f[R] (پیش‌فرض) [تصویر: plain] .IP \[bu] 2 \f[CR]solarized\-dark\f[R] [تصویر: solarized\-dark] .IP \[bu] 2 \f[CR]solarized\-light\f[R] [تصویر: solarized\-light] .IP \[bu] 2 \f[CR]slick\f[R] [تصویر: slick] .IP \[bu] 2 \f[CR]modern\f[R] [تصویر: modern] .IP \[bu] 2 \f[CR]bad\-wolf\f[R] [تصویر: bad\-wolf] .IP \[bu] 2 \f[CR]gruvbox\-light\f[R] [تصویر: gruvbox\-light] .IP \[bu] 2 \f[CR]gruvbox\-dark\f[R] [تصویر: gruvbox\-dark] .IP \[bu] 2 \f[CR]space\-villain\f[R] [تصویر: space\-villain] .IP \[bu] 2 \f[CR]native\f[R] (مانند plain بدون پس‌زمینه و با جداکننده‌های بومی) [تصویر: native] .IP \[bu] 2 \f[CR]semi\-native\f[R] (مانند native اما همراه با پس‌زمینه) [تصویر: semi\-native] .IP \[bu] 2 \f[CR]nord\-dark\f[R] (شب قطبی) [تصویر: nord\-dark] .IP \[bu] 2 \f[CR]dracula\f[R] [تصویر: dracula] .IP \[bu] 2 \f[CR]srcery\f[R] [تصویر: srcery] .IP \[bu] 2 \f[CR]ctp\-frappe\f[R] [تصویر: ctp\-frappe] .IP \[bu] 2 \f[CR]ctp\-latte\f[R] [تصویر: ctp\-latte] .IP \[bu] 2 \f[CR]ctp\-macchiato\f[R] [تصویر: ctp\-macchiato] .IP \[bu] 2 \f[CR]ctp\-mocha\f[R] [تصویر: ctp\-mocha] .IP \[bu] 2 \f[CR]tomorrow\-night\f[R] [تصویر: tomorrow\-night].SS "مجموعه‌شمایل‌های دردسترس (Available icon sets)" .IP \[bu] 2 \f[CR]none\f[R] (پیش‌فرض. به‌جای شمایل‌ها از برچسب‌های متنی استفاده می‌کند) .IP \[bu] 2 \f[CR]awesome4\f[R] (Font Awesome 4.x) .IP \[bu] 2 \f[CR]awesome5\f[R] (Font Awesome 5.x) .IP \[bu] 2 \f[CR]awesome6\f[R] (Font Awesome 6.x) .IP \[bu] 2 \f[CR]emoji\f[R] .IP \[bu] 2 \f[CR]material\f[R] .IP \[bu] 2 \f[CR]material\-nf\f[R] (هر فونتی از مجموعهٔ Nerd Fonts) .PP \f[B]نکته\f[R]: برای استفاده از مجموعه‌شمایل material، به یک قلم (فونت) وصله‌شدهٔ material icons نیاز دارید که می‌توانید آن را از \c .UR https://gist.github.com/draoncc/3c20d8d4262892ccd2e227eefeafa8ef/raw/3e6e12c213fba1ec28aaa26430c3606874754c30/MaterialIcons-Regular-for-inline.ttf اینجا .UE \c \& دریافت کنید. اطمینان حاصل کنید که آن را در بلوک bar در پیکربندی i3 خود وارد کرده‌اید. .SS "بازنویسی تم‌ها و مجموعه‌شمایل‌ها (Overriding themes and icon sets)" یک بلوک در پیکربندی به نام \f[CR]theme\f[R] یا \f[CR]icons\f[R] مانند زیر ایجاد کنید: .IP .EX \f[B][theme]\f[R] theme = \[dq]solarized\-dark\[dq] \f[B][theme.overrides]\f[R] \f[I]# مثال: بازتعریف رنگ‌های \[ga]idle\[ga]\f[R] idle_bg = \[dq]#123456\[dq] idle_fg = \[dq]#abcdef\[dq] \f[I]# مثال: جابه‌جایی رنگ‌های \[ga]good\[ga] و \[ga]warning\[ga]\f[R] good_fg = { link = \[dq]warning_fg\[dq] } good_bg = { link = \[dq]warning_bg\[dq] } warning_fg = { link = \[dq]good_fg\[dq] } warning_bg = { link = \[dq]good_bg\[dq] } \f[B][icons]\f[R] icons = \[dq]awesome6\[dq] \f[B][icons.overrides]\f[R] bat = [ \[dq]| |\[dq], \[dq]|¼|\[dq], \[dq]|½|\[dq], \[dq]|¾|\[dq], \[dq]|X|\[dq], ] bat_charging = \[dq]|\[ha]|\[dq] .EE .PP علاوه بر بازنویسی‌های سراسری، می‌توانید با استفاده از گزینه‌های \f[CR]theme_overrides\f[R]، \f[CR]icons_overrides\f[R] و \f[CR]icons_format\f[R] که برای همهٔ بلوک‌ها در دسترس هستند، از بازنویسی‌های مخصوص هر بلوک نیز استفاده کنید. برای نمونه: .IP .EX \f[B][[block]]\f[R] block = \[dq]cpu\[dq] icons_format = \[dq]{icon}\[dq] \f[B][block.theme_overrides]\f[R] idle_bg = \[dq]#123456\[dq] idle_fg = \[dq]#abcdef\[dq] \f[B][block.icons_overrides]\f[R] cpu_boost_on = \[dq]ON\[dq] cpu_boost_off = \[dq]OFF\[dq] .EE .SS "بازنویسی‌های تم موجود (Available theme overrides)" تمامی بازنویسی‌های \f[CR]bg\f[R] و \f[CR]fg\f[R] یکی از موارد زیر هستند: .IP \[bu] 2 کدهای رنگ هگزادسیمال html مانند \f[CR]#000000\f[R] یا \f[CR]#789ABC\f[R]؛ بایت چهارم برای آلفا (مانند \f[CR]#acbdef42\f[R]) در برخی سیستم‌ها کار می‌کند. \f[CR]00\f[R] شفاف است، \f[CR]FF\f[R] کدر (ناشفاف) است، یا .IP \[bu] 2 ارجاع به یک بازنویسی دیگر، مثلاً: \f[CR]{ link = \[dq]idle\-bg\[dq] }\f[R]، یا .IP \[bu] 2 ارجاع به یک نام رنگ تعریف‌شده در \f[CR]\[ti]/.Xresources\f[R]، مانند \f[CR]x:background\f[R] که به‌دنبال خطی مانند \f[CR]*background: #aabbcc\f[R] در \f[CR]\[ti]/.Xresources\f[R] می‌گردد (همچنین ببینید \c .UR https://wiki.debian.org/Xresources \&.Xresources .UE \c ). .PP سایه‌رنگ‌ها به هر دومین بلوک با شمارش از راست اضافه می‌شوند. بنابراین آن‌ها همیشه بلوک را روشن‌تر می‌کنند و هرگز آن را تیره نخواهند کرد. کانال آلفا نیز، در صورت پشتیبانی، می‌تواند به همین شیوه به صورت متناوب اعمال شود. .PP برای راهنمایی و الگوبرداری می‌توانید نگاهی به طرح‌رنگ‌های ارائه‌شده بیندازید. .IP \[bu] 2 \f[CR]idle_bg\f[R] .IP \[bu] 2 \f[CR]idle_fg\f[R] .IP \[bu] 2 \f[CR]good_bg\f[R] .IP \[bu] 2 \f[CR]good_fg\f[R] .IP \[bu] 2 \f[CR]warning_bg\f[R] .IP \[bu] 2 \f[CR]warning_fg\f[R] .IP \[bu] 2 \f[CR]critical_bg\f[R] .IP \[bu] 2 \f[CR]critical_fg\f[R] .IP \[bu] 2 \f[CR]info_bg\f[R] .IP \[bu] 2 \f[CR]info_fg\f[R] .IP \[bu] 2 \f[CR]alternating_tint_bg\f[R] .IP \[bu] 2 \f[CR]alternating_tint_fg\f[R] .IP \[bu] 2 \f[CR]separator_bg\f[R] .IP \[bu] 2 \f[CR]separator_fg\f[R] .IP \[bu] 2 \f[CR]separator\f[R] .IP \[bu] 2 \f[CR]end_separator\f[R] .IP \[bu] 2 \f[CR]start_separator\f[R].SS "جایگزینی‌های موجود آیکون (Available icon overrides)" این موارد را می‌توان مستقیماً روی یک رشته حاوی کدپوینت(های) یونیکد مورد نظر تنظیم کرد یا از یک توالی گریز (escape sequence) در TOML مانند \f[CR]\[dq]\[rs]uf0f3\[dq]\f[R] برای کدپوینت‌های حداکثر ۴\-نیبلی و \f[CR]\[dq]\[rs]U0001f312\[dq]\f[R] برای کدپوینت‌های حداکثر ۸\-نیبلی استفاده کرد. .PP می‌توانید کدپوینت‌ها را در مستندات فونت آیکونی که استفاده می‌کنید بیابید. .PP برای مشاهده فهرستی از آیکون‌های استفاده‌شده به مستندات هر بلوک، یا برای فهرست کامل آیکون‌ها به مجموعه‌آیکون‌های ارائه‌شده مراجعه کنید. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .SH "نسخه (VERSION)" v0.36.1 .ie \n(.g .ds Aq \(aq .el .ds Aq ' .SH "نویسندگان (AUTHORS)" Kai Greshake ، مشارکت‌کنندگان در GitHub (https, //github.com/greshake/i3status\-rust/graphs/contributors)