]> git.sur5r.net Git - i3/i3/blob - docs/NoName-2009-03-12/i3.tex
Add slides for presentation at NoName e.V.
[i3/i3] / docs / NoName-2009-03-12 / i3.tex
1 %
2 % © 2009 Michael Stapelberg
3 %
4 % 2009-03-12
5 %
6 \documentclass[mode=print,paper=screen,style=jefka]{powerdot}
7 \usepackage[utf8]{inputenc}
8 \usepackage{graphicx}
9 \usepackage{ngerman}
10 \usepackage{url}
11 \usepackage{listings}
12 \newcommand{\bs}{\textbackslash}
13 \pdsetup{palette=white}
14 \lstnewenvironment{code}{%
15         \lstset{frame=single, basicstyle=\footnotesize\ttfamily}
16 }{}
17 \title{i3 - an improved dynamic tiling window manager}
18 \author{sECuRE beim NoName e.V.\\
19 ~\\
20 powered by \LaTeX, of course}
21 \begin{document}
22 \maketitle
23
24 %\begin{slide}{Inhalt}
25 %\begin{list}{$\bullet$}{\itemsep=1em}
26 %       \item Bevor es losgeht
27 %       \item Wie man korrekt kompiliert (Symbols)
28 %       \item Grundwissen gdb
29 %       \item Wenn es knallt (Core dumps)
30 %       \item (Conditional) Breakpoints/Watchpoints
31 %       \item Abkürzungen
32 %       \item Macros
33 %\end{list}
34 %\end{slide}
35
36 \begin{slide}{Geschichte}
37 \begin{list}{$\bullet$}{\itemsep=1em}
38         \item<1-> „All window managers suck, this one just sucks less”?
39         \item<2-> Desktop environment vs. window manager (GNOME, KDE, Xfce, …)
40         \item<3-> Stacking (e17, fluxbox, IceWM, fvwm, …) vs Tiling (dwm, wmii, xmonad, …)
41         \item<4-> dwm, awesome, xmonad, …: statisches Layout
42         \item<5-> wmii, ion: dynamisches layout
43         \item<6-> Problem an ion: tuomov (Lizenz, Kommunikation), Config, Look and feel
44         \item<7-> Probleme an wmii: Xinerama-support, Xlib, undokumentierter code, nur Spalten, keine Reihen, Kleinigkeiten (titellose Fenster)
45 \end{list}
46 \end{slide}
47
48 \begin{slide}{Screenshots!}
49 \centering
50 Drücken Sie Mod1+2 um diese Demo zu starten.
51 \end{slide}
52
53 \begin{slide}{Merkmale}
54 \begin{list}{$\bullet$}{\itemsep=1em}
55         \item<1-> gut lesbarer, dokumentierter Code. Dokumentation.
56         \item<2-> XCB anstelle von Xlib
57         \item<3-> Xinerama done right™
58         \item<4-> Spalten und Zeilen
59         \item<5-> command-mode, wie in vim
60         \item<6-> UTF-8 clean
61         \item<7-> kein Antialiasing, schlank und schnell bleiben
62 \end{list}
63 \end{slide}
64
65 \begin{slide}{Was genau macht ein WM?}
66 \begin{list}{$\bullet$}{\itemsep=1em}
67         \item<1-> Neue Fenster positionieren
68         \item<2-> Titelleisten malen (reparenting)
69         \item<3-> Den Fokus verwalten
70         \item<4-> Mit Hints umgehen (Fullscreen, Dock, …)
71 \end{list}
72 \end{slide}
73
74 \begin{slide}{Was an X toll ist}
75 \begin{list}{$\bullet$}{\itemsep=1em}
76         \item<1-> Man hat an Window Manager gedacht (Mac OS X *hust*)
77         \item<2-> Netzwerk-transparent (debugging, xtrace)
78         \item<3-> Das Protokoll ist gut designed (Extensions möglich, simpel)
79 \end{list}
80 \end{slide}
81
82 \begin{slide}{Was an X nicht so toll ist}
83 \begin{list}{$\bullet$}{\itemsep=1em}
84         \item<1-> Einige race conditions vorhanden
85         \item<2-> Man kann nicht fein genug angeben, welche Events man gerne hätte
86         \item<3-> Xlib ist ziemlich eklig, aber es gibt ja xcb
87         \item<4-> Bugs: Keyboard state wird nicht richtig übermittelt
88         \item<5-> Ich empfehle auch: „Why X is not our ideal window system” \url{http://www.std.org/~msm/common/WhyX.pdf}
89 \end{list}
90 \end{slide}
91
92 \begin{slide}{XCB}
93 \begin{list}{$\bullet$}{\itemsep=1em}
94         \item \url{http://xcb.freedesktop.org/}
95         \item<1-> „X-protocol C-language Binding”
96         \item<2-> Klein, wartbar (aus einer Protokollbeschreibung auto-generiert)
97         \item<3-> Sinnvoll benannte Funktionsnamen und Datentypen
98         \item<4-> Threadsafe (nicht dass wir das bräuchten, aber…)
99         \item<5-> Nutzt die Asynchronität von X aus
100         \item<6-> Dokumentation? Ne, das ist was für Anfänger.
101         \item<7-> xcb-util: XCB noch mal ein bisschen gekapselt, nützliche Funktionen abstrahiert
102 \end{list}
103 \end{slide}
104
105 \begin{slide}{Xft}
106 \begin{list}{$\bullet$}{\itemsep=1em}
107         \item<1-> „X FreeType”, library um antialiased fonts zu benutzen
108         \item<2-> Benutzt man am besten mit Pango (rendert fonts) und Cairo
109         \item<3-> Keine Möglichkeit, pixel fonts zu benutzen („x core fonts”)
110         \item<4-> Was macht man (urxvt) also? Beide APIs benutzen, fallback fonts
111         \item<5-> Was machen wir (i3)? misc-fixed-*-iso10646!\\
112                 ISO 10646 = Universal Character Set, selbe Zeichen wie Unicode
113         \item<6-> Fontconfig/xft soll wohl x core fonts ablösen :-(
114 \end{list}
115 \end{slide}
116
117 \begin{slide}{Ein paar Zahlen}
118 \begin{list}{$\bullet$}{\itemsep=1em}
119         \item<1-> 6118 Zeilen Code, Dokumentation, Website, READMEs
120         \item<2-> \~{} 2800 Zeilen Sourcecode
121         \item<3-> 73 KB groß (ohne debug symbols)
122 \end{list}
123 \end{slide}
124
125 \begin{slide}{Benutzen}
126 \begin{list}{$\bullet$}{\itemsep=1em}
127         \item git clone \url{git://code.stapelberg.de/i3}
128         \item Debian: cd i3; dpkg-buildpackage; sudo dpkg -i ../i3-wm*deb
129         \item non-Debian: cd i3; cat DEPENDS; make; sudo make install
130         \item in \~{}/.xsession: exec /usr/bin/i3
131         \item Siehe manpage i3(1)
132 \end{list}
133 \end{slide}
134
135 \begin{slide}{Mehr infos}
136 \begin{list}{$\bullet$}{\itemsep=1em}
137         \item git-webinterface: \url{http://code.stapelberg.de/git/i3}
138         \item Website: \url{http://i3.zekjur.net}
139         \item IRC: \#i3 auf irc.twice-irc.de
140 \end{list}
141 \end{slide}
142
143 \end{document}