/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
config.c for the Openbox window manager
+ Copyright (c) 2004 Mikael Magnusson
Copyright (c) 2003 Ben Jansens
This program is free software; you can redistribute it and/or modify
gboolean config_focus_new;
gboolean config_focus_follow;
guint config_focus_delay;
-guint config_focus_raise;
+gboolean config_focus_raise;
+gboolean config_focus_last;
ObPlacePolicy config_place_policy;
-gchar *config_theme;
+gchar *config_theme;
+gboolean config_theme_keepborder;
gchar *config_title_layout;
gint config_desktops_num;
GSList *config_desktops_names;
+gint config_screen_firstdesk;
-gboolean config_redraw_resize;
+gboolean config_resize_redraw;
+gboolean config_resize_four_corners;
+gint config_resize_popup_show;
+gint config_resize_popup_pos;
ObStackingLayer config_dock_layer;
gboolean config_dock_floating;
+gboolean config_dock_nostrut;
ObDirection config_dock_pos;
gint config_dock_x;
gint config_dock_y;
gint config_mouse_threshold;
gint config_mouse_dclicktime;
+gboolean config_menu_warppointer;
+gboolean config_menu_xorstyle;
+guint config_menu_hide_delay;
+gboolean config_menu_client_list_icons;
+
GSList *config_menu_files;
gint config_resist_win;
gint config_resist_edge;
+gboolean config_resist_layers_below;
+
/*
<keybind key="C-x">
config_focus_delay = parse_int(doc, n) * 1000;
if ((n = parse_find_node("raiseOnFocus", node)))
config_focus_raise = parse_bool(doc, n);
+ if ((n = parse_find_node("focusLast", node)))
+ config_focus_last = parse_bool(doc, n);
}
static void parse_placement(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
g_free(config_title_layout);
config_title_layout = parse_string(doc, n);
}
+ if ((n = parse_find_node("keepBorder", node)))
+ config_theme_keepborder = parse_bool(doc, n);
}
static void parse_desktops(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
node = node->children;
if ((n = parse_find_node("number", node))) {
- guint d = parse_int(doc, n);
+ gint d = parse_int(doc, n);
if (d > 0)
config_desktops_num = d;
}
+ if ((n = parse_find_node("firstdesk", node))) {
+ gint d = parse_int(doc, n);
+ if (d > 0)
+ config_screen_firstdesk = d;
+ }
if ((n = parse_find_node("names", node))) {
GSList *it;
xmlNodePtr nname;
node = node->children;
if ((n = parse_find_node("drawContents", node)))
- config_redraw_resize = parse_bool(doc, n);
+ config_resize_redraw = parse_bool(doc, n);
+ if ((n = parse_find_node("fourCorner", node)))
+ config_resize_four_corners = parse_bool(doc, n);
+ if ((n = parse_find_node("popupShow", node))) {
+ config_resize_popup_show = parse_int(doc, n);
+ if (parse_contains("Always", doc, n))
+ config_resize_popup_show = 2;
+ else if (parse_contains("Never", doc, n))
+ config_resize_popup_show = 0;
+ else if (parse_contains("Nonpixel", doc, n))
+ config_resize_popup_show = 1;
+ }
+ if ((n = parse_find_node("popupPosition", node))) {
+ config_resize_popup_pos = parse_int(doc, n);
+ if (parse_contains("Top", doc, n))
+ config_resize_popup_pos = 1;
+ else if (parse_contains("Center", doc, n))
+ config_resize_popup_pos = 0;
+ }
}
static void parse_dock(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
config_dock_x = parse_int(doc, n);
if ((n = parse_find_node("floatingY", node)))
config_dock_y = parse_int(doc, n);
+ } else {
+ if ((n = parse_find_node("noStrut", node)))
+ config_dock_nostrut = parse_bool(doc, n);
}
if ((n = parse_find_node("stacking", node))) {
if (parse_contains("top", doc, n))
- config_dock_layer = OB_STACKING_LAYER_DOCK_ABOVE;
+ config_dock_layer = OB_STACKING_LAYER_ABOVE;
else if (parse_contains("normal", doc, n))
- config_dock_layer = OB_STACKING_LAYER_DOCK_NORMAL;
+ config_dock_layer = OB_STACKING_LAYER_NORMAL;
else if (parse_contains("bottom", doc, n))
- config_dock_layer = OB_STACKING_LAYER_DOCK_BELOW;
+ config_dock_layer = OB_STACKING_LAYER_BELOW;
}
if ((n = parse_find_node("direction", node))) {
if (parse_contains("horizontal", doc, n))
static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
gpointer d)
{
+ xmlNodePtr n;
for (node = node->children; node; node = node->next) {
if (!xmlStrcasecmp(node->name, (const xmlChar*) "file")) {
gchar *c;
parse_expand_tilde(c));
g_free(c);
}
+ if ((n = parse_find_node("warpPointer", node)))
+ config_menu_warppointer = parse_bool(doc, n);
+ if ((n = parse_find_node("xorStyle", node)))
+ config_menu_xorstyle = parse_bool(doc, n);
+ if ((n = parse_find_node("hideDelay", node)))
+ config_menu_hide_delay = parse_int(doc, n);
+ if ((n = parse_find_node("desktopMenuIcons", node)))
+ config_menu_client_list_icons = parse_bool(doc, n);
}
}
config_resist_win = parse_int(doc, n);
if ((n = parse_find_node("screen_edge_strength", node)))
config_resist_edge = parse_int(doc, n);
+ if ((n = parse_find_node("edges_hit_layers_below", node)))
+ config_resist_layers_below = parse_bool(doc, n);
}
typedef struct
config_focus_follow = FALSE;
config_focus_delay = 0;
config_focus_raise = FALSE;
+ config_focus_last = FALSE;
parse_register(i, "focus", parse_focus, NULL);
config_theme = NULL;
config_title_layout = g_strdup("NLIMC");
+ config_theme_keepborder = TRUE;
parse_register(i, "theme", parse_theme, NULL);
config_desktops_num = 4;
+ config_screen_firstdesk = 1;
config_desktops_names = NULL;
parse_register(i, "desktops", parse_desktops, NULL);
- config_redraw_resize = TRUE;
+ config_resize_redraw = TRUE;
+ config_resize_four_corners = FALSE;
+ config_resize_popup_show = 1; /* nonpixel increments */
+ config_resize_popup_pos = 0; /* center of client */
parse_register(i, "resize", parse_resize, NULL);
- config_dock_layer = OB_STACKING_LAYER_DOCK_ABOVE;
+ config_dock_layer = OB_STACKING_LAYER_ABOVE;
config_dock_pos = OB_DIRECTION_NORTHEAST;
config_dock_floating = FALSE;
+ config_dock_nostrut = FALSE;
config_dock_x = 0;
config_dock_y = 0;
config_dock_orient = OB_ORIENTATION_VERT;
config_resist_win = 10;
config_resist_edge = 20;
+ config_resist_layers_below = FALSE;
parse_register(i, "resistance", parse_resistance, NULL);
+ config_menu_warppointer = TRUE;
+ config_menu_xorstyle = TRUE;
+ config_menu_hide_delay = 250;
+ config_menu_client_list_icons = TRUE;
config_menu_files = NULL;
parse_register(i, "menu", parse_menu, NULL);