ویرگول
ورودثبت نام
Enriquette
Enriquetteسید محمد جواد تقی پور هستم، توسعه دهنده پایتون و جنگو، کاربر گنو/لینوکس و علاقه‌مند به کیبورد..
Enriquette
Enriquette
خواندن ۶ دقیقه·۵ سال پیش

مدیر پنجره‌ای به زبان پایتون، Qtile (بخش اول)

سلام من سید محمد جواد تقی پور هستم.

این اولین دفعه است که میخوام اینجا چیزی بنویسم، امیدوارم خوشتون بیاد و استفاده کنید.


قبل از اینکه شروع کنیم اول یسری چیزهارو بررسی کنیم:

توسعه دهنده یه مستند عالی از ساختار و نحوه تنظیم کردن Qtile در این لینک قرار داده که میتونید ازش استفاده کنید.

چه پیش نیاز هایی برای استفاده وجود داره

پایتون رو یکمی بلد باشید و با کلید های عملکرد H,J,K,L توی ویم آشنا باشید کفایت میکنه، برای بعضی عملکردهای معمول یکمی کار با ترمینال هم بلد باشید لازمه

تصویری از مدیر پنجره Qtile
تصویری از مدیر پنجره Qtile

مدیر پنجره چیه

ویکی پدیا:

مدیر پنجره (به انگلیسی: Window manager) نرم‌افزار سیستمی می‌باشد که وظیفه کنترل ظاهر و مکان پنجره‌های سامانه پنجره ای را در واسط گرافیکی کاربر بر عهده دارد.اغلب مدیر پنجره‌ها به منظور کمک برای ساخت محیط میزکار طراحی شده‌اند. مدیر پنجره در ادامه رابط‌های گرافیکی سطح پایین‌تر خود فعالیت می‌کند و ملزومات پشتیبانی از سخت افزارهای گرافیکی مانند وسایل اشاره‌ای مثلاً موشواره و صفحه کلید را فراهم میاورد و برای ساخت و نوشتن این ملزومات از ابزار ویجت بهره می‌برد.

خیلی ساده:

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


  • تفاوت مدیر پنجره و Desktop Environment(دسکتاپ) چیه
  • دسکتاپ، مجموعه‌ای از ابزارها و برنامه هاست. با نصب دسکتاپ عملا نیاز خاصی به نصب برنامه های جدید برای انجام کارهای معمول ندارید چون خیلی ازونهارو خودش داره. اما مدیر پنجره کارش فقط مدیریت پنجره هاست و هیچ برنامه‌ای رو همراه خودش نصب نمیکنه.

برای مثال، اگر شما گنوم رو نصب کنید این برنامه ها همراهش نصب میشه:

  • ویرایشگر متن: gedit
  • مدیریت فایل: nautilus
  • ترمینال:‌ gnome-terminal

و اگر KDE نصب کنید این برنامه ها همراهش نصب میشن:

  • ویرایشگر متن: kate
  • مدیریت فایل: dolphin
  • ترمینال:‌ konsole


  • در صورتی که فقط مدیر پنجره نصب کنید شما باید یسری برنامه رو خودتون نصب کنید،‌البته اینجوری مدیریت بیشتری روی برنامه هایی که روی سیستمتون نصب میشن دارین. اگر دسکتاپ دارین و کنارش مدیر پنجره نصب کنید میتونید از برنامه هایی که همراه دسکتاپ نصب میشه استفاده کنید.
  • چه در کنار مدیر پنجره، دسکتاپ نصب باشه و چه نصب نباشه،‌ بعضی عملکردهارو نیاز هست که خودتون تنظیم کنید. مثل کم و زیاد کردن نور صفحه و میزان صدا.


حالا بریم سراغ نصب و تنظیم Qtile

مدیر پنجره های زیادی وجود دارن که شما میتونید از هرکدوم که دوست دارین استفاده کنید. پیشنهاد میکنم مدیر پنجره‌ای رو نصب کنید که زبانی که باهاش نوشته شده براتون ساده باشه. منم چون پایتون بلدم از Qtile استفاده میکنم.

تفاوت اصلی مدیر پنجره ها در زبان برنامه نویسی که استفاده میکنن و ابزار های آماده‌ای که دارن هست.

نکته مهم: من روی ماشین مجازی و دو توزیع مختلف برپایه اوبونتو سعی کردم Qtile رو نصب کنم. باید یسری وابستگی هارو نصب میکردم تا در نهایت بشه Qtile رو نصب کرد. نمیدونم چیشد و متاسفانه محیط گرافیکی توزیع ازکار افتاد.
تنها توزیع های مبتنی بر آرچ هستن که Qtile رو داخل مخازن دارن و بدون مشکل نصب و راه اندازی میشه.

نصب Qtile در توزیع های مختلف

در توزیع های مبتنی بر آرچ

sudo pacman -S qtile

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

git clone https://github.com/qtile/qtile.git cd qtile pip install .

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

pip install qtile

حالا باید فایل تنظیمات پیش فرض رو در مسیر خودش کپی کنید:

mkdir -p ~/.config/qtile sudo cp /usr/share/doc/qtile/default_config.py ~/.config/qtile/config.py sudo chown $USER:$USER ~/.config/qtile/config.py

اگر فایل وجود نداشت میتونید محتویات این فایل رو در فایل config.py بریزید

وارد شدن به Qtile و شروع شخصی سازی
یکبار از سیستم خارج بشید(log out) و دوباره وارد بشید اما اینبار برای ورود، Qtile رو انتخاب کنید.

دقت کنید که ممکنه Qtile روی Wayland کمی ناپایدار باشه و بعضی از ابزارهاش کار نکنه.

اولین باری که وارد Qtile بشید با این صحنه روبرو میشید:

صفحه سیاه بعد از اولین ورود به Qtile
صفحه سیاه بعد از اولین ورود به Qtile

همونطور که میبینید فقط یک صفحه سیاه هست با یه نوار خیلی ساده پایین صفحه.

و این هم چیزی هست که من برای خودم تنظیم کردم:

تنظیمات ظاهری من برا Qtile
تنظیمات ظاهری من برا Qtile

برای خارج شدن از Qtile، روی گزینه [shutdown] که گوشه پایین سمت راست صفحه هست کلیک کنید. اینجوری بعد از اینکه شمارشگر تموم شد از محیط Qtile خارج میشید.
ممکنه بعد از اولین ورود به Qtile تصویر صفحه ورود تغییری نکنه و فقط نوار پایین اضافه بشه، در این صورت هر برنامه‌ای که باز کنید، بعد از بستن برنامه آخرین صحنه ازون برنامه به عنوان تصویر زمینه قرار میگیره. این مشکل تا زمانی توی تنظیمات تصویر زمینه رو تنظیم نکرده باشید رفع نخواهد شد.


کلید های میانبر پیش فرض

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

در اینجا منظور از کلید super، کلید meta یا همون کلید ویندوز هست

باز کردن ترمینال: super + enter

بارگذاری مجدد تنظیمات(برای وقتی که تنظیمات رو تغییر میدید): super + ctrl + R

بستن پنجره‌ی برنامه‌ها: super + W

فعال کردن لانچر برنامه‌ها: super + R


بریم که شخصی سازی رو شروع کنیم

اول ترمینال رو باز کنید، به مسیر زیر برید و فایل config.py رو با ادیتور دلخواهتون باز کنید

~.config/qtile/

خود Qtile سعی میکنه از طریقی ترمینال شمارو تشخیص بده و هربار که میخواید بازش کنید، چیزی که حدس زده رو باز میکنه. پیشنهاد من اینه که ترمینال مدنظرتون رو بهش بشناسونید. در فایل تنظیمات خط زیر رو پیدا کنید و پاک یا کامنتش کنید:

from libqtile.tuils import guess_terminal

چند خط پایین تر جایی که نوشته شده ()terminal = guress_terminal رو تغییر بدید

terminal = 'konsole'

بجای konsole، اسم ترمینال مدنظرتون رو قرار بدید.

شاید بخواید به برنامه مدیریت فایل و مرورگر هم یه میانبر اختصاص بدید، پس این خط هارو به تنظیمات اضافه کنید

file_manager = 'dolphin'
browser = 'firefox'

بجای dolphin و firefox، برنامه های مدنظرتون رو قرار بدید(قطعا میدونید که این برنامه‌ها باید روی سیستم نصب باشن)

در نهایت باید همچین چیزی داشته باشید:

mod = "mod4" #به این خط کاری نداشته باشید.قطعا به مشکل خواهید خورد terminal = 'konsole' browser = 'firefox' file_manager = 'dolphin'

تنظیم میانبرهای مهم

همونطور که قبلا گفتم نیاز دارید که یسری عملکردهارو خودتون تنظیم کنید، مثل کم و زیاد کردن نور صفحه و میزان صدا.

اول باید تشخیص بدیم هر کلید چه کدی داره. برنامه xbindkeys رو نصب کنید و یه ترمینال باز کنید و دستور زیر رو بزنید

xbindkeys -mk

یه پنجره سفید باز میشه که با هربار فشار دادن یک کلید، کد مربوط به اون کلید رو نشون میده، کلیدهای افزایش و کاهش صدا و کلیدهای افزایش و کاهش نور صفحه رو فشار بدید

برای من با فشار دادن کلید افزایش نور صفحه این خروجی نمایش داده میشه:

m:0x0 + c:223
XF86MonBrightnessUp

قسمت مهم برای ما XF86MonBrightnessUp هستش، برای همه‌ی کلیدهایی که نیاز دارید این کارو انجام بدید و کد هر کلید رو یادداشت کنید. با فشار دادن کلید q برنامه متوقف میشه.

این کد کلیدهایی هست که من بدست‌ آوردم و ممکنه برای شما متفاوت باشه

XF86AudioMute قطع و وصل کردن صدا
XF86AudioRaiseVolume افزایش صدا
XF86AudioLowerVolume کاهش صدا
XF86MonBrightnessUp افزایش روشنایی صفحه
XF86MonBrightnessDown کاهش روشنایی صفحه

حالا باید بریم و این میانبر هارو تنظیم کنیم. بدلیل اینکه این کار یکمی وقت گیره در قسمت بعد این کارو انجام خواهیم داد.

امیدوارم تا اینجای کار از این مطلب راضی بوده باشید.

پایتونلینوکسpythonlinux
۲
۰
Enriquette
Enriquette
سید محمد جواد تقی پور هستم، توسعه دهنده پایتون و جنگو، کاربر گنو/لینوکس و علاقه‌مند به کیبورد..
شاید از این پست‌ها خوشتان بیاید