[xmonad] [PATCHv2] * Allow to specify the initial gaps' states in X.L.Gaps (was: Re: [PATCH] * Export X.L.Gaps Gaps constructor)
Paul Fertser
fercerpav at gmail.com
Fri Feb 22 09:52:39 CET 2013
Hi,
On Thu, Feb 21, 2013 at 03:09:46PM -0500, wagnerdm at seas.upenn.edu wrote:
>> On Thu, Feb 21, 2013 at 01:54:28PM -0500, wagnerdm at seas.upenn.edu wrote:
>>> Hm. From a short look at the module, it seems the Gaps constructor is
>>> not exported because there are some invariants maintained by the
>>> auxiliary functions that act on GapSpecs and [Direction2D]s.
>>
>> Do I undertand it right that you mean exporting Gaps constructor would
>> allow users to specify some direction more than once or to add some
>> direction for which a gap is not defined and that it should be
>> prevented compile-time? Would creating another function (gaps' ?) that
>> would accept a list of triples (with the third boolean element to
>> specify an initial state) solve the problem?
>
> Yep, that's pretty much what I meant. A smart constructor like the one
> you suggested should deal with the problem just fine.
Sorry but I do not know much about type constructors and data
constructors and I do not see how to apply that (partial) knowledge
here (without adding unnecessary complexity, iow everything I can
imagine is more complicated than the attached patch, which does
not add or modify any constructors, not even in the "smart
constructors idiom" sense).
Thank you for the review!
--
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:fercerpav at gmail.com
-------------- next part --------------
1 patch for repository http://code.haskell.org/XMonadContrib:
Fri Feb 22 11:22:32 MSK 2013 Paul Fertser <fercerpav at gmail.com>
* Allow to specify the initial gaps' states in X.L.Gaps
New patches:
[Allow to specify the initial gaps' states in X.L.Gaps
Paul Fertser <fercerpav at gmail.com>**20130222072232
Ignore-this: 31596d918d0050e36ce3f64f56205a64
] {
hunk ./XMonad/Layout/Gaps.hs 32
-- * Usage
-- $usage
Direction2D(..), Gaps,
- GapSpec, gaps, GapMessage(..)
+ GapSpec, gaps, gaps', GapMessage(..)
) where
hunk ./XMonad/Layout/Gaps.hs 143
-> ModifiedLayout Gaps l a
gaps g = ModifiedLayout (Gaps g (map fst g))
+-- | Add togglable manual gaps to a layout, explicitly specifying the initial states.
+gaps' :: [((Direction2D,Int),Bool)] -- ^ The gaps to allow and their initial states.
+ -> l a -- ^ The layout to modify.
+ -> ModifiedLayout Gaps l a
+gaps' g = ModifiedLayout (Gaps (map fst g) [d | ((d,_),v) <- g, v])
}
Context:
[Allow to limit maximum row count in X.Prompt completion window
Paul Fertser <fercerpav at gmail.com>**20130221122050
Ignore-this: 923656f02996f2de2b1336275392c5f9
On a keyboard-less device (such as a smartphone), where one has to use
an on-screen keyboard, the maximum completion window height must be
limited to avoid overlapping the keyboard.
]
[Note in U.NameActions that xmonad core can list default keys now
Adam Vogt <vogt.adam at gmail.com>**20130217233026
Ignore-this: 937bff636fa88171932d5192fe8e290b
]
[Export U.NamedActions.addDescrKeys per evaryont's request.
Adam Vogt <vogt.adam at gmail.com>**20130217232619
Ignore-this: a694a0a3ece70b52fba6e8f688d86344
]
[Add EWMH DEMANDS_ATTENTION support to UrgencyHook.
Maarten de Vries <maarten at de-vri.es>**20130212181229
Ignore-this: 5a4b314d137676758fad9ec8f85ce422
Add support for the _NET_WM_STATE_DEMANDS_ATTENTION atom
by treating it the same way as the WM_HINTS urgency flag.
]
[Unconditionally set _NET_WORKAREA in ManageDocks
Adam Vogt <vogt.adam at gmail.com>**20130117180851
Ignore-this: 9f57e53fba9573d8a92cf153beb7fe7a
]
[spawn command when no completion is available (if alwaysHighlight is True); changes commandToComplete in Prompt/Shell to complete the whole word instead of using getLastWord
c.lopez at kmels.net**20130209190456
Ignore-this: ca7d354bb301b555b64d5e76e31d10e8
]
[order-unindexed-ws-last
matthewhague at zoho.com**20120703222726
Ignore-this: 4af8162ee8b16a60e8fd62fbc915d3c0
Changes the WorkspaceCompare module's comparison by index to put workspaces without an index last (rather than first).
]
[SpawnOn modification for issue 523
Adam Vogt <vogt.adam at gmail.com>**20130114014642
Ignore-this: 703f7dc0f800366b752f0ec1cecb52e5
This moves the function to help clean up the `Spawner' to the ManageHook
rather than in functions like spawnOn. Probably it makes no difference, the
reason is because there's one manageSpawn function but many different so this
way there are less functions to write.
]
[Update L.TrackFloating.useTransient example code
Adam Vogt <vogt.adam at gmail.com>**20130112041239
Ignore-this: e4e31cf1db742778c1d59d52fdbeed7a
Suggest useTransient goes to the right of trackFloating which is the
configuration actually tested.
]
[Adapt ideas of issue 306 patch to a new modifier in L.TrackFloating
Adam Vogt <vogt.adam at gmail.com>**20130112035701
Ignore-this: d54d27b71b97144ef0660f910fd464aa
]
[Make X.A.CycleWS not rely on hidden WS order
Dmitri Iouchtchenko <johnnyspoon at gmail.com>**20130109023328
Ignore-this: 8717a154b33253c5df4e9a0ada4c2c3e
]
[Add X.H.WorkspaceHistory
Dmitri Iouchtchenko <johnnyspoon at gmail.com>**20130109023307
Ignore-this: c9e7ce33a944facc27481dde52c7cc80
]
[Allow removing arbitrary workspaces
Dmitri Iouchtchenko <johnnyspoon at gmail.com>**20121231214343
Ignore-this: 6fce4bd3d0c5337e5122158583138e74
]
[Remove first-hidden restriction from X.A.DynamicWorkspaces.removeWorkspace'
Dmitri Iouchtchenko <johnnyspoon at gmail.com>**20121231214148
Ignore-this: 55fb0859e9a5f476a834ecbdb774aac8
]
[Add authorspellings file for `darcs show authors'.
Adam Vogt <vogt.adam at gmail.com>**20130101040031
Ignore-this: c3198072ebc6a71d635bec4d8e2c78fd
This authorspellings file includes a couple people who've contributed to xmonad
(not XMonadContrib). When people have multiple addresses, the most recent one
has been picked.
]
[TAG 0.11
Adam Vogt <vogt.adam at gmail.com>**20130101014231
Ignore-this: 57cf32412fd1ce912811cb7fafe930f5
]
Patch bundle hash:
0d3bb6109191270c222483919fc0470129649574
More information about the xmonad
mailing list