Although it's not particularly clear, a neat feature of xtightvnc is the ability to modify the pop-up menu that appears when you press F8 to send arbitrary keystrokes.
The trick is overriding some of the X11 resources of the file. If you have a look in /etc/X11/app-defaults/Vncviewer (make sure you have a recent package) you can see the default keybindings for the popup menu, which are a good template. Assuming you want to keep them all, you can add your own buttons by starting at button 9 and re-defining the total button count in your ~/.Xresources:
xtightvncviewer*popupButtonCount: 11 xtightvncviewer*popup*button9.label: Alt-F1 xtightvncviewer*popup*button9.translations: #override\n\ <Btn1Down>,<Btn1Up>: \ SendRFBEvent(keydown,Alt_L) \ SendRFBEvent(keydown,F1) \ SendRFBEvent(keyup, F1) \ SendRFBEvent(keyup, Alt_L) xtightvncviewer*popup*button10.label: Alt-F2 xtightvncviewer*popup*button10.translations: #override\n\ <Btn1Down>,<Btn1Up>: \ SendRFBEvent(keydown,Alt_L) \ SendRFBEvent(keydown,F2) \ SendRFBEvent(keyup, F2) \ SendRFBEvent(keyup, Alt_L) xtightvncviewer*popup*button11.label: Alt-F12 xtightvncviewer*popup*button11.translations: #override\n\ <Btn1Down>,<Btn1Up>: \ SendRFBEvent(keydown,Alt_L) \ SendRFBEvent(keydown,F12) \
Make sure you merge this with xrdb -merge ~/.Xresources if you don't want to bother logging out and in. This way I can easily send Alt-F1, etc. through to the other side; useful for things like switching virtual terminals in VMware workstation running remotely. I imagine if you were insane you could do all sorts of other tricks too!