/* See LICENSE file for copyright and license details. */
+/* Default settings; can be overriden by command line. */
-/* appearance */
-#define FONT "-*-terminus-medium-*-*-*-*-*-*-*-*-*-*-*"
-#define NORMBGCOLOR "#cccccc"
-#define NORMFGCOLOR "#000000"
-#define SELBGCOLOR "#0066ff"
-#define SELFGCOLOR "#ffffff"
-/* next macro defines the space between menu items */
-#define SPACE 30 /* px */
+static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */
+static int fuzzy = 1; /* -F option; if 0, dmenu doesn't use fuzzy matching */
+/* -fn option overrides fonts[0]; default X11 font or font set */
+static const char *fonts[] = {
+ "JetBrainsMono Medium NF:pixelsize=14:antialias=true:autohint=true"
+};
+static const char *prompt = NULL; /* -p option; prompt to the left of input field */
+static const char *colors[SchemeLast][2] = {
+ /* fg bg */
+ [SchemeNorm] = { "#bbbbbb", "#222222" },
+ [SchemeSel] = { "#eeeeee", "#005577" },
+ [SchemeSelHighlight] = { "#ffc978", "#005577" },
+ [SchemeNormHighlight] = { "#ffc978", "#222222" },
+ [SchemeOut] = { "#000000", "#00ffff" },
+};
+/* -l option; if nonzero, dmenu uses vertical list with given number of lines */
+static unsigned int lines = 0;
+
+/*
+ * Characters not considered part of a word while deleting words
+ * for example: " /?\"&[]"
+ */
+static const char worddelimiters[] = " ";