xkbcommon-0.0.0: tests/keyseq.hs
import Control.Monad
import Data.Maybe
import Text.XkbCommon
import Text.XkbCommon.Constants
import Text.XkbCommon.KeycodeList
import Common
main = do
ctx <- getTestContext
km <- liftM fromJust $ newKeymapFromNames ctx (RMLVO
(Just "evdev")
(Just "evdev")
(Just "us,il,ru,de")
(Just ",,phonetic,neo")
(Just "grp:alt_shift_toggle,grp:menu_toggle"))
testKeySeq km [
(keycode_h, Both, keysym_h),
(keycode_e, Both, keysym_e),
(keycode_l, Both, keysym_l),
(keycode_l, Both, keysym_l),
(keycode_o, Both, keysym_o)]
testKeySeq km [
(keycode_h, Both, keysym_h),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_e, Both, keysym_E),
(keycode_l, Both, keysym_L),
(keycode_leftshift, Up, keysym_Shift_L),
(keycode_l, Both, keysym_l),
(keycode_o, Both, keysym_o)]
testKeySeq km [
(keycode_h, Down, keysym_h),
(keycode_h, Repeat, keysym_h),
(keycode_h, Repeat, keysym_h),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_h, Repeat, keysym_H),
(keycode_h, Repeat, keysym_H),
(keycode_leftshift, Up, keysym_Shift_L),
(keycode_h, Repeat, keysym_h),
(keycode_h, Repeat, keysym_h),
(keycode_h, Up, keysym_h),
(keycode_h, Both, keysym_h)]
testKeySeq km [
(keycode_h, Both, keysym_h),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_e, Both, keysym_E),
(keycode_l, Both, keysym_L),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_l, Both, keysym_L),
(keycode_o, Both, keysym_O)]
testKeySeq km [
(keycode_h, Both, keysym_h),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_e, Both, keysym_E),
(keycode_l, Both, keysym_L),
(keycode_rightshift, Up, keysym_Shift_R),
(keycode_l, Both, keysym_L),
(keycode_o, Both, keysym_O)]
testKeySeq km [
(keycode_h, Both, keysym_h),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_e, Both, keysym_E),
(keycode_rightshift, Down, keysym_Shift_R),
(keycode_l, Both, keysym_L),
(keycode_rightshift, Up, keysym_Shift_R),
(keycode_l, Both, keysym_L),
(keycode_leftshift, Up, keysym_Shift_L),
(keycode_o, Both, keysym_o)]
testKeySeq km [
(keycode_h, Both, keysym_h),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_h, Both, keysym_H),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_h, Both, keysym_H),
(keycode_leftshift, Up, keysym_Shift_L),
(keycode_h, Both, keysym_H),
(keycode_leftshift, Up, keysym_Shift_L),
(keycode_h, Both, keysym_h)]
testKeySeq km [
(keycode_h, Both, keysym_h),
(keycode_capslock, Down, keysym_Caps_Lock),
(keycode_h, Both, keysym_H),
(keycode_capslock, Down, keysym_Caps_Lock),
(keycode_h, Both, keysym_H),
(keycode_capslock, Up, keysym_Caps_Lock),
(keycode_h, Both, keysym_H),
(keycode_capslock, Up, keysym_Caps_Lock),
(keycode_h, Both, keysym_H),
(keycode_capslock, Both, keysym_Caps_Lock),
(keycode_h, Both, keysym_h)]
testKeySeq km [
(keycode_h, Both, keysym_h),
(keycode_e, Both, keysym_e),
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_k, Both, keysym_hebrew_lamed),
(keycode_f, Both, keysym_hebrew_kaph),
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_o, Both, keysym_o)]
testKeySeq km [
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_leftalt, Down, keysym_ISO_Next_Group),
(keycode_leftalt, Up, keysym_ISO_Next_Group),
(keycode_leftshift, Up, keysym_Shift_L)]
testKeySeq km [
(keycode_leftalt, Down, keysym_Alt_L),
(keycode_leftshift, Down, keysym_ISO_Next_Group),
(keycode_leftshift, Up, keysym_ISO_Next_Group),
(keycode_leftalt, Up, keysym_Alt_L)]
testKeySeq km [
(keycode_capslock, Both, keysym_Caps_Lock),
(keycode_h, Both, keysym_H),
(keycode_e, Both, keysym_E),
(keycode_l, Both, keysym_L),
(keycode_l, Both, keysym_L),
(keycode_o, Both, keysym_O)]
testKeySeq km [
(keycode_h, Both, keysym_h),
(keycode_e, Both, keysym_e),
(keycode_capslock, Both, keysym_Caps_Lock),
(keycode_l, Both, keysym_L),
(keycode_l, Both, keysym_L),
(keycode_capslock, Both, keysym_Caps_Lock),
(keycode_o, Both, keysym_o)]
testKeySeq km [
(keycode_h, Both, keysym_h),
(keycode_capslock, Down, keysym_Caps_Lock),
(keycode_e, Both, keysym_E),
(keycode_l, Both, keysym_L),
(keycode_l, Both, keysym_L),
(keycode_capslock, Up, keysym_Caps_Lock),
(keycode_o, Both, keysym_O)]
testKeySeq km [
(keycode_h, Both, keysym_h),
(keycode_e, Both, keysym_e),
(keycode_capslock, Up, keysym_Caps_Lock),
(keycode_l, Both, keysym_l),
(keycode_l, Both, keysym_l),
(keycode_o, Both, keysym_o)]
testKeySeq km [
(keycode_kp1, Both, keysym_KP_End),
(keycode_numlock, Both, keysym_Num_Lock),
(keycode_kp1, Both, keysym_KP_1),
(keycode_kp2, Both, keysym_KP_2),
(keycode_numlock, Both, keysym_Num_Lock),
(keycode_kp2, Both, keysym_KP_Down)]
testKeySeq km [
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_1, Both, keysym_1),
(keycode_q, Both, keysym_Cyrillic_ya),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_1, Both, keysym_exclam),
(keycode_q, Both, keysym_Cyrillic_YA),
(keycode_leftshift, Up, keysym_Shift_L),
(keycode_v, Both, keysym_Cyrillic_zhe),
(keycode_capslock, Both, keysym_Caps_Lock),
(keycode_1, Both, keysym_1),
(keycode_v, Both, keysym_Cyrillic_ZHE),
(keycode_rightshift, Down, keysym_Shift_R),
(keycode_v, Both, keysym_Cyrillic_zhe),
(keycode_rightshift, Up, keysym_Shift_R),
(keycode_v, Both, keysym_Cyrillic_ZHE)]
testKeySeq km [
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_1, Both, keysym_1),
(keycode_q, Both, keysym_x),
(keycode_kp7, Both, keysym_KP_7),
(keycode_esc, Both, keysym_Escape),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_1, Both, keysym_degree),
(keycode_q, Both, keysym_X),
(keycode_kp7, Both, ks "U2714"),
(keycode_esc, Both, keysym_Escape),
(keycode_leftshift, Up, keysym_Caps_Lock),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_rightshift, Both, keysym_Caps_Lock),
(keycode_leftshift, Up, keysym_Caps_Lock),
(keycode_6, Both, keysym_6),
(keycode_h, Both, keysym_S),
(keycode_kp3, Both, keysym_KP_3),
(keycode_esc, Both, keysym_Escape),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_rightshift, Both, keysym_Caps_Lock),
(keycode_leftshift, Up, keysym_Caps_Lock),
(keycode_capslock, Down, keysym_ISO_Level3_Shift),
(keycode_6, Both, keysym_cent),
(keycode_q, Both, keysym_ellipsis),
(keycode_kp7, Both, ks "U2195"),
(keycode_esc, Both, keysym_Escape),
(keycode_capslock, Up, keysym_ISO_Level3_Shift),
(keycode_capslock, Down, keysym_ISO_Level3_Shift),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_5, Both, keysym_malesymbol),
(keycode_e, Both, keysym_Greek_lambda),
(keycode_space, Both, keysym_nobreakspace),
(keycode_kp8, Both, keysym_intersection),
(keycode_esc, Both, keysym_Escape),
(keycode_leftshift, Up, keysym_Caps_Lock),
(keycode_capslock, Up, keysym_ISO_Level3_Shift),
(keycode_rightalt, Down, keysym_ISO_Level5_Shift),
(keycode_5, Both, keysym_periodcentered),
(keycode_e, Both, keysym_Up),
(keycode_space, Both, keysym_KP_0),
(keycode_kp8, Both, keysym_KP_Up),
(keycode_esc, Both, keysym_Escape),
(keycode_rightalt, Up, keysym_ISO_Level5_Shift),
(keycode_v, Both, keysym_p)]
km2 <- liftM fromJust $ newKeymapFromNames ctx (RMLVO
(Just "evdev")
(Just "")
(Just "us,il,ru")
(Just "")
(Just "grp:alt_shift_toggle_bidir,grp:menu_toggle"))
testKeySeq km2 [
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_leftalt, Down, keysym_ISO_Prev_Group),
(keycode_leftalt, Up, keysym_ISO_Prev_Group),
(keycode_leftshift, Up, keysym_Shift_L)]
testKeySeq km2 [
(keycode_leftalt, Down, keysym_Alt_L),
(keycode_leftshift, Down, keysym_ISO_Prev_Group),
(keycode_leftshift, Up, keysym_ISO_Prev_Group),
(keycode_leftalt, Up, keysym_Alt_L)]
testKeySeq km2 [
(keycode_h, Both, keysym_h),
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_h, Both, keysym_hebrew_yod),
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_h, Both, keysym_Cyrillic_er),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_leftalt, Both, keysym_ISO_Prev_Group),
(keycode_leftshift, Up, keysym_Shift_L),
(keycode_h, Both, keysym_hebrew_yod),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_leftalt, Both, keysym_ISO_Prev_Group),
(keycode_leftshift, Up, keysym_Shift_L),
(keycode_h, Both, keysym_h),
(keycode_leftshift, Down, keysym_Shift_L),
(keycode_leftalt, Both, keysym_ISO_Prev_Group),
(keycode_leftshift, Up, keysym_Shift_L),
(keycode_h, Both, keysym_Cyrillic_er),
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_h, Both, keysym_h)]
km3 <- liftM fromJust $ newKeymapFromNames ctx (RMLVO
(Just "evdev")
(Just "")
(Just "us,il,ru")
(Just "")
(Just "grp:switch,grp:lswitch,grp:menu_toggle"))
testKeySeq km3 [
(keycode_h, Both, keysym_h),
(keycode_rightalt, Down, keysym_Mode_switch),
(keycode_h, Both, keysym_hebrew_yod),
(keycode_rightalt, Up, keysym_ISO_Level3_Shift),
(keycode_h, Both, keysym_h),
(keycode_rightalt, Down, keysym_Mode_switch),
(keycode_h, Both, keysym_hebrew_yod),
(keycode_rightalt, Up, keysym_ISO_Level3_Shift),
(keycode_h, Both, keysym_h)]
testKeySeq km3 [
(keycode_h, Both, keysym_h),
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_leftalt, Down, keysym_Mode_switch),
(keycode_h, Both, keysym_Cyrillic_er),
(keycode_leftalt, Up, keysym_Mode_switch),
(keycode_h, Both, keysym_hebrew_yod),
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_leftalt, Down, keysym_Mode_switch),
(keycode_h, Both, keysym_h),
(keycode_leftalt, Up, keysym_Mode_switch),
(keycode_h, Both, keysym_Cyrillic_er),
(keycode_compose, Both, keysym_ISO_Next_Group),
(keycode_h, Both, keysym_h),
(keycode_rightalt, Down, keysym_Mode_switch),
(keycode_h, Both, keysym_hebrew_yod),
(keycode_leftalt, Down, keysym_Mode_switch),
(keycode_h, Both, keysym_Cyrillic_er),
(keycode_leftalt, Up, keysym_Mode_switch),
(keycode_h, Both, keysym_hebrew_yod),
(keycode_rightalt, Up, keysym_ISO_Level3_Shift),
(keycode_h, Both, keysym_h)]
kmFile <- readFile (datadir++"keymaps/unbound-vmod.xkb")
let km4 = fromJust $ newKeymapFromString ctx kmFile
testKeySeq km4 [
(keycode_h, Both, keysym_h),
(keycode_z, Both, keysym_y),
(keycode_minus, Both, keysym_ssharp),
(keycode_z, Both, keysym_y)]
return ()