Is it possible to use key-chord and a different input-method?

I stopped trying to solve this but maybe somebody has a solution for this. I’m unable to use the key-chord package and also the programmer-dvorak input method, is there a key-chord alternative or some workaround for this issue?.

I found a partial workaround . key-chord uses its own input-method-function and so does the input-method (quail-input-method).

(defun my/quail-key-chord-filter (key)
  (let* ((result (key-chord-input-method (car key)))
	 (command (when  (> (length result) 1)
		    (key-chord-lookup-key
		     (seq--into-vector result)))))
    (if command
	(progn
	  (funcall command)
	  (list nil))
      key)))

(defun my/advice-key-chord ()
  (advice-add 'quail-input-method :filter-args 'my/quail-key-chord-filter))

(add-hook 'key-chord-mode-hook 'my/advice-key-chord)

Filtering the input to quail-input-method works, unfortunately it slows the input a little bit since it process each key press twice.

I also tried this method with avy. In this case it works perfectly for most commands except for avy-goto-char-timer (it calls read-char directly).

(setq avy-translate-char-function 'my/avy-translate-char)

(defun my/avy-translate-char (char)
  (car (quail-input-method char)))

(defun my/avy-filter-args (key)
  (if (listp key)
      (quail-input-method (car key))
    (quail-input-method key)))

(advice-add 'avy-goto-word-1 :filter-args 'my/avy-filter-args)