Blog (107)
Komentarze (2.3k)
Recenzje (0)
@webnullcz. 7 | Siła konsoli w systemach Uniksowych

cz. 7 | Siła konsoli w systemach Uniksowych

08.12.2010 17:52

Witam. Tak jak w poprzedniej części tak i w tej przedstawię Wam praktycznie zastosowanie konsoli przy ustawianiu parametrów urządzeń (poprzednio monitor, teraz będzie ekran dotykowy).

[color=#007aff]Przykładowe zastosowanie czternaste - szybka kalibracja ekranu dotykowego

Ostatnio przyszło Mi skalibrować ekran dotykowy w urządzeniu Samsung Q1, zamiast bawić się w pobieranie aplikacji do kalibracji ekranu i dotykanie punktów (czynność powtarza się często kilka razy do skutku) dlatego wpisałem w wyszukiwarce Google wyrażenie "samsung q1 linux calibrate" i znalazłem to czego potrzebuję w jednym poleceniu.

375158
xinput set-int-prop "Touchkit HID-USB Touchscreen" "Evdev Axis Calibration" 32 80 3950 150 3900

Ekran od razu zareagował, mogłem swobodnie dotknąć rogów ekranów oraz używać rysika. Jedno proste polecenie potrafi ustawić kalibrację ekranu dotykowego.

Oczywiście możecie powiedzieć, że nie skalibruję w ten sposób każdego ekranu no ale cóż, wystarczy w zasadzie zdobyć gotowe dane do kalibracji (nie trudno je znaleźć na forach Linuksowych - ludzie publikują konfigi i dyskutują na ich temat) i odpowiednio je podstawić jak w równaniu matematycznym.

[color=#007aff]Przykładowe zastosowanie piętnaste - zmiana jasności ekranu

Próbując zmienić jasność w urządzeniu Samsung Q1 żaden program graficzny nie potrafił wykryć możliwości zmiany jasności ekranu, ACPI nie pokazywało takiej możliwości. Jednak poradziłem Sobie z tym problemem w bardzo prosty sposób.

Użyłem narzędzia setpci które jak nazwa wskazuje służy do konfiguracji urządzeń podpiętych pod PCI.

Dzięki setpci jestem w stanie ustawić wartość jasności ekranu choć programy graficzne tego nie potrafiły a narzędzia ACPI nie potrafiły wykryć takiej możliwości.

Aby ustawić poziom jasności na 80% wpisałem:

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

I zadziałało.

Podzielę Się z Wami moim drobnym skryptem bashowym do zmiany jasności ekranu przy pomocy klawiszy multimedialnych w Samsung Q1:

/home/webnull/Scripts/brightness (ustawianie jasności)

#!/bin/bash

if [ ! -f /tmp/brightness ]
then
	setpci -v -s 00:02.0 F4.B=60
	echo "60" > /tmp/brightness
	sleep
fi

if [ $1 == "default" ]
then
	setpci -v -s 00:02.0 F4.B=60
	echo "60" > /tmp/brightness
elif [ $1 == "1+" ];
then
	current_level=`cat /tmp/brightness`
	new_level=$(((current_level)+5))

	if [ $new_level -lt 100 ]
	then
		echo "$new_level" > /tmp/brightness
		setpci -v -s 00:02.0 F4.B=$new_level
	fi
elif [ $1 == "1-" ];
then
	current_level=`cat /tmp/brightness`
        new_level=$(((current_level)-5))

        if [ $new_level -gt 5 ]
        then
                echo "$new_level" > /tmp/brightness
                setpci -v -s 00:02.0 F4.B=$new_level
        fi

fi

/home/webnull/Scripts/multimedia-keys-set (ikona w doku do zmiany funkcjonalności klawiszy)

#!/bin/bash
keys=`cat /tmp/multimedia-keys`

if [ "$keys" == "sound" ]
then
	echo "brightness" > /tmp/multimedia-keys
	notify-send -u low "Klawisze multimedialne: Jasność wyświetlacza LCD"
else
	echo "sound" > /tmp/multimedia-keys
	notify-send -u low "Klawisze multimedialne: Regulacja głośności"
fi

/home/webnull/Scripts/multimedia-keys (naciśnięcie klawisza)

#!/bin/bash
mode=`cat /tmp/multimedia-keys`

if [ $mode == "" ]
then
	mode="sound"
	echo "sound" > /tmp/multimedia-keys
fi

if [ $mode == "sound" ];
then
	/home/webnull/Scripts/sound $1
elif [ $mode == "brightness" ];
then
	sudo /home/webnull/Scripts/brightness $1
fi

Klawisze multimedialne ustawiłem Sobie przełączane ikoną na doku, mogę wybrać pomiędzy regulacją głośności a regulacją jasności obrazu.

Jak widać w /home/webnull/Scripts/multimedia-key jest użyte sudo, należy w /etc/sudoers dodać Sobie linijkę odpowiedzialną za nie wymaganie hasła dla danego użytkownika aby wykonać plik /home/webnull/Scripts/brightness jako użytkownik root.

Zapraszam do wypowiedzi w komentarzach.

.. Ciąg dalszy nastąpi ..

Wybrane dla Ciebie
Komentarze (30)