diff options
| author | Akshay Nair <phenax5@gmail.com> | 2024-12-27 17:54:31 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2024-12-27 17:54:31 +0530 |
| commit | 98af698a806e41904368c0114f9d8d9f377d9c09 (patch) | |
| tree | b09e835b1cf4c678fe557b1ab01905e75ee3922f /src/Chelleport/Control.hs | |
| parent | 3d461b234d0b30cb7085251390b264089f447a97 (diff) | |
| download | chelleport-98af698a806e41904368c0114f9d8d9f377d9c09.tar.gz chelleport-98af698a806e41904368c0114f9d8d9f377d9c09.zip | |
Minor refactor
Diffstat (limited to 'src/Chelleport/Control.hs')
| -rw-r--r-- | src/Chelleport/Control.hs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/Chelleport/Control.hs b/src/Chelleport/Control.hs index a7c475f..b987564 100644 --- a/src/Chelleport/Control.hs +++ b/src/Chelleport/Control.hs @@ -1,12 +1,13 @@ module Chelleport.Control where -import Chelleport.KeySequence (isAlphabetic, isKeycodeDigit) +import Chelleport.KeySequence (isAlphabetic, isKeycodeDigit, toKeyChar) import Chelleport.Types import Chelleport.Utils import Control.Concurrent (threadDelay) import Control.Monad (unless) import Control.Monad.IO.Class (MonadIO (liftIO)) import Control.Monad.Reader (MonadReader (ask)) +import Data.Maybe (fromMaybe) import qualified Debug.Trace as Debug import Foreign.C.Types import qualified Graphics.X11 as X11 @@ -85,6 +86,9 @@ key keycode = (keycode ==) . eventToKeycode ctrl :: SDL.KeyboardEventData -> Bool ctrl ev = SDL.keyModifierLeftCtrl (keyModifier ev) || SDL.keyModifierRightCtrl (keyModifier ev) +alt :: SDL.KeyboardEventData -> Bool +alt ev = SDL.keyModifierLeftAlt (keyModifier ev) || SDL.keyModifierRightAlt (keyModifier ev) + shift :: SDL.KeyboardEventData -> Bool shift ev = SDL.keyModifierLeftShift (keyModifier ev) || SDL.keyModifierRightShift (keyModifier ev) @@ -94,6 +98,9 @@ anyDigit = isKeycodeDigit . eventToKeycode anyAlphabetic :: SDL.KeyboardEventData -> Bool anyAlphabetic = isAlphabetic . eventToKeycode +hjkl :: SDL.KeyboardEventData -> Bool +hjkl = (`elem` ("HJKL" :: String)) . fromMaybe ' ' . toKeyChar . eventToKeycode + hjklDirection :: Char -> Direction hjklDirection = \case 'H' -> DirLeft |
