Here is a hypothetical example of the $HOME/.xbindkeysrc file.
# button 9 without modifiers -> Control+Alt+Left
"xvkbd -no-jump-pointer -text '\C\A\[Left]'"
m:0x0 + b:9
# button 8 without modifiers -> Control+Alt+Right
"xvkbd -no-jump-pointer -text '\C\A\[Right]'"
m:0x0 + b:8
# Cotnrol + button 9 -> Left on the root window
"xvkbd -window root -text '\[Left]'"
Control + b:9
# Cotnrol + button 8 -> Right on the root window
"xvkbd -window root -text '\[Right]'"
Control + b:8
# Shift + Control + button 3 -> click button 1, then Meta+Q
"xvkbd -text '\m1\Mq'"
Shift + Control + b:3 + Release
# Shift + button 4, 5, 6 or 7 -> move mouse pointer
"xvkbd -window root -text '\x+50'"
Shift + b:7
"xvkbd -window root -text '\x-50'"
Shift + b:6
"xvkbd -window root -text '\y+50'"
Shift + b:5
"xvkbd -window root -text '\y-50'"
Shift + b:4
Maybe you need to use -xsendevent option, too.
For information how to setup xbindkeys and for more examples, search the Internet with keyword xvkbd xbindkeys.
However, you can't use xvkbd -file if you wish to use escape sequences, such as \A and \[Right] for example, in the text.
In such case, maybe you can use xvkbd -text with shell backquoting instead:
xvkbd -text `cat filename`
To use -utf option, the text must be converted to UTF16 encoding:
echo -n 'français' | iconv -f UTF8 -t UTF16 | xvkbd -utf -file -
Another possible solution maybe to put the text in the clipboard by, for example, using xclip, and then use xvkbd to trigger the paste action:
echo something-to-be-pasted | xclip -in -selection clipboard; xvkbd -text '\Cv'
xvkbd -no-jump-pointer -text $(date +%Y-%m-%d)
If you wish, you can use this with xbindkeys desribed above.
If the string contains exotic characters, maybe you need to use it with a trick above.
For example,
xvkbd -text \C\A\[Left]wouldn't work, and you need to write
xvkbd -text '\C\A\[Left]'or
xvkbd -text \\C\\A\[Left\]instead.