xsendkey は X11 ウインドウにキーイベントを送るツール。 ライセンスは GPL である。
# Makefile for xsendkey CC=gcc CFLAGS=-g -Wall LDFLAGS=-L /usr/X11R6/lib -lX11 all: xsendkey xsendkey: xsendkey.o clean: rm -f xsendkey.o xsendkey
xsel と組み合わせると、任意のウィンドウに任意の文字列を流し込めそうだ。
つまり、xsel でクリップボードに(日本語の)文字列を入れて、xsendkey で Ctrl-V を送ればよい。
準備
sudo apt-get install xsel
Window ID は xwininfo で調べる。
root 以外のウィンドウは、クリックして選択して調べる。
#!/bin/bash # saved with utf-8-unix echo 'select window: ready..' sleep 3 echo 'select window: click!' WID=`xwininfo | grep "Window id" | cut -f4 -d' '` echo $WID KEY='Control+V' echo -n 'hoge日本語' | xsel -i -b echo 'focus to edit window..' sleep 3 ./xsendkey -window $WID $KEY