diff --git a/website/index.html b/website/index.html new file mode 100644 index 00000000..44ad171d --- /dev/null +++ b/website/index.html @@ -0,0 +1,131 @@ + + + + + + + +

i3 - an improved dynamic tiling window manager

+ +

+ i3 was created because wmii, our favorite window manager at the time, didn’t + provide some features we wanted (Xinerama done right), had some bugs, didn’t + progress since quite some time and wasn’t easy to hack at all (source code + comments/documentation completely lacking). +

+ +

+ Please be aware that i3 is primarily targeted at computer geeks. +

+ +

Goals

+ +

+ Based upon the experiences we made when wanting to hack/fix wmii, we agreed + upon the following goals for i3: +

+ +
    +
  1. + Write well readable, well documented code. Create additional + documentation on how to extend i3 by explaining its internal workings. +
    + This includes being modifyable by people who do know how to program but who are + not necessarily familiar with all of X11’s internals. That is, document why + things happen and when they happen so that the user gets a picture of the whole + process a Window Manager is responsible of by just reading the source code. +
  2. +
  3. + Use xcb as far as possible (it does not provide functions for some features + yet, like XKB) instead of Xlib. xcb has a much cleaner API and should be faster + in quite a lot of situations. +
  4. +
  5. + Implement Xinerama correctly, that is by assigning each workspace to a + virtual screen. Especially make sure that attaching and detaching new monitors + like beamers works during operation and does the right thing. +
  6. +
  7. + Use the metaphor of a table for abstraction. You can create horizontal and + vertical columns (in wmii, you can only create vertical columns). See the documentation + for more information on how this works, it really is an important principle in i3. + (TODO: documentation :-)) +
  8. +
  9. + Implement a command mode, like in vim. You can easily combine multiple + actions (like focusing, moving, snapping) by using the command mode. +
  10. +
  11. + Implement XRandR support for flipping monitors. +
  12. +
  13. + Do not use programs such as autoconf/automake for configuration and + creating unreadable/broken makefiles. Instead, use a clean makefile which automatically + enables/disables features for specific platforms. Also, document the dependencies + properly, so that package maintainers have an easy job packaging i3. +
  14. +
  15. + Provide hooks/callbacks for other programs to integrate. Using this mechanism, one + can easily extend i3 in whatever language, without ever touching the C code. Also, + to communicate with a running i3 instance, messages can be sent. +
    + This approach should be more lightweight than wmii’s usage of the 9P filesystem. + Furthermore, core functionality does not depend on a separate program, so that i3 + runs faster, especially when your system is under load. +
  16. +
  17. + Be UTF-8 clean. +
  18. +
  19. + The usual elitism amongst minimal window managers: Don’t be bloated, don’t be fancy + (simple borders are the most decoration we want to have), don’t add support for Xft + and blurred fonts. +
    + However, we do not enforce unnecessary limits such as a maximum amount of source lines + of code. If it needs to be a bit bigger, it will be. +
  20. +
+ +

Special Features

+ + + +

Development

+ +

+ i3 is currently developed at http://code.stapelberg.de/git. Checkouts of the master + branch are intended to be stable and working all the time. Integration of new features + happens in a separate branch. +

+ +

License

+ +

+ i3 is BSD-licensed (TODO: exact license text) +

+ +

Contact

+ +

+ Contact us at irc://irc.twice-irc.de/i3 (or, #i3 on irc.twice-irc.de, for those without + proper URL handling setup). Feel free to ask questions, please don’t ask to ask and please + think before you ask :-). +

+ + +