[Xmonad] darcs patch: ManPrompt.hs: auto-complete explicit paths
(those with `/')
Valery V. Vorotyntsev
valery.vv at gmail.com
Sun Nov 4 15:32:58 EST 2007
Sun Nov 4 22:20:56 EET 2007 "Valery V. Vorotyntsev" <valery.vv at gmail.com>
* ManPrompt.hs: auto-complete explicit paths (those with `/')
Bash's compgen is used for this (like in ShellPrompt.hs).
Enable all GHC warnings.
Improve documentation (slightly).
-------------- next part --------------
New patches:
[ManPrompt.hs: auto-complete explicit paths (those with `/')
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071104202056
Bash's compgen is used for this (like in ShellPrompt.hs).
Enable all GHC warnings.
Improve documentation (slightly).
] {
hunk ./ManPrompt.hs 1
+{-# OPTIONS_GHC -Wall #-}
hunk ./ManPrompt.hs 10
--- Portability : unportable
+-- Portability : non-portable (uses \"manpath\" and \"bash\")
hunk ./ManPrompt.hs 19
--- * handle explicit paths (e.g., @~\/src\/xmonad\/man\/xmonad.1@)
---
--- * quickcheck properties
+-- * test with QuickCheck
hunk ./ManPrompt.hs 50
--- > , ((modMask, xK_F1), manPrompt defaultXPConfig)
+-- > , ((modMask, xK_F1), manPrompt defaultXPConfig) -- mod-f1 %! Query for manual page to be displayed
hunk ./ManPrompt.hs 66
-manCompl s = getManpages >>= flip mkComplFunFromList s
-
--- | Obtain the list of manual pages.
---
--- /XXX Code duplication!/
--- Adopted from 'ShellPrompt.getCommands'.
-getManpages :: IO [String]
-getManpages = do
- p <- getCommandOutput "manpath -g 2>/dev/null" `E.catch` const (return [])
- let sections = ["man" ++ show n | n <- [1..9 :: Int]] -- XXX "cat1".."cat9"?
- ds = [d ++ "/" ++ s | d <- split ':' p, s <- sections]
- stripSec = reverse . drop 1 . dropWhile (/= '.') . reverse
- ms <- forM ds $ \d -> do
- exists <- doesDirectoryExist d
- if exists
- then map (stripSec . stripSuffixes [".gz", ".bz2"]) `fmap`
- getDirectoryContents d
- else return []
- return . uniqSort . concat $ ms
+manCompl str | '/' `elem` str = do
+ -- XXX It may be better to use readline instead of bash's compgen...
+ lines `fmap` getCommandOutput ("bash -c 'compgen -A file " ++ str ++ "'")
+ | otherwise = do
+ mp <- getCommandOutput "manpath -g 2>/dev/null" `E.catch` \_ -> return []
+ let sects = ["man" ++ show n | n <- [1..9 :: Int]]
+ dirs = [d ++ "/" ++ s | d <- split ':' mp, s <- sects]
+ stripExt = reverse . drop 1 . dropWhile (/= '.') . reverse
+ mans <- forM dirs $ \d -> do
+ exists <- doesDirectoryExist d
+ if exists
+ then map (stripExt . stripSuffixes [".gz", ".bz2"]) `fmap`
+ getDirectoryContents d
+ else return []
+ mkComplFunFromList (uniqSort $ concat mans) str
hunk ./ManPrompt.hs 83
+--
+-- XXX merge with 'Run.runProcessWithInput'?
+--
+-- * update documentation of the latter (there is no 'Maybe' in result)
+--
+-- * ask \"gurus\" whether @evaluate (length ...)@ approach is
+-- better\/more idiomatic
hunk ./ManPrompt.hs 95
- E.evaluate (null output)
+ E.evaluate (length output)
}
Context:
[clean up destroyed windows from urgents list
Devin Mullins <me at twifkak.com>**20071103150358]
[add focusUrgent action, for those too lazy to read
Devin Mullins <me at twifkak.com>**20071103055458]
[changed urgent state from Set to list
Devin Mullins <me at twifkak.com>**20071103055143]
[fix examples
Devin Mullins <me at twifkak.com>**20071103022011]
[add haddock for top-level Dzen bindings
Devin Mullins <me at twifkak.com>**20071103021705]
[expose dzenWithArgs, dzenUrgencyHookWithArgs (for colors!)
Devin Mullins <me at twifkak.com>**20071030072455]
[use a global IORef to keep list of urgent windows
Devin Mullins <me at twifkak.com>**20071027064810]
[fix parse error in pattern match
Brent Yorgey <byorgey at gmail.com>**20071029174150]
[allow use of multiple toggles in ToggleLayouts.
David Roundy <droundy at darcs.net>**20071026210643]
[WindowNavigation.hs: documentation fix (navigateBorder -> navigateColor)
Brent Yorgey <byorgey at gmail.com>**20071029155731]
[XMonadPrompt: use a single blank
Andrea Rossato <andrea.rossato at unibz.it>**20071029091618]
[Added xmonadPromptC
cardboard42 at gmail.com**20071027014811
I added xmonadPromptC which takes a user defined list of commands as in Command.runCommand
]
[MetaModule.hs: add ManPrompt, remove ViewPrev
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071029075621]
[Factor out some of dzenPP's goodies
Spencer Janssen <sjanssen at cse.unl.edu>**20071029015556]
[Don't reverse sjanssenPP
Spencer Janssen <sjanssen at cse.unl.edu>**20071028224843]
[MetaModule.hs: someone forgot the (), so GHC was giving a warning. Small fix to quiet the warning.
gwern0 at gmail.com**20071027150847]
[ViewPrev.hs: deleted
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071027090937
Its functionality is now part of CycleWS module.
CycleWS.hs: Nelson Elhage added to authors.
]
[add more details on using smartBorders
Don Stewart <dons at galois.com>**20071026224510]
[add dynamicLogDzen, a dwm status bar, using dzen colour codes
Don Stewart <dons at galois.com>**20071026221944]
[XPrompt: removed unneeded parenteses
Andrea Rossato <andrea.rossato at unibz.it>**20071026221505]
[ShellPrompt: remove harcoded path when calling bash
Andrea Rossato <andrea.rossato at unibz.it>**20071026212334]
[ShellPrompt: reformat the comments to complay with the module style
Andrea Rossato <andrea.rossato at unibz.it>**20071026211956]
[XPrompt: catch exceptions when running the completion function
Andrea Rossato <andrea.rossato at unibz.it>**20071026211859]
[CycleWS: StackSet.findIndex is now findTag
Andrea Rossato <andrea.rossato at unibz.it>**20071026211802]
[Dzen.hs: replace 'findIndex' by 'findTag' to match renaming in core.
Brent Yorgey <byorgey at gmail.com>**20071022204335]
[XPrompt.hs: add sensible bindings for Home and End
gwern0 at gmail.com**20071026035026]
[XPrompt.hs: add a pasteString function and keybinding
gwern0 at gmail.com**20071026034920]
[TilePrime.hs: Handle nmaster = 0 reasonably
Eric Mertens <emertens at galois.com>**20071025001750]
[oops, add period
Devin Mullins <me at twifkak.com>**20071024125448]
[expand Invisible comments
Devin Mullins <me at twifkak.com>**20071024125213]
[Run.hs: documentation fix
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071024144244]
[SshPrompt.hs: use `uniqSort' from XPrompt.hs
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071024144128
Remove excessive import lists.
]
[ManPrompt.hs: use `uniqSort' from XPrompt.hs
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071024143905
TODO list extended.
]
[ShellPrompt.hs: move `uniqSort' to XPrompt.hs
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071024143820]
[XPrompt.hs (uniqSort): new function
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071024142241
Moved from ShellPrompt. There are at least three happy users
of this function -- ShellPrompt, SshPrompt, and ManPrompt.
]
[Remove excessive import lists from ShellPrompt
Spencer Janssen <sjanssen at cse.unl.edu>**20071024113106]
[Use new terminal config option
Spencer Janssen <sjanssen at cse.unl.edu>**20071024110219]
[Run.hs: do my usual segregation into safe and unsafe runInTerms
gwern0 at gmail.com**20071024003911]
[Run.hs: specialize runInXTerm to use runInTerm per my mailing list suggestion
gwern0 at gmail.com**20071024001856]
[Run.hs: +my suggested runInTerm general function
gwern0 at gmail.com**20071024001628]
[Run.hs, SshPrompt.hs, ShellPrompt.hs: mv runInXTerm back into Run.hs per suggestions
gwern0 at gmail.com**20071024001341]
[Comments for ConstrainedResize
Dougal Stanton <dougal at dougalstanton.net>**20071020092509]
[Add ConstrainedResize module
Dougal Stanton <dougal at dougalstanton.net>**20071019173508
Constrain the aspect ratio of floated windows by holding down shift
]
[fix stupid dzenUrgencyHook bug
Devin Mullins <me at twifkak.com>**20071021061308]
[XPrompt.hs: fix vertical alignment of completions.
Dmitry Kurochkin <dmitry.kurochkin at gmail.com>**20071023183129]
[fix bug in DragPane (where we forgot that r was mirrored).
David Roundy <droundy at darcs.net>**20071023152448]
[STRUT aware gap toggling (clean patch)
mail at joachim-breitner.de**20071022220132
Without this patch, ManageDocks would only set the gap according to a window’s
STRUT when the window is first mapped. This information would then get lost when
the user toggle the gap.
Now, when the user toggles the Gap, all present windows are scanned for STRUT
settings, and the gap is set accordingly. No need to manually configure the gap
anymore.
This is the same patch as before, but independant of the Hooks patches, and with
more documentation.
]
[add new LayoutCombinators module.
David Roundy <droundy at darcs.net>**20071023135638]
[export DragPane type.
David Roundy <droundy at darcs.net>**20071023134933]
[make DragPane work with any type (not just Windows).
David Roundy <droundy at darcs.net>**20071023134911]
[SshPrompt.hs: while I'm here, replace nub with the faster Set trick
gwern0 at gmail.com**20071019181514]
[ShellPrompt.hs: fmt imports and update
gwern0 at gmail.com**20071019181317]
[SshPrompt.hs: fmt imports and update
gwern0 at gmail.com**20071019181255]
[XSelection.hs: fmt imports and sigs
gwern0 at gmail.com**20071019181232]
[XSelection.hs: +2 functions, safePromptSelection and unsafePromptSelection
gwern0 at gmail.com**20071019181137
Analogous to Run.hs patch; these use safeSpawn and unsafeSpawn respectively.
]
[Run.hs: +2 functions, safeSpawn & unsafeSpawn
gwern0 at gmail.com**20071019181009
See their documentation. This is part of a re-organization of various 'run' commands; this two
make it easier to go through the shell or not, and will be re-used elsewhere.
]
[Run.hs: fmt
gwern0 at gmail.com**20071019180953]
[Run.hs, ShellPrompt.sh: mv runInXTerm to ShellPrompt.hs
gwern0 at gmail.com**20071019180900]
[XSelection.hs: documentation format changes.
gwern0 at gmail.com**20071019010057]
[XSelection.hs: +type signature for auxiliary function
gwern0 at gmail.com**20071019010034]
[XSelection.hs: simplify creation of window
gwern0 at gmail.com**20071019010013
While spelunking in the xclip source code, I noticed it had much the same call to createSimpleWindow but with a simpler geometry - just 1x1 pixels, not the odd 200x100 of the original code. It seems to work the same and looks better and less mysterious, so unless arossato had a specific reason for those particular two numbers...
]
[XPrompt.hs: use a single blank
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071022192310
Excessive blanks in prompts originate from here. Eliminate. :)
Rewrite `getLastWord' and `skipLastWord' in pointfree style.
]
[SshPrompt.hs (showXPrompt): use a single blank
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071022192037
Delete trailing whitespace. Fix documentation typo.
]
[ShellPrompt.hs (showXPrompt): use a single blank
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071022191741]
[ManPrompt.hs: a manual page prompt (new module)
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071022191443]
[Fix pragmas in XMonadContrib
Shachaf Ben-Kiki <shachaf at gmail.com>**20071022011738]
[introduce new combineTwo layout combinator.
David Roundy <droundy at darcs.net>**20071020191748
This layout combinator is similar in spirit (and in code) to
the old combo combinator, but only allows two sublayouts. As
a result, we don't need to wrap these in existentials, and reading
works seamlessly. Also, we add the feature (which could also be
added to combo) of being able to change which sublayout a given
window is in through integration with WindowNavigation.
I envision combo being deprecated soon. combineTwo isn't quite
so flexible, but it's much easier and is better-coded also.
]
[allow layout modifiers to modify a Message in transit.
David Roundy <droundy at darcs.net>**20071020191542
This is a helpful feature (for, e.g. WindowNavigation) that
allows modifiers (if they so choose... the old API remains
supported) to easily send a single Message to the modified
layout in response to a Message.
]
[XPrompt.hs (keyPressHandle): Ctrl-g and Ctrl-c added to quit keystrokes
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071020170936
Obvious comments removed.
]
[XPrompt.hs: trailing whitespace cleaned
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071020170719]
[test_XPrompt.hs: there is no ShellPrompt.rmPath
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071019205830]
[CycleWS.hs (toggleWS): new function
"Valery V. Vorotyntsev" <valery.vv at gmail.com>**20071019205323
This is a pointfree adaptation of ViewPrev.viewPrev;
after this patch is applied, it may be a good idea to merge
ViewPrev.hs into CycleWS.hs.
]
[update UrgencyHook example config to reflect changes to WindowNavigation and core Config.hs
Brent Yorgey <byorgey at gmail.com>**20071019145526]
[add ToggleLayouts module.
David Roundy <droundy at darcs.net>**20071018214525]
[default to empty description for layout modifiers.
David Roundy <droundy at darcs.net>**20071018202604
This is because modifierDescription is designed to be human-readable,
and show rarely creates a human-readable description. And in many (if
not most) cases, an empty description is precisely what we want.
]
[beautify description code for empty modifier-description.
David Roundy <droundy at darcs.net>**20071018202438]
[change definition of 'description' function for LayoutModifier so an extra space is not added if the modifier description is empty.
Brent Yorgey <byorgey at gmail.com>**20071018183054]
[-Wall police
l.mai at web.de**20071018033000]
[DynamicLog.hs: Add dzenColor
Eric Mertens <emertens at galois.com>**20071018174523]
[add function to rename workspaces.
David Roundy <droundy at darcs.net>**20071018145604]
[fix WindowNavigation comment
l.mai at web.de**20071018054315]
[change example to dzenUrgencyHook
Devin Mullins <me at twifkak.com>**20071018022026]
[add dzenUrgencyHook as example (and the one I use)
Devin Mullins <me at twifkak.com>**20071018021742]
[fixed Dzen and gave it a configurable timeout
Devin Mullins <me at twifkak.com>**20071018012910]
[rename LayoutSelect & defaultLayout in comments
Devin Mullins <me at twifkak.com>**20071016051819]
[add import to comments, for clarity
Devin Mullins <me at twifkak.com>**20071012044555]
[documentation for UrgencyHook
Devin Mullins <me at twifkak.com>**20071012034506]
[d'oh, minor UrgencyHook cleanup
Devin Mullins <me at twifkak.com>**20071012032558]
[brand new UrgencyHook contrib, depends on X11-extras WMHints binding
Devin Mullins <me at twifkak.com>**20071011051641
It's a LayoutModifier which lets you define an urgencyHook function -- the
action gets performed wheneveran X client sends an XUrgencyHint message (i.e.
tries to "flash" the "taskbar").
This statically points to Config.urgencyHook, which requires that the user add
a line to Config.hs-boot, in addition to defining the urgencyHook.
Documentation forthcoming.
]
[TilePrime.hs: Give a description that distinguishs between horizontal/vertical
Eric Mertens <emertens at galois.com>**20071018063749]
[Truncate title at 80 characters
Spencer Janssen <sjanssen at cse.unl.edu>**20071018003013]
[shorten in sjanssenPP too
Spencer Janssen <sjanssen at cse.unl.edu>**20071018002821]
[Truncate long window titles
Spencer Janssen <sjanssen at cse.unl.edu>**20071018002511]
[DynamicLog.hs: Add ppWsSep field to PP to specify workspace separator.
Eric Mertens <emertens at galois.com>**20071018001652
This can be useful when you are using colors to distinguish between
workspaces and simply provides more functionality. The default behavior
remains the same.
]
[Wrapping the empty string yields the empty string
Spencer Janssen <sjanssen at cse.unl.edu>**20071018001542]
[DynamicLog: documentation only
Spencer Janssen <sjanssen at cse.unl.edu>**20071017211427]
[Allow the user to change the order of workspaces, layout, title
Spencer Janssen <sjanssen at cse.unl.edu>**20071017211303]
[Don't wrap the layout description by default
Spencer Janssen <sjanssen at cse.unl.edu>**20071017211011]
[DynamicLog: not . null. Duh.
Spencer Janssen <sjanssen at cse.unl.edu>**20071017210912]
[A big dynamicLog refactor
Spencer Janssen <sjanssen at cse.unl.edu>**20071017210431
We introduce the PP type to allow user customization of dynamicLog.
dynamicLogWithTitle has been eliminated because this is the default behavior
for dynamicLog now.
]
[Don't toLower the layout description.
Spencer Janssen <sjanssen at cse.unl.edu>**20071017202953
If we'd really like lower case layout descriptions, the 'description' method
in the LayoutClass instances should be changed instead.
]
[TilePrime.hs: Correct behavior when number of windows <= nmaster
Eric Mertens <emertens at galois.com>**20071017205153
Additionally this patch does various clean-ups that should not
affect functionality.
]
[Remove RunInXTerm in favor of Run
Spencer Janssen <sjanssen at cse.unl.edu>**20071017202201]
[Move runXXX functions to one module
Christian Thiemann <mail at christian-thiemann.de>**20071012145233
This patch takes runProcessWithInput out of Dmenu, runProcessWithInputAndWait
out of Dzen, and runInXTerm out of RunInXTerm and collects them in one central
module called Run. This way, other modules may include Run instead of Dmenu
to get what they want without giving the impression of making use of dmenu.
]
[Fix LANGUAGE pragmas
Shachaf Ben-Kiki <shachaf at gmail.com>**20071017194622]
[use full screen for single window in TilePrime
l.mai at web.de**20071017191421]
[RotSlaves.hs: Add rotAll functions
Eric Mertens <emertens at galois.com>**20071017173256]
[TilePrime.hs: add usage info.
Joachim Fasting <joachim.fasting at gmail.com>**20071017192612]
[TilePrime.hs: add LANGAUGE pragma.
Joachim Fasting <joachim.fasting at gmail.com>**20071017182042]
[MetaModule.hs: add WorkspacePrompt.
Joachim Fasting <joachim.fasting at gmail.com>**20071017182027]
[add TilePrime to MetaModule.
David Roundy <droundy at darcs.net>**20071017133202]
[Initial import of TilePrime
Eric Mertens <emertens at galois.com>**20071017052017
This layout provides a standard tiling layout with support for resize hints
and filling the gaps created by them.
]
[code cleanup in selectWorkspace.
David Roundy <droundy at darcs.net>**20071016231218]
[allow users to go to dynamically-added workspaces with mod-n.
David Roundy <droundy at darcs.net>**20071016230301]
[add modules to deal with Workspaces (select, etc) by name using XPrompt.
David Roundy <droundy at darcs.net>**20071016223347]
[make windowNavigation simpler to use in simplest case.
David Roundy <droundy at darcs.net>**20071016214337]
[compute nice window border for WindowNavigation properly.
David Roundy <droundy at darcs.net>**20071016213316]
[fix docs on WindowNavigation.
David Roundy <droundy at darcs.net>**20071016210349]
[compute a reasonable navigation color based on focussed color.
David Roundy <droundy at darcs.net>**20071015165504]
[WindowNavigation: don't export the config constructor and some haddock fixes
Andrea Rossato <andrea.rossato at unibz.it>**20071013090524
I told to David I would have taken care of that: instead of exporting
the config constructor we export 2 functions: navigateColor and
noNavigateBorders. Updated documentation accordingly.
]
[improvements in Combo.
David Roundy <droundy at darcs.net>**20071015132839]
[TAG 0.4
Spencer Janssen <sjanssen at cse.unl.edu>**20071016212343]
Patch bundle hash:
c30a71b442e50bd022dc1d6df961d63148ac4a21
More information about the Xmonad
mailing list