diff --git a/CHANGES.md b/CHANGES.md
index 2f5d4be1..2888e924 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -145,6 +145,8 @@
* `XMonad.Util.EZConfig`
- Added support for XF86Bluetooth.
+ * `XMonad.Hooks.DynamicLog`
+ - Added `xmobarBorder` function to create borders around strings.
## 0.16
diff --git a/XMonad/Hooks/DynamicLog.hs b/XMonad/Hooks/DynamicLog.hs
index c76ac133..2c072e54 100644
--- a/XMonad/Hooks/DynamicLog.hs
+++ b/XMonad/Hooks/DynamicLog.hs
@@ -43,8 +43,8 @@ module XMonad.Hooks.DynamicLog (
-- * Formatting utilities
wrap, pad, trim, shorten,
- xmobarColor, xmobarAction, xmobarRaw,
- xmobarStrip, xmobarStripTags,
+ xmobarColor, xmobarAction, xmobarBorder,
+ xmobarRaw, xmobarStrip, xmobarStripTags,
dzenColor, dzenEscape, dzenStrip,
-- * Internal formatting functions
@@ -436,6 +436,18 @@ xmobarAction command button = wrap l r
l = ""
r = ""
+-- | Use xmobar box to add a border to an arbitrary string.
+xmobarBorder :: String -- ^ Border type. Possible values: VBoth, HBoth, Full,
+ -- Top, Bottom, Left or Right
+ -> String -- ^ color: a color name, or #rrggbb format
+ -> Int -- ^ width in pixels
+ -> String -- ^ output string
+ -> String
+xmobarBorder border color width = wrap prefix ""
+ where
+ prefix = ""
+
-- | Encapsulate arbitrary text for display only, i.e. untrusted content if
-- wrapped (perhaps from window titles) will be displayed only, with all tags
-- ignored. Introduced in xmobar 0.21; see their documentation. Be careful not