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:
- kfix/ddcctl: DDC monitor controls (brightness) for Mac OSX command line takođe podržava selecting source a i lako se instalira sa Brew, ali ne radi na M1/M2
- scottaxcell/winddcutil: Windows implementation of the ddcutil Linux program for querying and changing monitor settings, such as brightness and color levels.
Postoje i druge alternative ali se one više bave brightness a mnoge i nemaju selekciju source-a na monitoru:
- ddccontrol/ddccontrol: DDC Control je odličan tool ali samo za Linux
- jontaylor/DDC-CI-Tools-for-OS-X: DDC/CI Tools for OS X, control your monitor through software je implementacija
ddcctrl
na macOS, ali je repo stvarno prastar
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