tiling window managers a lightning-talk by mitch quick overview concepts examples
overview ● Vorstellung ● Ziel ● Konzept ● Beispiele ● Werdegang ● Live-Demo ● dwm-mitch ● Linkverzeichnis
introduction ● Mein Web – ● Mein Twitter – master_mitch ● Mein IRC – mitch in #ant im euIRC ● Mein Key – 0x79F1A9C1
objective ● aha, sowas gibt’s also ● einfach mal ausprobieren ● vielleicht gefällt es ja jemandem ● Werbung :-) – aber mehr User bedeuten mehr Fehlermeldungen...
concept 1/3 ● Warum Fenster durch die Gegend schieben? Soll das doch der Rechner machen! – automatisches Platzieren von Fenstern – verschiedene Layouts – Tastatursteuerung gut möglich – „floating“ Layer für Fenster fester Größe ● Dialogboxen etc. – manche Programme kommen mit tiling nicht klar ● „floating“ für einzelne/alle Fenster
concept 2/3 ● Tiling-WMs gibt es prinzipiell schon lange: – 1988 Siemens RTL tiling WM (SINIX) – Windows 1.0 – bekannt z.B. aus Windows 95 (manuell) ● Taskbar: horizontal teilen, vertikal teilen ● kommen aber aktuell wieder in Mode – 2000 larswm, ion (jedenfalls sagt das die Wikipedia)
concept 3/3 ● Layout-Beispiele aus dwm: – meist ein Hauptfenster plus „Stack“ ____________________ ____________________ ____________________ |1 |2 | |1 | |1 | | | | | | | | | |_______| | | | | | |3 | | | | | | |_______| | | |____________________| | |4 | | | |2 |3 |4 | |____________|_______| |____________________| |______|______|______| stack maximized bottom stack ____________________ ____________________ ____________________ | __|3____|__ | |1 |2 | |1 |2 | | _____|2___ | | | | | | | | ||1 | | | | |__________| | | | || |______| | | |5 |6_|3 | |__________|_________| || |___| | | |__|7_| | |3 |4 | ||__________| | | |4 | | | | | |____________________| |_________|_____|____| |__________|_________| floating spiral grid
examples 1/3 ● awesome – dwm-Abkömmling mit XCB statt Xlib ● Grid plugin – erweitert Compiz um Tiling ● Ion – kombiniert Tiling mit Tabbing (mehrere Fenster übereinander) – nicht mehr weiterentwickelt, Entwickler mag kein FOSS mehr
examples 2/3 ● Lunchbox – Mischung aus Tiling und Mausbedienung (Fenster verschieben) ● ratpoison – „GNU screen for X“ – keine Maus nötig – Nachfolger in Lisp: stumpwm ● xmonad – tiling WM in Haskell(!)
examples 3/3 ● geht auch im Textmodus! ● SplitVT – na ja... ● GNU Screen – C-A S bzw. C-A | ● GNU emacs ● dvtm – richtiges Tiling, mehrere Layouts
history 1/4 ● Linux seit SuSE 5.3 ● FVWM – mehrere Desktops ● Enlightenment – optischer BLING! ● Wassereffekte auf dem Desktop ● kompliziertere Fensterrahmen
history 2/4 ● Fluxbox (nach kurzem Abstecher über blackbox) – schneller – leichter – Schritt zurück und nachgedacht: Was mache ich mit dem WM? ● WM als Terminalmultiplexer ● pro Desktop eine Anwendung im Vollbildmodus – ergo eigene Tastenbelegung: ● neues Terminal öffnen ● Fenster auf Vollbild bringen
history 3/4 ● wmii – basiert auf Plan 9 – dynamisches Fensterhandling (tiling-wm) – mehrere Desktops (workspaces) – doof: ● basiert auf Plan 9 ● Filesystem-Interface 9p für Konfiguration etc. ● komisches Scriptsystem – eigene Shell, sieht aus wie sh, ist aber im Detail ganz anders, ähnlich eklig wie REXX (k.A., ob das aktuell noch gilt)
history 4/4 ● dwm – minimalistisch und dynamisch (tiling) – Designziele: ● max Zeilen Code ● Konfiguration im Code, keine Dateien ● dadurch kleine, elitäre(sic!) Userbasis – neu: Xinerama-Unterstützung – doof: ● Tags statt Desktops – Fenster taggen (gruppieren) und dann 1 bis n Tags anzeigen – dadurch nur ein globales Layout
live demonstration ● dwm-mitch – mein eigener Fork von dwm (Uraltversion 4.7.0) – alternatives Farbschema in Benutzung ● damit man das auch nachvollziehen kann – dmenu als Programmstarter – Statusleiste per Skript gefüttert – dzen2 für Notifications
dwm-mitch 1/6 ● Start: November 2006 mit dwm 2.3 ● Dezember 2008 auf dwm 4.7 ● seitdem unabhängig von dwm – persönliche Sicht: feature-complete – dwm 5.x ist zu doll umgegraben – große Entwicklungspause ● dmenu weiterhin aktuell ● Lebenszeichen März 2010 – Xinerama-Unterstützung
dwm-mitch 2/6 ● dwm ist ideale Basis zum Basteln – Xlib lernen – C lernen ● dwm-mitch macht alles so, wie ich das will – daher auch weltweit geschätzt nur 2-5 Nutzer
dwm-mitch 3/6 ● wildes Patchsystem – gedacht für selektives Patchen – klappt inzwischen eh nicht mehr – könnte man auch direkt im git führen – bleibt aber so, weil ich keinen Bedarf sehe, das hübscher zu machen – diffs von diffs ● Hirnknoten! ● Unterstützung von persönlichen Konfigurationen
dwm-mitch 4/6 ● Patches dwm-mitch – (inzwischen teilweise auch im vanilla-dwm) – Bottom-Stack Layout – Maximize Layout – traditionelle Workspaces statt Tags – UTF8-Fixes Statusleiste – Reload per SIGUSR1 – anderer Rahmen für floating Clients – Xinerama (ein Layout pro Monitor)
dwm-mitch 5/6 ● Patches dmenu – Befehlshistorie – UTF8-Fixes
dwm-mitch 6/6 ● Bugs – Fullsize Floating Rahmengröße ● nie getestet, ich hab Rahmen sonst aus... – Tastatur liegt tot auf Mutterns Rechner seit Einführung von Xinerama ● aber auch nur da, auf anderen Rechnern geht das – abweichende Fensterhöhe dwm/dmenu ● ich hab mich schon dumm und dusselig gesucht – Client-Stack kommt durcheinander bei floating- Bewegungen im Maximize-Layout
the end ● Noch Fragen? ● Danke! ● Und jetzt mal ausprobieren!
link list 1/5 ● FVWM – ● Enlightenment – ● Fluxbox – – ● Blackbox –
link list 2/5 ● wmii – ● Plan 9 – ● dwm – ● Wikipedia über Tiling WMs – ● awesome –
link list 3/5 ● Grid plugin – ● Ion – (404 gone fishin') – (unofficial) ● Lunchbox – ● ratpoison –
link list 4/5 ● stumpwm – ● xmonad – ● SplitVT – ● GNU screen – ● GNU emacs –
link list 5/5 ● dvtm – ● dwm-mitch – ● dmenu – ● dzen –