From 0996e71c7ec0fe96805a8be1685914f16b47f08d Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Wed, 4 Nov 2020 14:53:23 +0000 Subject: [PATCH] X.H.DynamicLog: Add shortenLeft This can be sometimes useful, e.g. when showing a directory. --- XMonad/Hooks/DynamicLog.hs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/XMonad/Hooks/DynamicLog.hs b/XMonad/Hooks/DynamicLog.hs index a1976c64..830ba3d3 100644 --- a/XMonad/Hooks/DynamicLog.hs +++ b/XMonad/Hooks/DynamicLog.hs @@ -43,7 +43,7 @@ module XMonad.Hooks.DynamicLog ( dzenPP, xmobarPP, sjanssenPP, byorgeyPP, -- * Formatting utilities - wrap, pad, trim, shorten, + wrap, pad, trim, shorten, shortenLeft, xmobarColor, xmobarAction, xmobarBorder, xmobarRaw, xmobarStrip, xmobarStripTags, dzenColor, dzenEscape, dzenStrip, @@ -391,6 +391,14 @@ shorten n xs | length xs < n = xs where end = "..." +-- | Like 'shorten', but truncate from the left instead of right. +shortenLeft :: Int -> String -> String +shortenLeft n xs | l < n = xs + | otherwise = end ++ (drop (l - n + length end) xs) + where + end = "..." + l = length xs + -- | Output a list of strings, ignoring empty ones and separating the -- rest with the given separator. sepBy :: String -- ^ separator