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.
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 ..