Windows » Adjust Monitor

Windows » Adjust Monitor

adjust display brightness, monitor contrast

Pre svega, teoretski bi osvetljenje trebalo da može da se podesi bez ikakvog eksternog alata, samo kroz PowerShell. Očekivano, ispostavilo se da baš i ne može.

# List all monitors
Get-CimInstance -Namespace root/WMI -Class WmiMonitorID | select Active, InstanceName
# shorter
gcim WmiMonitorID -N root/WMI | select Active, InstanceName

# monitor details, the shortest ugly version
gcim WmiMonitorID -N root/WMI | select @{N="Man"; E={[Text.Encoding]::ASCII.GetString($_.ManufacturerName).Trim(0x00)}}, @{N="Name"; E={[Text.Encoding]::ASCII.GetString($_.UserFriendlyName).Trim(0x00)}}

# na primer, direktno pristupi serijskom broju drugog monitora
[Text.Encoding]::ASCII.GetString($(gcim WmiMonitorID -N root\wmi)[1].SerialNumberID -notmatch 0)

gcim is alias for Get-CimInstance

Postoji script koji ima spisak svih manufacturer codova: MaxAnderson95/Get-Monitor.ps1

Dakle, teoretski, možemo da promenimo brightness u ovakvoj skripti, ali kod mene je mogao samo za ugrađeni laptop monitor:

(gcim -N root/WMI -Class WmiMonitorBrightnessMethods).WmiSetBrightness(1, 40)

Vrednost brightness je ovaj broj 40 i you can replace it with another value, ali meni dakle ovo kod mene na eksternom monitoru nije radilo.

Bunch of utils

Stvarno sam iznenađen koliko mnogo toolova postoji za ovako jednostavan task. Izgleda da se cela grupacija toolova može nazvati “Screen brightness/temperature manager”

Nakon gledanja svega živog, odličio sam se samo za dve komande koje ću ručno pokretati i koje koriste izvrsni ControlMyMonitor od NirSoft-a.

# set brightness on 1st monitor to 15
ControlMyMonitor.exe /SetValue "\\.\DISPLAY1\Monitor0" 0x10 15

# set contrast on 1st monitor to 50
ControlMyMonitor.exe /SetValue "\\.\DISPLAY1\Monitor0" 0x12 50

Puting monitor to sleep and waking it up didn’t work for my monitor, and I’ve tried everything to turn off / on monitor from command line

Other Tools

Twinkle Tray na repo xanderfrangos/twinkle-tray je jedan od retkih koji se instalira sa scoop install twinkle-tray, izgleda stvarno lepo, ali je pisan u JavaScript odnosno Electron pa ne želim baš 80M da potrošim na ovako mali utility, posebno kada je ControlMyMonitor velik 70K

emoacht/Monitorian radi ali nije ništa posebno, and is not on scoop

Dimmer takođe nije on scoop ali ima one osnovne opcije

Free Monitor Manager izgleda odlično i osim gomile standardnih mogućnosti, omogućava podešavanje osvetljenja zavisno od toga u kojoj si aplikaciji.

J-u-n-o/MonitorControl je Python ali izgleda odlično, a osim brightness podržava i contrast.

Fushko/gammy je napušten cross-platform tool koji je specifičan po tome da na osnovu sadržaja na ekranu automatski podešava screen brightness i temperature. Autor radi na novoj i aktivno razvijanoj, ali linux-only verziji na repo Fushko/gummy

chrismah/ClickMonitorDDC7.2 is abandoned a nije bio loš, a ovo je samo arhivirana poslednja verzija koja i nije mnogo stara

Gamma Panel izgleda clean i proper

blackholeearth/Win10_BrightnessSlider baš izgleda kao deo Windowsa

Baš zaostali Desktop Lighter tool kao i amaterski ScreenBright

Adjust Color Temperature

jonls/redshift je jedan od prvih koji se bavio ovom temom, adjusts the color temperature of your screen according to your surroundings aka applies a redness effect to the graphical display.

maoserr/redshiftgui je GUI verijanta Redshift-a

Eye Saver je fokusiran da protects your eyes baš kao i poznati “f.lux” i oni se uglavnom bave plavim spektrom kompjuterskih ekrana.

f.lux je pametan u smislu da automatski podešava boju ekrana zavisno od položaja sunca na lokaciji.


Select Monitor Source

Dosta dobrih informacija o trenutnom cross-platform rešenjima je na DDC/CI Monitor Control · Garden · Chris Portela a specifično smao za macOS na tekstu The journey to controlling external monitors on M1 Macs

Inače, the most prominento toools is ddcutil (formerly ddctool) with repo at rockowitz/ddcutil: Control monitor settings using DDC/CI and USB i companion rockowitz/ddcui: Graphical user interface for ddcutil - control monitor settings je Linux app koja je portovana na sve platforme.

Iako na Homebrew sajtu postoji ddcutil, u pitanju je Linux jer se Brew može koristiti i na linuxu, i kao takav ovaj package se ne može instalirati na macOS.

Moja situacija je skoro bukvalno ista kao kod sledećeg autora ovog teksta how to change monitor input source from command line? | ravikiranj.net

Alati koji su najsličniji ddcutil ali na svim platformama:

Postoje i druge alternative ali se one više bave brightness a mnoge i nemaju selekciju source-a na monitoru:


Moje rešenje za izbor monitor source-a

Na kraju, za Windows je savršen ControlMyMonitor koji već koristim za Brightness pa ostavi tako a i ima ga u scoop, ali da nije tako verovatno prešao na ddcutil implementaciju winddcutil

Na macOS, ddcctl se nalazi na Homebrew pa radi brew install ddcctl, ali se ispostavilo da ne radi na Apple Silicon M1/M2 modelima. Zatim sam probao i sa BetterDisplay aplikacijom koja je besplatna ali nije radilo, možda zato što je Free verzija.

# for DisplayPort-1 is value 15, DisplayPort-2 is value 16
ddcctl -d 1 -i 15

Međutim, u poslednjem sam trenutku pronašao tiny tool waydabber/m1ddc: This little tool controls external displays (connected via USB-C/DisplayPort Alt Mode) using DDC/CI on M1 Macs. Useful to embed in various scripts. koji je napisao isti autor koji je pisao BetterDisplay i koji se takođe nalazi na brew

Tako da sam uradio sledeće:

brew install m1ddc

# get brightness
m1ddc display 1 get luminance

# set brightness
m1ddc display 1 set luminance 40

Ima i nekih scriptova što ljudi koriste: Scripts/macOS/displaySwitch.sh at master · tigattack/Scripts


Na Linux-u bi sve ovo izgledalo otprilike ovako:

# get current state of the monitor 
ddcutil -d 1 getvcp 60 --brief 

# change input source
ddcutil -d 1 setvcp 60 0x0f

Hammerspoon: dotfiles/etc/hammerspoon/ddcci.lua at master · prashnts/dotfiles

date 08. Mar 2023 | modified 10. Jun 2024
filename: Windows » Adjust Monitor