شما هنوز به سیستم وارد نشده اید.

#1 2017-04-15 21:39:45

mazhar
عضو
ثبت شده: 2016-08-01
ارسال ها: 251

i3 - bspwm

اگه تیتر این تاپیک براتون آشنا نباشه احتمال زیادی داره که محتوای این تاپیک به درد شما نخوره.
اینجا میخوایم کانفیگ ها و اسکریپت های مخصوص این نوع خاص از window manager های standalone رو قرار بدیم تا هم رفرنس و هم عامل ایجاد انگیزه باشه.

آفلاین

#2 2017-04-15 21:48:12

mazhar
عضو
ثبت شده: 2016-08-01
ارسال ها: 251

پاسخ: i3 - bspwm

یکی از مهم ترین مساله ها انتخاب bar هست، که من بعد از تست و امتحان چندین نوع مختلف به این نتیجه رسیدم از کانکی به صورت ویژه ای استفاده کنم تا بشه به عنوان bar استفاده کرد.
926201d08cf66b474df8ee1fea02c9bc.png
قسمت کانفیگ کانکی:

conky.text = [[
${execpi 1 /home/mazhar/.config/conky/battery}  ${execpi 1 /home/mazhar/.config/conky/brightness} ${execpi 1 /home/mazhar/.config/conky/volume}  ${execpi 1 /home/mazhar/.config/conky/kbled} ${color 99cccc} Cpu ${cpu cpu0} ${color ff6666} Temp $acpitemp ${color aa22aa} Wifi ${wireless_essid wlp59s0} ${color 6666ff} Mem $mem ${color ffff21} Time  ${execi 1 date +"%H:%M"}
]]

اولین و مهم ترین قسمت به نظرم اومد که قسمت باتری رو کانفیگ کنم. به این صورت که با تغییر وضعیت شارژ رنگ هم عوض بشه و در صورت وصل به برق علامت مربوطه ظاهر بشه (اصطلاحاً دینامیک).

#!/bin/bash
capacity=`cat /sys/class/power_supply/BAT0/capacity`
if [ "$capacity" -le "10" ]
then
        echo -n '${color '#ff6622'}[\#---------]'
elif [ "$capacity" -le "20" ] && [ "$capacity" -gt "10" ]
then
        echo -n '${color '#ee7722'}[\#\#--------]'
elif [ "$capacity" -le "30" ] && [ "$capacity" -gt "20" ]
then
        echo -n '${color '#dd8822'}[\#\#\#-------]'
elif [ "$capacity" -le "40" ] && [ "$capacity" -gt "30" ]
then
        echo -n '${color '#cc9922'}[\#\#\#\#------]'
elif [ "$capacity" -le "50" ] && [ "$capacity" -gt "40" ]
then
        echo -n '${color '#bbaa22'}[\#\#\#\#\#-----]'
elif [ "$capacity" -le "60" ] && [ "$capacity" -gt "50" ]
then
        echo -n '${color '#aabb22'}[\#\#\#\#\#\#----]'
elif [ "$capacity" -le "70" ] && [ "$capacity" -gt "60" ]
then
        echo -n '${color '#99cc22'}[\#\#\#\#\#\#\#---]'
elif [ "$capacity" -le "80" ] && [ "$capacity" -gt "70" ]
then
        echo -n '${color '#88dd22'}[\#\#\#\#\#\#\#\#--]'
elif [ "$capacity" -le "90" ] && [ "$capacity" -gt "80" ]
then
        echo -n '${color '#77ee22'}[\#\#\#\#\#\#\#\#\#-]'
else
        echo -n '${color '#66ff22'}[\#\#\#\#\#\#\#\#\#\#]'
fi

status=`cat /sys/class/power_supply/BAT0/status`
if [ "$status" == "Charging" ]
then
        echo -n '+${color}'
else
        echo -n '-${color}'
fi
echo -n " $capacity%"

و از فایل کانفیگ کانکی اینجوری صداش بزنین:

${execpi 1 /path/to/script/file}

و این بار نور صفحه کلید، که مقدارش رو میگیریم از فایل مربوط، و سپس رنگش رو بر اون اساس پر رنگ می کنیم (نور صفحه کلید من قرمز بود به همین دلیل قرمز انتخاب کردم برای رنگ، همخوانی داره قشنگه) و همچنین شاید آدرس فایل استفاده شده در اسکریپت و level های نور برای لپ تاپ شما متفاوت باشه:

#!/bin/bash
value=`cat /sys/class/leds/asus\:\:kbd_backlight/brightness`
if [ "$value" == 0 ]
then
        echo -n '${color '#cc2222'}Kb 00${color}'
elif [ "$value" == 1 ]
then
        echo -n '${color '#dd2222'}Kb 01${color}'
elif [ "$value" == 2 ]
then
        echo -n '${color '#ee2222'}Kb 10${color}'
elif [ "$value" == 3 ]
then
        echo -n '${color '#ff2222'}Kb 11${color}'
fi

نور صفحه ی زمینه:

#!/bin/bash
value=`xbacklight -get | awk '{print int($1+0.5)}'`
if [ "$value" -le "10" ]
then
        echo -n '${color '#666600'}Backlight [\#---------]'
elif [ "$value" -le "20" ] && [ "$value" -gt "10" ]
then
        echo -n '${color '#777700'}Backlight ${voffset -1}[\#\#--------]'
elif [ "$value" -le "30" ] && [ "$value" -gt "20" ]
then
        echo -n '${color '#888800'}Backlight ${voffset -1}[\#\#\#-------]'
elif [ "$value" -le "40" ] && [ "$value" -gt "30" ]
then
        echo -n '${color '#999900'}Backlight ${voffset -1}[\#\#\#\#------]'
elif [ "$value" -le "50" ] && [ "$value" -gt "40" ]
then
        echo -n '${color '#aaaa00'}Backlight ${voffset -1}[\#\#\#\#\#-----]'
elif [ "$value" -le "60" ] && [ "$value" -gt "50" ]
then
        echo -n '${color '#bbbb00'}Backlight ${voffset -1}[\#\#\#\#\#\#----]'
elif [ "$value" -le "70" ] && [ "$value" -gt "60" ]
then
        echo -n '${color '#cccc00'}Backlight ${voffset -1}[\#\#\#\#\#\#\#---]'
elif [ "$value" -le "80" ] && [ "$value" -gt "70" ]
then
        echo -n '${color '#dddd00'}Backlight ${voffset -1}[\#\#\#\#\#\#\#\#--]'
elif [ "$value" -le "90" ] && [ "$value" -gt "80" ]
then
        echo -n '${color '#eeee00'}Backlight ${voffset -1}[\#\#\#\#\#\#\#\#\#-]'
else
        echo -n '${color '#ffff00'}Backlight ${voffset -1}[\#\#\#\#\#\#\#\#\#\#]'
fi
echo -n " $value"
echo -n '${color}'

صدا (volume):

#!/bin/bash
value=`pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,'`
if [ "$value" -le "10" ]
then
        echo -n '${color '#226666'} Volume [\#---------]'
elif [ "$value" -le "20" ] && [ "$value" -gt "10" ]
then
        echo -n '${color '#227777'} Volume [\#\#--------]'
elif [ "$value" -le "30" ] && [ "$value" -gt "20" ]
then
        echo -n '${color '#228888'} Volume [\#\#\#-------]'
elif [ "$value" -le "40" ] && [ "$value" -gt "30" ]
then
        echo -n '${color '#229999'} Volume [\#\#\#\#------]'
elif [ "$value" -le "50" ] && [ "$value" -gt "40" ]
then
        echo -n '${color '#22aaaa'} Volume [\#\#\#\#\#-----]'
elif [ "$value" -le "60" ] && [ "$value" -gt "50" ]
then
        echo -n '${color '#22bbbb'} Volume [\#\#\#\#\#\#----]'
elif [ "$value" -le "70" ] && [ "$value" -gt "60" ]
then
        echo -n '${color '#22cccc'} Volume [\#\#\#\#\#\#\#---]'
elif [ "$value" -le "80" ] && [ "$value" -gt "70" ]
then
        echo -n '${color '#22dddd'} Volume [\#\#\#\#\#\#\#\#--]'
elif [ "$value" -le "90" ] && [ "$value" -gt "80" ]
then
        echo -n '${color '#22eeee'} Volume [\#\#\#\#\#\#\#\#\#-]'
else
        echo -n '${color '#22ffff'} Volume [\#\#\#\#\#\#\#\#\#\#]'
fi
echo -n " $value"

آخرین ویرایش توسط mazhar (2017-04-19 23:49:40)

آفلاین

#3 2017-05-31 13:11:59

mazhar
عضو
ثبت شده: 2016-08-01
ارسال ها: 251

پاسخ: i3 - bspwm

این یکی مخصوص bspwm:

533e8bea5f09eaaa14f20bcb0360023c.png

برای اینکه بدونین تو کدوم دسکتاپ هستین و تو کانکی نشونش بدین به این صورت عمل کنین:

اسکریپتی نوشتیم که query بده به کلاینت bspc و شماره دسکتاپو ازش بگیره و همچنین لیست همه ی دسکتاپ ها رو هم میگیریم که اگه ۱۰ دسکتاپ دارید خروجی به صورت زیر میشه:

0x00600003
0x00600004
0x00600005
0x00600006
0x00600007
0x00600008
0x00600009
0x0060000A
0x0060000B
0x0060000C

بعد اومدیم و تست کردیم که اگه دسکتاپ کنونی برابر یکی از اینا بود اون قسمت رنگی بشه و نمایانگر دسکتاپ فعلی باشه.

#!/bin/bash
desktops=`bspc query -D`
current=`bspc query -D -d focused`
counter="1"
for i in $desktops
do
	if [ "$i" == "$current" ]
	then
		break
	fi
	((counter++))
done

if [ "$counter" == "1" ]
then
	echo -n '${color '#299d19'}0001${color} 0010 0011 0100 0101 0110 0111 1000 1001 0000'
elif [ "$counter" == "2" ]
then
	echo -n '0001 ${color '#299d19'}0010${color} 0011 0100 0101 0110 0111 1000 1001 0000'
elif [ "$counter" == "3" ]
then
	echo -n '0001 0010 ${color '#299d19'}0011${color} 0100 0101 0110 0111 1000 1001 0000'
elif [ "$counter" == "4" ]
then
	echo -n '0001 0010 0011 ${color '#299d19'}0100${color} 0101 0110 0111 1000 1001 0000'
elif [ "$counter" == "5" ]
then
	echo -n '0001 0010 0011 0100 ${color '#299d19'}0101${color} 0110 0111 1000 1001 0000'
elif [ "$counter" == "6" ]
then
	echo -n '0001 0010 0011 0100 0101 ${color '#299d19'}0110${color} 0111 1000 1001 0000'
elif [ "$counter" == "7" ]
then
	echo -n '0001 0010 0011 0100 0101 0110 ${color '#299d19'}0111${color} 1000 1001 0000'
elif [ "$counter" == "8" ]
then
	echo -n '0001 0010 0011 0100 0101 0110 0111 ${color '#299d19'}1000${color} 1001 0000'
elif [ "$counter" == "9" ]
then
	echo -n '0001 0010 0011 0100 0101 0110 0111 1000 ${color '#299d19'}1001${color} 0000'
else
	echo -n '0001 0010 0011 0100 0101 0110 0111 1000 1001 ${color '#299d19'}0000${color}'
fi

آخرین ویرایش توسط mazhar (2017-05-31 13:14:05)

آفلاین

#4 2017-07-10 14:25:49

mazhar
عضو
ثبت شده: 2016-08-01
ارسال ها: 251

پاسخ: i3 - bspwm

برای استفاده از چند مونیتور میتونید از ابزار های مختلف استفاده کنید، ولی ما عشقمون اینه که از ابزار های موجود بتونیم کار رو راه بیندازیم. xrandr ابزاری پایه برای کار با مونیتور ها و خروجی هاشونه و من ازش استفاده کردم تا بتونم با دو کلید میانبر کیبورد بین حالت دو مونیتوره و تک مونیتوره سویچ کنم (به جای اینکه هربار arandr رو باز کنم و کانفیگ کنم یا اینکه دستور طولانی داخل اسکریپت رو رو هربار از نو بزنم). برای این کار دو اسکریپت زیر رو نوشتم:

#!/bin/sh
xrandr --output HDMI-1 --off --output DP-1 --mode 1920x1080 --pos 1920x0 --rotate normal --output eDP-1 --primary --mode 1920x1080_60.00 --pos 0x0 --rotate normal --output HDMI-2 --off
~/bin/wallpaper.sh
#!/bin/sh
xrandr --output HDMI-1 --off --output DP-1 --off --output eDP-1 --primary --mode 1920x1080_60.00 --pos 0x0 --rotate normal --output HDMI-2 --off

همونطور که میبینید به یک اسکریپت دیگه هم ارجاع شده (برای تنظیم تصویر پس زمینه (چون بعد از ست کردن مونیتور ها لازمه که دوباره feh تصویر رو برای هردو مونیتور ست کنه)). دلیل دیگه برای اینکار اینه که توی کانفیگ i3 یا bspwm هم اگه این اسکریپت رو صدا بزنید از این به بعد برای تغییر پس زمینه فقط کافیه این اسکریپت رو تغییر بدید:

#!/bin/bash
feh --bg-fill ~/SS/Picture/WallPaper/blurry_purple_blue.jpg

smile

آفلاین

#5 2017-07-10 14:38:10

mazhar
عضو
ثبت شده: 2016-08-01
ارسال ها: 251

پاسخ: i3 - bspwm

برای کلید های افزایش و کاهش صدا:

برای افزایش محدودیت قائل میشیم که volume از ۱۰۰درصد بیشتر نشه:

#!/bin/bash
value=`pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,'`
if [ "$value" -le 95 ]
then
	pactl set-sink-volume 0 +5%
	paplay /usr/share/sounds/freedesktop/stereo/audio-volume-change.oga
fi
#!/bin/bash
pactl set-sink-volume 0 -5%
paplay /usr/share/sounds/freedesktop/stereo/audio-volume-change.oga

آفلاین

پانوشت انجمن

پشتیبانی توسط تیم آرچ لینوکس ایران و نیرو گرفته با FluxBB