This problem (generally) doesn't arise if the slider in 'System Settings>Brightness and lock' is used.
This (generally) arises when the brightness control hotkeys are used because the acpi driver, intel driver and gnome power daemon (and possibly one more) all handle the hotkeys and pass them onto the next level -seems like stupid design really.
An easy fix is to let the intel driver do the job and disable the rest as follows.
- As root edit /etc/default/grub:
sudo nano /etc/default/grub
- Find the line containing GRUB_CMDLINE_LINUX_DEFAULT= and add the options acpi_backlight=vendor acpi_osi=Linux. For example, change
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" to
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor acpi_osi=Linux"
- Save file by pressing Ctrl-O and then enter. Press Ctrl-X to exit.
- Now, run
- Restart the computer. Now, brightness should increase in steps of one.
Note: If you do this you will loose the brightness slider and the OSD notification for brightness change (as they are handled by gnome). In my opinion, however, these are not important. You can undo these changes by again editing /etc/default/grub to what it was, then running
sudo update-grub and restarting.
Not so easy fix: Let gnome handle the brightness controls.
Refer to https://askubuntu.com/a/178003/111720. Stopping acpi driver from handling keys should work as it is given in that answer. But to take care of intel driver, you'll have to port the instructions for thinkpad_acpi module to intel (This may not even be possible).
Actually 256 (0-255) levels of brightness are available. To check that it works for you try
sudo setpci -s '00:02.0' F4.B=xx where xx is a hex number. digits are 0,1,...9,a,b,c,d,e,f. Example:
sudo setpci -s '00:02.0' F4.B=2b sets brightness to 2*16 + 11(b is eleven) = 43. 00 corresponds to absolute zero brightness (if you end up doing this, just use the hotkeys to regain brightness).
I find this really useful when working in the dark or reading a book (The least brightness you can set with the slider is actually pretty high, and the jumps in brightness level are also larger - as you've already figured out the slider is not continuous).
I've written a python script (remappable to shortcuts) which uses this to control brightness (increase and decrease, not just set) complete with OSD notification. If you're interested let me know (It may have to be edited to work in different hardware, I've not tested it in anything other my ACER ONE D270. So I may need some additional info).