Since Ubuntu 18.04, Bruno Pereira's answer doesn't seem to work anymore.
To disable any key, you will need to get its code:
xmodmap -pk | grep -i sleep
For me, the sleep button has the code 150
as you can see:
150 0x1008ff2f (XF86Sleep) 0x0000 (NoSymbol) 0x1008ff2f (XF86Sleep) 0x0000 (NoSymbol) 0x1008ff2f (XF86Sleep) 0x1008ff2f (XF86Sleep)
Once you have the key code, you mainly have two ways to automatically disable it.
Disable for some users
If you just need to disable it for one or many users, you can add this command to the Startup Applications, assuming the key code of your sleep button is 150
:
xmodmap -e 'keycode 150='
If the user logs off, the button will be enabled again. If you want to keep it disabled, try the other method instead.
Disable for every users
The button will be disabled after each booting. You will need the administrator privileges for this. Edit this file:
sudo gedit /usr/share/X11/xkb/keycodes/evdev
The line we will have to edit looks like <SOMETHING> = <your_keycode>
. Once you found it, add //
at the beginning to comment it. In my case, I had to change this:
<I150> = 150; // #define KEY_SLEEP 142
Into this:
// <I150> = 150; // #define KEY_SLEEP 142
Note: With both methods, the button will still be enabled for few seconds when booting or logging in.
Sources: