السلام عليكم و رحمه الله و وبركاته و الصلاة و السلام على اشرف المرسلين محمد صلى الله عليه و سلم أما بعد .
مرحباً بكم بالمقال الثاني من سلسله #نوافذ_لينكساوي في المقال السابق تحدثنا عن كيفيه التحكم في النوافذ و ما هي اهم أو اكثر الاختصارات التي تحتاج معرفتها في مدير النوافذ i3wm…
و في هذا المقال سوف اركز على كيفيه تخصيص i3wm و أضافه اختصارتك الخاصة و غيرها من الأساسيات و الكماليات و سوف أعلمك كيفيه تحويله من
هذا :
إلى هذا :
جارٍ تحميل: info_theme.png…
انأ اعلم أن هذا الشرح استغرق وقت طويل جداً لكي انشره انأ اعتذر عن دالك لكن عمليه تعلمي لتخصيص i3wm لم تكن سهله بل وصل بي الحال لمشاهده مقطع فيديو با الأسبانية لكي افهم الفكرة من كل النواحي اعلم أن الأمر غريب لكن المحتوى الخاص با مدراء النوافذ يفتقر إلى التنظيم فتجد كل شخص ينشر نفس الموضوع با طريقه مختلفه (أو غير مكتملة في بعض الأحيان ) فتحتاج تدقق و تفهم ما هي الطريقة الصحيحة و المشهورة ببساطه لم يكن امرأً سهلاً لكن لا تخف لن أجعلك تمر بتجربتي الطويلة في تعلم كيفيه تخصيص مدير النوافذ سوف اختصر عليك الموضوع من ناحيه الأساسيات فقط وليس كل شيئ لكي تنطلق و تغوص وحدك فيما بعد و أيضاً من اجل دعم المحتوى العربي بما يخص مدير النوافذ, اقدر قراءتك لهذه المقدمة شكراً لك أو جراثيث يا الأسباني
حسناً دعنا ندخل في المهم هيا بنا…
أولاً : طريقه الشرح
لن اتبع طريقه معينه هادة المرة لكن سوف انظم و ارتب الشرح قدر الإمكان لأتفلق نقول
بسم الله
1- تجهيز i3wm لكي يتم تخصيصه
اعتقد انك لم تفهم ماذا اعني بهاده الخطوة حسناً تحتاج إلى أزاله i3wm من اجل تثبيت i3-gaps ولكن لماذا ؟؟؟
الفائدة منه هو أضافه بعض المميزات الجميلة و أهمها بل النسبة لي هي فرغات بين النوافذ مثل الصورة الأتية:
i3-gaps هو نسخه محسنه أو معدله من** i3wm**
سوف ترا أن هناك فراغات بين النوافذ و هدا يضيف طابع جميل جداً, رأي شخصي لن تشعر بجمال مدير النوافذ من دون هذا الفراغ البسيط، على فكره تقدر تزيد حجمه.
ملاحظة هامه:
هذا لا يعني أن التخصيصات التي سوف نقوم بها لا يمكن تنفيذها في i3wm العادي بل يمكن ذلك ولكن لا يمكن أن نضع فراغات بين النوافذ لذلك أن لم ترد تثبيت i3-gaps يمكنك ذلك في النهاية الأمر يعود أليك
تثبيت i3-gaps
أذا كنت تستخدم أي توزيعه غير مبنيه على ديبان أو أبنتو (أي توزيعه متدحرجه مثل, ارش فيدورا أوبن سوس فويد…الخ), كل ما عليك هو تثبيت i3-gaps من مدير الحزم الخاص بتوزيعتك يمكنك البحث في محركات البحث عن كيفيه فعل دالك, أما إذا كانت توزيعتك مبنيه على ديبان أو أوبنتو هنا عليك أن تبحث عن كيفيه تثبيته على توزيعتك قد تطر إلى بنائه مثل ما حصل معي في توزيعه pop os و Linux mint لكن لا تخف من دالك عمليه بنائه ليست صعبه فقط اتبع التعليمات الموجودة في صفحه i3-gaps في github , أدأ واجهت مشكله في التثبيت اخبرني في التعليقات
2- الحزم و الأدوات الأزمة
سوف تحتاج إلى حزم معينه و هي مستخدمه كثيراً في عالم مدراء النوافذ بل هي شبه أساسية فيه ف الأغلبية يستخدمها و هي مهمه لبناء بيئة عمل متكاملة (اعني سطح مكتب متكامل) و بعض هده الحزم غير مهم بشكل كبير, هذه الحزم ك الأتي :
ملاحظة: لن أضع طريقه تثبيت الحزم لأنها تختلف حسب اختلاف التوزيعة يمكنك البحث عن مصدر الحزمة الخاص بها لكي تستطيع معرفه طريقه تثبيتها لكن اغلب هذه الحزم مشهوره وسوف تكون موجوده في مدير الحزم الخاص بتوزيعتك (في الغالب), أما عن ماهي الحزم المهمة وغير المهمة انت من يحدد دالك من خلال قرائه وصف كل حزمه, انأ استخدم اغلب هده الحزم, أي حزمه سوف نستخدمها بشرح سوف اترك كلمه** مهم** بجانبها.
Rofi - مهم
هي عباره عن قائمة للتطبيقات أو لأي شئ أخرا (بعد تخصيصها) مثلا يمكنها أن تكون قأمه لنوافذ المفتوحة في مدير النوافذ فتختار من بين تلك النوافذ أو يمكن أن تكون قائمة لعرض خيرات الطاقة (أغادة تشغيل, أيفاق التشغيل…الخ), وغيرها من الأمور العديدة.
polybar - مهم
اسمه يدل على فائدته فهو شريط أدواة لكنه عملي بشكل مميز لأنة يعطيك أمكانيات تخصيص عديده كعرض استهلاك المعالج و الرام و مستوى سطوع و مستوى الصوت.
feh - مهم
هي حزمه بسيطه لكنها جميله بشكل جميل , ببساطه تستطيع من خلالها وضع خلفيه لمدير النوافذ , و أيضاً يمكنها عرض الصور.
picom - مهم
لا أستطيع شرحها جيداً لكن هي تسمح لك بإضافة ظلال إلى النوافذ و أضافه تأثيرات عند التنقل من مساحه عمل إلى مساحه عمل اخزي وعند فتح نوافذ جديده هذا ما استطيع شرحه.
dunst - مهم
هذه الحزمة من اجمل الأشياء الذي استخدمتها , هو مدير أشعارات يمكن تخصيصه لاستخدامه في أغراض عديده.
notify-send - مهم
هذه الحزمة تمكنك من إرسال أشغارات عبر الطرفية و محتوى الأشعار انت من يحدده
mpv - مهم
مشغل وسائط يعمل عبر سطر الأوامر و عبر واجهه رسومية وهو مفيد في كل الأخوال سواء لتخصيص أو للاستعمال كمشغل فيدو, كمثال لتخصيص تشغيل أصوات معينه عند القيام بأمر ما ك التقاط صوره لسطح المكتب
scrot - مهم
هي حزمه تسمح لك بأخذ لقطه شاشه لسطح المكتب الخاص بك أو لنافده معينه أو لجزئ معين تقوم بتحديده و سواء كان مدير نوافذ أو واجهه رسومية تعمل في كلاهما على الأغلب , الجدير بت الذكر هنا أنها خفيفه جداً.
flameshot
هو برنامج مشهور لأخذ لقطه شاشة , لكن ما يميزه عن scrot هو أنه يمكن من أضافه عناصر توضيحيه للاقطه الذي أخدتها مثل أضافه مربعات و دوائر و نص توضيحي وما شابه مفيد لصنع صور مع شرح داخلها.
kzcam, simpl screen recorder, blue recorder
برامج تصوير فيديو للشاشة ، للمصاداقيه لم اجرب كل هذه البرامج لكن هذه الأفضل بنسبه لي, استخدم simpl screen recorder بشكل أساسي
tty-clock – مهم للجماليه فقط
هي حزمه بسيطه و جميله فادتها أنها تعرض الوقت و التاريخ على الطرفية بشكل بسيط و جميل ( استخدمها عندما أريد أخد صوره جميله لمدير النوافذ فقط ههه ).
rangear
متصفح ملفات يعمل من خلال الطرفية.
thunar - مهم
متصفح ملفات يعمل من خلال واجهه رسومية ,خفيف بشكل ملحوظ.
nemo
متصفح ملفات يعمل من خلال واجهه رسومية, (لس خفيفاَ نوعاٌ ما, ولكنه حديث هدا ما يميزه استخدمه بشكل أساسي)
lxappearance - مهم
وظيفته مهمه, يسمح لك بتغير تيم ألGTK الخاص بالبرامج التي تعمل ب ألGTK و هي كثيره , و يسمح بتغيير أيقونات البرامج و أيقونات الفائرة و الخطوط ( التغيير في الخطوط قد لا يتم تطبيقه على كل البرامج في بعض الحالات ).
kvantum - مهم
وظيفته مهمه, يسمح لك بتغير تيم ألQT الخاص بالبرامج التي تعمل ب أل QT و هي كثيره أيضاً, لكنه لا سمح بتغيير أيقونات البرامج و أيقونات الفائرة هو مخصص لتطبيقات QT فقط.
ristretto
هو عارض صور بواجهه رسومية وهو عملي اكثر من feh من ناحية عرض الصور.
gnome-font-viewer - مهم
هو احد برامج واجهه جنوم استخدمه من اجل عرض الخطوط من خلال واجهه رسومية.
gnome-disks - مهم
هو احد برامج واجهه جنوم برنامج لأداره الأقراص و تقسيمها أو أعاده تسميتها وما شابه.
file-roller - مهم
هو برنامج لفك الضغط عن الملفات من خلال واجهه رسومية
mousepad , micro - مهم
هما عباره عن محرر نصوص و الاختلاف بينهما أن micro يعمل من خلال الطرفية وهو يستخدم نفس اختصارات المحررات المتقدمة و يٌمكنك من فتح عده ملفات و تحريرها في نفس الوقت و يٌمكنك من فتح الطرفية و كل هذا من دون واجهه رسومية فقط من خلال الطرفية , أماmousepad فهو محرر نصوص بواجهه رسومية يحتوي على اغلب الأمور الأساسية التي تحتاجها من اجل تحرير النصوص.
alacritty - مهم
هي طرفيه عاديه نوعاً ما ولكن ما يميزها هو قدرت على تخصيصها من خلال ملف تكوين خاص بها (سوف أشرح ما هو ملف التكوين لاحقاً)
zsh - مهم
هو مشغل shell و بديل جميل ل bash (لست متأكداً من صحه هذا التوضيح إذا كنت تمتلك توضيح افضل شاركنا به في التعليقات… ) ، لكن هو يسمح لك بتخصيص الطرفية بشكل اكبر عن طريق أضافه تيمات لها ، سوف نتطرق إلى كل ذالك لاحقاً.
i3lock, i3lock-fancy - مهم
i3lock هو حزمه تمكنك من قفل الشاشة باستخدام كلمه السر الخاصة بك الفرق بينهما هو الشكل, i3lock شكله بسيط جداً عباره عن خلفيه أو لون فقط انت من يحدد مسار الخلفية أذا أردتها, أما i3lock-fancy فهو يقفل الشاش بطريقه جميله ب استخدام تأثير ألblur
htop - مهم
هذه حزمه مهمه حيث أنها تعرض حاله الجهاز من ناحية استهلاك الرام و استخدام المعالج و البرمجيات المفتوحة ب الخلفية و يمكنك من أيقاف أي برمجيات تريدها و أموز أخرا.
neofetch - مهم للجماليه فقط
تعرض معلومات شامله عن التوزيعة و اهم مواصفات الجهاز بشكل عام.
cmatrix - مهم للجماليه فقط
حزمه جميله خفيفه الظل تمنحك شعور المخترقين كما في الأفلام ، عملها يقتصر على أضافه أحروف متغيره تظهر على شكل أمطار في الطرفية الغرض منها ب النسبة لي هو استخدامها عندما أخد صوره جميله لمدير النوافذ.
color-scripts - مهم للجماليه فقط
هي ليست حزمه هي مجر مجموعه سكربتات باش تستخدم لعرض الألوان الخاصة ب الطرفية بعده أشكال متنوعه و جميله, يمكنك تحميلها من المصدر الخاص بها من الرابط التالي:
cava - مهم للجماليه فقط
هو عباره عن عارض موجات صوتية متفاعل مع الصوت.
vlc - مهم
من افضل مشغلات الوسائط بشكل عام,
و هكذ نكون أنهينا أول خطوه بحمد الله و توفيقه
الخطوة التالية: تثبيت الخطوط اللازمة
في مدراء النوافذ الخطوط أمر مهم جداً أذا كنت مهتم ب التخصيص لان الخطوط التي سوف تقوم بتثبيتها هي عباره عن خطوط على شكل أيقونات فمثلاً بدل أن تكون مساحات العمل التي لديك مُسماه ب الأرقام يمكنك جعل مساحة العمل رقم 1 يكون أسمها على شكل أيفونه منزل أي أنها المساحة الرئيسية لديك و المساحة الثانية على شكل متصفح أي أنها مساحه التصفح و هكذا … ، و هذا الأمر يطفى جو من الترتيب و الجمال معاً.
أهم الخطوط التي يجب تثبيتها لكي لا تواجه المشاكل التي واجهتها بسبب الخطوط.
(web version and desktop version) Font Awesome 5
Icomoon
Iosevka
(web version and desktop version) Material Design
feather
Hack
Helvetica
SourceCodePro
Expo Arabic
هده اغلب الخطوط التي ستحتاجها, ابحث عنها في محركات البحث و ستجدها, عليك تحميل جميع أوزان الخطوط لكي لا تواجه مشاكل بسب الخطوط.
تثبيت الخطوط
كل ما عليك هو نسخ ملفات الخطوط إلى هذا المسار
home/UserName/.fonts
استبدل كلمه UserName باسم المستخدم الخاص بك, أو استبد home/UserName بعلامه ~ لان علامه**~** تعتبر اختصار لمسار المستخدم وهو home/UserName
ملاحظه
إذا لم تجد الملف تأكد من أظهار الملفات المخفية لأنة ملف مخفي, أذا أظهرت الملفات المخفية ولم تجده قم ب أنشاء ملف جديد بنفس الاسم وهو .fonts يجب وضع نقطه قبل كلمه fonts لأنها تعني أن هدا الملف مخفي
بعد دالك قم بتسجيل الخروج و تسجيل الدخول مره أخرا لكي يتم التعرف على الخطوط التي أضفتها, أذا لم يتعرف(تستطيع معرفه دالك عبر برنامج gnome-font-viewer ) عليها قم ب اعده تشغيل جهازك و سيتعرف عليها أن شاء الله **لن تحتاج إلى هده الخطوه ادا كان الملف موجود مسبقاً **
وهكذا انتهينا من تثبيت الخطوط اللازمة بحمد الله.
ثانياً : ماهي ملفات التكوين أو config ، وكيف استطيع ألاستفادة منها
هي ملفات… ,هل تعلم التعريف المعتاد ممل سوف اشرح الأمر بطريقه اخرى
حسناً سأحاول تبسيط الفكرة قدر الإمكان لكي أُسهل الأمر عليك, ستعرف معنها و فائدتها بعد قليل, افعل الأتي الآن:
أذا فتحت متصفح الملفات الذي لديك و ذهبت إلى مجلد ألhome الخاص بك وقمت بإظهار الملفات المخفية سوف تجد مجلد باسم config. و أن لم تجده قم بإنشاء ملف بنفس الاسم تذكر كتابه الاسم مع النقطة أي هكذا config. و هذا مسار ملف ألconfig. (في الغالب لن تحتاج إلى أنشاء واحد لأنة سوف يكون موجود مسبقاً فهو ملف مهم)
~/.config
حسنا بعد الدخول إلى ملف config/.
نحن في مرحله انتقالية نوعيه ألأن هههه ، أنا عندما ادخل إلى هذا المجلد اشعر أنني انتقلت إلى مكان أخر امزح طبعاً لا تخف.
التعامل مع ملفات التكوين config fill
سوف ابدأ بملف i3-gaps و سوف نشرح يكفيه أضافه اختصارات خاصه بك و كيفيه تخصيص ألوان حواف النوافذ الخاصة بi3 و كيف نستفيد من الحزم الذي ثبتناها و استعماله مع مدراء النوافذ بشكل عام و i3-wm بشكل خاص في هذا المقال
أولاً: ادخل إلى ملف ألcconfig. ثم سوف تجد ملف باسم i3 افتحه وسف تجد ملف نصي في داخله باسم config قم بفتحه , وهنا تبدأ مهمتنا…
** التعريف القادم لا يقتصر على ملف تكوين i3-gaps بل يمكن اعتباره تعريف شامل لملفات التكوين حسب وجهه نظري الخاصة, أتركك لتكمل القراءة:**
…هذا الملف يمكنك اعتباره كلوحه تحكم ولاكن من خلال نصوص وليس أزرار ,وهذا يقودٌنا إلى سوأل مهم ماهي ملفات التكوين وما الغرض منها ؟
**ببساطه لن أتعمق في الكلام سوف اجعل التعريف بسيط قدر الإمكان , ملفات التكوين أو ألconfig fill هي ملفات تعطي المستخدم مميزات تحكم بحزمه ما أو برنامج ما و لكل حزمه أو برنامج ملف تكوين خاص به و طريقه كتابه أوامر هذا الملفات تختلف من حزمه ل أخرا أو برنامج ل أخرا و هي ملفات مهمه جداً فهي تمنح المستخدم أدوات تحكم أو تخصيص ب الحزمة أو البرنامج عبر النصوص تسهل عليه الكثير من المهام و يمكنه أداء اكثر من مهمه في نفس الوقت من خلالها ولكل حزمه أو برنامج ملف تكوين افتراضي يكون في الغالب في ملفات الجدر و مساره / و الملف الذي تقوم انت ب إنشائه أو تعديله أو تخصيصه وما شابه ماهو ألا ملف فرعي في قسم المستخدم ومساره هو /home/UserName/.config و يتم استخدام هدا الملف من قبل الحزمة أو البرنامج أوتوماتيكياً و في كثير من الأحيان تحتاج إلى تعيين أو ضبط الحزمة أو البرنامج لاستخدام الملف الخاص بك من خلال أوامر الطرفية أو عبر واجهه البرنامج الرسومية,أتمنا أن يكون هذا التعريف كافي لكي يوصل فكره ملفات التكوين (إذا كان لديك تعريف افضل أو تصحيح للتعريف الذي كتبته , شاركني تصحيحك أو تعريفك في التعليقات)
ملاحظة: أنا لن اشرح كل شيئ, فقط سوف اشرح الأشياء التي سوف تحتاجها , عليك الاعتماد على وثائق البرامج و الحزم لمعرفه كل شيئ عن ملفات التكوين config file الخاصة بها, ويمكنك السؤال عن أي شيئ في التعليقات
.
حسناً دعونا نبدأ في التطبيق العملي لاستخدام ملفات التكوين.
كيفيه أضافه اختصارات مخصصه في i3-wm
**عليك اعده تحديث ملف التكوين الخاص ب i3-wm بعد كل أمر تقوم بإضافته عبر اختصار mod+shift+c أو mod+shift+r
هناك أومر مخصصه في ملف التكوين الخاص بi3-wm , و أول أمر سوف نستعمله هو أمر أنشاء اختصار خاص بك , يفضل البحث عن هده الأوامر قبل كتابتها ب نفسك لأنها قد تكون موجوده مسبقاً داخل الملف فقط كل ما عليك هو تعديلها أو كتابه هذه الأوامر التي سوف نضيفها في أخر سطر لكي تستطيع الوصول لها بسهوله إذا ارتكبت أي خطاء سوف ينبهك i3-wm عنه (يحصل هذا بعد تحديث ملف التكوين) لا تقلق فقط راجع الخطاء وقم برجوع خطوه للوراء ثم استمر.
أمر bindsym
هو أمر يمكنك من أنشاء اختصار خاص بك يقوم بأمر معين عند الضغط على الاختصار يتم تحديد هذا الأمر من قبلك
مثال , سوف نقوم بإنشاء اختصار يفتح مدير الملفات thunar:
bindsym $mod+F1 exec thunar
صوره توضح الأمر:
قيد المعالجة: 2009-01-01_03-54.png…
وصيغه الأمر الخاص به هو:
bindsym $الاختصار exec الأمر
عليك كتابه الأمر bindsym تم كتابه علامه أل**** ثم كتابه الاختصار ثم أمر **exec** ثم الأمر الذي تريد تنفيذه لا تحتاج إلى علامه أل**** ألا أذا كنت تستخدم زر mod
و أمر exec هي حزمه تقوم بتنفيذ الأوامر و هي حزمه منفصله ولاكن i3-wm يقوم بتثبيتها ك جزء من الاعتماديات الخاصة به, و في الغالب تكون موجوده في اغلب التوزيعات ذاتياً.
و بهذه الطريقة يمكنك أنشاء اختصارك الخاص و تنفيذ أي أمر تريده عبر اختصاراتك الخاصة
**ملاحظه:**لا يمكنك استخدام اختصارات محجوزه من قبل i3-wm
أمر exec_always
هو أمر يمكنك من تشغيل أمر معين عند تسجيل الدخول إلى i3-wm
فمثلاً إذا قمنا بوضع خلفيه لمدير ألنوفد من خلال feh عبر أمر من خلال الطرفية:
feh --bg-fill xxxxxxx
استبدل علامه ألx بمسار الصورة
لقد فهمت ألان كيفيه تعين خلفيه لمدير النوافذ , لكن سوف تلاحظ إذا سجلت الخروج من i3-wm لا تظهر الخلفية بسبب انه لم ينفد أمر وضع الخلفية.
و هنا يأتي دور أمر exec_always في ملف التكوين الخاص ب i3-wm فهو كما قلنا يمكنك من تفيد أمر معين عند تسجيل الدخول إلى i3-wm , يمكننا جعله ينفد أمر تعيين الخلفية بعد تسجيل دخولنا مباشره
و سوف يكون الأمر ك الأتي :
exec_always feh --bg-fill xxxxxxx
سوف نذكر بعض الحزم التي لابد من تنفيذها بعد تسجيل الدخول مباشره :
exec_always setxkbmap -layout us,ar -option grp:alt_shift_toggle
هذا أمر أضافه اختصار alt+shift لتغير اللغة ما بين العربية و الانجليزية.
exec_always feh --bg-fill xxxxxxx
أمر تعيين الخلفية, استبدل xxxxxxx ب مسار الصورة
وهناك أوامر اخرى لكن لن اكتبها ألأن لنها تحتاج شرح خاص بها
أمر تغيير حجم حواف النوافذ ** border normal/border pixel **
هذا الأمر يسمح لنا بتغير حجم حواف النوافذ و هناك طريقتان لعرض التغيير
مثلاً ذا اردنا أزاله الحواف علينا تغير قيمتها إلى none عبر الأمر التالي
for_window [class=“^.*”] border pixel none
تذكر هذا الأمر ينفد دائماً في كل مره تسجل الدخول إلى i3-wm
حسناَ أمر for_window لديه وظأف عديده ولكن لن أتطرق أليها بسبب أنها تعتبر أشياء غير أساسية وقد تربك قليلاً بسبب أنها كثيره و تحتاج إلى فهم أوسع قليلاً (يمكنك مراجعه الوثائق الخاصة ب i3-wm فهي تشرح الأمر بطريقه بسيطه) و جزى [class=“^.*”] هو تابع ل for_window و وظيفته هنا هو تنفيذ الأمر على كل النوافذ , أمر border pixel none فهو بسيط و يعبر عن نفسه بعد كلمه pixel تحدد برقم حجم حواف النوافذ إذا كنت لا تريد حواف ضع قيمتها none هناك أمر اخر وهو
border normal
وهناك فرق بينه و بين border pixel فأمر border normal و شكل الأمر كتالي :
for_window [class=“^.*”] border normal 3
يقوم بإضافة حواف مع شريط عنوان في اعلي النافدة كما في الصورة التالية:
أما أمر :
for_window [class=“^.*”] border pixel 3
يقوم بإضافة حواف من دون شريط عنوان في اعلي النافدة كما في الصورة التالية:
و يمكنك جعل أمر تعيين حجم النوافذ يعمل عبر اختصار لكن يجب عليك حذف جزى من الأمر و سيكون الأمر ك التالي :
bindsym $الاختصار border pixel/border normal قيمه
ملاحظه :
لا تقلق من تغيير حجم النوافذ عبر الاختصارات، فأمر
for_window [class=“^.*”] border pixel 3
الذي أضفته سيبقى الافتراضي و أي تغيير لحجم حواف النوافذ عبر الاختصار سوف ينفد ثم تعود حواف النوافذ لوضعها الطبيعي الذي قمت بتحديده بمجرد تحديث i3-wm عبر اختصار mod+shift+r أو تسجيل الخروج ثم العودة ل i3-wm, باختصار الأمر الذي يحتوي على for_window [class=“^.*”] هو الأمر الرئيسي أو القيمة الافتراضية أما بقيه الأوامر التي تنفد من خلال الاختصارات هي أوامر فرعيه.
مثلاً إذا كنت تريد وضع اختصار لعرض الحواف بدون شريط عنوان سيكون الأمر كتالي :
#SHOW BORDER
bindsym $mod+m border pixel 3
و إذا كنت تريد اختصار لحذف الحواف ب الكامل سيكون الأمر كتالي :
#NOT SHOW BORDER
bindsym $mod+Shift+m border none
و إذا كنت تريد اختصار لعرض الحواف مع شريط عنوان علوي سيكون الأمر كتالي :
#SHOW BORDER & TITLE WINDOW
bindsym $mod+n border normal 3
و إذا كنت تريد اختصار لعرض شريط عنوان علوي من دون حواف سيكون الأمر كتالي :
#NOT SHOW BORDER & SHOW TITLE WINDOW
bindsym $mod+Shift+n border normal 0
> تغير ألوان حواف النوافذ
**و ألأن **بعد أن شرحنا كيفيه التحكم في حجم حواف النوافذ و طريقه عرضها حان الوقت لنتعرف على شيئ ممتع وهو تغير الألوان الخاصة بحواف النوافذ و هذا الشيء يعطي القدر الأكبر من الجمالية لمدير النوافذ فقط بتغير ألوان الحواف تشعر انك غيرت جهازك ههههههه.
حسناً تغير الأوان أمر بسيط جداً فقط هناك جدول تستطيع أخدة من وثائق i3-wm وهو عباره عن مجموعه أوامر تخص ألوان حواف النوافذ و الجدول ك التالي :
Define Color Variables
set $bg-color #8fbcbb
set $text-color #000000
set $border-color #729796
set $inactive-bg-color #292e3d
set $inactive-text-color #D4D4D4
set $urgent-bg-color #D11234
set $urgent-text-color #FFFFFF
set $indicator #729796
Window Colors
Opetion Name # Border # Background # Text # Indicator
client.focused $bg-color $bg-color $text-color $indicator
client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-color $indicator
client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color $indicator
client.urgent $urgent-bg-color $urgent-bg-color $urgent-text-color $indicator
ملاحظه:
قد تجد نفس الجدول أو القيم موجوده مسبقاً في ملف تكوين i3 لدالك قم ب استبدالها ب الجدل الذي في الأعلى.
يصعب شرحه لأنه كثير المحتوى لكنه بسيط , هناك شيئ علي شرحه قبل الجدول وهو :
set
هو أمر يقوم بتخزين قيمه معينه , كما في لغات البرمجة ولكنه محدود كثيراً هنا , مثلا على شكل الأمر الخاص به :
set $text-color #000000
و نفسر الأمر كتالي كتبنا أمر set ثم علامه الدولار**$** ثم اسم المتغير text-color (سميته متغير على سبيل التشبيه لا اكثر) و بعد ذالك قيمه المتغير و في حالتنا هذه عبار عن رمز الهاش الخاص بالون الأسود #000000
حسناّ شرحنا وظيفه set , دعنا نعود للجدول…
كما ترا في جدول الألوان هناك الكثير من القيم المخزنة و هنا تكمن فائدة أمر set تخيل انك أردت تغير ألوان الحواف و انت لم تستخدم set لتخزين قيم الأوان سوف يتوجب عليك تغير كل قيمه على حده و هذا أمر متعب وغير عملي , لكن إذا استخدمت set سوف يتعين عليك تغير عدد محدود من القيم فقط , حسناً لنشرح الجدول ألأن :
Define Color Variables
هنا تأتي قيم الأوان الرئيسية :
set $bg-color #8fbcbb | لون الخلفية (يقصد به لون الحواف)
set $text-color #000000 | لون النص
set $border-color #729796 | لون حواف (لا يقصد به حواف النوافذ يفضل أن تضع له نفس قيمه لون الخلفية)
set $inactive-bg-color #292e3d | لون الخلفية عندما لا يكون التركيز عليها (يقصد به لون الحواف)
set $inactive-text-color #D4D4D4 | لون النص عندما لا يكون التركيز على النافذة الخاصة به
set $urgent-bg-color #D11234 | هذه القيمة تعطي لون مختلف لجزئ واحد من الخواف يمين أو يسار أو أعلى أو اسفل عند التحويل في أوضاع عرض النوافذ ك وضع التجانب و وضع التكدس فهو يظهر لك أين سوف تفتح النافدة التالية و سيكون اتجاهه حسب الوضع الذي اخترته
set $urgent-text-color #FFFFFF | لون النص الخاص بعنوان النافدة إذا صدر أشغار ما منها
set $indicator #729796 | لون حواف النافدة إذا صدر منها أشعار أو رسالة و يكون في وضع عدم التركيز مثلاً إذا جعلت تليجرام مفتوح في مساحه عمل ثم انتقلت إلى مساحه عمل أخرا و حاولت فتح تيليجرام سوف تجد انه يعطيك لون مميز على رقم مساحه العمل و إذا ضغط عليها سوف ينقلك أليها و سوف تجد أن لون حواف نافده تيليجرام قد ظهر بلون مختلف لثوني هذه القيمة خاصه بهذا اللون
Window Colors | هنا يتم تطبيق التغيرات
قبل أن نشرح هذا الجزء من الجدول انظر جيداً أننا نأخذ اسم قيم الذي حددناها عبر أمز set و يجب أن يسبق الاسم علامه الدولار
$ ضع القيم حسب الترتيب الموضح , الحواف, الخلفية, النص , لون التنبيه
Opetion Name # Border # Background # Text # Indicator
client.focused $bg-color $bg-color $text-color $indicator
هذا السطر خاص ب النوافذ التي عليها التركيز .
client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-color $indicator
هذا السطر خاص ب النوافذ التي عليها التركيز
client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color $indicator
هذا السطر خاص ب النوافذ التي لا يتم التركيز عليها انظر لنافده التي في اليسار في الصورة الأتية :
client.urgent $urgent-bg-color $urgent-bg-color $urgent-text-color $indicator
هذا السطر خاص ب بشكل النوافذ عند صدور أشعار خاص بها أو تنبيه يخصها (هذا الأمر يحدث للحظه بسيطه لم استطع أخد لقطه له لكن يفضل جعله بلون مميز)
و هكذا نكون شرحنا اغلب الأشياء الخاصة بحواف النوافذ من ألوان و حجم.
أضافه مساحه فارغه بين النوافذ
هذه الميزة لا يمكن تنفيذها ألا إذا كنت قد قمت بتثبيت i3-gaps كما قلنا سابقاً
أمز gaps inner/gaps outer
هذان الأمران بسيطا جداً
أمز gaps outer
بعد أضافه هذا الأمر لملف التكوين الخاص ب i3-gaps يتوجب عليك تحديث i3-gaps عبر اختصار mod+shift+r
هذا الأمر يقوم بأضفه فرغات حول النوافذ وليس بينها و الأمر كتالي :
gaps outer 50
تكتب أمر gaps outer ثم تعطيه قيمه الفراغات التي تريدها حول النوافذ و في حالتنا نسبه 50 هذه نسبه كبيره يمكنك وضع النسبة التي تريدها ولكن فقط لكي ترا كيف يعمل الأمر الصورة التالية توضح الأمر :
أمر **gaps inner **
هذا الأمر يضيف الفرغات بين النوافذ و فكره عمله نفس فكره عمل الأمر السابق هذه الصورة توضح الأمر :
وهده هي الأوامر الخاصة بالفراغات بين و حول النوافذ .
أمر title_align
هذا الأمر سيتحكم في مكان النص الخاص بعنوان ألنوفد، يمكن استخدامه في i3-wm العادي حسب ما اذكر، و شكل الأمر كتالي :
title_align center
نكتب أمر title_align ثم نعطيه قيمه المكان الذي نريده و في حالتنا هذه center و تعني في المنتصف و هناك قيمتان اخر هما : right وتعني يمين , left وتعني يسار, سيكون شكله كتالي :
وهكذا نكون انهينا اغلب الأمور المتعلقة ب النوافذ و حوافها و ألوان هذه الحواف.
البدا في تكوين بيئة سطح مكتب مناسبة
و اعني في هذه الخطوة انه سوف نبدأ في أنشاء قائمه تطبيقات و شريط سفلي و مدير أشغارات و هذه الأمور…
ملاحظة: لن أتطرق لشرح كل شيئ يخص ملفات التكوين config fill الخاصة ب البرامج التي سوف اشرحها لان المقال سوف يطول كثيراً , يمكنك معرفه كل شيئ عن ملفات التكوين الخاصة بأي برنامج أو حزمه من خلال الوثاق الخاص بها, عليك البحث يا صديقي.
استخدام ملفات sh
فكر معي قليلاً نحن قلنا أننا نستطيع تنفيذ أي مهمه عبر exec , يمكنك اعتبار exec كانها طرفيه (من حيث التعامل فقط, لا اعني دالك حرفياً) و الطرفية تمُكنك من تنفيذ ملفات sh و exec يمكنك من ذالك أيضاً.
قبل أن اشرح كيفيه التعامل مع ملفات sh أريد التنويه عن أمر مهم وهو كيفيه تنفيذ اكثر من أمر من خلال اختصار واحد
مثلاً:
إذا أردت فتح ثلاثة تطبيقات معاً عبر تنفيذ اختصار واحد ولتكن هذه التطبيقات ك الأتي :
thunar , firefox , lxappearance
سوف يكون الأمر كتالي :
bindsym $mod+g exec thunar, exec firefox, exec lxappearance
وهكذا نستطيع فتح ثلاثة برامج من خلال اختصار mod+g…
نكتب أمر أنشاء الاختصار ثم الاختصار bindsym $mod+g, ثم أمر exec ثم الأمر الذي تريد تنفيذه وفي حالاتنا برنامجthunar و بعد ذالك نضيف علامه الفاصلة , ثم أمر exec ثم الأمر الذي نريد تنفيذه ثانياً وهو firefox ثم نكرر الأمر نضع علامه فاصل , ثم أمر exec ثم الأمر الذي نريد تنفيذه وهو lxappearance و هكذا نكرر ما فعلناه وهو أضفاه علامه الفاصلة , ثم أمر exec ثم الأمر الذي نريد تنفيذه.
**لنعد ألأن إلى موضوعنا وهو كيفيه تنفيذ ملفات sh **
الأمر بسيط جداً جرب أنشاء ملف sh و سميه test.sh وكتب بداخله ألأتي :
#!/bin/bash
rofi -show drun
ثم احفظه في أي مكان يفضل أنشاء ملف داخل ملف i3 خاص ب ملفات sh لكي يسهل عليك الوصول لها، حسناً افتح الطرفية و ادخل للمسار الذي فيه الملف الخاص بناtest.sh عبر الطرفية ثم نفد ألأتي :
chmod +x test.sh
بعد ذالك عد لملف التكوين الخاص i3-wm و قم ب أنشاء اختصار يقوم بتشغيل ملف sh الذي إنشائه و ليكون هدا الاختصار هو mod+d ، وسيكون الأمر كتالي:
bindsym $mod+d exec bash ~/.config/i3/scripts/test.sh
قم ب تحديث ملف التكوين أو i3 ثم جرب الاختصار، و مبروك عليك أول مكونات سطح المكتب وهي قائمه تطبيقات يمكنك البحث عن التطبيقات و الاختيار منها عبر الأسهم في لوحه المفاتيح و فتحها من خلال التحديد على التطبيق ثم ضغط Enter و سيفتح التطبيق، قد يكون شكلها غير جميل نوعاً ما لا تقلق سوف نضيف ملف التكوين الخاص بها وجعلها تستخدمه و أيضاً لن نشغلها من ملف sh سوف نضيف أمر تشغيلها مباشره في ملف التكوين الخاص ب i3 و نفس الأمر مع بقيه الحزم و البرامج التي سوف نستخدمها.
حسناً ألأن ننتقل إلى اهم خطوه وهي ضبط البرامج و سكربتات sh لن اشرح في هده الخطوة كيفيه كتابه ملفات تكوين الخاصة ب الحزم التي سوف نستخدمها لأنها تحتاج لمقال اخر تماماً ، لنبدأ على بركه الله
تجهيز و تخصيص التطبيقات و الحزم للعمل في i3
حسناً سوف نحتاج إلى تحميل بعض الملفات الخاصة ب الحزم , يمكنك أخدها من مستودعي على GitHub أتشرف بزيارتك له اعطينا نجمه أخي القارئ انت كريم و نحن نستأهل ههههه، الرابط:
https://github.com/O-GAMES/Relax-dotfile-i3
بعد تحميل الملفات افتحه ثم قم ب نسخ الملفات التاليه الى مجلد .configالخاص بك، قم بنسخ الملف وليس محتواه, سوف اضعهم بمجلد اسمه زؤخىبهل :
ملف rofi
ملف polybar
ملف picom
ملف dunst
ملف alacritty
ملف neofetch إذا أردت دالك
انسخ هده المجلدات إلى ملف أل**.config** الخاص بك ضعهم هناك فقط لا تقم بوضعهم في مجلد اخر أو داخل مجلد i3.
ملف scripts سوف تجده داخل ملف i3 لا تقم بنسخ ملف أل النصي config الذي سوف تجده هناك قم بنسخ مجلد scripts إلى ملف أل
~/.config/i3 الخاص بك
سوف تجد خلفيه خاصه ب الثيم إذا أردت استخدمها انت تعرف كيف يمكن دالك.
و هناك أصوات استخدمها من اجل الثيم أرجو منك نسخها إلى مجلد
~/Music
، إذا لم تعجبك يمكنك تغيرها لا حقاً سأخبزك كيف تفعل دالك
هيا بنا نعود إلى ملف تكوين i3 الخاص بك، لن اشرح شيئ هنا ساكت الأوامر التي تتبعها فقط.
أول خطوه تشغيل rofi عبر اختصار mod+d
سيكون الأمر ك التالي:
bindsym $mod+d exec --no-startup-id rofi -theme ~/.config/rofi/launcher.rasi -show drun -show-icons
ثاني خطوه تشغيل polybar تلقائياً:
سيكون الأمر ك التالي:
exec_always ~/.config/polybar/launch.sh
ثالث خطوه تشغيل picom تلقائياً:
سيكون الأمر ك التالي:
exec_always ~/.config/i3/scripts/picom.sh
رابع خطوه تشغيل dunst تلقائياً:
سيكون الأمر ك التالي:
exec_always ~/.config/dunst/reload.sh
خامس خطوه تشغيل عبر اختصار mod+Shift+q
سيكون الأمر ك التالي: :
bindsym $mod+Shift+q exec ~/.config/rofi/menus/powermenu/powermenu.sh
سادس خطوه تغيير خط i3
ابحث عن هده الجملة font pango: سوف تجد بجانبها اسم خط ما استبدله بهدأ الخط** Expo Arabic Medium 12** سيكون الأمر كتالي:
font pango:Expo Arabic Medium 12
الرقم يعبر عن الخط أما Medium تعبر عن وزن الخط يمكنك تغيير وزنه مثال :
font pango:Expo Arabic Bold 12
غيرنا وزنه إلى Bold
سابع خطوه جعل طرفيه alacritty هي الطرفية الرئيسية
ابحث عن :
bindsym $mod+Return exec
سوف تجد بعد ألexec أمر خاص ب i3 استبدله ب, alacritty سيكون الأمر كتالي:
bindsym $mod+Return exec alacritty
تغيير اختصار قفل النوافذ من mod+Shift+q إلى mod+q
اختصار mod+Shift+q هو موجود مسبقا ابحث عنه سوف تجده هكذا
bindsym $ mod+Shift+q kill
قم بتغييره إلى :
bindsym $ mod+q kill
هداه الخطوة انت حر في تنفيذها أو لا , مهلا هل هدا يعني انك مجبر على كل ما فعلته ب الأعلى ؟ , من يدري ربما كنت كدالك ههههه امزح فقط اصبر بقي القليل.
تغيير اسما مساحات العمل
قم ب البحث عن workspace سوف تجد القسم الخاص ب مساحات العمل لا ادري كبف سيكون شكلها بنسبه لك لكن ادا كانت بشكل مختلف عن هذا
name workspace
set $ws1 “”
set $ws2 “”
set $ws3 " "
set $ws4 “”
set $ws5 “”
set $ws6 “”
set $ws7 “”
set $ws8 “”
set $ws9 “”
set $ws10 “”
open parograms in Ws $**, exec nameParogram
switch to workspace
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10
قم بنسخ هدا الجزى كله و استبدله ب الجزى الخاص بك أذا واجهت مشكله سينبهك i3 عند تحديثه, المهم انظر إلى
set $ws1 “”
ما بين أل "ْ” هو اسم مساحه العم أذا أردت تغيرها إلى نص أو رقم أو أيفونه قم ب استبدال ما بين القوسين, وبما أننا هنا لنجرب شياً ما
هدا الشيء هو :
تنفيذ أمر ما عند الانتقال إلى مساحه عمل ما
لنجعل الطرفية تعمل عند فتح مساحه العمل رقم 2
ابحث عن هدا السطر :
bindsym $mod+2 workspace $ws2
ضع فاصله بعد $ws2 ثم ضع الأمر الذي تريد تنفيذه ,نريد فتح الطرفية نضع alacritty سيكون الأمر كتالي:
bindsym $mod+2 workspace $ws2, alacritty
جرب الذهاب إلى مساحه العمل رقم 2 بعد تحديث i3 , سوف يفته الطرفية مباشره أليس هدا رائعاً, و يأتي شخص من أصحاب الواجهات يقول لك ما الجميل في مدير النوافذ كل شيئ يا صاحب الواجهة ههههه امزح صدقني الأمر مجرد تفضيل شخص فلولا اختلاف السلع لبارت الأسواق…
المهم هناك خطوه نسيتها وهي
أيقاف i3status
هو الشريط الافتراضي الذي يأتي مع i3 لا نحتاجه فلدينا polybar, ابحث عن :
bar {
سوف تجد علامه {} و بداخلها محتوى كبير ابحث عن نهاي أل {} وقم أما بمسحها أو وضع علامه # قبل كل سطر حتى تصل لنهيه أل{} وهكذا سيتوقف
أضافه صوت عند فعل أمر ما عن طريق mpv
لنقل عندما تفتح nemo يصدر صوت انت تحدده سيكون الأمر كتالي
bindsym $mod+F1, exec nemo, mpv --no-video xxxxx
يفترض انك تعرف مهو الاختصار هنا…
أمر تشغيل مقطع صوتي في mpv هو :
mpv --no-video xxxxx
استبدل علامات ألx ب مسار المقطع الصوتي مثلاً:
bindsym $mod+F1, exec mpv --no-video ~/Music/msg.mp3
أضافه قائمه ايموجي عبر اختصار**$mod+i**
سيكون الأمر كتالي:
bindsym $mod+i exec ~/.config/i3/scripts/emoji.sh
بعد اختيار الشكل الذي تريده اضغط Enter وسف يتم نسخه قم بضغط على اختصار Ctrl+v وسق يتم لصق الشكل و الايموجي الذي اخترته
أضافه قفل الشاشة عبر اختصار mod+x
سيكون الأمر كتالي:
bindsym $mod+x exec ~/.config/i3/scripts/lock.sh
لن يعمل أذا لم تثبت i3lock-fancy
سأتكلم عن notify-send بسرعه
أذا أزدت إرسال أشغار مع نص مخصص و أيفونه مخصص فقط افعل الأتي
notify-send -i ~/.config/dunst/icons/screenshot.svg ‘Screenshot window taken!’
بعد -i ضع مسار الأيقونة ثم علامه "text” استبدل text ب النص الذي تريده, أو أي معلومات يمكن استخراجها من الطرفية مثلا $USER يدل على اسم المستخدم جرب الأمر التالي:
notify-send -i ~/.config/dunst/icons/desktop.svg “مرحباً $USER”
سوف ترا اسم المستخدم الخاص بك مع كلمه
اختصارات لقطه شاشة كامله أو لنافده معينه
**التقاط صوره لسطح المكتب ب الكامل عبر اختصار Print **
سيكون الأمر عباره عن مجموعه أوامر لن اشرحه لأني شرحت اغلب متحوه من قبل, الأمر:
bindsym Print exec scrot -q 100 $HOME/Pictures/
date +%Y-%m-%d_%H:%M:%S.png , exec notify-send -i ~/.config/dunst/icons/screenshot.svg ‘Screenshot taken!’, exec mpv --no-video ~/Music/msg.mp3
يجب تثبيت scrot لكي يعمل, و يجب نسخ الأصوات التي أخبرتك عنها
**التقاط صوره للنافده التي يتم التركيز عليها عبر اختصار $mod+Print **
الأمر كتالي:
bindsym $mod+Print exec scrot -u -q 100 $HOME/Pictures/screen_shot/
date +%Y-%m-%d_%H:%M:%S.png , exec notify-send -i ~/.config/dunst/icons/screenshot.svg “Screenshot window taken!”, exec mpv --no-video ~/Music/msg.mp3
أذا أردت تغيير الأصوات قم بتغيير اسمها لنفس اسم الأصوات التي في المستودع الخاص بي و استبدلها هدا فقط, msg هو صوت التقاط لقطه شاشه أو نافده , و hello هو صوت ترحيب عند تسجيل الدخول, أدا أردت تغيير عباره الترحيب اذهب إلى هدا الملف:
~/.config/dunst/reload.sh
افتحه غير النص الذي في داخل علامه "”, أما $USER فهو متغير قيمته هي اسم المستخدم الخاص بك.
تبقا أخرا شيئ :
يرجا تحميل أيقونات Tela-black, و نقلها إلى هدا مسار:
/~/.icons
أذا لم تجده قم ب أنشاءه.
انتهينا من الأمور الأساسية.
أمور مفيده
وجدت ثيم gtk متوافق مع ألوان تخصيص اسمه :
kripton
حمله وقم بتنفيده عبر فتح :
lxappearance
قم بتحديده و ضغط Apply
اختصاراتي :
**bindsym $mod+F1 exec nemo
bindsym $mod+F2 exec firefox
bindsym $mod+F3 exec ~/Godot.64
bindsym $mod+F4 exec ~/Inkscape.AppImage
bindsym $mod+F5 exec ~/Gimp.AppImage
bindsym $mod+F6 exec codium
bindsym $mod+F9 exec lxappearance
bindsym $mod+F12 exec flameshot
**
وهنا ينتهي اكبر مقال كتبته في حياتي البسيطة, اللهم لك الحمد أن وفقتنا لمثل هدا.
خاتمه مهمه
اخبرني رأيك في الثيم الخاص بي ثيم RELAX, هدا المقال أخد مني وقت و جهد و كثير من الأمور لدالك أتمنا أن يستفيد منه الجميع, و هو يوصل فكره تجهيز أي مدير نوافذ الأوامر هي نفسها تقريباً فقط كيفيه تنفيذها عبر الاختصار و تنفيذها عند تسجيل الدخول و التحكم في النوافذ و حوافها وما ألي دالك عبر ملف تكوين مدير النوافذ الذي تستخدمه بعض الأحيان يكون ملف الاختصارات و ملف التكوين الخاص بمدير نوافذك منفصلين عن بعصهما ولكن يتم استدعاءئ ملف الاختصار في ملف التكوين الخاص بمدير نوافذك هدا ما يحدث في Bspwm كمثال… و هكذا,

