I3 - Improved Tiling WM

Total Page:16

File Type:pdf, Size:1020Kb

I3 - Improved Tiling WM i3 - improved tiling WM Docs Screens FAQ Contact Bugs Do What I Mean. Good Docs. Clean Code. Sounds good? Then you will love i3. Watch the screencast, read the User’s Guide and install i3! ➡ Download the latest version 4.14.1 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 documented code. 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 as data structure. This allows for 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. 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 Michael Stapelberg, Impressum.
Recommended publications
  • Development Version from Github
    Qtile Documentation Release 0.13.0 Aldo Cortesi Dec 24, 2018 Contents 1 Getting started 1 1.1 Installing Qtile..............................................1 1.2 Configuration...............................................4 2 Commands and scripting 21 2.1 Commands API............................................. 21 2.2 Scripting................................................. 24 2.3 qshell................................................... 24 2.4 iqshell.................................................. 26 2.5 qtile-top.................................................. 27 2.6 qtile-run................................................. 27 2.7 qtile-cmd................................................. 27 2.8 dqtile-cmd................................................ 30 3 Getting involved 33 3.1 Contributing............................................... 33 3.2 Hacking on Qtile............................................. 35 4 Miscellaneous 39 4.1 Reference................................................. 39 4.2 Frequently Asked Questions....................................... 98 4.3 License.................................................. 99 i ii CHAPTER 1 Getting started 1.1 Installing Qtile 1.1.1 Distro Guides Below are the preferred installation methods for specific distros. If you are running something else, please see In- stalling From Source. Installing on Arch Linux Stable versions of Qtile are currently packaged for Arch Linux. To install this package, run: pacman -S qtile Please see the ArchWiki for more information on Qtile. Installing
    [Show full text]
  • Qtile Documentation Release 0.6
    Qtile Documentation Release 0.6 Aldo Cortesi January 13, 2015 Contents 1 Installing 3 2 Configuration 5 3 Commands and scripting 7 4 Reference 9 5 Miscellaneous 11 5.1 Installing Qtile.............................................. 11 5.2 Installing on Arch Linux......................................... 11 5.3 Installing on Debian........................................... 12 5.4 Installing on Funtoo........................................... 13 5.5 Installing on Gentoo........................................... 16 5.6 Installing from Source.......................................... 17 5.7 Installing on Ubuntu........................................... 18 5.8 Configuration............................................... 18 5.9 Default Configuration.......................................... 19 5.10 Running Inside Gnome.......................................... 20 5.11 Groups.................................................. 21 5.12 Hooks................................................... 22 5.13 Keys................................................... 22 5.14 Layouts.................................................. 23 5.15 Mouse.................................................. 23 5.16 Screens.................................................. 24 5.17 Starting Qtile............................................... 24 5.18 Commands API............................................. 24 5.19 Object Graph............................................... 25 5.20 Keys................................................... 26 5.21 qsh...................................................
    [Show full text]
  • Interfeţe Grafice Cu Utilizatorul
    Universitatea POLITEHNICA din Bucureşti Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei SISTEME DE OPERARE TEMĂ DE CASĂ Structura sistemelor de operare Windows şi Linux GUI Comparaţie - interfeţe grafice cu utilizatorul Mănucă Adrian, 431A Ţulucescu Alexandru, 431A Bîrsan Ruben, 432A Ciobanu Dragoş, 433A CUPRINS 1. Introducere. Evoluția interfețelor grafice(GUI). ->Ciobanu Dragoș, 433A - Interfața liniei de comandă(CLI) - Interfața grafică Xerox PARC. WIMP. 2. Interfața grafică la Linux. ->Țulucescu Alexandru, 431A - X Window System . Introducere. Design. Principii. Interfețe cu utilizatorul . Implementări . Compositing Window Manager. Compiz, Beryl. Limitări și critici - XFCE - GNOME . Introducere. Tehnologii. Aplicații și funcționare - KDE . Introducere. Evoluția în timp. KDE 4 3. Interfața grafică la Windows. ->Mănucă Adrian, 431A - Începuturi - Windows API - Tema Luna(stilul Windows XP) - Windows Aero . Windows Presentation Foundation(WPF->.NET Framework 3) . Desktop Window Manager - Interfața Ribbon - Metro(limbaj de design) 4. Comparație interfețe grafice. ->Bârsan Ruben, 432A - Asemănări între Linux și Windows. Deosebiri. - Avantaje. Dezavantaje. - Concluzii. 5. Bibliografie 1 Introducere 1. Introducere Evoluţia interfeţelor grafice (GUI) „Interfața grafică (în engleză: Graphical User Interface sau GUI) este numit sistemul de afișaj grafic-vizual pe un ecran, situat funcțional între utilizator și dispozitive electronice cum ar fi computere, dispozitive personale de tip hand-held (playere MP3, playere media portabile, dispozitive de jucat), aparate electrocasnice și unele echipamente de birou.” [1] Pentru a prezenta toate informațile și acțiunile disponibile, un GUI oferă pictograme și indicatori vizuali, în contrast cu interfețele bazate pe text, care oferă doar nume de comenzi (care trebuie tastate) sau navigația text. „Termenul de GUI este restricţionat la ecrane cu display 2D cu rezoluţii capabile de a descrie informaţia generică, în urma cercetării la PARC(Palo Alto Research Center).
    [Show full text]
  • Window Managers HOWTO Articles - Window Managers
    2021/07/26 13:08 (UTC) 1/3 HOWTO articles - Window Managers HOWTO articles - Window Managers This section contains how to articles intended to guide users to setup and maintain window managers on Slackware based systems. Inspired? Want to write a Window Manager HOWTO page yourself? Type a new page name (no spaces - use underscores instead) and start creating! You are not allowed to add pages Overview of Slackware Administration HOWTOS Page Description Tags Dual Monitors Known to work on Slackware 14.1 and howtos, software, XFCE If you are running XFCE and your secondary window managers, dual monitor isn't working, check and make sure it's enabled Dual Monitors monitors, monitors, dual in XFCE's SETTINGS: SETTINGS > SETTING MANAGER > displays, displays, DISPLAY > display name in column on left > USE THIS author arfon OUTPUT Enlightement DR17 What is E17? Enlightenment DR17 (E17) is the long awaited successor of E16, a window manager which was distributed in Slackware 10 years ago. It is classed as a “desktop shell”, providing the Enlightement howtos, e17, author things you need to operate your desktop (or laptop), but DR17 ngc891 not a whole suite of applications. This includes launching applications, managing their windows, and doing other system tasks like suspending, rebooting, managing files, etc. Fluxbox Fluxbox is a window manager for X, based on Blackbox 0.61.1 code (deprecated), very light and fast, howtos, window with several window management tools such as tabs, Fluxbox managers, fluxbox, groupings, docks, etc. Configuration files are simple and author carriunix easily editable, allowing high customization. Fluxbox is written in C++ and licensed under an MIT license.
    [Show full text]
  • Qtile Documentation Release 0.15.0
    Qtile Documentation Release 0.15.0 Aldo Cortesi Apr 12, 2020 Contents 1 Getting started 1 1.1 Installing Qtile..............................................1 1.2 Configuration...............................................5 2 Commands and scripting 25 2.1 Commands API............................................. 25 2.2 Scripting................................................. 28 2.3 qshell................................................... 28 2.4 iqshell.................................................. 30 2.5 qtile-top.................................................. 31 2.6 qtile-run................................................. 31 2.7 qtile-cmd................................................. 31 2.8 dqtile-cmd................................................ 34 3 Getting involved 37 3.1 Contributing............................................... 37 3.2 Hacking on Qtile............................................. 38 4 Miscellaneous 43 4.1 Reference................................................. 43 4.2 Frequently Asked Questions....................................... 107 4.3 License.................................................. 108 Index 109 i ii CHAPTER 1 Getting started 1.1 Installing Qtile 1.1.1 Distro Guides Below are the preferred installation methods for specific distros. If you are running something else, please see In- stalling From Source. Installing on Arch Linux Stable versions of Qtile are currently packaged for Arch Linux. To install this package, run: pacman -S qtile Please see the ArchWiki for more information on
    [Show full text]
  • Tiling Window Managers
    Overview Window Managers Tiling Algorithms Getting Started Demos Meta Tiling Window Managers Aline Abler April 4, 2016 Tiling Window Managers 1 Aline Abler Overview Window Managers Tiling Algorithms Getting Started Demos Meta Table of Contents What will we learn today? I What is a window manager? I What makes it tiling? I Why is tiling cool? I How does it work? I How do I put it on my system? I Which one should I use? Tiling Window Managers 2 Aline Abler Overview Window Managers Tiling Algorithms Getting Started Demos Meta Functionality of Window Managers Well, it manages windows You already have one Tiling Window Managers 3 Aline Abler Overview Window Managers Tiling Algorithms Getting Started Demos Meta Functionality of Window Managers Stacking Window Managers Each window is freely draggable and resizable Tiling Window Managers 4 Aline Abler Overview Window Managers Tiling Algorithms Getting Started Demos Meta Functionality of Window Managers When do we call it tiling? I Windows are arranged for you I They always take up the entire screen I You always see all of them How is that better? Tiling Window Managers 5 Aline Abler Overview Window Managers Tiling Algorithms Getting Started Demos Meta How to tile windows Tiling approaches List vs. Tree Tiling Window Managers 9 Aline Abler Overview Window Managers Tiling Algorithms Getting Started Demos Meta How to tile windows List based tiling I Windows are internally represented as ordered list I Arrangement is based on their positions in the list I Numerous ways to do this Tiling Window Managers
    [Show full text]
  • Tecnología Thin Client Sistemas Informáticos
    2010 Tecnología Thin Client Sistemas Informáticos Luis Miguel Moya Moirón G990192 25/01/2010 SSII – Tecnología Thin Clients Página 1 Indice Sistema Informático desarrollado……………………………………………………………….......3 Objetivo…………………………………………………………………………………………………………….7 Introducción: ¿Qué es un Thin Client?...................................................................7 Visión general de la tecnología Thin Client………………………………………………………..8 Arquitectura en Red………………………………………………………………………………………….9 Hardware de un Thin Client……………………………………………………………………………..15 Software Thin Client………………………………………………………………………………………..22 Fundamentos Thin Client………………………………………………………………………………...25 Arranque por red…………………………………………………………………………………….…25 Sesión Remota…………………………………………………………………………………………..29 Ventajas de los Thin Client………………………………………………………………………………35 Desventajas de los Thin Client…………………………………………………………………………39 Escenarios Thin Client……………………………………………………………………………………..41 Protocolos Thin Client……………………………………………………………………………………..44 Protocolos para el arranque por red…………………………………………………………..44 Protocolo PXE……………………………………………………………………………………….44 Protocolo DHCP…………………………………………………………………………………….45 Protocolo TFTP……………………………………………………………………………………..47 Funcionamiento del protocolo PXE……………………………………………………….49 NBP………………………………………………………………………………………………………51 Protocolos para sesiones de escritorio remoto…………………………………………..51 X-Window System / XDMCP………………………………………………………………….52 VNC………………………………………………………………………………………………………59 Terminal Services / RDP………………………………………………………………………..60 Tecnología NX……………………………………………………………………………………….63
    [Show full text]
  • Preliminary Report: Xmonad Practical Course – Contributing to an Open-Source Project Chair for Chair for Logic and Verification Technical University of Munich
    Preliminary Report: XMonad Practical Course – Contributing to an Open-Source Project Chair for Chair for Logic and Verification Technical University of Munich Yecine Megdiche 1st of December 2020 1 Introduction and definitions XMonad is a “dynamically tiling X11 window manager that is written and configured in Haskell”. It is designed to be “lightweight, minimal, extremely customizable and crash-free”. This window manager is entirely usable with just the keyboard, with optional mouse support [1]. It is considered as one of the well known “real-world” software written in Haskell1. 1.1 Definitions • X11 Window System: The most used GUIs manager on UNIX-Like Operating Systems [2]. • Window Manager: The ArchWiki [3] defines a window manager as a “system software that controls the placement and appearance of windows within a windowing system in a graphical user interface.” – Tiling Window managers: Window managers who place win- dows in non-overlapping tiles are called tiling window managers, in contrast to stacking or floating window managers. [3] 1https://github.com/xmonad/xmonad/issues/93#issuecomment-298145660 1 2 XMonad: Short History and Motivation Spencer Janssen, one of the original authors of XMonad, used dwm2 as his window manager. Dwm is a tiling window manager, written and configured in C. That inspired him to create a similar project in Haskell, which he, Don Stewart, and Jason Creighton worked on. Brandon S. Allbery helped them make XMonad compliant with the “Inter-Client Communication Conventions Manual” rules defined by X11.[4] XMonad was announced on the 22nd of April 2007 by Spencer Janssen over at the Haskell-café mailing-list [5].
    [Show full text]
  • Wie Finde Ich Meinen Window Manager?
    Wie finde ich meinen Window Manager? Ein Selbstfindungskurs Thorsten Wißmann 18. November 2011 Stand: 19. November 2011 Thorsten Wißmann Window Manager Selbstfindungskurs 18. November 2011 1 / 15 Kategorisierung - Welcher Typ? X11 Window Manager Tiling Stacking/Floating Manuell Automatisch *box ··· Compositing dwm Blackbox Pekwm KWin Compiz subtle ratpoison ··· ··· Thorsten Wißmann Window Manager Selbstfindungskurs 18. November 2011 2 / 15 Inhalt 1 Ubersicht¨ 2 Stacking/Floating Compositing *box 3 Tiling Manuell Automatisch 4 Literatur Thorsten Wißmann Window Manager Selbstfindungskurs 18. November 2011 3 / 15 KWin Standard von KDE Fensterregeln per GUI zusammenstellbar seit KDE 4.0 auch mit 3D-Effekten (Desktop-W¨urfel) neuerdings Tiling im Stile von dwm Thorsten Wißmann Window Manager Selbstfindungskurs 18. November 2011 4 / 15 Compiz großes Plugin-System (,,Compiz-Fusion\) Fenstereffekte in Abh¨angigkeit der Anwendung sehr viele Plugins Thorsten Wißmann Window Manager Selbstfindungskurs 18. November 2011 5 / 15 Blackbox wird nichtmehr weiterentwickelt generische Themes mit Panel darauf basiert: Openbox Fluxbox Tabbing runde Fensterecken Hackedbox Thorsten Wißmann Window Manager Selbstfindungskurs 18. November 2011 6 / 15 Openbox komplett in C komplett per Maus steuerbar komplett per Tastatur steuerbar Konfiguration in XML kein Panel Pipe-Menus Thorsten Wißmann Window Manager Selbstfindungskurs 18. November 2011 7 / 15 PekWM bedienbar wie *box graphische Schemata verwandte FVWM2 alt-bew¨ahrt komplexe Fensterregeln/-aktionen Thorsten Wißmann Window Manager Selbstfindungskurs 18. November 2011 8 / 15 verwandte FVWM2 alt-bew¨ahrt komplexe Fensterregeln/-aktionen PekWM bedienbar wie *box graphische Schemata Thorsten Wißmann Window Manager Selbstfindungskurs 18. November 2011 8 / 15 subtle konfigurierbar in Ruby mit Panel Unterteilung des Bildschirms in ein 3x3-Gitter (,,Gravities\) Fenster werden initial auf Tags verteilt Tags k¨onnenbeliebig auf Monitore verteilt werden Thorsten Wißmann Window Manager Selbstfindungskurs 18.
    [Show full text]
  • Tiling Window Managers
    Tiling window managers Matto Fransen <[email protected]> First Contact whoami Linux-gebruiker ( > 20 jaar) Fan van text mode applicaties NLLGG bestuur 1997-2003 Freelance auteur Linux Magazine Geschiedenis gebruik window managers: FVWM2 KDE Blackbox Ratpoison ( > 10 jaar) i3wm (~ 1/2 jaar) Programma Wat is een Window Manager Wat is een Tiling Window Manager Waarom een Tiling Window Manager i3 Demo Not Suitable For Technicians NSFT Disclaimer: Deze presentatie is ongeschikt voor briljante techneuten Waar zijn we Wat is een Window Manager Wat is een Tiling Window Manager Waarom een Tiling Window Manager i3 Demo Hoe het allemaal begon X11 en de Window Manager Wikipedia: A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Wat doet de Window Manager Window decorations (borders, titlebar, titlebar buttons) Window actief maken (window krijgt focus) Focus stealing (applicatie mag window focus geven) Verstoppen / iconificeren Menu / Menubar / Rootmenu Startbar/Startbutton Window Manager versus Geintegreerde Desktop Window Manager: Beheert je windows Doet verder niks i3 Openbox Fluxbox Geintegreerde Desktop: Speelt min of meer de baas over je PC Bevat ook een Window Manager KDE Gnome XFCE Waar zijn we Wat is een Window Manager Wat is een Tiling Window Manager Waarom een Tiling Window Manager i3 Demo Verschillende soorten Window Managers Stacking Window Manager: overlappende windows (blackbox, XOS) Tiling Window Manager: windows niet-overlappend, naast elkaar
    [Show full text]
  • Xlib − C Language X Interface Xwindowsystem Standard Xversion 11, Release 6.9/7.0
    Xlib − C Language X Interface XWindowSystem Standard XVersion 11, Release 6.9/7.0 James Gettys Cambridge Research Laboratory Digital Equipment Corporation Robert W.Scheifler Laboratory for Computer Science Massachusetts Institute of Technology with contributions from Chuck Adams, Tektronix, Inc. Vania Joloboff, Open Software Foundation Hideki Hiura, Sun Microsystems, Inc. Bill McMahon, Hewlett-Packard Company Ron Newman, Massachusetts Institute of Technology Al Tabayoyon, Tektronix, Inc. Glenn Widener,Tektronix, Inc. Shigeru Yamada, Fujitsu OSSI The X WindowSystem is a trademark of The Open Group. TekHVC is a trademark of Tektronix, Inc. Copyright © 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996, 2002 The Open Group Permission is hereby granted, free of charge, to anyperson obtaining a copyofthis software and associated documenta- tion files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Soft- ware. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOTLIMITED TOTHE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTIC- ULAR PURPOSE AND NONINFRINGEMENT.INNOEVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORTOROTH- ERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    [Show full text]
  • Kwin Now and Tomorrow the KDE Plasma Window Manager's Current State and Future Evolution
    KWin now and tomorrow The KDE Plasma window manager's current state and future evolution Roman Gilg 1 / 23 What is KWin? ● First commit on 20th Aug. 1999 ● KDE window manager since KDE 2.0 ● X11 composite window manager ● Wayland compositor ● First commit 11th June 2011 ● Written in C++ and Qt ● Part of KDE Plasma releases, currently 5.17 beta 2 / 23 Design overview ● Singletons compose Core ● Qt Plugin systems: – Platform: DRM, X11, … – Scene: Gl, QPainter, … ● Effects + scripting APIs ● Input filters (Wayland) 3 / 23 Broader ecosystem 4 / 23 Broader ecosystem and Core ● SDDM display manager ● Startup of Plasma workspace – In the past scripts – Now binary ● Wayland input through separate thread 5 / 23 Platform ● Several Platform plugins ● Outputs are on Platform and Core level ● KScreen for output management 6 / 23 Windows ● KWindowSystems on X11, KWayland on Wayland for windows management ● For internal windows: own KWin QPA (Qt Platform Abstraction) plugin ● Internally represented through inheriting classes 7 / 23 Customize API ● Effects chaining ● Window decos with KDecoration2 – Binary (for example Breeze) – Text files (SVG or QML) with Aurorae ● Powerful scripting API (for example tiling window manager) 8 / 23 Broader ecosystem revisited 9 / 23 Design as an X11 window manager 10 / 23 Design as a Wayland compositor 11 / 23 Recent and ongoing work ● Internal clients only through Kwin's own QPA ● Redesign of output management (KWin + Kscreen) ● Simplify X11 Compositor and GLX backend ● Night Color on X11 12 / 23 Future work ● Wayland
    [Show full text]