استفاده open*pn در i3wm

دوستان شما چطوری از قند شکن داخل i3wm استفاده میکنید.

من دیگه i3 استفاده نمی کنم. ولی فرقی با محیط های دیگه نداره. networkmanager ی که می خوای رو اجرا کن و تنظیمش کن همین

2 Likes

بذار فکر کنیم یه فایل کانفیگ داریم به نام uk.conf.
فایل uk.conf رو گذاشتم توی /etc/openvpn/client/.
یه فایل دارم که یوزرنیم و پسوردم به این شکل توش نوشته شده:

my_username
my_password

با نام auth.txt توی همون دایرکتوری میذارمش، بعد داخل فایلهای uk.conf یه خط اضافه میکنم (همون بالا، قبل از کلیدهای CA و CERT):

auth-user-pass /etc/openvpn/client/auth.txt

و اینطوری روشن و خاموشش میکنم:

sudo systemctl start [email protected]
sudo systemctl stop [email protected]

توی manpage توضیحات خیلی زیادی داده شده و اینکه auth-user-pass چی هست هم همونجا گفته شده.


حالا راحتتر کردن زندگیمون:
اگه از py3status استفاده میکنید، یه ماژول داره به نام systemd من ازش استفاده میکنم برای روشن خاموش کردن openvpn.
توی فایل ~/.config/i3status/config این خط رو اضافه کنید:

order += "systemd vpn"

و پایینتر هم اینو:

systemd vpn {
  unit = '[email protected]'
  on_click 1 = 'exec sudo systemctl start [email protected]'
  on_click 3 = 'exec sudo systemctl stop [email protected]'
  color_good =      '#DED'
  color_bad  =      '#000'
  color_degraded =  '#000'
  format =  "<span background='#080' color='#DED'>  </span>"
  format += "<span color='#080' background='#444'></span>"
  format += "<span background='#444'>{status} </span>"
}

توی بخش format یه خورده استایل دادم که این شکلی بشه:
2020-08-05-170351_1920x1200_scrot
بقیش هم که مشخصه.

حالا با چپ‌کلیک و راست‌کلیک میشه روشن و خاموشش کرد.
فقط یه مساله‌ای هست. اونم اینه که اجرا کردن این کامندهایی که تعریف کردیم، نیاز به دسترسی root داره. یعنی اگه توی ترمینال اینا رو بزنیم، ازمون پسورد میپرسه. و وقتی i3status داره اینارو اجرا میکنه، password prompt رو نمیبینیم (و البته دلمون نمیخواد که همش پسوردمونو تایپ کنیم موقع روشن و خاموش کردن این دیمن)

برای اینکه بشه یه کامندی رو (چه توی ترمینال و چه از طریق i3status) اجرا کرد بدون نیاز به زدن پسورد، باید توی فایل /etc/sudoers این دو خط رو اضافه کنید:

pouya   ALL=NOPASSWD: /bin/systemctl start [email protected]
pouya   ALL=NOPASSWD: /bin/systemctl stop [email protected]

(مسلما به جای pouya یوزرنیم خودتون رو بنویسید)

3 Likes