Minor change to `Makefile` to set FreeBSD paths as default.
[xmenu] / config.h
index 7bd94bd..254201c 100644 (file)
--- a/config.h
+++ b/config.h
@@ -1,11 +1,62 @@
-static const char *font = "monospace:size=9";
-static const char *background = "#FFFFFF";
-static const char *foreground = "#2E3436";
-static const char *selbackground = "#3584E4";
-static const char *selforeground = "#FFFFFF";
-static const char *separator = "#CDC7C2";
-static const char *border = "#E6E6E6";
-static int width = 130;
-static int itemborder = 4;
-static int menuborder = 1;
-static int separatorsize = 1;
+static struct Config config = {
+       /* font, separate different fonts with comma */
+       .font = "monospace:size=9,DejaVuSansMono:size=9",
+
+       /* colors */
+       .background_color = "#FFFFFF",
+       .foreground_color = "#2E3436",
+       .selbackground_color = "#3584E4",
+       .selforeground_color = "#FFFFFF",
+       .separator_color = "#CDC7C2",
+       .border_color = "#E6E6E6",
+
+       /* sizes in pixels */
+       .width_pixels = 130,        /* minimum width of a menu */
+       .height_pixels = 25,        /* height of a single menu item */
+       .border_pixels = 1,         /* menu border */
+       .separator_pixels = 3,      /* space around separator */
+       .gap_pixels = 0,            /* gap between menus */
+       .max_items = 0,             /* maximum number of items of a menu, 0 to compute based on monitor height */
+
+       /* text alignment, set to LeftAlignment, CenterAlignment or RightAlignment */
+       .alignment = LeftAlignment,
+
+       /*
+        * The variables below cannot be set by X resources.
+        * Their values must be less than .height_pixels.
+        */
+
+       /* geometry of the right-pointing isoceles triangle for submenus */
+       .triangle_width = 3,
+       .triangle_height = 7,
+
+       /* the icon size is equal to .height_pixels - .iconpadding * 2 */
+       .iconpadding = 2,
+
+       /* area around the icon, the triangle and the separator */
+       .horzpadding = 8,
+};
+
+/*
+ * KEYBINDINGS
+ *
+ * Look at your /usr/include/X11/keysymdef.h  (or the equivalent file
+ * in your system) for a list of key symbol constants, and change the
+ * macros below accordingly.  All key symbol constants begin with the
+ * prefix XK_.
+ *
+ * For example, to use vim-like key bindings, set KEYSYMLEFT to XK_h,
+ * KEYSYMDOWN to XK_j, KEYSYMUP to XK_k, etc.
+ *
+ * Note that the regular keys like ArrowUp, ArrowDown, Tab, Home, etc
+ * will ALWAYS work, so you do not need to set them.
+ *
+ * If you do not want to set a key binding, keep it with the value of
+ * XK_VoidSymbol
+ */
+#define KSYMFIRST   XK_VoidSymbol       /* select first item */
+#define KSYMLAST    XK_VoidSymbol       /* select last item */
+#define KSYMUP      XK_VoidSymbol       /* select previous item */
+#define KSYMDOWN    XK_VoidSymbol       /* select next item */
+#define KSYMLEFT    XK_VoidSymbol       /* close current menu */
+#define KSYMRIGHT   XK_VoidSymbol       /* enter selected item */