Q:

Is there a way to adjusts the brightness of the monitor?

Using the softbuttons is annoying over time. I mean the real brightness of the backlight (Not X11 gamma). Which protocols are cabable of this? (DVI, HDMI, DP, guess VGA is not)

A:

Actually, all of these interfaces are capable of backlight control (and more), as long as both, graphics card and the monitor support the Display Data Channel.
DDC is based on I²C, so you have to install and load appropriate kernel modules to make it work.
# Debian
sudo apt-get install i2c-tools
sudo modprobe i2c-dev

# RHEL
sudo dnf install i2c-tools

After that, you have to find out which I²C bus is connected to the monitor using sudo i2cdetect -l.
# Example output for Intel graphics card
i2c-0   i2c         i915 gmbus dpc                      I2C adapter
i2c-1   i2c         i915 gmbus dpb                      I2C adapter
i2c-2   i2c         i915 gmbus dpd                      I2C adapter
i2c-3   i2c         DPDDC-B                             I2C adapter
i2c-4   i2c         DPDDC-C                             I2C adapter

# Example output for AMD graphics card
i2c-0   i2c         Radeon i2c bit bus 0x90             I2C adapter
i2c-1   i2c         Radeon i2c bit bus 0x91             I2C adapter
i2c-2   i2c         Radeon i2c bit bus 0x92             I2C adapter
i2c-3   i2c         Radeon i2c bit bus 0x93             I2C adapter
i2c-4   i2c         Radeon i2c bit bus 0x94             I2C adapter
i2c-5   i2c         Radeon i2c bit bus 0x95             I2C adapter
i2c-6   i2c         card0-eDP-1                         I2C adapter
i2c-7   i2c         card0-VGA-1                         I2C adapter

In Intel case, the right bus is one of DPDDCs (Display Port DDC), depending which on port are you using. In my case both, HDMI and DP are displayed as DP.
In AMD case, the bus is called card0-interface-n.
If there are no interfaces listed, then your card/driver doesn't not support DDC in standard way.
Now we have to probe, whether monitor supports DDC and does it allow to set brightness this way. First, install ddccontrol:
# Debian
sudo apt-get install ddccontrol

# RHEL
sudo dnf install ddccontrol

Then, list get list of supported DDC parameters using it. This example assumes your DDC interface is bound to i2c-3 bus.
# sudo ddccontrol dev:/dev/i2c-3 
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.

Reading EDID and initializing DDC/CI at bus dev:/dev/i2c-3...
I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/DELA0A2.xml"
Document not parsed successfully.
I/O warning : failed to load external entity "/usr/share/ddccontrol-db/monitor/DELlcd.xml"
Document not parsed successfully.

EDID readings:
    Plug and Play ID: DELA0A2 [VESA standard monitor]
    Input type: Digital

= VESA standard monitor
> Color settings
    > Brightness and Contrast
        > id=brightness, name=Brightness, address=0x10, delay=-1ms, type=0
          supported, value=45, maximum=100
        > id=contrast, name=Contrast, address=0x12, delay=-1ms, type=0
          supported, value=75, maximum=100
--- [snip] ---

That's it, if everything goes right, brightness value should report exactly the same brightness as set in monitor. You might now set 50% brightness using this command (replace 0x10 with address of brightness value found above):
sudo ddccontrol dev:/dev/i2c-3 -r 0x10 -w 50

A:

Building on @M132's answer, ddccontrol appears unmaintained and hasn't added configurations for any new monitors since 2006.
Fortunately, there is a newer tool: ddcutil, that is much more robust and actively developed.  After installing one of the prebuilt packages or building from source, it can be used to query and set brightness (among myriad other settings):
# ddcutil capabilities | grep Brightness
Feature: 10 (Brightness)
# ddcutil getvcp 10
VCP code 0x10 (Brightness                    ): current value =    60, max value =   100
# ddcutil setvcp 10 70

A:

There's xbacklight – "adjust backlight brightness using RandR extension".
However, it fails with my HDMI monitor, so I fall back to using software modification:
xrandr --output HDMI2 --brightness 0.7

