пищевые символы команды типа xdotool

Я пытаюсь заставить 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 и xdotool версии 3.20140217.1

4
задан 16 July 2015 в 01:49

2 ответа

--sync опция была точно, что я искал!

Однако --sync опция только существует на определенном наборе, получают или ищут команды.

решение оказалось: xdotool getwindowfocus windowfocus --sync type thisismyemail@example.com

, Что происходит, вот то, что мы сначала получаем окно, которое фокусируется, через getwindowfocus (getactivewindow альтернатива, если другой не работает).

Все, что мы делаем по-другому, получает активное окно и устанавливает его на то же самое. Основное отличие является присутствием --sync опция, которая вынуждает xdotool ожидать, пока предыдущая команда не была применена.

, Таким образом, мы гарантируем, что фокусируемся к конкретному окну и сможем ввести команды.

3
ответ дан 1 December 2019 в 09:48

Вы, возможно, должны увеличить задержку между нажатиями клавиш с помощью --delay (значение по умолчанию составляет 12 мс):

xdotool type --delay 100 thisismyemail@example.com
1
ответ дан 1 December 2019 в 09:48

Другие вопросы по тегам:

Похожие вопросы: