]> git.sur5r.net Git - i3/i3.github.io/blob - docs/4.13/gsoc2013-ideas.html
save docs for 4.13
[i3/i3.github.io] / docs / 4.13 / gsoc2013-ideas.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
2     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
4 <head>\r
5 <link rel="icon" type="image/x-icon" href="/favicon.ico">\r
6 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
7 <meta name="generator" content="AsciiDoc 8.6.9" />\r
8 <title>i3: Google Summer of Code 2013 ideas</title>\r
9 <link rel="stylesheet" href="/css/style.css" type="text/css" />\r
10 <link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
11 <script type="text/javascript">\r
12 /*<![CDATA[*/\r
13 document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
14 /*]]>*/\r
15 </script>\r
16 <script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
17 </head>\r
18 <body class="article">\r
19 \r
20         <div id="main">\r
21             <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
22                         <ul id="nav">\r
23                                 <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
24                                 <li><a href="/screenshots">Screens</a></li>\r
25                                 <li><a href="https://www.reddit.com/r/i3wm/">FAQ</a></li>\r
26                                 <li><a href="/contact">Contact</a></li>\r
27                                 <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
28                         </ul>\r
29         <br style="clear: both">\r
30 <div id="content">\r
31 <div id="header">\r
32 <h1>Google Summer of Code 2013 ideas</h1>\r
33 <span id="author">Michael Stapelberg</span><br />\r
34 <span id="email"><tt>&lt;<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>&gt;</tt></span><br />\r
35 <span id="revdate">March 2013</span>\r
36 <div id="toc">
37   <div id="toctitle">Table of Contents</div>
38   <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
39 </div>\r
40 </div>\r
41 <div class="sect1">\r
42 <h2 id="_idea_1_saved_sessions_in_i3">1. Idea 1: Saved sessions in i3</h2>\r
43 <div class="sectionbody">\r
44 <div class="paragraph"><p>Many desktop environments nowadays have a way of restarting the applications\r
45 that you have been using when you reboot your computer.</p></div>\r
46 <div class="paragraph"><p>In i3, we want to take that idea a step further: We want to make it possible\r
47 for the user to define a precise layout, which is then filled with the\r
48 application windows as they start up.</p></div>\r
49 <div class="paragraph"><p>Many users are currently achieving a similar effect with custom scripts and\r
50 lots of sleep calls to wait for applications to launch and then simulate\r
51 interactive commands to move windows around.</p></div>\r
52 <div class="paragraph"><p>Many of the building blocks for this feature are already in place, but there\r
53 still are a few places of code that need to be touched, a specification to be\r
54 written, user feedback to be gathered and documentation to be updated.</p></div>\r
55 <div class="sect2">\r
56 <h3 id="_desirable_skills">1.1. Desirable skills</h3>\r
57 <div class="ulist"><ul>\r
58 <li>\r
59 <p>\r
60 Experience with C (best) or similar programming languages such as Perl, C++\r
61 </p>\r
62 </li>\r
63 <li>\r
64 <p>\r
65 Willingness and ability to write documentation\r
66 </p>\r
67 </li>\r
68 </ul></div>\r
69 </div>\r
70 <div class="sect2">\r
71 <h3 id="_what_you_will_learn">1.2. What you will learn</h3>\r
72 <div class="ulist"><ul>\r
73 <li>\r
74 <p>\r
75 How X11 and i3 work (not completely, but the most important parts)\r
76 </p>\r
77 </li>\r
78 <li>\r
79 <p>\r
80 How to interact with users\r
81 </p>\r
82 </li>\r
83 <li>\r
84 <p>\r
85 What good specification and documentation entails\r
86 </p>\r
87 </li>\r
88 </ul></div>\r
89 </div>\r
90 </div>\r
91 </div>\r
92 <div class="sect1">\r
93 <h2 id="_idea_2_testsuite_better_input_and_output">2. Idea 2: Testsuite: better input and output</h2>\r
94 <div class="sectionbody">\r
95 <div class="paragraph"><p>i3 uses a comprehensive testsuite and cares about test-driven development as\r
96 well as regression tests. While our testsuite covers quite a lot of code and\r
97 works well and fest, it currently only uses the IPC interface to communicate\r
98 with i3.</p></div>\r
99 <div class="paragraph"><p>The current state enables us to simulate anything a user might also trigger by\r
100 a keypress. This does <strong>not</strong> include dragging windows around, moving the mouse,\r
101 clicking on things, or handling actual keyboard events. Furthermore, the\r
102 testsuite never sees the actual output the user gets to see. Instead, it just\r
103 looks at the data structures.</p></div>\r
104 <div class="paragraph"><p>Therefore, it would be good to extend the testsuite so that it captures the X11\r
105 output and compares it with saved images. Also, X11 input such as mouse and\r
106 keyboard input should be simulated somehow (e.g. captured and replayed).</p></div>\r
107 <div class="sect2">\r
108 <h3 id="_desirable_skills_2">2.1. Desirable skills</h3>\r
109 <div class="ulist"><ul>\r
110 <li>\r
111 <p>\r
112 Experience with Perl or willingness to learn it\r
113 </p>\r
114 </li>\r
115 <li>\r
116 <p>\r
117 Experience with automated software testing or at least a basic understanding\r
118   of the concepts\r
119 </p>\r
120 </li>\r
121 <li>\r
122 <p>\r
123 Willingness to learn X11 mechanisms to capture output and simulate input\r
124 </p>\r
125 </li>\r
126 </ul></div>\r
127 </div>\r
128 <div class="sect2">\r
129 <h3 id="_what_you_will_learn_2">2.2. What you will learn</h3>\r
130 <div class="ulist"><ul>\r
131 <li>\r
132 <p>\r
133 How real-world testsuites work\r
134 </p>\r
135 </li>\r
136 <li>\r
137 <p>\r
138 How X11 input/output works\r
139 </p>\r
140 </li>\r
141 <li>\r
142 <p>\r
143 How to implement an entirely new feature into an existing codebase\r
144 </p>\r
145 </li>\r
146 </ul></div>\r
147 </div>\r
148 </div>\r
149 </div>\r
150 <div class="sect1">\r
151 <h2 id="_idea_3_improve_compatibility_with_certain_applications">3. Idea 3: Improve compatibility with certain Applications</h2>\r
152 <div class="sectionbody">\r
153 <div class="paragraph"><p>We often receive bug reports which are specific to certain toolkits and/or\r
154 applications. For example, people are reporting problems with the IntelliJ IDE,\r
155 Java applications in general, VMware or Half-Life (via Steam).</p></div>\r
156 <div class="paragraph"><p>Most often, these problems are caused by i3 doing things slighty differently\r
157 than other window managers and can be solved by observing and comparing what\r
158 others do and what i3 does.</p></div>\r
159 <div class="paragraph"><p>Fixing compatibility problems is a huge gain for the users of said\r
160 applications.</p></div>\r
161 <div class="sect2">\r
162 <h3 id="_desirable_skills_3">3.1. Desirable skills</h3>\r
163 <div class="ulist"><ul>\r
164 <li>\r
165 <p>\r
166 Some experience in debugging\r
167 </p>\r
168 </li>\r
169 <li>\r
170 <p>\r
171 Willingness to look at X11 traces for many minutes :)\r
172 </p>\r
173 </li>\r
174 </ul></div>\r
175 </div>\r
176 <div class="sect2">\r
177 <h3 id="_what_you_will_learn_3">3.2. What you will learn</h3>\r
178 <div class="ulist"><ul>\r
179 <li>\r
180 <p>\r
181 How real-world debugging works, sometimes with open source (Java) and\r
182   sometimes with closed source applications (Half-Life, VMware)\r
183 </p>\r
184 </li>\r
185 <li>\r
186 <p>\r
187 How X11 works\r
188 </p>\r
189 </li>\r
190 </ul></div>\r
191 </div>\r
192 </div>\r
193 </div>\r
194 </div>\r
195 <div id="footnotes"><hr /></div>\r
196 <div id="footer" lang="de">\r
197 © 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
198 </div>\r
199 </body>\r
200 </html>\r