I just installed Puddle which automatically goes to full-screen when you start it. As soon as it starts, the keyboard shortcuts for increasing/decreasing the volume (Fn+F5 and Fn+F6) stop working. (I seem to remember the same thing happening for other games.) Is there a way to make those keys continue to work while the game is running?
There is no easy way I know of to do that, as the underlying problem is that fullscreen handling in Linux is fundamentally broken. Essentially the app, or in most cases SDL, grabs your keyboard exclusively and lets no one else use it.
However there are a few ugly workarounds:
sdl-hack tool in that repository allows you to force SDL applications into window mode via a LD_PRELOAD hack in case they don't have a switch for that themselves.
windowtool.py on the other side lets you manipulate a window and force it into a non-keyboard grabbing fullscreen window by removing window decorations, set the window to
keep-above and position the window. Common use would look something like:
sleep 1 && windowtool.py -a 1 -d 0 -m 0,0 ACTIVE
You however still have to manually use
xrandr to change the resolution. So this isn't exactly an easy to use or easy to automate solution. But it does give you the results you want, at least for SDL apps.
PS: Documentation in that repository is quite out of date, sorry for that.
I actually came across a very simple solution: Just press shift-tab, which opens the in-game Steam overlay. From there, you can adjust the volume and then press shift-tab again to return to the game. Of course, this only works with Steam games, but you might be able to add non-Steam games to your library to achieve the same effect.