Hello, please find attached the following patch. Feel free to change the function's name, in case the patch gets through that is. 1 patch for repository http://code.haskell.org/XMonadContrib: Sat Apr 21 03:10:55 CEST 2012 Carlos Lopez-Camey <c.lopez@kmels.net> * Add emacs-like Keymap in XMonad.Prompt Combination keys C-d, C-f, C-b, M-f, M-b, M-x, M-Backspace. It misses ESC-p and ESC-n, sometimes used to browse history, but it was not possible since xK_Escape isn't part of the enumeration KeyMask. New patches: [Add emacs-like Keymap in XMonad.Prompt Carlos Lopez-Camey <c.lopez@kmels.net>**20120421011055 Ignore-this: c268dd79b555ab5b89aacb916bca25bf ] { hunk ./XMonad/Prompt.hs 23 , mkXPromptWithReturn , amberXPConfig , defaultXPConfig + , emacsLikeXPKeymap , greenXPConfig , XPType (..) , XPPosition (..) hunk ./XMonad/Prompt.hs 445 , (xK_Escape, quit) ] +emacsLikeXPKeymap :: M.Map (KeyMask,KeySym) (XP ()) +emacsLikeXPKeymap = M.fromList $ + map (first $ (,) controlMask) -- control + <key> + [ (xK_u, killBefore) --kill line backwards + , (xK_k, killAfter) -- kill line fowards + , (xK_a, startOfLine) --move to the beginning of the line + , (xK_e, endOfLine) -- move to the end of the line + , (xK_d, deleteString Next) -- delete a character foward + , (xK_b, moveCursor Prev) -- move cursor forward + , (xK_f, moveCursor Next) -- move cursor backward + , (xK_y, pasteString) + , (xK_g, quit) + , (xK_bracketleft, quit) + ] ++ + map (first $ (,) mod1Mask) -- meta key + <key> + [ (xK_BackSpace, killWord Prev) + , (xK_f, moveWord Next) -- move a word forward + , (xK_b, moveWord Prev) -- move a word backward + , (xK_d, killWord Next) -- kill the next word + , (xK_BackSpace, killWord Prev) -- kill the previous word + ] + ++ + map (first $ (,) 0) -- <key> + [ (xK_Return, setSuccess True >> setDone True) + , (xK_KP_Enter, setSuccess True >> setDone True) + , (xK_BackSpace, deleteString Prev) + , (xK_Delete, deleteString Next) + , (xK_Left, moveCursor Prev) + , (xK_Right, moveCursor Next) + , (xK_Home, startOfLine) + , (xK_End, endOfLine) + , (xK_Down, moveHistory W.focusUp') + , (xK_Up, moveHistory W.focusDown') + , (xK_Escape, quit) + ] + keyPressHandle :: KeyMask -> KeyStroke -> XP () keyPressHandle m (ks,str) = do km <- gets (promptKeymap . config) } Context: [add 'withNthWorkspace' to DynamicWorkspaceOrder. jakob@pipefour.org**20120407184640 Ignore-this: f5f87ffe9ddf1a12fab775e6fb8e856f Note this is very similar to the function of the same name exported by DynamicWorkspaces. Ultimately it would probably be cleaner to generalize the one in DynamicWorkspaces to accept an arbitrary workspace sort as a parameter; this is left as an exercise for future hackers. ] [XMonad.Layout.OnHost allows host-specific modifications to a layout, which allbery.b@gmail.com**20120320030912 Ignore-this: 4c0d5580e805ff9f40918308914f3bf9 is otherwise very difficult to do. Similarly to X.L.PerWorkspace, it provides onHost, onHosts, modHost, and modHosts layout modifiers. It attempts to do smart hostname comparison, such that short names will be matched with short names and FQDNs with FQDNs. This module currently requires that $HOST be set in the environment. You can use System.Posix.Env.setEnv to do so in xmonad.hs if need be. (Properly, this should be done via the network library, but I'm trying to avoid adding that dependency.) An alternative would be to shell out to get the name, but that has considerable portability hurdles. ] [Bump version to 0.10.1 Adam Vogt <vogt.adam@gmail.com>**20120320005311 Ignore-this: f0608ffaa877f605eaa86c45a107a14d Raising the X11 dependency while keeping the xmonad version the same leads to problems where cabal install uses the dependency versions following hackage, not what is installed. ] [narrower BorderResize rectangles placed within border edges Jens Petersen <juhp@community.haskell.org>**20120314064703 Ignore-this: 3a43bbdb7f2317d702edafb231f58802 Change the border resize rectangles to be narrower and only extend inside the window not outside. Most window managers just seem to use the border decoration area for starting resizes which is often just 1 pixel wide but as a compromise the width is now 2 pixels (before it was 10!). The rectangles are now placed symmetrically within the border and window. This seems to work ok with PositionStoreFloat for the Bluetile config. ] [add-dynamic-bars-module Ben Boeckel <mathstuf@gmail.com>**20120316002204 Ignore-this: 41347c8f894d8d0b5095dfad86784cf4 This adds the X.H.DynamicBars module. It allows per-screen status bars to be easily managed and dynamically handles the number of screens changing. ] [bump X11 dependency so that noModMask is available Daniel Wagner <daniel@wagner-home.com>**20120316000302 Ignore-this: 971a75dcad25f66848eef4174cd4ddd1 ] [Paste.hs: rm noModMask, shifted definition to X11 binding (see previous email) gwern0@gmail.com**20111203203038 Ignore-this: dcd164ff8f8f135c8fdef08f42f9244d ] [GroupNavigation: fix import typo in usage Jens Petersen <juhp@community.haskell.org>**20120312103349 Ignore-this: 65367218ca50a33a37813469b4616f34 ] [add sendToEmptyWorkspace to FindEmptyWorkspace Jens Petersen <juhp@community.haskell.org>**20120312102331 Ignore-this: 50e7992d80d2db43e4d0adf5c95e964f sendToEmptyWorkspace is like tagToEmptyWorkspace except it does not change workspace after moving the window. ] [xmonad-contrib.cabal: simplify xmonad dependency to >=0.10 && < 0.11 Jens Petersen <juhp@community.haskell.org>**20120312101800 Ignore-this: 1ff5a0caa2a1e3487e9a0831e385b3d2 Unless there is a particular reason for listing the lower and upper bounds separately then this seems simpler and cleaner. ] [ShowWName: Increase horizontal padding for flash crodjer@gmail.com**20120305164517 Ignore-this: de5fd30fad2630875c5c78091f07c324 Currently the flash window width leaves a very small amount of padding. This patch adds some extra horizontal width, governed by text width and length. ] [persist-togglehook-options Ben Boeckel <mathstuf@gmail.com>**20120311050143 Ignore-this: 580bacb35b617c1198f01c5a7c0d3fef Save the state of ToggleHook options over a restart. ] [ShowWName flash window background color Rohan Jain <crodjer@gmail.com>**20120306065224 Ignore-this: 9cd8fcfc13cc326b9dcc79ef3cc21b26 While calling paintAndWrite for flash window, the background color from config should also be passed on as window background in addition to as text background color. Otherwise the window color gets set to the default black which shows up when text cannot span whole of the window. This issue becomes visible when the font size is considerably large or even in small size with truetype fonts. ] [ShowWName: Fix flash location by screen rectangle crodjer@gmail.com**20120305161240 Ignore-this: 83ec4cce2297efc6736a1fe55f44ee73 In case of using this hook with multiple monitors, the Tag flash was not following the screen's coordinates. This patch shifts the new window created for flash according to the Rectangle defined by the screen. ] [Fix typo in tabbed layout link for font utils docs crodjer@gmail.com**20120229070022 Ignore-this: 2f7e90269e08ce08264d7b1d05bb16f9 ] [L.WorkspaceDir: cleanup redundant {definitions,imports} Steffen Schuldenzucker <sschuldenzucker@uni-bonn.de>**20120229112124 Ignore-this: 7a796b18a64e693e071e9ea3a6a01aa3 ] [fix L.WorkspaceDir special char handling: remove "echo -n" processing Steffen Schuldenzucker <sschuldenzucker@uni-bonn.de>**20120227122004 Ignore-this: ab48687eb4c9018312089a13fd25ecd8 ] [Add BorderUrgencyHook to XMonad.Hooks.UrgencyHook allbery.b@gmail.com**20120225082616 Ignore-this: 9fac77914ff28a6e9eb830e8c9c7e21e BorderUrgencyHook is a new UrgencyHook usable with withUrgencyHook or withUrgencyHookC; it allows an urgent window to be given a different border color. This may not always work as intended, since UrgencyHook likes to assume that a window being visible is sufficient to disable urgency notification; but with suppressWhen = Never it may work well enough. There is a report that if a new window is created at the wrong time, the wrong window may be marked urgent somehow. I seem to once again be revealing bugs in underlying packages, although a quick examination of X.H.UrgencyHook doesn't seem to show any way for the wrong window to be selected. ] [Adding use case for namedScratchpad. nicolas.dudebout@gatech.edu**20120122235843 Ignore-this: 44201e82bcd708cd7098f060345400f1 ] [Actions.WindowGo: typo fix - trim 's' per cub.uanic https://code.google.com/p/xmonad/issues/detail?id=491 gwern0@gmail.com**20120116224244 Ignore-this: fb1d55c1b4609069c55f13523c091260 ] [XMonad.Actions.PhysicalScreens: fix typo spotted by Chris Pick <haskell@chrispick.com> gwern0@gmail.com**20120115223013 Ignore-this: eb73b33b07dc58a36d3aa00bc8ac31c2 ] [roll back previous incorrect fix Daniel Wagner <daniel@wagner-home.com>**20120111214133 Ignore-this: 91496faef411e6ae3442498b528d119b ] [Extending: fix http://code.google.com/p/xmonad/issues/detail?id=490 gwern0@gmail.com**20120111211907 Ignore-this: 515afbed507c070d60ab547e98682f12 ] [another documentation patch: XMonadContrib.UpdatePointer -> XMonad.Actions.UpdatePointer Daniel Wagner <daniel@wagner-home.com>**20120111211226 Ignore-this: 1444e4a3f20ba442602ef1811d0b32c7 ] [documentation patch, fixes issue 490 Daniel Wagner <daniel@wagner-home.com>**20120111210832 Ignore-this: 8d899e15f9d1a657e9fc687e2f649f45 ] [X.H.EwmhDesktops note that fullscreenEventHook is not included in ewmh Adam Vogt <vogt.adam@gmail.com>**20120102211404 Ignore-this: 92f15fa93877c165158c8fbd24aa2360 Just a documentation fix (nomeata's suggestion at issue 339). ] [X.H.EwmhDesktops haddock formatting. Adam Vogt <vogt.adam@gmail.com>**20120102211203 Ignore-this: cfff985e4034e06a0fe27c52c9971901 ] [X.A.Navigation2D Norbert Zeh <nzeh@cs.dal.ca>**20111208205842 Ignore-this: 3860cc71bfc08d99bd8279c2e0945186 This is a new module to support directional navigation across multiple screens. As such it is related to X.A.WindowNavigation and X.L.WindowNavigation, but it is more general. For a detailed discussion of the differences, see http://www.cs.dal.ca/~nzeh/xmonad/Navigation2D.pdf. ] [documentation patch: mention PostfixOperators Daniel Wagner <daniel@wagner-home.com>**20111210234820 Ignore-this: 20a05b1f396f18a742346d6e3daea9a8 ] [P.Shell documentation and add missing unsafePrompt export Adam Vogt <vogt.adam@gmail.com>**20111207163951 Ignore-this: a03992ffdc9c1a0f5bfa6dafc453b587 Haddock (version 2.9.2 at least) does not attach documentation to any of a b or c when given: -- | documentation a,b,c :: X ] [Paste: 3 more escaped characters from alistra gwern0@gmail.com**20111129160335 Ignore-this: 46f5b86a25bcd2b26d2e07ed33ffad68 ] [unfuck X.U.Paste Daniel Wagner <daniel@wagner-home.com>**20111129032331 Ignore-this: d450e23ca026143bb6ca9d744dcdd906 ] [XMonad.Util.Paste: +alistra's patch for fixing his pasting of things like email address (@) gwern0@gmail.com**20111128215648 Ignore-this: 4af1af27637fe056792aa4f3bb0403eb ] [XMonad.Util.Paste: rm myself from maintainer field; I don't know how to fix any of it even if I wanted gwern0@gmail.com**20111128213001 Ignore-this: 87a4996aaa5241428ccb13851c5eb455 ] [XMonad.Prompt.Shell: improve 'env' documentation to cover goodgrue's problem gwern0@gmail.com**20111127231507 Ignore-this: 7b652a280960cbdf99c236496ca091b0 ] [Fix spelling 'prefered' -> 'preferred'. Erik de Castro Lopo <erikd@mega-nerd.com>**20111125010229 Ignore-this: f2eac1728b5e023399188becf867a14d ] [Restore TrackFloating behavior to an earlier version. Adam Vogt <vogt.adam@gmail.com>**20111120045538 Ignore-this: 1a1367b4171c3ad23b0553766021629f Thanks for liskni_si for pressing the matter: without this change it is very broken, with the patch it is still not perfect but still useful. ] [Explicitly list test files in .cabal Adam Vogt <vogt.adam@gmail.com>**20111118232511 Ignore-this: ac48a0d388293cc6c771d676aaf142e3 In the future, require Cabal >= 1.6 to be able to just write tests/*.hs ] [TAG 0.10 Adam Vogt <vogt.adam@gmail.com>**20111118225640 Ignore-this: 8f81b175b902e985d584160fc41ab7d1 ] Patch bundle hash: 282e8e8f8d60de48dd42fbb111d40c4a53843f8b
2012/4/20 Carlos López Camey <c.lopez@kmels.net>
Combination keys C-d, C-f, C-b, M-f, M-b, M-x, M-Backspace. It misses ESC-p and ESC-n, sometimes used to browse history, but it was
ESC-whatever is also available as M-whatever. so you want M-p and M-n there. (Not that any of the ESC variants are possible without rewriting how Prompt does input.) -- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms
Oh, I didn't know that. Attached is the complete patch including those two. 2012/4/21 Brandon Allbery <allbery.b@gmail.com>:
2012/4/20 Carlos López Camey <c.lopez@kmels.net>
Combination keys C-d, C-f, C-b, M-f, M-b, M-x, M-Backspace. It misses ESC-p and ESC-n, sometimes used to browse history, but it was
ESC-whatever is also available as M-whatever. so you want M-p and M-n there. (Not that any of the ESC variants are possible without rewriting how Prompt does input.)
-- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms
This 2-patches bundle was just applied to http://code.haskell.org/XMonadContrib: 20120421012335 Carlos Lopez-Camey <c.lopez@kmels.net> * Adds an emacs-like Keymap in XMonad.Prompt 20120421110737 Carlos Lopez-Camey <c.lopez@kmels.net> * Add emacs-like keys to browse history in XMonad.Prompt -- This message was brought to you by DarcsWatch http://darcswatch.nomeata.de/repo_http:__code.haskell.org_XMonadContrib.html...
participants (3)
-
Brandon Allbery -
Carlos López Camey -
darcswatch@nomeata.de