| Maintainer | Toshio Ito <debug.ito@gmail.com> |
|---|---|
| Safe Haskell | None |
| Language | Haskell2010 |
WildBind.Task.X11
Description
This module exports everything you probably need to use WildBind in X11 environments.
- wildNumPad :: (NumPadPosition i, KeySymLike i, ModifierLike i, Describable i, Ord i, Enum i, Bounded i) => Binding ActiveWindow i -> IO ()
- wildNumPad' :: (NumPadPosition i, KeySymLike i, ModifierLike i, Describable i, Ord i, Enum i, Bounded i) => (Indicator ActiveWindow i -> Binding ActiveWindow i) -> IO ()
- module WildBind.Binding
- module WildBind.Description
- module WildBind.Input.NumPad
- module Control.Monad.IO.Class
- module Control.Monad.Trans.State
- module Data.Monoid
- data Text :: *
- data Window :: *
- type ActiveWindow = Window
- winInstance :: Window -> Text
- winClass :: Window -> Text
- winName :: Window -> Text
- data Indicator s i :: * -> * -> *
- class NumPadPosition a where
- toNumPad :: a -> NumPadLocked
- updateDescription :: Indicator s i -> i -> ActionDescription -> IO ()
- getPresence :: Indicator s i -> IO Bool
- setPresence :: Indicator s i -> Bool -> IO ()
- togglePresence :: Indicator s i -> IO ()
- quit :: Indicator s i -> IO ()
Execution
wildNumPad :: (NumPadPosition i, KeySymLike i, ModifierLike i, Describable i, Ord i, Enum i, Bounded i) => Binding ActiveWindow i -> IO () Source
A convenient function to create an executable action with X11
FrontEnd and Indicator for a number pad.
main :: IO () main = wildNumPad $ binds $ do on NumCenter `run` putStrLn "You pushed center."
Note that the executable must be compiled by ghc with
-threaded option enabled.
With this function, the "/" (divide) key on the numpad is bound
to toggling the Indicator, ignoring the binding you provide.
For the input type i, you can use NumPadUnlocked or
NumPadLocked.
wildNumPad' :: (NumPadPosition i, KeySymLike i, ModifierLike i, Describable i, Ord i, Enum i, Bounded i) => (Indicator ActiveWindow i -> Binding ActiveWindow i) -> IO () Source
A more flexible version of wildNumPad. It passes you an
Indicator, and uses the Binding you return as-is.
Re-exports
module WildBind.Binding
module WildBind.Description
module WildBind.Input.NumPad
From basic modules
module Control.Monad.IO.Class
module Control.Monad.Trans.State
module Data.Monoid
From WindBind.X11
data Window :: *
Information about window. You can inspect properties winInstance
and winClass by wmctrl command.
$ wmctrl -lx 0x01400004 -1 xfce4-panel.Xfce4-panel mydesktop xfce4-panel 0x01800003 -1 xfdesktop.Xfdesktop mydesktop desktop 0x03800004 0 xfce4-terminal.Xfce4-terminal mydesktop Terminal - toshio@mydesktop - byobu 0x03a000a7 0 emacs.Emacs23 mydesktop emacs@mydesktop 0x03e010fc 0 Navigator.Firefox mydesktop debug-ito (Toshio Ito) - Mozilla Firefox 0x02600003 0 totem.Totem mydesktop Movie Player
In the above example, the third column shows winInstance.winClass.
type ActiveWindow = Window
Use this type especially when the Window is active.
winInstance :: Window -> Text
name of the application instance (part of WM_CLASS property)
From WildBind.Indicator
data Indicator s i :: * -> * -> *
Indicator interface. s is the front-end state, i is the input
type.
class NumPadPosition a where
Something that can be mapped to number pad's key positions.
Methods
toNumPad :: a -> NumPadLocked
updateDescription :: Indicator s i -> i -> ActionDescription -> IO ()
Update and show the description for the current binding.
getPresence :: Indicator s i -> IO Bool
Get the current presence of the indicator. Returns True if
it's present.
setPresence :: Indicator s i -> Bool -> IO ()
Set the presence of the indicator.
togglePresence :: Indicator s i -> IO ()
Toggle the presence of the indicator.