explaingit

awesomewm/awesome

6,882LuaAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

Awesome is a highly configurable tiling window manager for Linux, controlled entirely through a Lua configuration file with no graphical settings panel.

Mindmap

mindmap
  root((awesome WM))
    What it does
      Manages window layouts
      Tiling and floating modes
      Keyboard driven
    Tech stack
      Lua config
      C core
      X11
    Configuration
      rc.lua file
      Keybindings
      Widgets
    Use cases
      Linux desktop
      Custom layouts
      Status bar
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace your desktop environment with a keyboard-driven tiling window manager for a faster, distraction-free workflow.

USE CASE 2

Write Lua scripts to automatically arrange windows based on which application opens.

USE CASE 3

Build a custom status bar with widgets showing CPU usage, battery level, or network stats.

Tech stack

LuaCCMakeX11

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires an X11 environment, you must configure .xinitrc or a display manager entry to launch it, then edit rc.lua before it is usable.

GPL v2 or later -- free to use and modify, changes must remain open source under the same license.

In plain English

Awesome is a window manager for the Linux desktop, specifically for the X window system. A window manager controls how application windows are displayed on screen: which ones overlap, how they tile, which keyboard shortcuts open or close things. Awesome is classified as a tiling window manager, meaning it arranges windows to fill the screen without overlapping, rather than letting you drag them around freely. What makes it different from most window managers is that its entire configuration is written in Lua, a lightweight scripting language. You write or edit a file called rc.lua to define your own keybindings, layouts, status bar widgets, and rules for how specific apps behave when they open. There is no graphical settings panel. Instead, everything is expressed as code, which means experienced users can make the environment behave exactly as they want, but the learning curve is steep for newcomers. Installing Awesome requires building it from source or using a package manager that supports it. Common Linux distributions like Arch Linux and Debian have packages available. After installation, you tell your display manager to launch Awesome, or add a line to your .xinitrc file to start it manually. The project is licensed under the GNU General Public License version 2 or later, which means it is free to use, modify, and share. Support channels include an IRC channel on OFTC, a Reddit community at r/awesomewm, and Stack Overflow. Bug reports go to GitHub issues, and code contributions are accepted via pull requests. Documentation for the full API lives at awesomewm.org, covering everything from layout modules to widget APIs. This is a project for Linux users who want deep control over their desktop environment and are comfortable editing configuration files and reading technical documentation.

Copy-paste prompts

Prompt 1
I just installed awesome window manager. Help me edit ~/.config/awesome/rc.lua to add a keybinding that opens a terminal with Super+Enter.
Prompt 2
Explain how awesome window manager layouts work in Lua. How do I switch between tiling and floating mode for a specific window?
Prompt 3
I want to add a battery level widget to the awesome window manager status bar. What Lua code do I add to rc.lua?
Open on GitHub → Explain another repo

← awesomewm on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.