Hallo Ihr hilfreichen Lieben,

ich habe mir auf einem HP EliteBook x360 1030 G2 Archlinux mit i3wm aufgesetzt.
in der ~/.config/i3/conifg waren diverse Funktionalitäten manuell einzurichten. Läuft auch alles soweit wie gewünscht.
Es ist mir aber trotz des Studiums des i3 User's Guide, diverser einschlägiger Threads dieses Forums und sonstiger Recherche bisher nicht gelungen, die Keybindungs für die Helligkeitsregelung korrekt einzurichten.

Nach einiger Recherche habe ich herausgefunden, dass xorg-xbacklight nicht installiert war. Also installiert und in der Konsole mit

$ sudo xbacklight -dec 40 
$ sudo xbacklight -inc 40 

ausprobiert.

Fehlermeldung:
No outputs have backlight property

Nach weiterer Recherche zu xbacklight bin ich einer Empfehlung, statt dessen acpilight zu installieren, gefolgt.
Jetzt funktioniert die Steuerung schon mal via Terminal. Allerdings nur mit sudo.

In der ~/.config/i3/conig habe ich mit den folgenden Einträgen versucht, die auf meinem Gerät für die Helligkeitsregelung vorgesehenen Funktionstasten F3 und F4 (232 und 233) mit entsprechenden Kommandos zu belegen:

bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 10
bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 10

Kann ja nicht funktionieren, wenn für die Ausführung sudo erforderlich ist. Ich muss also normale Benutzer zur Ausführung berechtigen. Wie mache ich das?

  • schard hat auf diesen Beitrag geantwortet.

    Nomos Kann ja nicht funktionieren, wenn für die Ausführung sudo erforderlich ist. Ich muss also normale Benutzer zur Ausführung berechtigen. Wie mache ich das?

    Mit sudo zum Beispiel? Genau dafür wurde es ja entwickelt.

    • Nomos hat auf diesen Beitrag geantwortet.

      Einfacher wäre vermutlich, entsprechende Regeln (mittels udev?) zu konfigurieren um auch mit Userrechten per ACPI die Helligkeit einstellen zu können.

      • Nomos hat auf diesen Beitrag geantwortet.

        Hallo Ihr Lieben,

        schon mal vielen Dank für die Hinweise.

        schard
        wenn ich 'sudo' in das exec-command schreibe muss ich doch auch das Passwort angeben. Wie schreibe ich dann den Befehl und vermeide, das Passwort in Plain-Text da stehen zu haben?

        Dirk
        Das mit den udev Regeln habe ich an anderer Stelle auch gelesen. Wäre mir deutlich symphatischer, als ein sudo-Command mit Passwort in die i3-config zu schreiben.
        Ich glaube, dass dazu aber der Hinweis von

        stefanhusmann, also das Hinzufügen des Users in die Video-Group zusätzlich erforderich ist -oder? Und ich gehe mal davon aus, dass mein User da (noch) nicht drin steht. Wie kann ich das denn feststellen und ggf. entsprechend anpassen?

          Nomos Einfach mit dem User eingeloggt sein, dann groups eingeben. Wenn die Gruppe fehlen sollte als root mittels usermod -a -G video der_username_hier hinzufügen.

          • Nomos hat auf diesen Beitrag geantwortet.

            Nomos wenn ich 'sudo' in das exec-command schreibe muss ich doch auch das Passwort angeben. Wie schreibe ich dann den Befehl und vermeide, das Passwort in Plain-Text da stehen zu haben?

            Indem du das zusätzliche tag NOPASSWD verwendest;
            By default, sudo requires that a user authenticate before running a command. This behavior can be modified via the NOPASSWD tag.

            • Nomos hat auf diesen Beitrag geantwortet.

              Also ich hab dafür nicht xorg-xbacklight, sondern acpilight aus [community] installiert. Da ist eine entsprechende udev-Regel schon dabei. Daher brauche ich auch kein sudo.
              Hier die Regel, falls du bei xorg-xbacklight bleiben möchtest:
              $ cat /usr/lib/udev/rules.d/90-backlight.rules
              SUBSYSTEM=="backlight", ACTION=="add", \
              RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness", \
              RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"
              SUBSYSTEM=="leds", ACTION=="add", KERNEL=="*::kbd_backlight", \
              RUN+="/bin/chgrp video /sys/class/leds/%k/brightness", \
              RUN+="/bin/chmod g+w /sys/class/leds/%k/brightness"

              • Nomos hat auf diesen Beitrag geantwortet.
              • Dirk gefällt das.

                sekret
                wie ich schon im Beitrag geschrieben habe, habe ich, nachdem xorg-xbacklight nicht zum Erfolg führt nach eigener Recherche acpilight installiert. Im Rahmen der Installation via pacman wurde xorg-xbacklight, weil in Konflikt mit acpilight, von pacman deinstalliert. Seither funfktioniert der Befehl $ sudo xbacklight -inc 10 sofort.

                Ich bin dann der Setup-Anweisung des Readme von acpilight gefolgt:

                Normally, users are prohibited to alter files in the sys filesystem. It's
                advisable (and recommended) to setup an "udev" rule to allow users in the
                "video" group to set the display brightness.
                To do so, place a file in '/etc/udev/rules.d/90-backlight.rules '
                containing:

                SUBSYSTEM=="backlight", ACTION=="add", \
                  RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness", \
                  RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"

                was leider auch zu keiner Veränderung geführt hat.
                Vermutlich schlicht deshalb, weil es mir nicht gelingt den User zur Video-group hinzuzufügen...

                Ohne sudo erhalte ich auf den Befehl
                xbacklight -dec 30
                die Fehlermeldung:
                [Errno 13] Permission denied: '/sys/class/backlight/intel_backlight/brightness'

                Dirk
                ich bin auch Deiner Empfehlung mit
                sudo usermod -a -G video nomos
                gefolgt. Hatte leider auch keinen Effekt.
                Die Abfrage $ groups ergab vorher wie nachher die Ausgabe
                wheel nomos

                Edit: vergessen aus- und wieder einzuloggen. Bin jetzt doch in der Gruppe Video 🙂
                Scheint aber leider nicht den gwünschten Effekt zu haben. 🙁

                Martin-MS
                wie genau schreibt man diesen Tag in ein Kommando?
                etwa so:
                sudo -NOPASSWD xbacklight -dec 30
                in man sudo finde ich keine Anweisung, wie der Tag verwendet werden kann.

                  irgendwie bin ich nah dran, sehe aber wahrscheinlich den Wald vor lauter Bäumen nicht...

                  Ich weiß nicht ob dir das hilft aber ich habe dieses Problem mit dem Paket "light" unter Archlinux mit Openbox gelöst.

                  <keybind key="XF86MonBrightnessUp">
                  <action name="Execute">
                  <execute>light -A 10</execute>
                  </action>
                  </keybind>
                  <keybind key="XF86MonBrightnessDown">
                  <action name="Execute">
                  <execute>light -U 10</execute>
                  </action>
                  </keybind>

                  Vielleicht könnte es bei dir dann so funktionieren:

                  bindsym XF86MonBrightnessUp exec light -A 10
                  bindsym XF86MonBrightnessDown exec light -U 10

                  • Nomos hat auf diesen Beitrag geantwortet.

                    All of old.
                    Nothing else ever.
                    Ever tried, ever failed
                    No matter.
                    Try again, fail again, fail better!
                    Samuel Beckett

                    Gonzo-3004
                    Vielen Dank für Deinen Tip. Im Moment glaube ich, nachdem der Befehl unter sudo schon mal funktioniert, mit acpilight auf der richtigen Spur zu sein. Deshalb bin ich mit der Installation weiterer Pakete erst mal zurückhaltend.

                    Trotzdem vielen Dank!

                    Nomos in man sudo finde ich keine Anweisung, wie der Tag verwendet werden kann.

                    Ich hatte ja auch auf die manpage von sudoers verlinkt, und dort finden sich (ebenso wie in den Kommentaren in /etc/sudoers) Beispiele, wie der Eintrag zu formulieren ist.

                    o.k. ich bin der Lösung wieder etwas näher:
                    meine Helligkeit wird mit intel_backlight gemanaged, entsprechend habe ich die udev-Regeln jetzt so formuliert:

                    ACTION=="add", SUBSYSTEM=="backlight", \
                      RUN+="/bin/chgrp video /sys/class/backlight/intel_backlight/brightness", \
                      RUN+="/bin/chmod g+w /sys/class/backlight/intel_backlight/brightness"

                    in der Konsole kann ich jetzt ohne sudo mit
                    $ xbacklight -inc 100 oder $ xbacklight -dec 10
                    die Helligkeit wie gewünscht regeln.

                    in der i3-config stehen nun folgende Einträge:

                    bindsym XF86MonBrightnessUP exec --no-startup-id xbacklight -inc 10
                    bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 10

                    Die Taste F3 mit der kleinen Sonne regelt nun auch brav die Helligkeit herunter.
                    Aber Taste F4 mit der großen Sonne regelt leider weiterhin garnichts.

                    Getreu dem Motto: "Besser scheitern" werde ich also noch weiter hirnen, um auch die letzte Hürde zu nehmen.

                    Vielen Dank jedenfalls für all die freundlichen Hinweise und Anregungen!
                    Ich kann das Thema aber leider noch nicht als gelöst markieren 🙁

                    Edit: ...den Wald vor lauter Bäumen...
                    tatächlich hat ein simpler Schreibfehler in der Keybinding-Anweisung meiner i3-config das Nichtverhalten der Funktionstaste F4 verursacht. Tausend mal gelesen und doch nicht gesehen...
                    Statt XF86MonBrightnessUp habe ich XF86MonBrightnessUP geschrieben.
                    Jetzt funktioniert also alles wie es soll! 🙂

                    Euch allen vielen Dank, ohne die Hinweise z.B. zur Hinzufügung des users zur group videohätte ich es wohl nicht hinbekommen.

                    Nomos vielleicht solltest du dich mal mit sudo und der Konfiguration davon (also z.B. visudo) beschäftigen.

                    Da kann man relativ fein User-Gruppen, Befehle und Aliase definieren, so dass man gezielt Dinge erlauben kann.

                    Ciao,
                    Photor

                    PS: mich aber nicht dazu befrage; ich nutze sudo auch nur, wo ich muss. Bin kein Spezialist dafür.