Ich habe kürzlich von 32 Bit 14.04 LTS auf meinem Toshiba L645-Laptop auf 64 Bit 16.04 LTS migriert. Im 14.04 LTS-System hatte ich ein Skript, das die Helligkeitsstufe abhängig von der Stromquelle automatisch aktualisierte. Leider habe ich dieses Skript nicht gespeichert, bevor ich das System überschrieben habe. Derzeit verwende ich das folgende Skript
#!/usr/bin/env bash
#
###########################################################
# Author: Serg Kolo , contact: [email protected]
# Date: February 26 2016
# Purpose: Brightness control that polls for
# ac adapter presence. Uses
# Dependencies: on_ac_power script, dbus, Unity/Gnome
# Written for: http://askubuntu.com/q/739617/295286
# Tested on: Ubuntu 14.04 LTS
###########################################################
# Copyright: Serg Kolo , 2016
#
# Permission to use, copy, modify, and distribute this software is hereby granted
# without fee, provided that the copyright notice above and this permission statement
# appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
# uncomment the line bellow for debugging
#set -x
ARGV0="$0"
ARGC=$#
main()
{
# defaults
local DISPLAY=:0
local DECREASE=30
local INCREASE=75
local RCFILE="$HOME/.auto-backlightrc"
#---
# Check the settings
if [ -f $RCFILE ]
then
source $RCFILE
else
create_rcfile $DECREASE $INCREASE
fi
#---
# now actually test if we're using ac adapter
if ! on_ac_power
then
change_brightness $DECREASE
# The two lines bellow are optional for
# setting brightness if on AC. remove #
# if you want to use these two
# else
# change_brightness $INCREASE
fi
}
change_brightness()
{
dbus-send --session --print-reply\
--dest=org.gnome.SettingsDaemon.Power\
/org/gnome/SettingsDaemon/Power \
org.gnome.SettingsDaemon.Power.Screen.SetPercentage uint32:"$1"
}
create_rcfile()
{
echo "DECREASE="$1 > "$RCFILE"
echo "INCREASE="$2 >> "$RCFILE"
}
while true
do
main
sleep 0.25
done
Dieses Skript funktioniert jedoch nur, wenn die Stromversorgung von Wechselstrom auf Batterie umgeschaltet wird, und stellt die Helligkeitsstufe nicht wieder her, sobald die Klimaanlage wieder eingeschaltet ist. Außerdem versucht dieses Skript im Akkubetrieb konsequent, die Helligkeit auf die vordefinierte Stufe einzustellen, und selbst wenn ich versuche, dies manuell zu ändern, wird dies zurückgesetzt. Ich möchte die Helligkeit manuell ändern können, wenn ich dies auch im Batteriemodus wünsche.
Antworten:
Intro
Das folgende Skript ermöglicht das Speichern von Helligkeitsstufen in Abhängigkeit von der von einem Laptop verwendeten Stromquelle. Der Standardwert beträgt 50% bei Batterie und 90% bei Wechselstrom.
Übersicht über Optionen und Verwendung
Installation
Installation über das
git
Durchgangsterminal:sudo apt-get install git
die Installationgit
mkdir $HOME/bin
. Überspringen Sie diesen Schritt, falls$HOME/bin
bereits vorhandencd $HOME/bin
git clone https://github.com/SergKolo/sergrep.git
$HOME/bin/sergrep/source_monitor.sh
. Stellen Sie sicher, dass das Skript mit ausführbar istchmod +x $HOME/bin/sergrep/source_monitor.sh
gnome-session-properties
Befehl im Terminal ausführen , um das Menü zu starten. Fügen Sie den vollständigen Pfad zum Skript als Startanwendung hinzu, damit es jedes Mal gestartet wird, wenn Sie sich bei der GUI anmelden.Alternativ können Sie die Skriptquelle selbst kopieren und speichern
chmod +x file
und den oben beschriebenen Schritt 6 ausführen.Verwenden Sie das Dienstprogramm " Startanwendungen", damit das Skript bei jeder Anmeldung bei Gnome oder Unity automatisch gestartet wird .
Skriptquelle
quelle
qdbus
einfach und einfachecho 500 | sudo tee /sys/class/backlight/intel_backlight/brightness
?qdbus
Sie nicht brauchensudo
. Es verhält sich so, als würden Sie auf Funktionstasten auf der Tastatur klicken. Zweitens werden Prozentsätze anstelle der tatsächlichen Werte behandelt, die die Grafikkarte versteht, sodass ich das Rad nicht jedes Mal neu erfinden muss. Ich habe mir bereits Ihr anderes Problem angesehen, aber bisher habe ich keine Ahnung - ich bin nicht sehr gut informiert, wenn es um die Anzeigen auf der Oberseite geht.Sergs Drehbuch schien zunächst zu funktionieren. Nach einiger Zeit wurde der Prozentsatz jedoch falsch ausgewertet, insbesondere nachdem er aus dem Winterschlaf zurückgekehrt war. Möglicherweise gab es einige Probleme,
qdbus
aber die Helligkeit ändert sich nicht nur. Also habe ich beschlossen, die Helligkeitsstufe mit dem Wert aus dermax_brightness
Datei fest zu codieren . Hier ist mein/usr/local/bin/auto-backlight.sh
:Im Gegensatz zu Sergs Skript erfordert dieses ein Root-Privileg, um in eine
brightness
Datei schreiben zu können . Also habe ich einsystemd service
at erstellt/etc/systemd/system/auto-backlight.service
:Laden Sie den Dienst schließlich beim Booten mit Root-Rechten:
quelle
Eine andere Möglichkeit besteht darin, Regeln für udev zu erstellen und ein einfaches Skript aufzurufen, um den Helligkeitswert zu ändern: Erstellen Sie zunächst eine Datei mit dem Namen
auto-backlight.sh
in Ihrem Ausgangsverzeichnis (oder einer anderen von Ihnen bevorzugten) mit Ihrem bevorzugten Editor wie gedit und kopieren und einfügen der nächste Code:Bitte beachten Sie, dass
/sys/class/backlight/intel_backlight/
dies in Ihrem System etwas anderes sein kann, wie z/sys/class/backlight/acpi_video0/
. Beachten Sie auch, dass Sie möglicherweise den Wert von/ 10
abhängig vom Wert von ändern müssen.max_brightness
Dies kann 100, 50, 5 usw. sein, da es sich um einen Divisionsfaktor handelt.Geben Sie dem neu erstellten Skript Ausführungsberechtigungen:
chmod 771 auto-backlight.sh
Erstellen Sie dann eine Datei
99auto-backlight.rules
mit dem Namen Ihres bevorzugten Editors und legen Sie sie in den/etc/udev/rules.d/
Ordner:sudo gedit /etc/udev/rules.d/99auto-backlight.rules
(oder verknüpfen Sie sie mit dem Befehl "ln"), der die folgenden zwei Zeilen enthält:Durch
/path/to/your/script/
den tatsächlichen Pfad ersetzen, in dem sich das Skript auto-backlight.sh befindet.Dank an Alex Layton für seine Idee hier: https://unix.stackexchange.com/a/110469 und an Pilot6 für seine Idee hier: https://askubuntu.com/a/613816
quelle
Tintenfisch ist ein Tool, mit dem Sie Einstellungsänderungen basierend auf Ereignissen wie dem Ein- und Ausstecken der Stromversorgung automatisieren können
quelle