gboolean config_focus_new;
gboolean config_focus_follow;
-gboolean config_focus_last;
guint config_focus_delay;
-guint config_focus_raise;
+gboolean config_focus_raise;
+gboolean config_focus_last;
+
+ObPlacePolicy config_place_policy;
-char *config_theme;
+gchar *config_theme;
gchar *config_title_layout;
-int config_desktops_num;
+gint config_desktops_num;
GSList *config_desktops_names;
+gint config_screen_firstdesk;
-gboolean config_redraw_resize;
+gboolean config_resize_redraw;
ObStackingLayer config_dock_layer;
gboolean config_dock_floating;
ObOrientation config_dock_orient;
gboolean config_dock_hide;
guint config_dock_hide_delay;
+guint config_dock_app_move_button;
+guint config_dock_app_move_modifiers;
guint config_keyboard_reset_keycode;
guint config_keyboard_reset_state;
gint config_mouse_threshold;
gint config_mouse_dclicktime;
+gboolean config_menu_warppointer;
+gboolean config_menu_xorstyle;
+gboolean config_menu_hilightfirst;
+guint config_menu_hide_delay;
+
GSList *config_menu_files;
gint config_resist_win;
static void parse_key(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
GList *keylist)
{
- char *key;
+ gchar *key;
ObAction *action;
xmlNodePtr n, nact;
GList *it;
}
static void parse_keyboard(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
- void *d)
+ gpointer d)
{
keyboard_unbind_all();
*/
static void parse_mouse(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
- void *d)
+ gpointer d)
{
xmlNodePtr n, nbut, nact;
- char *buttonstr;
- char *contextstr;
+ gchar *buttonstr;
+ gchar *contextstr;
ObUserAction uact;
ObMouseAction mact;
ObAction *action;
}
static void parse_focus(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
- void *d)
+ gpointer d)
{
xmlNodePtr n;
config_focus_new = parse_bool(doc, n);
if ((n = parse_find_node("followMouse", node)))
config_focus_follow = parse_bool(doc, n);
- if ((n = parse_find_node("focusLast", node)))
- config_focus_last = parse_bool(doc, n);
if ((n = parse_find_node("focusDelay", node)))
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,
+ gpointer d)
+{
+ xmlNodePtr n;
+
+ node = node->children;
+
+ if ((n = parse_find_node("policy", node)))
+ if (parse_contains("UnderMouse", doc, n))
+ config_place_policy = OB_PLACE_POLICY_MOUSE;
}
static void parse_theme(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
- void *d)
+ gpointer d)
{
xmlNodePtr n;
}
static void parse_desktops(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
- void *d)
+ gpointer d)
{
xmlNodePtr n;
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;
}
static void parse_resize(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
- void *d)
+ gpointer d)
{
xmlNodePtr n;
node = node->children;
if ((n = parse_find_node("drawContents", node)))
- config_redraw_resize = parse_bool(doc, n);
+ config_resize_redraw = parse_bool(doc, n);
}
-static void parse_dock(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d)
+static void parse_dock(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
+ gpointer d)
{
xmlNodePtr n;
}
if ((n = parse_find_node("stacking", node))) {
if (parse_contains("top", doc, n))
- config_dock_layer = OB_STACKING_LAYER_TOP;
+ config_dock_layer = OB_STACKING_LAYER_DOCK_ABOVE;
else if (parse_contains("normal", doc, n))
- config_dock_layer = OB_STACKING_LAYER_NORMAL;
+ config_dock_layer = OB_STACKING_LAYER_DOCK_NORMAL;
else if (parse_contains("bottom", doc, n))
- config_dock_layer = OB_STACKING_LAYER_BELOW;
+ config_dock_layer = OB_STACKING_LAYER_DOCK_BELOW;
}
if ((n = parse_find_node("direction", node))) {
if (parse_contains("horizontal", doc, n))
config_dock_hide = parse_bool(doc, n);
if ((n = parse_find_node("hideDelay", node)))
config_dock_hide_delay = parse_int(doc, n) * 1000;
+ if ((n = parse_find_node("moveButton", node))) {
+ gchar *str = parse_string(doc, n);
+ guint b, s;
+ if (translate_button(str, &s, &b)) {
+ config_dock_app_move_button = b;
+ config_dock_app_move_modifiers = s;
+ } else {
+ g_warning("invalid button '%s'", str);
+ }
+ g_free(str);
+ }
}
-static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, void *d)
+static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
+ gpointer d)
{
for (node = node->children; node; node = node->next) {
if (!xmlStrcasecmp(node->name, (const xmlChar*) "file")) {
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("hilightFirst", node)))
+ config_menu_hilightfirst = parse_bool(doc, n);
+ if ((n = parse_find_node("hideDelay", node)))
+ config_menu_hide_delay = parse_int(doc, n);
}
}
static void parse_resistance(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
- void *d)
+ gpointer d)
{
xmlNodePtr n;
ObDefKeyBind binds[] = {
{ "A-Tab", "NextWindow" },
{ "S-A-Tab", "PreviousWindow" },
- { "C-A-Right", "DesktopRight" },
- { "C-A-Left", "DesktopLeft" },
- { "C-A-Up", "DesktopUp" },
- { "C-A-Down", "DesktopDown" },
- { "S-A-Right", "SendToDesktopRight" },
- { "S-A-Left", "SendToDesktopLeft" },
- { "S-A-Up", "SendToDesktopUp" },
- { "S-A-Down", "SendToDesktopDown" },
- { "A-F10", "MaximizeFull" },
- { "A-F5", "UnmaximizeFull" },
- { "A-F12", "ToggleShade" },
{ "A-F4", "Close" },
- { "A-F7", "Move" },
- { "A-F8", "Resize" },
- { "A-F9", "Iconify" },
{ NULL, NULL }
};
{
ObDefMouseBind *it;
ObDefMouseBind binds[] = {
- { "Up", "Desktop", OB_MOUSE_ACTION_PRESS, "DesktopNext" },
- { "Down", "Desktop", OB_MOUSE_ACTION_PRESS, "DesktopPrevious" },
- { "A-Up", "Desktop", OB_MOUSE_ACTION_PRESS, "DesktopNext" },
- { "A-Down", "Desktop", OB_MOUSE_ACTION_PRESS, "DesktopPrevious" },
- { "A-Up", "Frame", OB_MOUSE_ACTION_PRESS, "DesktopNext" },
- { "A-Down", "Frame", OB_MOUSE_ACTION_PRESS, "DesktopPrevious" },
- { "A-Up", "MoveResize", OB_MOUSE_ACTION_PRESS, "DesktopNext" },
- { "Down", "MoveResize", OB_MOUSE_ACTION_PRESS, "DesktopPrevious" },
{ "Left", "Client", OB_MOUSE_ACTION_PRESS, "Focus" },
{ "Middle", "Client", OB_MOUSE_ACTION_PRESS, "Focus" },
{ "Right", "Client", OB_MOUSE_ACTION_PRESS, "Focus" },
{
config_focus_new = TRUE;
config_focus_follow = FALSE;
- config_focus_last = TRUE;
config_focus_delay = 0;
config_focus_raise = FALSE;
+ config_focus_last = FALSE;
parse_register(i, "focus", parse_focus, NULL);
+ config_place_policy = OB_PLACE_POLICY_SMART;
+
+ parse_register(i, "placement", parse_placement, NULL);
+
config_theme = NULL;
config_title_layout = g_strdup("NLIMC");
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;
parse_register(i, "resize", parse_resize, NULL);
- config_dock_layer = OB_STACKING_LAYER_TOP;
+ config_dock_layer = OB_STACKING_LAYER_DOCK_ABOVE;
config_dock_pos = OB_DIRECTION_NORTHEAST;
config_dock_floating = FALSE;
config_dock_x = 0;
config_dock_orient = OB_ORIENTATION_VERT;
config_dock_hide = FALSE;
config_dock_hide_delay = 300;
+ config_dock_app_move_button = 2; /* middle */
+ config_dock_app_move_modifiers = 0;
parse_register(i, "dock", parse_dock, NULL);
parse_register(i, "resistance", parse_resistance, NULL);
+ config_menu_warppointer = TRUE;
+ config_menu_xorstyle = TRUE;
+ config_menu_hilightfirst = TRUE;
+ config_menu_hide_delay = 250;
config_menu_files = NULL;
parse_register(i, "menu", parse_menu, NULL);