This makes it much easier to set your screen’s brightness to a comfortable level at each time of the day, and to save energy.

(For Windows, see the very bottom of this post.)

On Linux, if you currently have no keyboard shortcuts for that available, a good way to create them is via ddcutil. Once you have ddcutil installed, have your displays’ properties printed in the command line by typing ddcutil detect.

This should show you a list of parameters for each of the displays you have connected. For a display of your choice, try these commands:

ddcutil -n <Serial number> setvcp 10 - 5 # reduces brightness by 5 %
ddcutil -n <Serial number> setvcp 10 + 5 # increases brightness by 5 %

ddcutil -n <Serial number> setvcp 12 - 10 # reduces contrast by 10 %
ddcutil -n <Serial number> setvcp 12 + 10 # increases contrast by 10 %

ddcutil -n <Serial number> setvcp 10 0 # sets brightness to minimum
ddcutil -n <Serial number> setvcp 10 100 # sets brightness to maximum

If these commands all work, you can create in your desktop environment’s settings (e.g. KDE) custom keyboard shortcuts that execute these commands. Personally, with my two displays and with dedicated “Brightness up” and “Brightness down” keys (macros) on my keyboard, I am using combinations with the modifiers Alt to address the secondary instead of the primary display, Shift, to adjust contrast instead of brightness, and Control to set an absolute value (0% or 100%) instead of going by increments.


Further notes:

Instead of addressing your displays via their serial number, you can also address your display via most other parameters shown in ddcutil detect by using another option than -n, e.g. via bus number or manufacturer name, but I’ve found that bus number is not persistent over the years, and manufacturer name (“Mfg id”) may contain spaces which may lead to problems.

A full list of all other possible vcp commands (the numbers after setvcp) can be obtained through ddcutil vcpinfo.

If you’re using a laptop, brightness adjustments for its internal screen are of course almost always a no-brainer.


On Windows 10 and perhaps 11 as well, you can apparently do the following:

Step 1: Press the Win + A to open the Action Center.

Step 2: Press Shift + Tab to select the brightness slider.

Step 3: Use the left and right arrow keys to adjust the screen brightness.

  • milk@discuss.tchncs.de
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    11 hours ago

    It is also possible to make the monitor brightness show up as a normal system setting by using a kernel module. The other thing I read when I did this is that monitor flash memory that stores the settings, like brightness, is often particularly bad, having only 1000s of cycles. If you do use this, just keep that in mind

    Edit: i checked again and 1000s of cycles is low. 100s of 1000s is more reasonable, but could still be reached fairly easily within the monitors lifespan if frequently adjusting

    • Novocirab@feddit.orgOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      11 hours ago

      I’m curious about both things you mention. Do you have the name of the kernel module at hand? And can you point me to a source on the monitor flash memory (as I couldn’t find anything on that)?

      • milk@discuss.tchncs.de
        link
        fedilink
        arrow-up
        1
        ·
        2 hours ago

        The kernel module is ddcci-driver-linux

        This is the Reddit post I read. It links to a Hacker News forum post as well that discusses it. Really it shouldn’t be much of a problem unless you’re using dynamic brightness that is overzealous

  • Björn Tantau@swg-empire.de
    link
    fedilink
    arrow-up
    2
    ·
    12 hours ago

    I cranked my laptop display’s gamma up to 11 using an icc profile because it wasn’t bright enough for me. Or rather all the shitty content is too dark to see anything.

  • 𞋴𝛂𝛋𝛆@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    13 hours ago

    How does one find an unknown register in hardware for a similar but undocumented setting? My laptop has an undocumented microcontroller for the RGB keyboard. I can change it through the extra function keys but only to a 3 level preset and not the real fine tuned control. I can dual boot and change the setting with their app and it is persistent. If I could discover all registers their app uses I would totally ditch w11 and free up a good bit of space. I figure it is just a block of memory somewhere, (thinking like Arduino stuff), but I am clueless about how to find that at OS level complexity… If anyone here casually knows at a conversational social level here, like don’t go looking it up for me or whatnot

    • Novocirab@feddit.orgOP
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      13 hours ago

      I know nothing about this, but can OpenRGB (Linux tool) talk to your device in any way?

      • 𞋴𝛂𝛋𝛆@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        12 hours ago

        Not as of a year or so back. I’m not sure how it works but there are several settings available in the manufacturer’s app that are not in Linux. Only the hotkey settings from the fn+ function keys work. Dmesg spits out a block of unrecognized memory that is something like 8 or 16 bits long that is the likely culprit. There is some odd microcontroller on a serial bus that is unrecognized too IIRC but that I have never seen before like any of the thousands found on LCSC. Last time I checked linux-hardware.org, it looked like no one had solved this one on any of the scans. I’m not motivated to chase it down myself. Poking some registers or watching for the changed location after using the built in hotkey would be peripherally interesting as a general thing to know.

        • Novocirab@feddit.orgOP
          link
          fedilink
          arrow-up
          2
          ·
          12 hours ago

          I feel you basically. I have given up trying to control the RGB on my RAM (even though it’s probably decently documented somewhere).