- wlroots (>=0.10.0)
- wayland-protocols
- xwayland
+- libxml2
Will soon depend on
-- libxml2
- cairo, pango, glib
## Roadmap
## Configuration
-### Keyboard Shortcuts
-
-We will support rc.xml keybinds, but for the time being:
-
-```
-Alt+Escape Exit labwc
-Alt+F2 Cycle windows
-Alt+F3 Launch dmenu
-```
-
-### Keyboard Layout
-
-Set environment variable `XKB_DEFAULT_LAYOUT` for your keyboard layout, for
-example `gb`. Read `xkeyboard-config(7)` for details.
+See [rc.xml](data/rc.xml) comments for details, incl. keybinds.
## Integration
-- Use grim for scrots
+Suggested apps:
+
+- grim - screenshots
## Build
<?xml version="1.0" encoding="UTF-8"?>
+<!-- Use <openbox_config> as root element for openbox compatibility -->
<openbox_config xmlns="http://openbox.org/3.4/rc"
xmlns:xi="http://www.w3.org/2001/XInclude">
-<!-- wlroots specific settings - not part of openbox -->
-<wlroots>
+<!-- labwc specific settings - additional to openbox -->
+<lab>
<!-- Use client-side decorations for xdg-shell views -->
<csd>no</csd>
-</wlroots>
+
+ <!-- See xkeyboard-config(7) for details on these keyboard settings -->
+ <keyboard>
+ <layout>gb</layout>
+ </keyboard>
+</lab>
+
+<!-- keybinds have not been implemented yet. For the time being, we use the
+ following:
+ - Alt+Escape Exit labwc
+ - Alt+F2 Cycle windows
+ - Alt+F3 Launch dmenu -->
+<keyboard>
+
+</keyboard>
</openbox_config>
return;
if (in_keybind)
fill_keybind(node, nodename, content);
- if (!strcmp(nodename, "csd.wlroots"))
+ if (!strcmp(nodename, "csd.lab"))
rc.client_side_decorations = get_bool(content);
+ if (!strcmp(nodename, "layout.keyboard.lab"))
+ setenv("XKB_DEFAULT_LAYOUT", content, 1);
}
static void keybind_begin(void)
if (node->parent && !strcmp((char *)node->name, "text"))
node = node->parent;
- buf += len;
- *--buf = 0;
- len--;
-
char *p = buf;
p[--len] = 0;
for (;;) {
fprintf(stderr, "fatal: error reading file '%s'\n", filename);
exit(EXIT_FAILURE);
}
- printf("info: reading config file '%s'\n", filename);
xml_tree_walk(xmlDocGetRootElement(d));
xmlFreeDoc(d);
xmlCleanupParser();