I actually can even get used to QUERTZ-layouted keyboards (like the German or Swiss one) and other, non-coding-friendly QUERTY-layouts (like the Spanish one) quite fast because I get to use them from time to time when I use (read: fix) a friend's or family members' computer. But still, the US layout is my prefered choice and I wouldn't want to miss it on my own devices which was, by the way, one reason why I imported my last laptop from the states.
Nonetheless, every once in a while I need to use symbols like umlauts or the German eszett (ß) in order to write emails properly. That's why I'm using a couple of xmodmap rules to add that functionality in a convenient way: Umlauts are mapped to the ALT key and the corresponding vowel (e.g. ALT+u=ü), the same applies for the eszett (ALT+s=ß). My old rules stopped working some when because the keycode for the ALT key changed and thus interfered with other keys (in my case with the cursor keys). This is my current script which I'm using on X.org 1.5.2:
keycode 108 = Mode_switch
keycode 20 = minus underscore ssharp
keycode 34 = bracketleft braceleft udiaeresis Udiaeresis
keycode 47 = semicolon colon odiaeresis Odiaeresis
keycode 48 = apostrophe quotedbl adiaeresis Adiaeresis
keycode 26 = e E EuroSign EuroSign e E
keycode 30 = u U udiaeresis Udiaeresis u U
keycode 32 = o O odiaeresis Odiaeresis o O
keycode 38 = a A adiaeresis Adiaeresis a A
keycode 39 = s S ssharp ssharp s S
keycode 20 = minus underscore ssharp
keycode 34 = bracketleft braceleft udiaeresis Udiaeresis
keycode 47 = semicolon colon odiaeresis Odiaeresis
keycode 48 = apostrophe quotedbl adiaeresis Adiaeresis
keycode 26 = e E EuroSign EuroSign e E
keycode 30 = u U udiaeresis Udiaeresis u U
keycode 32 = o O odiaeresis Odiaeresis o O
keycode 38 = a A adiaeresis Adiaeresis a A
keycode 39 = s S ssharp ssharp s S