• בלוג
  • האם Openbox הוא מנהל החלונות המושלם?

האם Openbox הוא מנהל החלונות המושלם?

26/09/2021

אחרי תקופה ארוכה עם i3 ו gnome לסירוגין התחלתי לגלות את Openbox, שנראה שמצליח לפתור את כל הבעיות שהיו לי עם השניים הקודמים. הנה בקצרה הדברים ש Openbox עושה נכון עבורי וקצת קונפיגורציה למי שרוצה להתחיל לשחק איתו.

1. מה הבעיה שלך עם i3?

כשרק עברתי ללינוקס השקעתי הרבה (מאוד) זמן בלימוד וקונפיגורציה של i3 ובאמת חשבתי שהקונספט של Tiling Window Manager הוא חיסכון גדול בזמן ומחשבה. והוא באמת כזה לתוכניות מסוימות אבל עם הזמן מסתבר שלא לכל התוכניות: זום, תוכנות מסרים מיידיים, מנהל קבצים - כל אלה עובדים טוב יותר בתור חלונות קטנים ומודאליים שמרחפים מעל החלונות הקיימים כשצריך אותם ונעלמים כשלא צריך אותם.

ל i3 יש תמיכה בחלונות צפים אבל היא מוגבלת. זום אף פעם לא עבד לי שם טוב וחלונות נעלמו כל הזמן, וגם תוכנות אחרות התנהגו בדרכים יצירתיות מדי פעם. בתיאוריה אפשר לעשות הרבה עבודת הכנה ולהגדיר מראש איזה חלונות צריכים להיות תמיד צפים ואיזה צריכים להיות תמיד Tiled, אבל בפועל זה עבד רק רוב הזמן.

בעיה נוספת שהיתה לי עם i3 קשורה למעבר בין Workspaces. מאחר וכל מסך מחולק לאריחים אז עשיתי לי הרגל לשים אפליקציות מסוימות ב Workspaces מסוימים. הבעיה שאני לא הבן אדם הכי מסודר בעולם ומהר מאוד האפליקציות היו מוצאות את הדרך ל Workspaces אחרים - וכך מצאתי את עצמי משוטט בין Workspaces למצוא את החלונות שרציתי.

בסופו של דבר אחרי חודשים עם i3 הוא לא הוכיח תרומה משמעותית לפרודוקטיביות שלי. את המסוף ממילא אני יודע לחלק לאריחים באמצעות tmux, ושאר התוכנות עבדו יותר טוב בתור חלונות צפים.

2. מה הבעיה שלך עם gnome?

אחרי שהאסימון לגבי i3 נפל עברתי לחפש מנהל חלונות "שגרתי" יותר וכמובן שנפלתי על gnome. עכשיו גנום של אובונטו באמת מעולה: יש לו את ה gnome shell עם המון יכולות ותוספים, ואפשר להגדיר שם מיפויי מקשים בקלות ובאמת להתאים את המראה וההתנהגות בדיוק למה שאתם צריכים. אחרי שסידרתי את כל החלונות במקום ולמדתי את קיצורי המקשים כבר הייתי מוכן לחתום עם גנום על התחייבות שימוש לעשר שנים.

אבל אז הוא נזכר לספר לי שכששמים כל כך הרבה יכולות במנהל חלונות אז גם צריכת הזיכרון לאט לאט תעלה, ושכשנותנים לכל אחד לכתוב תוסף ל gnome-shell אז חלק מהתוספים האלה יהיו גרועים וישברו דברים במקומות אחרים ורחוקים.

בהתחלה חשבתי לוותר על תוספים אבל בלעדיהם אפשרויות הקסטומיזציה של גנום יחסית מוגבלות. אחרי זה חשבתי שאני יכול לחיות עם התוספים ופשוט לעשות Restart ל Session כל כמה ימים. בסוף המשכתי הלאה בחיפושים.

3. שלום Openbox

וככה הגעתי ל Openbox שהוא שילוב מעניין בין השניים: מצד אחד מנהל חלונות מינימליסטי, בעל קובץ קונפיגורציה מרכזי אחד ובלי שום "קישוטים", אבל מצד שני סטנדרטי בגישה שלו לחלונות ולא מסדר אותם בשבילכם. פשוט אבל עובד.

כרגע הבעיה היחידה שלי עם אופנבוקס היא הממשק ב Alt Tab (כלומר המעבר בין חלונות) שמציג את החלונות אחד מתחת לשני במקום אחד ליד השני.

4. קצת קונפיגורציה

בשביל ליהנות מאופנבוקס הייתי צריך ממש מעט שינויים מהקונפיגורציה הסטנדרטית. באופן רגיל קבצי ההגדרות נשמרים בתיקיית ~/.config/openbox. קובץ ההגדרות הראשי נקרא rc.xml ויש גם קובץ בשם autostart שקובע איזה יישומים ייפתחו כשתיכנסו למערכת. אגב בנוסף אליו אופנבוקס גם קורא את רשימת היישומים מ ~/.config/autostart ויריץ גם אותם.

ב autostart שלי שמתי רק שורה אחת שמפעילה את xfce4-panel :

/usr/bin/xfce4-panel &

כי אופנבוקס עצמו מגיע בלי פאנל ואני כן רגיל לאחד.

ב rc.xml כבר הוספתי קצת יותר קונפיגורציה בעיקר בחלק של ה keyboard כדי למפות מקשים חשובים. אלה המיפויים המרכזיים שהוספתי:

    <keybind key="A-space">
      <action name="Execute">
          <command>/home/ynon/bin/switchkblayout.sh</command>
      </action>
    </keybind>

    <keybind key="W-Left">
      <action name="Unmaximize"/>
      <action name="MoveResizeTo">
        <x>0</x>
        <y>0</y>
        <width>50%</width>
        <height>100%</height>
      </action>
    </keybind>
    <keybind key="W-Right">
      <action name="Unmaximize"/>
      <action name="MoveResizeTo">
        <x>-0</x>
        <y>0</y>
        <width>50%</width>
        <height>100%</height>
      </action>
    </keybind>
    <keybind key="W-Up">
      <action name="Maximize"/>
    </keybind>
    <keybind key="W-Down">
      <action name="Unmaximize"/>
    </keybind>

    <keybind key="XF86MonBrightnessUp">
      <action name="Execute">
        <command>brightnessctl set +2000</command>
      </action>
    </keybind>

    <keybind key="XF86MonBrightnessDown">
      <action name="Execute">
        <command>brightnessctl set 2000-</command>
      </action>
    </keybind>

זה מתחיל בכפתורי ה Winkey+חץ כדי לתפוס את חצי המסך הימני או השמאלי, Winkey+למעלה כדי למקסם את החלון ו Winkey+למטה כדי לבטל את המיקסום. אחר כך שני כפתורי הבהירות (יש לי אותם במקלדת) כדי לשלוט בתיאורה האחורית של המסך באמצעות תוכנת brightnessctl.

למרות ש xml הוא עדיין דרך מיושנת לתאר קונפיגורציות, קובץ ההגדרות של אופנבוקס די אינטואיטיבי ואם מסתבכים יש גם תוכנה בשם obconf שנותנת ממשק גרפי לעדכון ההגדרות.

משתמשים באופנבוקס ויש לכם טיפים נוספים לשתף? אל תשמרו בבטן וספרו פה בתגובות, במייל או בטלגרם.