Я пытаюсь заставить xmonad набирать общую последовательность символов всякий раз, когда я нажимаю на простое сочетание клавиш. Одним из примеров этой проблемы является просто ввод моего адреса электронной почты.
Это то, что для меня выглядит файл конфигурации для xmonad:
import XMonad
import XMonad.Config.Gnome (gnomeConfig)
import XMonad.Util.CustomKeys (customKeys)
import XMonad.Util.EZConfig
main = xmonad $ gnomeConfig {
keys = customKeys delKeys insKeys,
logHook = return ()
}
where
-- Remap mod-p to dmenu and mod-[sd] to swapping xinerama screens.
delKeys :: XConfig l -> [(KeyMask, KeySym)]
delKeys XConfig { modMask = modMask } =
[ (modMask, xK_p), (modMask, xK_w), (modMask, xK_e) ]
insertEmailAddress :: KeyMask -> [((KeyMask, KeySym), X())]
insertEmailAddress modMask = [ ((noModMask, xK_Menu), spawn "xdotool type thisismyemail@example.com") ]
insKeys :: XConfig l -> [((KeyMask, KeySym), X())]
insKeys XConfig { modMask = modMask } = insertEmailAddress modMask
Однако, когда я нажал клавишу меню (он находится в нижней правой части моей клавиатуры) Я получаю только последнюю половину или около того. Например: yemail@example.com или isismyemail@example.com. Это будет непредсказуемо, когда начнется печать.
Я нашел обходной путь, изменив команду xdotool на xdotool sleep 0.1 type thisismyemail@example.com. Кажется, это работает безотказно, но я понятия не имею, почему. Любые мысли?
с использованием xmonad 0.11 и amp; xdotool версия 3.20140217.1
Возможно, вам потребуется увеличить задержку между нажатиями клавиш с помощью --delay (по умолчанию 12 мс):
xdotool type --delay 100 thisismyemail@example.com