I'm a non-native Portuguese speaker and type in Portuguese a minority of the time, but probably at least a little bit on most days.

I've become very accustomed to using a Compose key, which doesn't have to be held down but acts as part of a sequence. For example, to type "informação" I would press

i n f o r m a Compose , c Compose ~ a o

where the ~ also involves pressing Shift.

This feels reasonably normal and natural to me, but maybe if I were typing in Portuguese more than I do, it would feel tedious. Have you tried using a Compose key? How do you think it compares with your system or with the system you were using before that?

I think ~, `, and ^ as dead keys could be a problem for people working a lot on a Unix command line, as they all have relatively common meanings to the shell (although the ` is deprecated and many people don't have a strong habit of using the ^). I guess it also depends a bit on what kinds of software environments you're working in and with, since different environments and interfaces have very different punctuation with special meanings.

I don't have a Compose key, and I really wish I did. I tried mapping my left Alt key to act as a Compose key, but I couldn't get it to work on Linux. As a workaround, I mapped a keycombo to pull up a rofi [1] menu with a list of common Unicode characters, and upon selection of a character it gets sent to my system clipboard, from where I can just paste it. In that regard, it's more like Character Map than like an actual Compose key, but it does work quite well for my needs.

When I'm on Windows, mapping a key to Compose is actually much easier to do, through the excellent WinCompose utility [2].

[1] https://github.com/davatorium/rofi

[2] http://wincompose.info/