Το προφίλ μας στο Google Plus
2

i3wm: Σημαντική αναβάθμιση του συστήματός σας, δωρεάν!

Στην αγαπημένη σας διανομή Linux ο window manager είναι το λογισμικό που ελέγχει την τοποθέτηση και την εμφάνιση των παραθύρων στην οθόνη, στο πλαίσιο του χρησιμοποιούμενου περιβάλλοντος γραφικών. Ο window manager παίζει σημαντικό ρόλο σε αυτό που ονομάζουμε “εμπειρία χρήσης” και σε γενικές γραμμές κάνει τη ζωή μας ευκολότερη.

Υπάρχουν όμως και περιπτώσεις που μας εμποδίζει από το να είμαστε 100% παραγωγικοί. Tην ίδια στιγμή καταναλώνει πολύτιμους πόρους συστήματος, χωρίς εμείς να αποκομίζουμε κάποιο ουσιαστικό όφελος.

Στο παρόν άρθρο παρουσιάζουμε και γνωρίζουμε τον i3 window manager, εν συντομία i3wm ή απλά i3, ο οποίος απευθύνεται σε χρήστες που θέλουν να εστιάζουν στην εκάστοτε εργασία και να μην απασχολούνται από τις ιδιαιτερότητες του περιβάλλοντος γραφικών. Κατά νου έχουμε developers, διαχειριστές δικτύων, φοιτητές και σπουδαστές που δουλεύουν στις διπλωματικές ή στα διδακτορικά τους, ερευνητές ασφαλείας, επιστήμονες, QA engineers κ.ά.

Στα δυνατά σημεία του i3wm συγκαταλέγονται οι χαμηλές του απαιτήσεις σε πόρους συστήματος: αφού εγκαταστήσετε τον i3 κι αρχίσετε να εργαζόσαστε στο σπαρτιάτικο περιβάλλον του, σχεδόν αμέσως θα αισθανθείτε σαν να αποκτήσατε καινούργιο, γρηγορότερο υπολογιστή. Προκειμένου να σχηματίσουμε μια πρώτη εικόνα για τον i3wm, αξίζει να δούμε τέσσερις μεγάλες κατηγορίες window managers.

  • Compositing. Τα παράθυρα δημιουργούνται και σχεδιάζονται σε ξεχωριστά buffers. Ο window manager συνθέτει (composes) τα buffers δημιουργώντας μια εικόνα που αναπαριστά ό,τι προβλέπεται να βλέπουμε στην οθόνη, μετά γράφει τα αποτελέσματα στη display memory. Οι λεγόμενοι compositing window managers συνήθως επεξεργάζονται περαιτέρω τα παράθυρα στα buffers, εφαρμόζοντας εφέ 2D/3D και animations όπως blurring, fading, scaling κ.ο.κ. Παρουσία του κατάλληλου hardware και βεβαίως των αντίστοιχων drivers, εφέ όπως σκιές, live previews και animations εκτελούνται ομαλά και σε πραγματικό χρόνο. Παραδείγματα compositing window managers αποτελούν ο Quartz Compositor στο Mac OS X, τα Compiz, KWin και Mutter για διάφορα περιβάλλοντα γραφικών στο Linux, καθώς κι ο Desktop Window Manager στα Microsoft Windows.

  • Stacking. Ονομάζονται και floating window managers και σχεδιάζουν όλα τα παράθυρα σε μια συγκεκριμένη σειρά με βάση τον painter’s algorithm, επιτρέποντας τους να αλληλοκαλύπτονται. Όλοι οι window managers που επιτρέπουν την αλληλοκάλυψη παραθύρων χωρίς να είναι compositors, εμπίπτουν στη συγκεκριμένη κατηγορία. Τα παράθυρα σχεδιάζονται ένα ένα και η διαδικασία ξεκινά με το ίδιο το desktop, μετά με το παράθυρο ή τα παράθυρα που είναι πιο κοντά στο desktop (άρα πιο μακριά σε σχέση με τον χρήστη) κ.ο.κ. Φυσικά, ο σχεδιασμός ενός παραθύρου επιτρέπεται ακόμη κι αν καλύπτει εν μέρει (ή και ολικά) παράθυρα που έχουν ήδη σχεδιαστεί. Τα Windows 1.0 καθώς και το Classic Mac OS χρησιμοποιούσαν stacking window managers. Οι δε awesome (με πεζό “a”) και Window Maker αποτελούν άλλα δύο παραδείγματα stacking window managers που συναντάμε στις διανομές του Linux.

  • Tiling. Σε αντίθεση με τους floating, οι tiling window managers χωρίζουν την οθόνη σε μη-αλληλοκαλυπτόμενα πλαίσια. Κάθε πλαίσιο είναι δυνατόν να περιλαμβάνει ένα παράθυρο ή δύο, επίσης μη-αλληλοκαλυπτόμενα πλαίσια. Ο i3 εξ ορισμού συμπεριφέρεται ως ένας tiling window manager, έχει όμως τη δυνατότητα να συμπεριφέρεται κι ως floating. Ακριβώς γι’ αυτό το λόγο ανήκει στην κατηγορία των dynamic window managers.

  • Dynamic. Οι window managers της κατηγορίας μπορούν και συμπεριφέρονται είτε ως stacking (floating) είτε ως tiling. Όπως αναφέραμε μόλις, ο i3wm είναι ένας τέτοιος window manager. Άλλοι εκπρόσωποι της κατηγορίας είναι οι awesome, xmonad κι ο θρυλικός FVWM.

Για το υπόλοιπο του άρθρου στρέφουμε την προσοχή μας στον i3wm. Εννοείται ότι μας ενδιαφέρει να τον εγκαταστήσουμε, να τον φέρουμε στα μέτρα μας και να αρχίσουμε να εργαζόμαστε στο περιβάλλον του. Υποψιαζόμαστε ότι είτε θα τον λατρέψετε, είτε θα αδιαφορήσετε παντελώς για την ύπαρξή του. Προσέξτε: Σε καμία περίπτωση δεν λέμε ότι θα τον μισήσετε — αλλά μπορεί και να κάνουμε λάθος :P Ας αφήσουμε όμως τη συζήτηση κι ας περάσουμε στη δράση.

Εγκατάσταση και βασική ρύθμιση
Δουλεύουμε σε ένα σύστημα με openSUSE Leap 42.2 και περιβάλλον γραφικών το GNOME. Αυτό το τελευταίο βέβαια δεν έχει κάποια σημασία για τον i3: στις εγκαταστάσεις Linux συχνά συνυπάρχουν περισσότερα από ένα περιβάλλοντα γραφικών και, κατά το login στο λογαριασμό ενός χρήστη, είτε ενεργοποιείται το προκαθορισμένο περιβάλλον είτε επιλέγεται ένα από τα υπόλοιπα που είναι παρόντα στο σύστημα.

Πρώτο μας μέλημα τώρα είναι να εγκαταστήσουμε τον i3 window manager, μαζί με μερικά χρήσιμα εργαλεία. Με δικαιώματα διαχειριστή, σε ένα τερματικό πληκτρολογούμε zypper ref ώστε να επικαιροποιήσουμε τα repositories της διανομής. Μετά εφαρμόζουμε τα όποια διαθέσιμα patches γράφοντας zypper patch κι ακολούθως έρχεται η σειρά του i3 κι ορισμένων καλών φίλων:

zypper -n in i3 i3status i3lock dmenu feh

Ας δούμε λίγο καθένα από τα πέντε αυτά RPM packages.

  • i3: το πακέτο του i3, του dynamic window manager που μόλις εγκαταστήσαμε στο openSUSE μας
  • i3status: utility που παράγει strings με πληροφορίες για την i3bar, την προκαθορισμένη μπάρα του i3
  • i3lock: όταν ενεργοποιείται κλειδώνει την οθόνη κι επιτρέπει την πρόσβαση μόνον αφού πληκτρολογηθεί σωστά το password του χρήστη
  • dmenu: utility για τη γρήγορη εκκίνηση εφαρμογών
  • feh: ευέλικτος image viewer, χρησιμεύει και για τον καθορισμό wallpaper

Αυτή τη στιγμή ο i3 πρέπει να είναι εγκατεστημένος και μπορούμε να κάνουμε logout από το τρέχον GNOME session. Κατά τα αναμενόμενα, θα εμφανιστεί η οθόνη login του GDM — ή όποιου άλλου login manager χρησιμοποιείτε, τέλος πάντων. Πριν συνδεθούμε στο λογαριασμό του χρήστη μας, πατάμε στο εικονίδιο με το γρανάζι κι επιλέγουμε τον i3.

Επιλογή του i3 window manager, λίγο πριν συνδεθούμε στο λογαριασμό του χρήστη User Userson.

Την πρώτη φορά που θα ενεργοποιηθεί ο i3 για το λογαριασμό του χρήστη μας, βλέπουμε μια σχεδόν άδεια οθόνη κι ένα λιτό παράθυρο για τη βασική ρύθμιση του window manager. Το font rendering μάλλον δεν θα σας ικανοποιήσει, αλλά μην ανησυχείτε: μπορούμε να ορίσουμε οικογένεια γραμματοσειράς — και λίγο αργότερα θα δείξουμε πώς. Στην ερώτηση περί αυτόματης δημιουργίας του σχετικού αρχείου ρυθμίσεων απαντάμε καταφατικά, που σημαίνει ότι απλά πιέζουμε το πλήκτρο [Enter].

Την πρώτη φορά που θα φορτωθεί ο i3wm για τον χρήστη μας, είναι καλή ιδέα να δώσουμε το OK για την αυτόματη δημιουργία ενός βασικού αρχείου ρυθμίσεων.

Η δεύτερη και τελευταία ερώτηση που μας απευθύνεται σχετικά με τη δημιουργία του configuration file, αφορά στο modifier key ($mod key). Το εν λόγω πλήκτρο έχει εξαιρετική σημασία στον κόσμο του i3, αφού συμμετέχει στο σχηματισμό των key bindings για το χειρισμό του περιβάλλοντος και τη μετακίνησή μας μέσα σε αυτό. Τώρα, λοιπόν, καλούμαστε να αντιστοιχίσουμε το $mod key είτε στο πλήκτρο [Alt] είτε στο πλήκτρο [Win] (ή στο [Command], αν μιλάμε για Apple keyboard). Εξ ορισμού το $mod key είναι αντιστοιχισμένο στο [Win]/[Command]. Προσωπικά μάς αρέσει αυτό, οπότε απλά πατάμε το [Enter] και χωρίς άλλη καθυστέρηση το configuration του i3 δημιουργείται.

Δεν ξέρουμε πώς το βλέπετε εσείς, εμείς όμως ησυχάζουμε και γαληνεύουμε όταν το modifier key είναι αντιστοιχισμένο στο πλήκτρο Windows (ή στο πλήκτρο Command).

Πού βρισκόμαστε και τι κάνουμε
Πρόκειται βεβαίως για διαχρονικό υπαρξιακό ερώτημα, καταδικασμένο να μη λάβει ποτέ 100% ικανοποιητική απάντηση. Εκτός κι αν μιλάμε για τον κόσμο του i3 και μόνον αυτόν, οπότε σε αυτή την περίπτωση όλο και κάποια χρήσιμη απάντηση μπορούμε να δώσουμε.

Το μυστικό για καλή ζωή στον i3 είναι τα key bindings. Όσο πιο γρήγορα μάθουμε κάποια από αυτά, τόσο πιο γρήγορα θα εκτιμήσουμε τον window manager — ή θα αποφασίσουμε ότι δεν είναι για εμάς. Στο επίσημο site του i3 υπάρχει μια χρήσιμη σελίδα με key bindings. Προτείνουμε να δημιουργήσετε ένα σχετικό bookmark ή ακόμη και να την εκτυπώσετε.

Προς το παρόν, σημειώστε ότι για το άνοιγμα ενός terminal απλά πατάμε το συνδυασμό πλήκτρων [$mod + Enter] κι ακαριαία εμφανίζεται ένα μεγιστοποιημένο παράθυρο τερματικού. Αν δώσουμε άλλο ένα [$mod + Enter], η οθόνη τότε χωρίζεται στα δύο κι έχουμε δύο τερματικά. Παρατηρήστε ότι ο χωρισμός γίνεται κάθετα ή οριζόντια, αναλόγως αν ο προσανατολισμός της οθόνης είναι οριζόντιος (wide display) ή κάθετος (rotated display) αντίστοιχα. Για τη συνέχεια υποθέτουμε ότι δουλεύουμε με μία μόνο οθόνη, η οποία είναι προσανατολισμένη οριζόντια (δεν είναι rotated, δηλαδή). Δοκιμάστε να ανοίξετε κι άλλα παράθυρα τερματικού και δείτε πώς διευθετούνται. Αν θέλουμε το παράθυρο με το focus να είναι σε full screen mode, πατάμε το συνδυασμό [$mod + F]. Για να το επαναφέρουμε, πατάμε ξανά [$mod + F]. Κλείστε ένα οποιοδήποτε τερματικό που έχει το focus πατώντας, κατά τα γνωστά, [Ctrl + D] ή γράφοντας exit, ακολουθούμενο από [Enter]. Γενικά, μια οποιαδήποτε εφαρμογή στον i3 την κλείνουμε με το συνδυασμό πλήκτρων [$mod + Shift + Q]. Προτείνεται πάντως να χρησιμοποιούμε το μηχανισμό εξόδου/τερματισμού που προσφέρει η ίδια η εφαρμογή.

Αφήνουμε τώρα στην οθόνη μόνο ένα τερματικό ανοικτό. Η επόμενη κίνησή μας Θα είναι να τρέξουμε τον Firefox. Όμως πριν το κάνουμε πατάμε [$mod + V]. Αυτή η ενέργεια δεν φαίνεται να έχει κάποιο αποτέλεσμα. Στην πραγματικότητα, όμως, μόλις είπαμε στον i3 ότι πλέον θέλουμε τα παράθυρα να χωρίζονται οριζόντια (κι όχι κάθετα). Δίνουμε [$mod + D], ώστε να ενεργοποιηθεί το dmenu. Παρατηρήστε την οριζόντια μπάρα, στο πάνω μέρος της οθόνης. Στη θυρίδα πάνω αριστερά, γράφουμε το όνομα του εκτελέσιμου μιας οποιασδήποτε εφαρμογής με GUI και πατάμε [Enter]. Δίνοντας, λοιπόν, [$mod + D] και πληκτρολογώντας firefox (ακολουθούμενο από [Enter]), ο Firefox ανοίγει. Διαπιστώνουμε ότι η οθόνη έχει χωριστεί σε δύο μέρη, οριζόντια: στο πάνω μέρος έχουμε το τερματικό, στο κάτω έχουμε τον Firefox. Με το focus στον Firefox, πατάμε [$mod + H]. Και πάλι δεν φαίνεται να συμβαίνει κάτι, στοιχηματίζουμε όμως ότι μαντεύετε τι έχει γίνει, καθώς και τι θα ακολουθήσει. Με [$mod + D] εμφανίζουμε το dmenu, ώστε να τρέξουμε άλλη μια εφαρμογή. Αυτή τη φορά πληκτρολογούμε gnome-terminal και φυσικά πατάμε το [Enter]. Αμέσως θα εμφανιστεί ένα παράθυρο του GNOME Terminal αλλά στο κάτω μισό της οθόνης και συγκεκριμένα στο δεξί μισό του κάτω μισού, δίπλα από τον Firefox. Προφανώς, λοιπόν, με [$mod + V] ορίζουμε ότι ο χωρισμός των παραθύρων γίνεται οριζόντια, ενώ με [$mod + H] ορίζουμε ότι ο χωρισμός των παραθύρων γίνεται κάθετα. Δοκιμάστε να ανοίξετε διάφορα παράθυρα χωρίζοντας οριζόντια ή κάθετα. Αν θέλετε, ανοίγετε το ίδιο παράθυρο αλλάζοντας διαδοχικά τη διεύθυνση του χωρισμού, ώστε τελικά να πάρετε στην οθόνη κάτι που θα μοιάζει με fractal. Από ένα σημείο και μετά αρχίστε να δίνετε τυχαία το focus σε παράθυρα (απλά μετακινείτε τυχαία τον δείκτη του ποντικιού) και κλείνετέ τα. Παρατηρήστε πώς ανταποκρίνεται ο i3, τακτοποιώντας αυτόματα τα εναπομείναντα ανοικτά παράθυρα.

Δεν έχει κάποια πρακτική σημασία η συγκεκριμένη διευθέτηση των παραθύρων, εκτός ίσως από το να δείξουμε πώς τοποθετεί τα tiles ο i3 όταν αλλάζουμε διαδοχικά τη διεύθυνση χωρισμού (οριζόντια, κάθετη). Αλήθεια, πόσο αναλυτικό μπορεί να γίνει το εικονιζόμενο fractal στη δική σας οθόνη;

Αναφερθήκαμε μόλις στην αλλαγή focus, με τη μετακίνηση του δείκτη του ποντικιού. Ο i3 όμως δίνει έμφαση στη χρήση του πληκτρολογίου και συνεπώς υπάρχουν ήδη key bindings για την αλλαγή του focus. Συγκεκριμένα, με [$mod + J] το focus πηγαίνει στο παράθυρο αριστερά, με [$mod + ;] στο παράθυρο δεξιά, με [$mod + L] πάνω, ενώ με [$mod + K] κάτω. Αν αντί για [$mod] + [J]/[;]/[L]/[K] πατήσουμε [$mod + Shift] + [J]/[;]/[L]/[K], το τρέχον παράθυρο μετακινείται αριστερά/δεξιά/πάνω/κάτω αντίστοιχα. Επίσης, αντί για τα πλήκτρα [J], [;], [L] και [K], μπορούμε να χρησιμοποιούμε τα αντίστοιχα βελάκια του δρομέα.

Ας υποθέσουμε τώρα ότι θέλουμε να αλλάξουμε το μέγεθος ενός παραθύρου. Αρχικά δίνουμε [$mod + R] και μετά παίζουμε με τα βελάκια. Θα δούμε το μέγεθος του επιλεγμένου παραθύρου να μεταβάλλεται αναλόγως. Όταν ικανοποιηθούμε με την αλλαγή, δίνουμε ξανά [$mod + R] κι ο i3 παύει να ερμηνεύει το πάτημα των arrow keys ως εντολές αλλαγής μεγέθους.

Τι κάνουμε άραγε αν το τρέχον workspace (σκεφτείτε “desktop”) έχει πολλά ανοικτά παράθυρα και η εργασία σε αυτό δεν είναι πλέον τόσο άνετη; Κατ’ αρχάς, με ένα συνδυασμό πλήκτρων της μορφής [$mod + #], όπου το # είναι ακέραιος μεταξύ 0 κι 9, δημιουργούμε ένα νέο workspace (το 0 αντιστοιχεί στο workspace υπ’ αριθμόν 10). Σε κάθε workspace μπορούμε, φυσικά, να έχουμε ανοικτά όσα κι όποια παράθυρα θέλουμε. Επίσης, ένα παράθυρο που έχει το focus το μεταφέρουμε σε άλλο workspace πατώντας ένα συνδυασμό πλήκτρων της μορφής [$mod + Shift + #], όπου το # είναι ακέραιος μεταξύ 0 και 9 (και το 0 αντιστοιχεί πάντα στο workspace 10).

Τέλος, όταν κάποια στιγμή θελήσουμε να βγούμε από τον i3 (λέμε τώρα) τότε αρκεί να πατήσουμε το συνδυασμό πλήκτρων [$mod + Shift + E]. Στο πάνω μέρος της οθόνης θα εμφανιστεί μια οριζόντια (πορτοκαλί) μπάρα, όπου καλούμαστε να επιβεβαιώσουμε ή να ακυρώσουμε την εντολή αποσύνδεσης.

Σημείωση. Όπως προαναφέραμε, ο i3 ανήκει στην κατηγορία των dynamic window managers κι αυτό σημαίνει ότι έχει τη δυνατότητα να συμπεριφέρεται είτε ως floating είτε ως tiling window manager. Εξ ορισμού συμπεριφέρεται ως tiling, αλλά αυτό αλλάζει εύκολα από το configuration file. Έχετε επίσης κατά νου ότι σε συγκεκριμένες περιπτώσεις παρουσιάζει συμπεριφορά floating window manager αυτόματα, από μόνος του. Για παράδειγμα, τα “Save As” dialogs ή τα toolbars εφαρμογών όπως το Gimp, έχει πολύ περισσότερο νόημα να εμφανίζονται ως floating windows παρά ως tiles. Στον i3, τα floating windows παραμένουν πάντα πάνω από όλα τα tiled windows.

Ρύθμιση του i3 WM
Τη συμπεριφορά αλλά και την όψη του i3 τα τροποποιούμε επεμβαίνοντας στο configuration file με όνομα config, κάτω από τον κατάλογο ~/.config/i3 (το πλήρες path του αρχείου ρυθμίσεων, δηλαδή, είναι ~/.config/i3/config). Μια άλλη θέση του config που ίσως ισχύει για τη διανομή σας, είναι κάτω από τον κατάλογο ~/.i3 (το full path, δηλαδή, θα είναι ~/.i3/config). Το configuration file το ανοίγουμε με κάποιον text editor όπως, π.χ., vi, nano, gedit κ.ά. Οι όποιες αλλαγές κάνουμε λαμβάνονται υπόψη αποθηκεύοντας κι επανεκκινώντας τον i3 επιτόπου, με ένα [$mod + Shift + R]. Αν υπάρχει κάποιο λάθος στο αρχείο ρυθμίσεων, λαμβάνουμε σχετική προειδοποίηση. Να πούμε επίσης ότι ανά πάσα στιγμή μπορούμε να επαναφέρουμε το πρωτότυπο (αρχικό) config διαγράφοντας το υπάρχον κι αμέσως μετά, σε ένα τερματικό, πληκτρολογώντας i3-config-wizard. Ανοίξτε τώρα το configuration file και ρίξτε μια ματιά στο περιεχόμενό του. Θα διαπιστώσετε ότι οι αποδεκτές οδηγίες/ρυθμίσεις είναι απλές και κατανοητές — και σε αυτό βοηθούν τα επεξηγηματικά σχόλια. Στη συνέχεια παρουσιάζουμε τις επεμβάσεις που έχουμε κάνει στο δικό μας config. Δεν είναι υποχρεωτικό να κάνετε ακριβώς τις ίδιες, φυσικά.

Γραμματοσειρά για τους τίτλους των παραθύρων. Η προκαθορισμένη γραμματοσειρά (και το μέγεθός της) για τους τίτλους των παραθύρων, ίσως να μη σας αρέσει. Η προεπιλογή έχει ως εξής:

font pango:monospace 8

Στη εκδοχή του config που έχουμε στο σύστημα των δοκιμών χρησιμοποιούμε τη γραμματοσειρά Roboto Mono, με μέγεθος 11:

font pango:robotomono 11

Τη συγκεκριμένη γραμματοσειρά βρήκαμε κι εγκαταστήσαμε από το Google Fonts.

Προεπιλεγμένη εφαρμογή τερματικού. Εξ ορισμού, όταν πατάμε το συνδυασμό πλήκτρων [$mod + Enter] εκτελείται το script ονόματι i3-sensible-terminal. Δουλειά του είναι να εντοπίζει την πρώτη διαθέσιμη εφαρμογή τερματικού και να την τρέχει. Αν τώρα έχετε κάποιον αγαπημένο terminal emulator και θέλετε να ενεργοποιείται αυτός χωρίς περιττές αναζητήσεις, αλλάξτε κατάλληλα την ακόλουθη οδηγία:

bindsym $mod+Return exec i3-sensible-terminal

Σε εμάς, π.χ., αυτόν τον καιρό αρέσει πολύ το GNOME Terminal, οπότε στο config του i3 έχουμε την ακόλουθη οδηγία:

bindsym $mod+Return exec gnome-terminal --hide-menubar

Παρατηρήστε την παράμετρο --hide-menubar, χάρη στην οποία το GNOME Terminal ξεκινά χωρίς την πάνω οριζόντια μπάρα. Το περιβάλλον του i3 είναι λιτό και θέλουμε να το διατηρούμε λιτό πάση θυσία.

Key bindings εκκίνησης εφαρμογών. Το htop είναι μια εφαρμογή για την κονσόλα απλού κειμένου που συχνά-πυκνά εκτελούμε. Γι’ αυτό και στο configuration file του i3 έχουμε την ακόλουθη οδηγία:

bindsym $mod+t exec gnome-terminal -e /usr/bin/htop

Κάθε φορά που πατάμε τον συνδυασμό πλήκτρων [$mod + T], λοιπόν, ανοίγει ένα GNOME Terminal με το htop να τρέχει εντός. Μια άλλη εφαρμογή που τρέχουμε από καιρού εις καιρόν είναι το YaST2. Χάρη στην οδηγία

bindsym $mod+y exec gnome-terminal -e "sudo /usr/sbin/yast2"

κάθε φορά που πατάμε [$mod + Y] ανοίγει ένα GNOME Terminal, με το YaST2 να τρέχει εντός. Παρατηρήστε και τη χρήση του sudo, αφού το YaST2 πρέπει να τρέχει με δικαιώματα διαχειριστή.

Το αριστερό μισό του workspace μοιράζονται δύο εφαρμογές (YaST2 και htop) για τις οποίες, παρεμπιπτόντως, έχουμε ορίσει αντίστοιχα key bindings. Το δεξιό μισό του workspace έχει καταλάβει αποκλειστικά ο Firefox.

Καθορισμός wallpaper. Όταν συνδεόμαστε στο περιβάλλον του i3 δεν υπάρχει κάποιο wallpaper. Μπορείτε βεβαίως να καθορίσετε μια εικόνα που προτιμάτε, ώστε κατά το φόρτωμα του i3 να μπαίνει ως wallpaper. Παράδειγμα:

exec --no-startup-id /usr/bin/feh --bg-scale ~/Pictures/osuseLightbulb.jpg

Όπως βλέπετε, χρησιμοποιούμε το εργαλείο feh και μάλιστα με την παράμετρο --bg-scale, ώστε το μέγεθος της εικόνας να προσαρμόζεται αυτομάτως στο workspace.

Καθορισμός ανάλυσης οθόνης. Ο i3 είναι σε θέση να εντοπίζει από μόνος του τη σωστή ανάλυση της οθόνης. Κατά περιπτώσεις όμως ίσως θα αποτυγχάνει, ειδικά αν δοκιμάζετε τον i3 σε εικονικό υπολογιστή. Τότε, καλό είναι να χρησιμοποιούμε το εργαλείο xrandr (χωρίς καμία παράμετρο), ώστε αφενός να μάθουμε το όνομα του display καθώς και τις αναλύσεις που υποστηρίζει. Στο VM μας, το όνομα του display είναι Virtual1 και η φυσική ανάλυση της οθόνης είναι 1440×900 εικονοστοιχεία. Έτσι, στο configuration file του i3 έχουμε την ακόλουθη γραμμή:

exec xrandr --output Virtual1 --mode 1440x900

Καθορισμός θέσης και πληροφοριών για την i3bar. Η μπάρα του i3 εμφανίζεται στο κάτω μέρος της οθόνης. Αν θέλετε να της αλλάξετε θέση, ώστε να είναι στο πάνω μέρος της οθόνης, βρείτε την ενότητα

bar {
    status_command i3status
}

και προσθέστε οδηγία για τη θέση:

bar {
    position top
    status_command i3status
}

Είναι νομίζουμε προφανές ότι στη μπάρα του i3 εμφανίζονται οι πληροφορίες που επιστρέφει το utility ονόματι i3status. Οι πληροφορίες που συλλέγει το εν λόγω εργαλείο καθορίζονται στο αρχείο /etc/i3status.conf. Ίσως θελήσετε να το τροποποιήσετε ελαφρώς, ώστε, π.χ., να μην εμφανίζονται πληροφορίες περί IPv6 ή ό,τι άλλο θεωρείτε περιττό.

Αυτόματη εκκίνηση εφαρμογών. Κατά την εκκίνηση του i3 είναι πολύ πιθανό να επιθυμούμε την εκτέλεση συγκεκριμένων εφαρμογών. Εμείς για παράδειγμα θέλουμε να ξεκινά ο επίσημος Nextcloud client, για τον Nextcloud server που έχουμε σε ένα Raspberry Pi 3. Γι’ αυτό και στο config του i3 έχουμε την ακόλουθη γραμμή:

exec /usr/bin/nextcloud

Εικονίδια εφαρμογών σαν το Nextcloud client, εμφανίζονται στα δεξιά της i3bar.

Keyboard layout. Ανά πάσα στιγμή Θέλουμε να αλλάζουμε layout στο πληκτρολόγιο, επιλέγοντας μεταξύ Αγγλικών κι Ελληνικών με το πρώτο να είναι το προεπιλεγμένο. Η αλλαγή layout μας βολεύει να γίνεται πατώντας [Alt + Shift], γι’ αυτό και στο configuration file του i3 έχουμε τις ακόλουθες δύο γραμμές:

exec setxkbmap -layout us,gr
exec setxkbmap -option 'grp:alt_shift_toggle'

Προκειμένου να ληφθούν υπόψη τώρα οι ρυθμίσεις περί layout, δεν επανεκκινούμε τον i3 (με [$mod + Shift + R]). Αντίθετα, σε ένα τερματικό γράφουμε διαδοχικά:

setxkbmap -layout us,gr
setxkbmap -option 'grp:alt_shift_toggle'

Μια εναλλακτική για το dmenu
Χάρη στο dmenu, η εκτέλεση εφαρμογών με GUI επιτυγχάνεται εύκολα μέσα από τον i3. Πιθανώς όμως να βρίσκετε κάπως άσχημη την οριζόντια μπάρα που εμφανίζεται στο πάνω μέρος της οθόνης, κάθε φορά που πατάτε [$mod + D]. Ένα εναλλακτικό του dmenu εργαλείο είναι το rofi. Στο openSUSE το εγκαθιστούμε πληκτρολογώντας zypper in rofi (με δικαιώματα root). Μετά, ανοίγουμε το configuration file του i3 κι αλλάζουμε τη γραμμή

bindsym $mod+d exec dmenu_run

ώστε να γίνει όπως η ακόλουθη:

bindsym $mod+d exec rofi -show run

Πατήστε τώρα το συνδυασμό πλήκτρων [$mod + D] και δείτε το νέο interface για την εκτέλεση εφαρμογών. Το rofi είναι λιγότερο διακριτικό σε σύγκριση με το dmenu, σε εμάς όμως αρέσει περισσότερο. Θα μας ενδιέφερε να μας δώσετε το feedback σας για τον ίδιο τον i3. Πώς σας φαίνεται; Έχει πιθανότητες να αποτελέσει το default desktop environment για το Linux σας; Αιτιολογήστε, παρακαλούμε, την όποια απάντησή σας.

Μπορεί το rofi να είναι λιγότερο διακριτικό από το dmenu, για εμάς όμως αποτελεί ένα άριστο εργαλείο για την εκτέλεση εφαρμογών. Τι λέτε κι εσείς;

2 Responses to “i3wm: Σημαντική αναβάθμιση του συστήματός σας, δωρεάν!”

  1. anselal | 26/06/2017 at 10:12

    Πολύ ωραίο άρθρο. Το είχα δοκιμάσει παλαιότερα το i3 και είχα μείνει πολύ ευχαριστημένος. Είναι ωραία να υπάρχουν συγκεντρωμένα πληροφορίες για τον εν λόγο window manager ώστε να μην πανικοβληθεί ο χρήστης μόλις το εγκαταστήσει !!!!

  2. pavlis_ | 26/06/2017 at 14:58

    Το πρώτο που παθαίνεις όταν εγκαθιστάς το i3 χωρίς προηγούμενη εμπειρία, είναι ένα μίνι “εγκεφαλικό”. Πήρα την “μεγάλη” απόφαση να ασχοληθώ αποκλειστικά με τον i3 (και στο σπίτι και στη δουλειά) εδώ κι ένα με δύο μήνες και πλέον χρησιμοποιώ αποκλειστικά μόνον αυτό. Είμαι απόλυτα ικανοποιημένος με την ταχύτητα του WM και πιο πολύ με το ότι βάζει τον χρήστη σε ένα “τριπάκι” να χρησιμοποιεί όσο το δυνατόν περισσότερο το πληκτρολόγιο του. Επίσης είναι εξεραιτικά εθιστικό όταν συνειδητοποιείς το πόσα πολλά πράγματα μπορείς να παραμετροποιήσεις (τα πάντα!) και πόσο εύκολα. Επίσης διαχειρίζεται πολύ καλά και τα παράθυρα των παιχνιδιών (μέσω steam), και δεν έχω παρατηρήσει τίποτα ιδιαίτερο. Το άρθρο είναι ό,τι πρέπει για κάποιον που θέλει μαζεμένη πληροφορία για τα πρώτα βήματα στον i3.

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων