i3 είναι ένας διαχειριστής παραθύρων πλακάκια. Είναι εντελώς γραμμένο από το μηδέν.
i3 δημιουργήθηκε επειδή wmii, το αγαπημένο διαχειριστή παραθύρων μας κατά τη χρονική στιγμή, έτσι δεν & rsquo? t παρέχουν κάποια χαρακτηριστικά που θέλαμε (Xinerama γίνει σωστά, για παράδειγμα), είχε κάποια σφάλματα, Νόμιζα & rsquo? t πρόοδο από αρκετό καιρό και στα θεωρεία & rsquo? t εύκολο να χαράξει σε όλα (τα σχόλια του πηγαίου κώδικα / τεκμηρίωση απουσίαζε εντελώς). Παρόλα αυτά, πιστεύουμε ότι οι wmii προγραμματιστές και συνεισφέροντες έκανε πολύ καλή δουλειά. Σας ευχαριστούμε που μας εμπνέει να δημιουργήσουμε i3.
Πρέπει να γνωρίζετε ότι i3 απευθύνεται κυρίως σε προχωρημένους χρήστες και προγραμματιστές.
Γκολ:
Με βάση τις εμπειρίες που κάναμε όταν θέλουν να χαράξει / fix wmii, συμφωνήσαμε επί των ακόλουθων στόχων για i3:
& Nbsp? 1. Γράψτε καλά αναγνώσιμη, καλά τεκμηριωμένο κώδικα. Δημιουργήστε πρόσθετα έγγραφα σχετικά με το πώς να επεκτείνει i3, εξηγώντας εσωτερική λειτουργία του.
& Nbsp? Αυτό περιλαμβάνει να είναι modifyable από τους ανθρώπους που ξέρουν πώς να το πρόγραμμα, αλλά οι οποίοι δεν είναι κατ 'ανάγκη εξοικειωμένοι με όλες τις X11 & rsquo? S εσωτερικά. Δηλαδή, το έγγραφο γιατί τα πράγματα συμβαίνουν και όταν συμβούν, έτσι ώστε ο χρήστης παίρνει μια εικόνα της όλης διαδικασίας διαχειριστή παραθύρων είναι υπεύθυνη μόνο από την ανάγνωση του πηγαίου κώδικα.
& Nbsp? 2. Χρησιμοποιήστε xcb όσο το δυνατόν περισσότερο (που δεν παρέχει λειτουργίες για ορισμένες λειτουργίες ακόμα, όπως Xkb) αντί του Xlib. xcb έχει ένα πολύ καθαρότερο API και θα πρέπει να είναι ταχύτερη σε αρκετά πολλές καταστάσεις.
& Nbsp? 3. Εφαρμογή Xinerama σωστά, ότι είναι αναθέτοντας σε κάθε χώρο εργασίας σε μια εικονική οθόνη. Ειδικά βεβαιωθείτε ότι σύνδεσης και αποσύνδεσης νέες οθόνες, όπως βιντεοπροβολείς λειτουργεί κατά τη λειτουργία και να κάνει το σωστό.
& Nbsp? 4. Χρησιμοποιήστε την μεταφορά ενός πίνακα για την αφαίρεση. Μπορείτε να δημιουργήσετε οριζόντιες και κάθετες στήλες (σε wmii, μπορείτε να δημιουργήσετε μόνο κατακόρυφες στήλες). Δείτε την τεκμηρίωση για περισσότερες πληροφορίες σχετικά με το πώς λειτουργεί αυτό, είναι πραγματικά μια σημαντική αρχή στο i3. (TODO: τεκμηρίωση:-))
& Nbsp? 5. Εφαρμογή ενός τρόπου διοίκησης, όπως και στο vim. Μπορείτε εύκολα να συνδυάσετε πολλαπλές δράσεις (όπως η εστίαση, μετακίνηση, σπάνε), χρησιμοποιώντας την κατάσταση εντολών.
& Nbsp? 6. Εφαρμογή υποστήριξη Xrandr για το αναποδογύρισμα οθόνες.
& Nbsp? 7. Μην χρησιμοποιείτε προγράμματα όπως autoconf / automake για τη διαμόρφωση και τη δημιουργία δυσανάγνωστο / σπασμένα makefiles. Αντ 'αυτού, χρησιμοποιήστε ένα καθαρό Makefile και το οποίο επιτρέπει την αυτόματη / απενεργοποιεί λειτουργίες για συγκεκριμένες πλατφόρμες. Επίσης, τεκμηριώνει τις εξαρτήσεις σωστά, έτσι ώστε οι συντηρητές των πακέτων έχουν μια εύκολη i3 συσκευασίας δουλειά.
& Nbsp? 8. Παροχή άγκιστρα / επανακλήσεις για άλλα προγράμματα για την ενσωμάτωση. Χρησιμοποιώντας το μηχανισμό αυτό, κάποιος μπορεί εύκολα να επεκταθεί i3 σε οποιαδήποτε γλώσσα, χωρίς ποτέ να αγγίξετε τον κωδικό C. Επίσης, να επικοινωνεί με ένα τρέξιμο i3 παράδειγμα, τα μηνύματα μπορούν να σταλούν.
& Nbsp? Η προσέγγιση αυτή θα πρέπει να είναι πιο ελαφρύ από wmii & rsquo? S χρήση του συστήματος αρχείων 9P. Επιπλέον, βασική λειτουργικότητα δεν εξαρτάται από ένα ξεχωριστό πρόγραμμα, έτσι ώστε i3 τρέχει πιο γρήγορα, ειδικά όταν το σύστημά σας είναι κάτω από φορτίο.
& Nbsp? 9. Να UTF-8 καθαρό.
& Nbsp? 10. Η συνήθης ελιτισμός μεταξύ ελάχιστες διαχειριστές παραθύρων: Don & rsquo? T να είναι πρησμένο, Don & rsquo? T να είναι φανταχτερό (απλή σύνορα είναι τα πιο διακόσμηση θέλουμε να έχουμε), Don & rsquo? T προσθέσετε υποστήριξη για Xft και θολή γραμματοσειρές.
& Nbsp? Ωστόσο, δεν επιβάλλουν περιττές όρια, όπως το μέγιστο ποσό των γραμμών πηγαίου κώδικα. Αν πρέπει να είναι λίγο μεγαλύτερο, αυτό θα γίνει.
Ειδικά Χαρακτηριστικά
* Μπορούμε να δεσμεύονται για Mode_switch (Alt Gr). Άλλοι διαχειριστές παραθύρων αποτυγχάνουν να κάνουν ότι λόγω της X11-bug, το οποίο προκαλεί την κατάσταση τροποποιητής να μην έχει ρυθμιστεί σωστά σε KeyPress- γεγονότα. Χρησιμοποιούμε Xkb για να είστε βέβαιοι να πάρετε τη σωστή κατάσταση
Τι είναι καινούργιο σε αυτή την έκδοση:.
- Συμβατότητα βελτιώθηκε, ιδίως για Mathematica και εφαρμογές Java.
- i3-nagbar πρέπει να συνεργαστεί με περισσότερους εξομοιωτές τερματικού ό, τι πριν.
Τι είναι καινούργιο στην έκδοση 4.5.1:
- Αυτή είναι μια bugfix απελευθέρωση, και όλοι οι χρήστες συνιστάται να αναβαθμίσετε.
- Θα διορθώνει ένα ζήτημα το οποίο θα μπορούσε να προκαλέσει i3 να διακοπεί όταν σύρετε κινητά παράθυρα από τη μια οθόνη στην άλλη.
Τι είναι καινούργιο στην έκδοση 4.5:.
- Οι περισσότερες από τις αλλαγές είναι καθαρισμούς και διορθώσεις σφαλμάτων
- Λόγω καθαρισμούς, i3 δεν εξαρτάται πλέον από flex / bison.
- libev ≥ 4 είναι πλέον μια σκληρή εξάρτηση (libev & lt? 4 δεν υποστηρίζεται πια).
- Μια σημαντική αλλαγή πρέπει να σημειωθεί είναι ότι η μετακίνηση παράθυρα σε μια διαφορετική έξοδο θα κινούνται πλέον έμφαση στο ότι η παραγωγή.
Τι είναι καινούργιο στην έκδοση 4.4:
- Ένα σημαντικό κάτω από την κουκούλα αλλαγή είναι ότι αυτή η απελευθέρωση τώρα χρησιμοποιεί την ίδια υποδομή αναλυτή για το αρχείο ρυθμίσεων ως προς τις εντολές.
- Πέρα από αυτό, υπήρξαν πολλά μικρά διορθώσεις και προσθήκες που κάνουν i3 να δώσει μεγαλύτερη προσοχή στη λεπτομέρεια, ιδίως στην πλωτή παράθυρο περιοχή του κώδικα. Δείτε τη λίστα αλλαγές / διορθώσεις για περισσότερες πληροφορίες.
- Να σημειωθεί ότι οι αλλαγές αυτές είναι 4.4-ειδικά, και από την τελευταία έκδοση που κυκλοφόρησε εδώ υπήρξαν πολλές αλλαγές.
Τα σχόλια δεν βρέθηκε