Join 75,000+ Looksmaxxing Members!

Register a FREE account today to become a member. Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox.

  • DISCLAIMER: DO NOT ATTEMPT TREATMENT WITHOUT LICENCED MEDICAL CONSULTATION AND SUPERVISION

    This is a public discussion forum. The owners, staff, and users of this website ARE NOT engaged in rendering professional services to the individual reader. DO NOT use the content of this website as an alternative to personal examination and advice from licenced healthcare providers. DO NOT begin, delay, or discontinue treatments and/or exercises without licenced medical supervision. Learn more

i3 — improved tiling wm

i3

sasageyo
Banned
Joined
Mar 24, 2026
Messages
363
Online time
1d 14h
Reputation
1,057
Location
banned land
Instagram: Instagram
Guild
Guild
i3 is a tiling window manager, completely written from scratch. The target platforms are GNU/Linux and BSD operating systems, our code is Free and Open Source Software (FOSS) under the BSD license. i3 is primarily targeted at advanced users and developers. 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 documentedcode. Create additional documentation on how to extend i3 by explaining its internal workings.
    This includes being modifiable 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. Use xcb instead of Xlib. xcb has a much cleaner API and should be faster in quite a lot of situations.
  3. Implement multi-monitor correctly, that is by assigning each workspace to a virtual screen. Especially make sure that attaching and detaching new monitors like video projectors works during operation and does the right thing. Also provide support for rotated monitors.
  4. Use a tree structure to arrange windows, enabling more flexible layouts than the column-based approach used by other window managers.
  5. Implement different modes, like in vim. You can use different keybindings when in the 'resize' mode than when you are in the default mode, for example.
  6. Implement an IPC interface for other programs. Provide subscription to certain events and accept commands.
    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.
  7. Be UTF-8 clean.
  8. 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).
    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.
  9. Do not add further complexity when it can be avoided. We are generally happy with the feature set of i3 and instead focus on fixing bugs and maintaining it for stability. New features will therefore only be considered if the benefit clearly outweighs the additional complexity, and we encourage users to implement features using the IPC whenever possible.
In addition to these stated goals, we try our best to uphold the following values when considering contributions to the project:

  • Never break configuration files or existing workflows. Breaking changes require a major version bump (v4 → v5).
  • Keep mental complexity low: once you know i3’s key features, other features should be easy to understand.
  • Only add features which benefit many people, instead of going to great lengths to support rarely used workflows.
  • Only documented behavior is supported. Clear documentation is a requirement for contributions.
© 2009-present Michael Stapelberg,Impressum, Source
 
Register to hide this ad
i3 is a tiling window manager, completely written from scratch. The target platforms are GNU/Linux and BSD operating systems, our code is Free and Open Source Software (FOSS) under the BSD license. i3 is primarily targeted at advanced users and developers. 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 documentedcode. Create additional documentation on how to extend i3 by explaining its internal workings.
    This includes being modifiable 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. Use xcb instead of Xlib. xcb has a much cleaner API and should be faster in quite a lot of situations.
  3. Implement multi-monitor correctly, that is by assigning each workspace to a virtual screen. Especially make sure that attaching and detaching new monitors like video projectors works during operation and does the right thing. Also provide support for rotated monitors.
  4. Use a tree structure to arrange windows, enabling more flexible layouts than the column-based approach used by other window managers.
  5. Implement different modes, like in vim. You can use different keybindings when in the 'resize' mode than when you are in the default mode, for example.
  6. Implement an IPC interface for other programs. Provide subscription to certain events and accept commands.
    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.
  7. Be UTF-8 clean.
  8. 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).
    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.
  9. Do not add further complexity when it can be avoided. We are generally happy with the feature set of i3 and instead focus on fixing bugs and maintaining it for stability. New features will therefore only be considered if the benefit clearly outweighs the additional complexity, and we encourage users to implement features using the IPC whenever possible.
In addition to these stated goals, we try our best to uphold the following values when considering contributions to the project:

  • Never break configuration files or existing workflows. Breaking changes require a major version bump (v4 → v5).
  • Keep mental complexity low: once you know i3’s key features, other features should be easy to understand.
  • Only add features which benefit many people, instead of going to great lengths to support rarely used workflows.
  • Only documented behavior is supported. Clear documentation is a requirement for contributions.
© 2009-present Michael Stapelberg,Impressum, Source
eh why would u share this in a looksmaxxing forum where people could believe you
 
  • Like
Reactions: i3

Users who are viewing this thread

Back
Top