روزی، روزگاری با i3 - استفاده از conky در نوار ابزار i3
قبلاً از i3-bar و i3-status حرف زدیم و دیدیم کلی ابزار جایگزین برای نمایش اطلاعات سیستم در i3bar وجود داره. یکی از اون ابزارها conky دوست داشتنیه که دستتون رو برای ساخت یه نوار اطلاعات کامل باز میگذاره.
این اسکرینشات رو ببینید:
برای استفاده از conky به جای i3status اول فایل کانفیگ i3 رو باز کنید و قسمت bar رو این طوری تغییر بدید:
bar {
status_command ~/.i3/conky/conky-i3bar }
}
البته میتونید بعضی تنظیمات دیگه رو هم اضافه کنید:
bar {
tray_output primary
position top
status_command ~/.i3/conky/conky-i3bar
colors {
background #24364F
statusline #CCCCCC
focused_workspace #ffffff #f65314
active_workspace #cccccc #333333
inactive_workspace #333333 #4c7093
urgent_workspace #ffffff #900000
}
}
خب حالا پوشهی conky رو در مسیر i3./~ بسازید و بعد داخلش یه فایل با نام conky-i3bar با محتوای زیر ایجاد کنید:
#!/bin/sh
# Send the header so that i3bar knows we want to use JSON:
echo '{ "version": 1 }'
# Begin the endless array.
echo '['
# We send an empty first array of blocks to make the loop simpler:
echo '[],'
# Now send blocks with information forever:
exec conky -c $HOME/.i3/conky/conky.conf
حالا فایل conky.conf رو بسازید:
### Conky configuration file
## Output is printed to the console -> i3bar
## No output to X <yes/no>
out_to_x no
## Create own window to draw <yes/no>
own_window no
## Print everything to console?
out_to_console yes
## Use double buffering (reduces flicker, not needed for console output)
double_buffer no
## Set to yes if you want Conky to be forked in the background
background no
## Update interval in seconds
update_interval 0.5
## This is the number of times Conky will update before quitting.
## Set to zero to run forever.
total_run_times 0
## Shortens units to a single character (kiB->k, GiB->G, etc.). Default is off.
short_units no
## How strict should if_up be when testing an interface for being up?
## The value is one of up, link or address, to check for the interface
## being solely up, being up and having link or being up, having link
## and an assigned IP address.
if_up_strictness address
## Add spaces to keep things from moving about? This only affects certain objects.
## use_spacer should have an argument of left, right, or none
use_spacer none
## Force UTF8? note that UTF8 support required XFT
override_utf8_locale no
## number of cpu samples to average
## set to 1 to disable averaging
cpu_avg_samples 2
pad_percents 2
## Stuff after 'TEXT' will be formatted on screen
TEXT
# JSON for i3bar
[\
{"full_text": ${if_mpd_playing} "MPD","color": "\#268BD2"},
{"full_text": "${mpd_artist 20} - ${mpd_title 30}","color":"\#FFFF00"},
$else""},$endif
{"full_text": " CPU: [$cpubar]$acpitemp°C","color": "\#DC322F"},
{"full_text": " MEM: [$membar] ", "color":"\#B58900"},
${if_up wlp68s0}{"full_text": " NET: ${wireless_essid wlp68s0} [${wireless_link_qual_perc wlp68s0}%] ","color":"\#33CC99"},
$else${if_up ppp0}{"full_text": " orange ","color":"\#33CC99"},
$else${if_up enp4s0}{"full_text": " enp4s0 ","color":"\#33CC99"},
$else{"full_text": " ≈ no connection ","color":"\#33CC99"},$endif$endif$endif
{"full_text": " BATT: [$battery_percent%] ","color":"\#9933CC"},
{"full_text": " ${time %a %d %b} ${time %H:%M} "}
],
حالا خط به خط توضیح میدم چطور کار میکنه:
{"full_text": ${if_mpd_playing} "MPD","color": "\#268BD2"},
{"full_text": "${mpd_artist 20} - ${mpd_title 30}","color":"\#FFFF00"},
$else""},$endif
این قسمت مربوط به اطلاعات موزیک در حال پخشه که توی تصویر با رنگ زرد میبینیدش. من برای پخش موزیک از ncmpcpp استفاده میکنم که اینجا در موردش نوشتم.
{"full_text": " CPU: [$cpubar]$acpitemp°C","color": "\#DC322F"},
این خط هم مربوط به نمایش درصد استفاده از cpu و دمای اون میشه. من به جای عدد از یه بار استفاده میکنم: [cpubar$] . برای نمایش عدد به جای بار هم میتونید از این دستور استفاده کنید:
[$cpu%]
دستور acpitemp$ هم دمای CPU رو نشون میده.
{"full_text": " [$membar] ", "color":"\#B58900"},
این خط هم مربوط به استفاده حافظه سیستمه که باز برای نمایش اعداد به جای بار میتونید از این استفاده کنید:
[$mem%]
${if_up wlp68s0}{"full_text": " NET: ${wireless_essid wlp68s0} [${wireless_link_qual_perc wlp68s0}%] ","color":"\#33CC99"},
$else${if_up ppp0}{"full_text": " orange ","color":"\#33CC99"},
$else${if_up enp4s0}{"full_text": " enp4s0 ","color":"\#33CC99"},
$else{"full_text": " ≈ no connection ","color":"\#33CC99"},$endif$endif$endif
چهار خط بالا مربوط به نمایش وضعیت اتصال به اینترنته. اگه از wireless استفاده میکنید اول با iwconfig اسم interface وایرلس خودتونو پیدا کنید و به جای wlp68s0 بنویسیدش.
{"full_text": " BATT: [$battery_percent%] ","color":"\#9933CC"},
این خط اطلاعات باتری سیستم رو نمایش میده.
{"full_text": " ${time %a %d %b} ${time %H:%M} "}
و خط آخر هم مربوط به نمایش تاریخ و ساعته.
خب کارمون با این کانفیگ تموم شد. توی اینترنت دنبال conky بگردید تا بار خودتون رو با ابزارهای بیشتری بسازید. من از بار شلوغ خوشم نمیاد پس همینا برام کافیه. در ادامه چند تا نمونه کاربرد دیگه براتون میگذارم.
{ "full_text": "root: ${fs_free /}" },\
{ "full_text": "home: ${fs_free /home}" },\
نمایش فضای خالی پارتیشنهای root و home
{ "full_text": "⚡: ${battery_percent}% - ${battery_time} (${exec cat /sys/class/power_supply/BAT0/status})", "color":\
${if_empty ${exec cat /sys/class/power_supply/BAT0/status | grep 'Discharging'}}"\#00FF00"\
${else}${if_match ${battery_percent}<20}"\#FF0000"\
${else}${if_match ${battery_percent}<50}"\#f4e71a"\
${else}"\#cccccc"${endif}${endif}${endif}},\
نمایش اطلاعات باتری با سه رنگ
{ "full_text": "temp:${exec sensors | grep 'Core 0' | cut -c16-19 | sed '/^$/d' }°C ", "color": ${if_match ${exec sensors | grep 'Core 0' | cut -c16-19 | sed '/^$/d'}>70}"\#FF0000"${else}"\#00CC00"${endif} },\
نمایش دمای CPU با سه رنگ
{ "full_text": " D: ${downspeed wlp68s0} U: ${upspeed wlp68s0} T: ${totaldown wlp68s0}" },
نمایش ترافیک مصرفی اینترنت
${if_match "${exec xset q | grep 'Caps Lock' | sed 's/.*Caps Lock:[ ]*\([^ ]*\).*/\1/'}"=="on"}
{ "full_text": "CapsLock", "color": "\#00CC00" },\
${endif}
نمایش روشن بودن Caps Lock
برای نمایش میزان صدای سیستم من از یه اسکریپت استفاده میکنم. اول یه فایل با نام volumelevel.sh بسازید بعد این خطوط رو توش بنویسید.
#!/bin/bash
vol=`amixer get Master | awk -F'[]%[]' '/%/ {if ($5 == "off") { print "Mute" } else { print $2"%" }}' | uniq | head -1`
echo "$vol"
حالا توی conky.conf این خطوط رو اضافه کنید:
{ "full_text": "♫: ${exec ~/.i3/conky/volumelevel.sh}", "color": ${if_empty ${exec ~/.i3/conky/volumelevel.sh | grep 'Mute'}}"\#cccccc"${else}"\#ffff00"${endif} },\
امیدوارم این مطلب به دردتون بخوره. شما هم اسکرینشات خودتون رو به اشتراک بگذارید.
این پستها را هم ببینید:
روزی، روزگاری با i3 - پیکرهبندی اولیه
واقعا بعد از اون راهنما این پست میچسبه . بعد از کلی کلنجار رفتن با اون کانفیگ ها که در جریانش هستی
بالاخره به مدد این پست تونستم تنظیمات چندتا از اون ها رو که کانکی داشتند اعمال کنم .
اما یه سوال : محیط i3 حالت ساده ای داره که وقتی مثلا ناتیلوس یا فایرفاکس و خیلی از برنامه های دیگه
رو توش اجرا میکنی ظاهرشون زخمت هست و با اون حالت minimalist جور در نمیان . آیا راهی هست قیافه
این برنامه ها رو عوض کنیم یا جایگزین ساده ای براشون توی i3 هست ؟
متشکرم