<a href="/downloads">
<span style="font-weight: bold; color: #3A8ECD; margin-right: .5em">➡</span>
Download the latest version
- <span style="margin-left: 2em; color: #c0c0c0">4.9</span>
+ <span style="margin-left: 2em; color: #c0c0c0">4.16.1</span>
</a>
</div>
</div>
process a Window Manager is responsible of by just reading the source code.
</li>
<li>
- 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.
+ Use xcb instead of Xlib. xcb has a much cleaner API and should be faster in
+ quite a lot of situations.
</li>
<li>
Implement multi-monitor correctly, that is by assigning each workspace to a
when in the 'resize' mode than when you are in the default mode, for
example.
</li>
- <li>
- Do <strong>not</strong> 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.
- </li>
<li>
Implement an IPC interface for other programs. Provide subscription to
certain events and accept commands.
of code. If it needs to be a bit bigger, it will be.
</li>
</ol>
+
+<p>
+In addition to these stated goals, we try our best to uphold the following
+values when considering contributions to the project:
+</p>
+
+<ul>
+ <li>
+ Never break configuration files or existing workflows. Breaking changes
+ require a major version bump (v4 → v5).
+ </li>
+ <li>
+ Keep mental complexity low: once you know i3’s key features, other features
+ should be easy to understand.
+ </li>
+ <li>
+ Only add features which benefit many people, instead of going to great
+ lengths to support rarely used workflows.
+ </li>
+ <li>
+ Only documented behavior is supported. Clear documentation is a requirement
+ for contributions.
+ </li>
+</ul>
</div>