LCD parlaklığını komut satırından (veya komut dosyasıyla) nasıl değiştirebilirim?


162

# 1005495 ​​numaralı hataya geçici bir çözüm bulmak için (kısayol tuşlarıyla LCD parlaklığını değiştirmek imkansız), artan ve bir LCD ekranımın parlaklığını azaltan bir komut satırı sorgusu olsun istiyorum. Daha sonra bu sorguların her birine bir kısayol tuşu eşleyebilirim.

Sorun şudur: Komut satırında LCD parlaklığını nasıl artıracağımı ve azaltacağımı bilmiyorum. Yapıyor musun?



2
Teşekkürler, Lekensteyn, ama lsmod | grep ^ i915 çıktı vermedi (kabul edilen çözüme bakın). Hala bir çözüm arıyorum.
user69748

Yanıtlar:


157

Bunu yapmamızın bir yolu da, xbacklight adlı yeni bir programla, terminalinizi açın ve şunu yazın.

sudo apt-get install xbacklight

sonra şunu yaz xbacklight -set 50

Orada 50 parlaklık aralığı için 0'dan 100'e kadar alabiliriz.

parlaklığı mevcut değerden belirtilen seviyeye yükseltebilir ve azaltabilirsiniz. Belirtdiğiniz gibi, mevcut parlaklık değerinden% 10'a yükseltmek isterseniz,

xbacklight -inc 10

ve bunu% 10 azaltmak için

xbacklight -dec 10 

Uyarı : xbacklightYalnızca Intel ile çalışır, düzgün Radeon'da değil ve mod ayarlama sürücüsü ( kaynak ) ile de olmaz.


Gerçekten basit bir komut gibi gözüküyor ama ihtiyacım olan şey parlaklığı yüzde 10 arttırmak için xbacklight -10'u arttırmak gibi bir şey. Bu da mümkün mü?
user69748

1
Evet yapabilirsin. Bundan zaten bahsetmiştim. böylece xbacklight -inc 10
rɑːdʒɑ ile

1
Tamam, şimdi cevabında. Çok teşekkürler, bunu deneyeceğim.
user69748

34
Bu gerçekten basit görünüyor, ama ne yazık ki benim için işe yaramaz. Parlaklık sadece -dec ile değil -set ile değişmez. Sanırım yakın zamanda hatanın düzeleceğini ummak zorunda kalacağım. Yine de teşekkürler.
user69748 4:12

1
Ayrıca, kullanabileceğiniz bir kestirme var: xbacklight +10; xbacklight -10; xbacklight =50;
Fordi

149

Terminalini aç ve şunu yaz

xrandr -q | grep " connected"

size çıktı olarak verir

LVDS1 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 331mm x 207mm

Orada LVDS1 Ekranınız için duruyor. Yani şimdi yapmalısın.

xrandr --output LVDS1 --brightness 0.5

orada 0.5 parlaklık seviyesi ve 0.0 ile 1.0 arasında değişmektedir. 0.0 -> Tam siyah. Böylece istenen parlaklık değerini seçmeniz gerekir.

Bu , donanım düzeyinde parlaklığı değiştirmez . Gönderen randrkılavuzda :

--brightness brightnessÇıkışa bağlı crtc üzerindeki gama değerlerini belirtilen değişken değere çarpın . Aşırı parlak veya aşırı loş çıkışlar için kullanışlıdır. Ancak, bu yalnızca bir yazılım değişikliğidir , donanımınız gerçekten parlaklığı değiştirme desteğine sahipse, muhtemelen xbacklight kullanmayı tercih edersiniz.


2
Yanıtınız için teşekkürler, ama ihtiyacım olan şey xrandr gibi bir şey - parlaklığı yüzde 10 artırmak için 10'u arttır. Bu da mümkün mü?
user69748

48
bu, parlaklığı donanım düzeyinde değiştirmiyor gibi görünüyor
erjoalgo

12
Ne yazık ki bu cevap çok oy aldı. Dizüstü bilgisayar ekranım karanlığı "öykünüyor" diyerek şeylerin daha koyu görünmesini sağlayarak (tıpkı bir gece sahnesi olan bir videoyu oynatırken, ekranın hafifliği ile değil, arka plan ışığını maskeleyen piksellerle ilgisi yoktur). Hafiflik tamamen aynıdır, çünkü piksellerin şimdi olduğundan daha koyu olduğundan öncekinden daha fazla pil harcar.
Mephisto

2
Thanx benim günümü ve gözlerimi de kurtardı .. :)
Shylendra Madda

7
Parlaklığı taklit ediyor. Parlaklık değişmez, yazılım tarafından sağlanır.
user1970939

109

Aşağıdaki benim için çalışıyor:

echo 400 | sudo tee /sys/class/backlight/intel_backlight/brightness

Sanırım mümkün olan maksimum değer /sys/class/backlight/intel_backlight/max_brightnessdosyada.

intel_backlightTüm arka ışıklara uygulamak için bir yıldızla değiştirin .


16
Bunu deneyin @Ray: echo 400 | sudo tee /sys/class/backlight/intel_backlight/brightness.
Mygod

10
@Ray sudo echo 400 > /sys/class . .. ./brightnessyeniden yönlendirme yaptığınızda echo ile değil kabuk ile yapılır. Ve kabuk hala normal kullanıcı olarak çalışır, sudo olarak değil Bu yüzden reddedildi izin veriyor. Kök izinleriyle dosyaya yazacak bir yardımcı program gerekir, bu yüzden teeişe yarıyor.
Sergiy Kolodyazhnyy

4
echo 400 | sudo tee /sys/class/backlight/radeon_bl0/brightnessradeon APU'lar ve kartlar için
Suici Doga

13
Bu gülünç derecede düşük seviyeli, ancak aslında güvenilir bir şekilde çalışan tek şey gibi görünüyor. Bu biraz daha az eğer çirkin alır böylece, dosya artık parlaklığını ayarlamak için gerekli değildir. sudo chmod 0646brightnesssudo
leftaroundabout

7
Bunun su izinlerine göre ayarlanması sebebi, bir virüsün ekranınızı karartması ve inanılmaz hızda parlaklaşması ve donanım ekranınıza zarar vermesidir. 90'larda, ekranı yenileyecek kadar hızlı bir şekilde Hertz'i yenileyecek şekilde ayarlayacak bir virüsle karşılaştım. Bu yüzden bu konudaki izinleri değiştirirken dikkatli olun.
RyanNerd

12

Dizüstü bilgisayarlar için

sudo setpci -s 00:02.0 F4.B=80

Change 80tarafından [0-FF]düşük-en yüksek parlaklık elde etmek. Belirtilen değer hex cinsindendir, bu nedenle 80size 50%maksimum parlaklık verir.

Masaüstlerinin gama düzeltmesi yapması (benim tarafımdan test edilmemiş),

xgamma -gamma .75

Cevabınız için teşekkürler ama ihtiyacım olan şey setpci gibi bir şey - parlaklığı yüzde 10 arttırmak için 10 değerini arttırın. Bu da mümkün mü?
user69748

Bu cevap için teşekkür ederim, düşük seviyelerde işlerin nasıl yapıldığını bilmek güzel
erjoalgo

1
Bu benim için Samsung NB30 Plus'ta çalışan tek cevaptı.
OSE

Bunun işe yarayacağını göremiyorum .. Belki bazı parametreleri değiştirmeli miyim, ve eğer öyleyse uygun değerleri nasıl bulabilirim?
Rasmus

Teşekkürler dizüstü bilgisayardayım, setpciişe yaramadı ama xgammayaptım.
Philip Kirkbride

4

Bunu terminalde deneyin:

xrandr --output LVDS1 --brightness 0.9

Son değeri istediğiniz gibi değiştirebilirsiniz, örn. 0.2


1
1) Çıktı her zaman LVDS1 değildir, ancak kullanıcı xrandr --verbose ile öğrenebilir 2) Arka ışık yoğunluğunu değiştirmez
erjoalgo 18:13

4

Bu betiği yap:

set-brightness.sh

#!/bin/bash
TARGET="acpi_video0"
cd /sys/class/backlight
MAX="$(cat "${TARGET}/max_brightness")"
# The `/1` at the end forced bc to cast the result 
# to an integer, even if $1 is a float (which it 
# should be)
LOGIC="$(echo "($1 * ${MAX})/1" | bc)"
for i in */; do
    if [[ "${TARGET}/" != "$i" && -e "${i}brightness" ]]; then
        cat "${i}max_brightness" > "${i}brightness"
    fi
done
echo "$LOGIC" > "${TARGET}/brightness"

0 ile 1 arasında bir değere sahip bir kök olarak çalıştırın.

sudo ./set-brightness.sh 0.5
  • Sisteminizde bir yoksa /sys/class/backlight/acpi_video0, cihaza özgü olabilecek en az bir dizin bulunmalıdır ( radeon_bl0örneğin, aynı zamanda ).
  • Başkalarına sahipseniz, değer yığınını göz önünde bulundurun (bu nedenle döngü; diğer tüm değerleri 1.0'a itin, ardından hedefi bir taneye istediğiniz miktara getirin).
  • Her zaman çalışması gerekirken acpi_video0 , her zaman mevcut tüm fiziksel parlaklık yelpazesine sahip değildir. Her birini deneyin ve "HEDEF" olarak en geniş gamı ​​olan birini kullanın

2
Kodda /sys/class/backlight/*/brightnesskodlamaya çalışmak yerine kullanmayı düşünün acpi_video0. Dosya yolunun genelleştirilmesine olanak tanıyacaktır, ki bu farklı olabilir - i intel_backlightdeğil acpi_video0. Buradaki senaryomda
Sergiy Kolodyazhnyy

4

Gnome ile DBus kullanma

Klavye kontrolü için parlaklıktaki adımlar da bu yöntemle uygulanabilir.

# Step up:
gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepUp

# Step down:
gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepDown

notlar


+1, bunun dahili LCD ekranda mükemmel çalıştığını onaylar. xrandrGama ve parlaklık senaryolarıyla zaten kontrol edilen harici monitörleri etkilemez .
WinEunuuchs2Unix,

3

@Palacsint'in dediği gibi echo 244 > /sys/class/backlight/intel_backlight/brightnessyol benim için çalışıyor.

Fakat max ve min değerleri sırasıyla /sys/class/backlight/intel_backlight/max_brightnessve /sys/class/backlight/intel_backlight/bl_powerdosyalarda tekrar bulunur.

Ayrıca, bilgisayarınızın şu anda çalıştığı gerçek parlaklık /sys/class/backlight/intel_backlight/actual_brightness


3

KDE 4.12:

qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightness 55

KDE Plazma Sürümü: 5.14.3:

Yukarıdaki kod hala geçerlidir. Yalnızca KDE kullanıcısıysanız işe yarar. Bununla birlikte, bu durumda herhangi bir ek yazılım gerektirmez. "Batarya ve parlaklık" gerecini kullanırken olduğu gibi aynı davranışa sahip olacaktır. AFAIK, aksine olmayan fiziksel aydınlatmayı da değiştiriyor xrandr.

Yukarıdaki 55'in 100'ün bir kesri olmadığına dikkat edin, ikincisi maksimum parlaklıktır. Bunun yerine max_brightness ile ilgilidir:

qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl brightnessMax

Ayrıca bir komut dosyasında tercih edebileceğiniz bir "sessiz" sürümü de vardır:

qdbus org.kde.Solid.PowerManagement /org/kde/Solid/PowerManagement/Actions/BrightnessControl setBrightnessSilent 2000

Referanslar: qdbus , sağlam , parlaklık


Ne yapacağını açıklayabilir misin?
rʒɑdʒɑ

2

İşte gözlerinizi gevşetmenize yardımcı olacak kısa bir çizgi. Sadece çizgi ile bir crontaab oluşturun ya da bir komut dosyası yapın.

xrandr --output VGA1 --brightness 0.5; sleep 20; xrandr --output VGA1 --brightness 1

2

Yukarıdaki cevapları kullanarak, ekranın parlaklığını değiştirmek için (dizüstü bilgisayar klavyesinin dökülmüş bir çay sorununa maruz kaldığı ve kullanılamaz hale geldiği için) bu betiği (ev dizinime brightness.sh adıyla kaydedildi) kullanarak oluşturdum. Kullanmaktan çekinmeyin (belirlenmiş dosyalara sahipseniz ... aksi takdirde bunların varyasyonunu işaret etmek gerekir).

#!/bin/bash
function main_menu
{
    sudo clear
    cursetting=$(cat /sys/class/backlight/intel_backlight/brightness)
    maxsetting=$(cat /sys/class/backlight/intel_backlight/max_brightness)
    powersave=$((maxsetting/5))
    conservative=$((powersave*2))
    medium=$((powersave*3))
    performance=$((powersave*4))
    echo ""
    echo "----------------------- Brightness -----------------------"
    echo " 1. Set Display to Minimum (Powersave) brightness setting."
    echo " 2. Set Display to Low (Conservative) brightness setting."
    echo " 3. Set Display to Medium brightness setting."
    echo " 4. Set Display to High (Performance) brightness setting."
    echo " 5. Set Display to Maximum brightness setting."
    echo " 6. Exit."
    echo "----------------------------------------------------------"
    if [ $cursetting -eq $powersave ]; then
     cursetting='Minimum'
    else
     if [ $cursetting -eq $conservative ]; then
      cursetting='Conservative'
     else
      if [ $cursetting -eq $medium ]; then
       cursetting='Medium'
      else
       if [ $cursetting -eq $performance ]; then
        cursetting='Performance'
       else
        if [ $cursetting -eq $maxsetting ]; then
         cursetting='Maximum'
        fi
       fi
      fi
     fi
    fi
    echo "        Current Display Setting - "$cursetting;
    choice=7
    echo ""
    echo -e "Please enter your choice: \c"
}

function press_enter
{
    echo ""
    echo -n "Press Enter to continue."
    read
    main_menu
}

main_menu
while [ $choice -eq 7 ]; do
read choice

if [ $choice -eq 1 ]; then
 echo $powersave | sudo tee /sys/class/backlight/intel_backlight/brightness
 main_menu
else
 if [ $choice -eq 2 ]; then
  echo $conservative | sudo tee /sys/class/backlight/intel_backlight/brightness
  main_menu
 else
  if [ $choice -eq 3 ]; then
   echo $medium | sudo tee /sys/class/backlight/intel_backlight/brightness
   main_menu
  else
   if [ $choice -eq 4 ]; then
    echo $performance | sudo tee /sys/class/backlight/intel_backlight/brightness
    main_menu
   else
    if [ $choice -eq 5 ]; then
     echo $maxsetting | sudo tee /sys/class/backlight/intel_backlight/brightness
     main_menu
    else
     if [ $choice -eq 6 ]; then
      exit;
     else
      echo -e "Please enter the NUMBER of your choice: \c"
      choice = 7
     fi
    fi
   fi
  fi
 fi
fi
done

İsterseniz, elifhatta daha iyi koşulların çoğunu yuvalamaktan daha iyisini yapabilirsiniz case. Ayrıca google.github.io/styleguide/shell.xml gibi bir stil kılavuzu okumanızı ve daha iyi bir kod oluşturmanıza yardımcı olduğu için shellcheck benzeri bir linter denemenizi öneririm. Keşke yıllar önce senaryo yazmaya başladığımda birisinin bana söylemesi dileğiyle. :)
LiveWireBT

1

ddccontrol , harici monitörler için arka aydınlatmayı kontrol etmek için başka bir seçenektir. Burada harici monitörümün arka ışığını gücünün% 50'sine ayarlayabilirim:

ddccontrol -p -r 0x10 -w 50

Redshift'in parlaklık değişikliklerini işleme şeklini geliştirmek için bu problemin olası çözümlerine baktım . Orada, Linux çekirdeğinin aygıtlar arasında uyumluluğu iyileştirmesi için bir yama seti olduğunu gördüm , böylece dizüstü bilgisayarlar ve harici ekranlar benzer şekilde çalışabilirdi sysfs.

Bu arada, burada benim için çalışan tek şey ddccontrol. Her zamanki gibi, Arch wiki'nin konuyla ilgili genel belgeleri de vardır.


0

Etkileşimli ncurses benzeri UI kullanımı xbacklight

Zavallı bir adamın hemşireleri. Vuruş hve% 10 düşer, vurur lve% 10 artar. Ardından mevcut parlaklığı gösterin.

xback() (
  done=false;
  echo "less: h, more: l, quit: q"
  while ! $done; do
    read -rsn1 key
    if [ "$key" = h ]; then
      xbacklight -dec 10
    elif [ "$key" = l ]; then
      xbacklight -inc 10
    elif [ "$key" = q ]; then
      done=true
    fi
    printf "\r$(xbacklight -get) "
  done
)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.