Ok, got it figured out.
The problem appears to be specific to some laptops (such as HP Pavillion dv6-6051er in my case) which use other keycodes for the Print button than the standard 107 which on desktops is both Print and Sys_Req.
Start by xmodmap -pk | grep Print
.
In my case, it returned:
107 0xff61 (Print) 0xff15 (Sys_Req) 0xff61 (Print) 0xff15 (Sys_Req)
218 0xff61 (Print) 0x0000 (NoSymbol) 0xff61 (Print)
So my Print button was 218 (yours can be different).
What's needed now is to assign Sys_Req to 107 so that Print is only linked with 218.
Execute xmodmap -e "keycode 107 = Sys_Req"
.
Try to make a screenshot with Print. If fails, go System Settings -> Keyboard -> Shortcuts -> Screenshots and re-assign the Print button to screenshots. Must be ok now.
To save the custom keyboard mapping, in the same session export current settings to an .Xmodmap config file, for example (saves in your home directory):
xmodmap -pke > ~/.Xmodmap
(Or you can just create an .Xmodmap file and only write the required tweak there, for example: keycode 107 = Sys_Req
)
A brief xmodmap manual is here: https://wiki.archlinux.org/index.php/xmodmap
The last step. Launch Startup Applications in Dash and add the following command to auto-execute xmodmap on login:
xmodmap /home/YOURUSERNAMEHERE/.Xmodmap
(Make sure you write the full path; you can alternatively auto execute smth like xmodmap -e "keycode 107 = Sys_Req"
, too)
Over.
PS. using xmodmap in Unity is a bit of a hack as its native keyboard layout manager is xbk but it appears more difficult to tweak and documentation is lacking.