From: Michael Stapelberg Date: Thu, 21 Mar 2013 10:36:39 +0000 (+0100) Subject: add gsoc 2013 ideas page X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=b30067242ef854862375319b53d1357dbac93136;p=i3%2Fi3.github.io add gsoc 2013 ideas page --- diff --git a/_docs/gsoc2013-ideas b/_docs/gsoc2013-ideas new file mode 100644 index 0000000..15e12a1 --- /dev/null +++ b/_docs/gsoc2013-ideas @@ -0,0 +1,86 @@ +Google Summer of Code 2013 ideas +================================ +Michael Stapelberg +March 2013 + +== Idea 1: Saved sessions in i3 + +Many desktop environments nowadays have a way of restarting the applications +that you have been using when you reboot your computer. + +In i3, we want to take that idea a step further: We want to make it possible +for the user to define a precise layout, which is then filled with the +application windows as they start up. + +Many users are currently achieving a similar effect with custom scripts and +lots of sleep calls to wait for applications to launch and then simulate +interactive commands to move windows around. + +Many of the building blocks for this feature are already in place, but there +still are a few places of code that need to be touched, a specification to be +written, user feedback to be gathered and documentation to be updated. + +=== Desirable skills + +* Experience with C (best) or similar programming languages such as Perl, C++ +* Willingness and ability to write documentation + +=== What you will learn + +* How X11 and i3 work (not completely, but the most important parts) +* How to interact with users +* What good specification and documentation entails + +== Idea 2: Testsuite: better input and output + +i3 uses a comprehensive testsuite and cares about test-driven development as +well as regression tests. While our testsuite covers quite a lot of code and +works well and fest, it currently only uses the IPC interface to communicate +with i3. + +The current state enables us to simulate anything a user might also trigger by +a keypress. This does *not* include dragging windows around, moving the mouse, +clicking on things, or handling actual keyboard events. Furthermore, the +testsuite never sees the actual output the user gets to see. Instead, it just +looks at the data structures. + +Therefore, it would be good to extend the testsuite so that it captures the X11 +output and compares it with saved images. Also, X11 input such as mouse and +keyboard input should be simulated somehow (e.g. captured and replayed). + +=== Desirable skills + +* Experience with Perl or willingness to learn it +* Experience with automated software testing or at least a basic understanding + of the concepts +* Willingness to learn X11 mechanisms to capture output and simulate input + +=== What you will learn + +* How real-world testsuites work +* How X11 input/output works +* How to implement an entirely new feature into an existing codebase + +== Idea 3: Improve compatibility with certain Applications + +We often receive bug reports which are specific to certain toolkits and/or +applications. For example, people are reporting problems with the IntelliJ IDE, +Java applications in general, VMware or Half-Life (via Steam). + +Most often, these problems are caused by i3 doing things slighty differently +than other window managers and can be solved by observing and comparing what +others do and what i3 does. + +Fixing compatibility problems is a huge gain for the users of said +applications. + +=== Desirable skills + +* Some experience in debugging +* Willingness to look at X11 traces for many minutes :) + +=== What you will learn + +* How real-world debugging works, sometimes with open source (Java) and + sometimes with closed source applications (Half-Life, VMware) +* How X11 works diff --git a/docs/gsoc2013-ideas.html b/docs/gsoc2013-ideas.html new file mode 100644 index 0000000..e7c04d8 --- /dev/null +++ b/docs/gsoc2013-ideas.html @@ -0,0 +1,199 @@ + + + + + + +i3: Google Summer of Code 2013 ideas + + + + + + + +
+

i3 - improved tiling WM

+ +
+
+ +
+

1. Idea 1: Saved sessions in i3

+
+

Many desktop environments nowadays have a way of restarting the applications +that you have been using when you reboot your computer.

+

In i3, we want to take that idea a step further: We want to make it possible +for the user to define a precise layout, which is then filled with the +application windows as they start up.

+

Many users are currently achieving a similar effect with custom scripts and +lots of sleep calls to wait for applications to launch and then simulate +interactive commands to move windows around.

+

Many of the building blocks for this feature are already in place, but there +still are a few places of code that need to be touched, a specification to be +written, user feedback to be gathered and documentation to be updated.

+
+

1.1. Desirable skills

+
    +
  • +

    +Experience with C (best) or similar programming languages such as Perl, C++ +

    +
  • +
  • +

    +Willingness and ability to write documentation +

    +
  • +
+
+
+

1.2. What you will learn

+
    +
  • +

    +How X11 and i3 work (not completely, but the most important parts) +

    +
  • +
  • +

    +How to interact with users +

    +
  • +
  • +

    +What good specification and documentation entails +

    +
  • +
+
+
+
+
+

2. Idea 2: Testsuite: better input and output

+
+

i3 uses a comprehensive testsuite and cares about test-driven development as +well as regression tests. While our testsuite covers quite a lot of code and +works well and fest, it currently only uses the IPC interface to communicate +with i3.

+

The current state enables us to simulate anything a user might also trigger by +a keypress. This does not include dragging windows around, moving the mouse, +clicking on things, or handling actual keyboard events. Furthermore, the +testsuite never sees the actual output the user gets to see. Instead, it just +looks at the data structures.

+

Therefore, it would be good to extend the testsuite so that it captures the X11 +output and compares it with saved images. Also, X11 input such as mouse and +keyboard input should be simulated somehow (e.g. captured and replayed).

+
+

2.1. Desirable skills

+
    +
  • +

    +Experience with Perl or willingness to learn it +

    +
  • +
  • +

    +Experience with automated software testing or at least a basic understanding + of the concepts +

    +
  • +
  • +

    +Willingness to learn X11 mechanisms to capture output and simulate input +

    +
  • +
+
+
+

2.2. What you will learn

+
    +
  • +

    +How real-world testsuites work +

    +
  • +
  • +

    +How X11 input/output works +

    +
  • +
  • +

    +How to implement an entirely new feature into an existing codebase +

    +
  • +
+
+
+
+
+

3. Idea 3: Improve compatibility with certain Applications

+
+

We often receive bug reports which are specific to certain toolkits and/or +applications. For example, people are reporting problems with the IntelliJ IDE, +Java applications in general, VMware or Half-Life (via Steam).

+

Most often, these problems are caused by i3 doing things slighty differently +than other window managers and can be solved by observing and comparing what +others do and what i3 does.

+

Fixing compatibility problems is a huge gain for the users of said +applications.

+
+

3.1. Desirable skills

+
    +
  • +

    +Some experience in debugging +

    +
  • +
  • +

    +Willingness to look at X11 traces for many minutes :) +

    +
  • +
+
+
+

3.2. What you will learn

+
    +
  • +

    +How real-world debugging works, sometimes with open source (Java) and + sometimes with closed source applications (Half-Life, VMware) +

    +
  • +
  • +

    +How X11 works +

    +
  • +
+
+
+
+
+

+ + +