कमांड लाइन (या स्क्रिप्ट के माध्यम से) से एलसीडी ब्राइटनेस कैसे बदलें?


162

हल करने के लिए बग # 1005495 (असंभव हॉटकी के माध्यम से एलसीडी चमक बदलना), मैं अपने एलसीडी की चमक को कम करने के लिए बढ़ाने के लिए एक कमांड लाइन क्वेरी और एक है करना चाहते हैं। मैं तब इस प्रश्न के हर एक को एक हॉटकी मैप कर सकता था।

समस्या यह है: मैं नहीं जानता कि कमांड लाइन पर एलसीडी ब्राइटनेस को कैसे बढ़ाया और घटाया जाए। क्या आप?



2
धन्यवाद, Lekensteyn, लेकिन यह एक नकल नहीं है lsmod | grep ^ i915 मुझे कोई आउटपुट नहीं देता (देखें स्वीकृत समाधान)। फिर भी समाधान ढूंढ रहे हैं।
user69748

जवाबों:


157

एक और तरीका यह है कि हम एक और नए प्रोग्राम को नाम दें जिसे xbacklight नाम दिया गया है, अपना टर्मिनल खोलें और इसे टाइप करें

sudo apt-get install xbacklight

फिर इसे टाइप करें xbacklight -set 50

वहाँ चमक रेंज के लिए 50 खड़ा है हम इसे 0 से 100 तक प्राप्त कर सकते हैं।

आप वर्तमान मूल्य से चमक को बढ़ा सकते हैं और घटा सकते हैं।

xbacklight -inc 10

और 10% कम करने के लिए आप यह दे सकते हैं

xbacklight -dec 10 

चेतावनी : xbacklightकेवल Intel के साथ काम करता है, Radeon पर ठीक से नहीं और मोडसेटिंग ड्राइवर ( स्रोत ) के साथ बिल्कुल नहीं ।


वास्तव में एक साधारण कमांड की तरह दिखता है, लेकिन मुझे जो चाहिए होगा वह है xbacklight -inc 10 जैसी चमक को 10 प्रतिशत तक बढ़ाना। क्या यह भी संभव है?
user69748

1
हाँ तुम कर सकते हो। मैंने पहले ही उल्लेख किया है। ताकि आप xbacklight -inc 10
rʒɑd

1
ठीक है, अब यह आपके जवाब में है। बहुत बहुत धन्यवाद, मैं कोशिश करूँगा कि बाहर।
user69748

34
यह वास्तव में सरल दिखता है, लेकिन दुर्भाग्यपूर्ण है कि यह मेरे लिए काम नहीं करता है। चमक बस नहीं बदलती, -dec के साथ नहीं और -सेट के साथ नहीं। मुझे लगता है कि मुझे आशा है कि बग जल्द ही किसी भी समय तय हो जाएगा। फिर भी धन्यवाद।
user69748

1
इसके अतिरिक्त, एक शॉर्टहैंड है जिसका आप उपयोग कर सकते हैं: xbacklight +10; xbacklight -10; xbacklight =50;
Fordi

149

अपना टर्मिनल खोलें और इसे टाइप करें

xrandr -q | grep " connected"

यह आपको आउटपुट देता है

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

आपके प्रदर्शन के लिए LVDS1 खड़ा है। तो अब आपको करना है

xrandr --output LVDS1 --brightness 0.5

वहाँ 0.5 चमक स्तर के लिए खड़ा है और यह 0.0 से 1.0 तक है। 0.0 -> पूर्ण काला .so आपको चमक का आवश्यक मूल्य चुनना होगा।

यह हार्डवेयर स्तर पर चमक नहीं बदलता है । से randrमैनुअल :

--brightness brightnessवर्तमान में निर्दिष्ट फ्लोटिंग मान पर आउटपुट से जुड़ी crtc पर गामा मान को गुणा करें । पीढ़ी उज्ज्वल या पीढ़ी मंद आउटपुट के लिए उपयोगी है। हालाँकि, यह एक सॉफ्टवेयर केवल संशोधन है , यदि आपके हार्डवेयर में वास्तव में चमक को बदलने के लिए समर्थन है, तो आप शायद xbacklight का उपयोग करना पसंद करेंगे।


2
आपके उत्तर के लिए धन्यवाद, लेकिन मुझे क्या चाहिए xrandr - 10 की तरह कुछ 10 प्रतिशत चमक बढ़ाने के लिए। क्या यह भी संभव है?
user69748

48
यह एक हार्डवेयर स्तर पर चमक को बदलने के लिए प्रतीत नहीं होता है
erjoalgo

12
बहुत बुरे इस जवाब को इतने वोट मिले। मेरा लैपटॉप स्क्रीन "डार्क" का अनुकरण करता है, ताकि कहने के लिए चीजें गहरा दिखाई दें (जैसे कि जब आप एक रात के दृश्य के साथ एक वीडियो खेलते हैं, जिसका स्क्रीन लपट के साथ कुछ नहीं करना है, बल्कि पिक्सेल के साथ पृष्ठभूमि पर प्रकाश डालना है)। लपट बिल्कुल वैसी ही है, जैसे पिक्सल की वजह से पहले की तुलना में अधिक बैटरी बर्बाद कर रहे हैं।
मेफिस्तो


7
इससे चमक बढ़ती है। चमक नहीं बदलती है, यह सॉफ्टवेयर द्वारा प्रदान किया जाता है।
user1970939

109

निम्नलिखित मेरे लिए काम करता है:

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

मुझे लगता है कि /sys/class/backlight/intel_backlight/max_brightnessफ़ाइल में अधिकतम संभव मूल्य है ।

intel_backlightसभी बैकलाइट्स पर लागू करने के लिए एक तारांकन के साथ बदलें ।


16
@ इस कोशिश करो echo 400 | sudo tee /sys/class/backlight/intel_backlight/brightness:।
मायगॉड

10
@ जब आप sudo echo 400 > /sys/class . .. ./brightnessपुनर्निर्देशन करते हैं तो शेल द्वारा किया जाता है, इको द्वारा नहीं। और शेल अभी भी आपके नियमित उपयोगकर्ता के रूप में चलता है, सूडो के रूप में नहीं। इसलिए यह अनुमति देने से इनकार करता है। आपके पास एक उपयोगिता होनी चाहिए जो रूट अनुमतियों के साथ फाइल करने के लिए लिखेंगे, यही कारण है कि teeकाम करता है।
सर्गी कोलोडियाज़नी

4
echo 400 | sudo tee /sys/class/backlight/radeon_bl0/brightnessRadeon APUs और कार्ड के लिए
Suici Doga

13
यह हास्यास्पद रूप से निम्न-स्तर है, लेकिन वास्तव में केवल वही चीज़ लगती है जो मज़बूती से काम करती है। यह थोड़ा कम बदसूरत यदि आप हो जाता है फ़ाइल, इसलिए अब और चमक स्थापित करने के लिए आवश्यक नहीं है। sudo chmod 0646brightnesssudo
लेफ्टरनैबाउट

7
इसका कारण यह है कि यह su अनुमतियों पर सेट किया गया है, यह है कि एक वायरस आपकी स्क्रीन को मंद बना सकता है और अविश्वसनीय गति से उज्ज्वल हो सकता है और अंततः आपके हार्डवेयर डिस्प्ले को नुकसान पहुंचा सकता है। 90 के दशक में मुझे एक ऐसे वायरस का सामना करना पड़ा जो स्क्रीन रिफ्रेश हर्ट्ज को इतनी तेजी से एडजस्ट करेगा कि आपका मॉनिटर फ्राई हो जाएगा। इसलिए इस पर अनुमतियों को ध्यान से देखें।
रयाननार्द

12

लैपटॉप के लिए,

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

बदले 80द्वारा [0-FF]सबसे कम उच्चतम चमक पाने के लिए। निर्दिष्ट मूल्य हेक्स में है, इसलिए 80आपको 50%अधिकतम चमक प्रदान करेगा ।

डेस्कटॉप के लिए एक गामा सुधार करने के लिए (मेरे द्वारा परीक्षण नहीं किया गया),

xgamma -gamma .75

आपके उत्तर के लिए धन्यवाद, लेकिन मुझे जो चाहिए वह होगा सेटपिसी - 10 की चमक को 10 प्रतिशत बढ़ाने के लिए। क्या यह भी संभव है?
user69748

इस उत्तर के लिए धन्यवाद, यह जानना अच्छा है कि निचले स्तरों पर कैसे काम किया जाता है
एरोज़लगो

1
यह एकमात्र उत्तर था जिसने मेरे लिए सैमसंग एनबी 30 प्लस पर काम किया।
ओएसई

मुझे यह काम करने के लिए प्रतीत नहीं हो सकता है .. क्या मुझे कुछ मापदंडों को बदलना चाहिए, शायद, और यदि हां, तो मुझे उचित मूल्य कैसे मिलेंगे?
रासमस

धन्यवाद मैं लैपटॉप पर हूं, setpciकाम नहीं किया लेकिन xgammaकिया।
फिलिप किर्कब्राइड

4

इसे टर्मिनल में आज़माएँ:

xrandr --output LVDS1 --brightness 0.9

आप जैसे चाहें आखिरी मान बदल सकते हैं। 0.2


1
1) आउटपुट हमेशा LVDS1 नहीं है, लेकिन उपयोगकर्ता xrandr --verbose 2) बैकलाइट तीव्रता में परिवर्तन नहीं करता है के साथ पता कर सकते हैं
erjoalgo

4

यह स्क्रिप्ट बनाएं:

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 और 1 के बीच किसी भी मान के साथ, रूट के रूप में चलाएं।

sudo ./set-brightness.sh 0.5
  • यदि आपके सिस्टम /sys/class/backlight/acpi_video0में ए नहीं है radeon_bl0, तो वहां कम से कम एक निर्देशिका होनी चाहिए, जो उपकरण-विशिष्ट हो सकती है ( उदाहरण के लिए, मेरे पास एक भी है )।
  • यदि आपके पास अन्य हैं, तो उनके मूल्यों को ध्यान में रखें (इसलिए लूप, अन्य सभी मानों को 1.0 तक धकेलना , फिर लक्ष्य को वांछित राशि पर सेट करना)।
  • जबकि हमेशा काम acpi_video0 करना चाहिए , इसमें हमेशा भौतिक चमक की पूरी श्रृंखला उपलब्ध नहीं होती है। हर एक को आज़माएं, और सबसे बड़े सरगम ​​के साथ अपने "लक्ष्य" का उपयोग करें

2
स्क्रिप्ट में /sys/class/backlight/*/brightnessहार्ड-कोड की कोशिश करने के बजाय उपयोग करने पर विचार करें acpi_video0। यह फ़ाइल को पथ को सामान्य करने की अनुमति देगा, जो अलग हो सकता है - उदाहरण के लिए मेरे पास है intel_backlight, नहीं acpi_video0यहाँ
Sergiy Kolodyazhnyy

4

सूक्ति के साथ DBus का उपयोग करना

कीबोर्ड नियंत्रण के लिए चमक में कदम इस विधि के साथ भी लागू किया जा सकता है।

# 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

टिप्पणियाँ


+1 आंतरिक एलसीडी डिस्प्ले पर इस काम की पुष्टि करता है। यह xrandrगामा और चमक स्क्रिप्ट के साथ पहले से नियंत्रित बाहरी मॉनिटरों को प्रभावित नहीं करता है ।
विनयुनुच्स

3

जैसा कि @palacint ने कहा, echo 244 > /sys/class/backlight/intel_backlight/brightnessपथ मेरे लिए काम करता है।

लेकिन अधिकतम और न्यूनतम मान क्रमशः /sys/class/backlight/intel_backlight/max_brightnessऔर /sys/class/backlight/intel_backlight/bl_powerफ़ाइलों में नाराज हैं।

साथ ही, आपके कंप्यूटर पर जो वास्तविक चमक चल रही है, वह अभी मौजूद है /sys/class/backlight/intel_backlight/actual_brightness


3

केडीई 4.12:

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

KDE प्लाज्मा संस्करण: 5.14.3:

उपरोक्त कोड अभी भी मान्य है। यह तभी काम करेगा जब आप केडीई उपयोगकर्ता होंगे। हालाँकि उस स्थिति में इसके लिए किसी अतिरिक्त सॉफ्टवेयर की आवश्यकता नहीं होगी। यह "बैटरी और चमक" विजेट का उपयोग करते समय ठीक वैसा ही व्यवहार होगा। AFAIK यह भौतिक बैकलाइट को बदलता है, इसके विपरीत xrandrजो नहीं करता है।

खबरदार है कि 55 से ऊपर 100 का एक अंश नहीं है, बाद वाला अधिकतम चमक है। इसके बजाय यह max_brightness से संबंधित है:

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

एक "मूक" संस्करण भी है जिसे आप स्क्रिप्ट में पसंद कर सकते हैं:

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

Refs : क्यूडबस , ठोस , चमक


क्या आप बता सकते हैं कि यह क्या करेगा?
r --dʒɑ

2

यहाँ एक छोटी लाइन है जो आपकी आँखों को आराम देने में आपकी मदद कर सकती है। बस लाइन के साथ एक crontaab बनाएं या एक स्क्रिप्ट बनाएं

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

2

उपरोक्त उत्तरों का उपयोग करते हुए, मैंने डिस्प्ले ब्राइटनेस को संशोधित करने के लिए इस स्क्रिप्ट को बनाया (मेरे होम डायरेक्टरी में ब्राइटनेस के रूप में सहेजा गया) (जैसा कि लैपटॉप के कीबोर्ड को एक स्पिल्ड टी इशू का सामना करना पड़ा और अनुपयोगी हो गया)। इसका उपयोग करने के लिए स्वतंत्र महसूस करें (यदि आपके पास निर्दिष्ट फाइलें हैं ... अन्यथा उनमें से आपके भिन्नता को इंगित करने के लिए छेड़छाड़ आवश्यक होगी)।

#!/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

आप बहुत से नेस्टिंग से बेहतर कर सकते हैं यदि स्थिति, जैसे elifया उससे भी बेहतर हो case। इसके अलावा, मैं आपको google.github.io/styleguide/shell.xml जैसी स्टाइल गाइड पढ़ने और शेलचेक जैसी लाइनर आज़माने का सुझाव देता हूं क्योंकि यह आपको बेहतर कोड बनाने में मदद करता है। काश किसी ने मुझे यह बताया हो जब मैंने सालों पहले स्क्रिप्टिंग शुरू की थी। :)
लाइववायरबीटी

1

ddccontrol बाहरी मॉनिटर के लिए बैकलाइटिंग को नियंत्रित करने का एक और विकल्प है। यहाँ मैं अपने बाहरी मॉनिटर की बैकलाइट को इसकी शक्ति के 50% के साथ सेट कर सकता हूँ:

ddccontrol -p -r 0x10 -w 50

मैंने इस समस्या के संभावित समाधानों में देखा कि जिस तरह से Redshift ब्राइटनेस में बदलाव को हैंडल करता है । वहाँ के माध्यम से मैंने पाया कि लिनक्स कर्नेल के लिए डिवाइसों में संगतता में सुधार करने के लिए एक पैचसेट है, ताकि लैपटॉप और बाहरी स्क्रीन समान रूप से काम कर सकें sysfs

इस बीच, ddccontrol केवल एक चीज है जो मेरे लिए यहां काम करती है। हमेशा की तरह, आर्क विकी के विषय के साथ-साथ समग्र प्रलेखन अच्छा है


0

इंटरएक्टिव ncurses- जैसे यूआई का उपयोग करना xbacklight

एक गरीब आदमी के नखरे। मारो hऔर यह 10% नीचे चला जाता है, मारा lऔर यह 10% हो जाता है। फिर वर्तमान चमक दिखाओ।

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
)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.