gpt4 book ai didi

linux - 如何在 Haskell 中获取按下和释放键的扫描码?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:50:17 24 4
gpt4 key购买 nike

我正在写一个简单的文本编辑器,所以我想要这样的东西

type Scancode = Int
data KeyState = Pressed | Released
newtype InStream = InStream [(Scancode, State)]

main = do
input <- getKeys
parse input

parse :: InStream -> IO ()
parse [] = return ()
parse (x : xs)
| x == (1, Released) = return ()
| otherwise = do
doSomething
parse xs

正如您所猜到的,我希望 getKeys 函数的行为类似于 getContents,以获得连续的扫描码列表。

据我所知,SDL 甚至 GTK 都可以为我提供这样的功能,但是是否有更惯用的(对于 haskell 和函数式编程)并且“开销”更少的方式来做这样的事情?

附言如果重要的话,我想在 Linux 下的控制台 (tty) 和 X11/Wayland 中使用我的“编辑器”。

最佳答案

如果您真的想要简单,请查看这些答案:

您可能必须先将您的 tty 置于原始模式才能使其工作。第二个问题要求 Windows 解决方案,但同样的想法也适用于 Linux。

关于linux - 如何在 Haskell 中获取按下和释放键的扫描码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32236500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com