Du bist nicht angemeldet.

Eine Antwort schreiben

Schreibe deinen Beitrag und versende ihn
Beitragsoptionen
Deine Antwort

Zurück

Themen-Übersicht (Neuester Beitrag zuerst)

Dings
20.01.2020 23:33:44
wirr schrieb:

… Im vim gibt es z.B. den * Befehl, welcher nach dem Wort unter dem Cursor sucht.

Super, kannte ich auch noch nicht. Hat sich ja in jeder Hinsicht gelohnt, mal unterm Stein herauszugucken und hier zu fragen.
Danke Dir.

wirr
20.01.2020 15:27:58

Das ist mir einmal bei einer Prüfung passiert smile

Es hilft, die Suchfunktion zu benutzen, wenn die Variabel leer bleibt oder die Funktion einfach nicht gefunden wird. Im vim gibt es z.B. den * Befehl, welcher nach dem Wort unter dem Cursor sucht.

Dings
19.01.2020 19:01:41
wirr schrieb:

Da gibt es ein Typo:
kdbstate
kbdstate

Alter Schwede. DANKE!

Ich habe da stundenlang draufgeglotzt und es einfach nicht gesehen.

wirr
19.01.2020 18:51:33

Da gibt es ein Typo:
kdbstate
kbdstate

Dings
19.01.2020 16:04:03

TL;DR:
Es war ein Typo
-------------------------8<-----------------------------------------------------------------------------
(Ich bin ziemlich ahnungslos, wenn es ums Programmieren geht, das mal vorweg.)

Ich möchte das die Tastaturbeleuchtung abgeschaltet wird, wenn das Display gesperrt wird.
Dafür schreibe ich mir ein Bash Script.

Ich fülle eine Variable (kbdstate) mit dem aktuellen Status der Tastaturbeleuchtung, entweder 0 oder 1.

Ich habe eine Funktion (isiton) die guckt, ob der Status > 0 ist.
Ist er das, wird er = 0 gesetzt, damit die Tastaturbeleuchtung ausgeschaltet ist.

dbus-monitor guckt, ob die session gelockt wird.
Wird sie das, wird die Funktion (isiton) ausgeführt.

Anderenfalls passiert nichts.

#!/bin/bash

kdbstate=$(cat /sys/devices/platform/tuxedo_keyboard/state)

isiton() {
    if [ "$kbdstate" -gt 0 ]; then
                echo 0 > /sys/devices/platform/tuxedo_keyboard/state
    fi
}

dbus-monitor --system "type='signal',interface='org.freedesktop.login1.Session',member='Lock'" | \
    (
  while read X; do
    if [[ "$X" =~ Lock ]]; then
        isiton
    fi
  done
)

Führe ich das Script aus, passiert erstmal garnichts. So wie geplant.
Sperre ich dann das Display, bekomme ich diese Fehlermeldung:

my_scripts/screenlock_kbdoff.sh: line 4: [: : integer expression expected

Die Variable bleibt leer. Ich verstehe nicht warum, bzw. weiss nicht, was ich falsch mache.
Fülle ich die Variable händisch im Terminal und lasse sie mir anschließend ausgeben, funktioniert es so wie zu erwarten.

# kdbstate=$(cat /sys/devices/platform/tuxedo_keyboard/state)
# echo $kbdstate
# 1
[oder eben 0, wenn die Tastaturbeleuchtung aus ist]

Die dbus-monitor Geschichte habe ich hier hier
ausgegraben, als ich herausfinden wollte, woher ich überhaupt weiss, dass das Display gesperrt ist.

Wie bekomme ich den Status der Tastaturbeleuchtung in meine Variable?

Fußzeile des Forums

Powered by FluxBB