Login Hasło

#1 2009.03.07 23:58:02

parrotlarch
pijak
Skąd: Olsztyn
Zarejestrowany: 2007.08.28
Posty: 180
System: Debian stable, Ubuntu LTS
Fluxbox: 1.3.5-2

Xev i regulacja jasności wyświetlania monitora

Czy ktoś zna sposób na przypisanie do keys możliwości regulacji jasności monitora? Dzięki skryptowi azhaga mam ładnie przypisaną regulację głośnoości z użyciem laptokowego klawisza "Fn". Można by pewnie z użyciem xev przypisać regulację jasności, ale nie mam pojęcia jaki program mógłby sterować jasnością. Może ktoś już to opracował, albo ma pomysł jak to zrobić? Gdy siedzi się do późna to fajnie jest sobie przyciemnić monitor. Dodam tylko, że w gnome nie działają mi klawisze jaśniej/ciemniej.

Znalazłem takie coś
http://jarrn.wordpress.com/2008/10/09/i … msung-sa1/

skrypty zmodyfikowałem odpowiednio do tego co znalazłem u siebie w proc/acpi:

Kod:

#!/bin/bash

CURRENT=$(grep "current:" /proc/acpi/video/NVID/LCD/brightness |awk '{print $2}')

case "$CURRENT" in

        100)
        echo -n 100 > /proc/acpi/video/NVID/LCD/brightness;
        ;;
        80)
        echo -n 100 > /proc/acpi/video/NVID/LCD/brightness;
        ;;
        70)
        echo -n 80 > /proc/acpi/video/NVID/LCD/brightness;
        ;;
        60)
        echo -n 70 > /proc/acpi/video/NVID/LCD/brightness;
        ;;
        50)
        echo -n 60 > /proc/acpi/video/NVID/LCD/brightness;
        ;;
        40)
        echo -n 50 > /proc/acpi/video/NVID/LCD/brightness;
        ;;
        30)
        echo -n 40 > /proc/acpi/video/NVID/LCD/brightness;
        ;;
        10)
        echo -n 30 > /proc/acpi/video/NVID/LCD/brightness;
        ;;
        *)
        echo -n 100 > /proc/acpi/video/NVID/LCD/brightness ;
        ;;
esac

ale nie wiem jak to dopisac do keys. tzn zrobiłem tak:

Kod:

Control Up :exec ~/.skrypty/video_brightnessup.sh
Control Down :exec ~/.skrypty/video_brightnessdown.sh

ale wywala mi brak dostępu. Nie chciałbym /proc/acpi/video/NVID/LCD/brightness nadawać wykonalności dla wszystkich uzytkowników kompa, a nie wiem jak to zrobić przez sudo.

Edit:
teraz tak na to spoglądam i widzę, że chyba kompletnie tego nie zrozumiałem...

Ostatnio edytowany przez parrotlarch (2009.03.08 01:07:15)


Zdzisław Dyrman...zasadniczo

Offline

 

#2 2009.03.08 01:45:06

Minio
Electric Castle resident
Skąd: Brno, Česko
Zarejestrowany: 2006.11.22
Posty: 546
System: Debian Testing
Fluxbox: Plasma 5.10.5 ;) (Fb 1.3.5)
WWW

Re: Xev i regulacja jasności wyświetlania monitora

1. chmod +x ~/.skrypty/video_brightness{up,down}.sh (możesz pominąć, jeżeli już robiłeś).
2. Zaloguj się jako root. Uruchom visudo. Dopisz:

Kod:

user   ALL = NOPASSWD:/home/user/.skrypty/video_brightnessup.sh, /home/user/.skrypty/video_brightnessdown.sh

Oczywiście w miejsce user wpisz nazwę swojego użytkownika.
Potem uruchamiaj przez sudo ~/.skrypty/video_brigh.sh.

Na marginesie: zamiast dwóch skryptów, jednego do zwiększania a drugiego do zmniejszania jasności monitora, możesz użyć skryptu ogólnego przyjmującego „up” lub „down” jako argument. Powinno to wyglądać mniej więcej tak:

Kod:

#!bin/bash
CURRENT=$(awk '/current:/ {print $2}' /proc/acpi/video/NVID/LCD/brightness)

if [ "$1" = "up" ]; then
   NEW=$(( $CURRENT + 10 ))
   if [ "$NEW" -gt 100 ]; then 
      NEW=100
   fi
   echo -n "$NEW" > /proc/i/tak/dalej
elif [ "$1" = "down"]; then
   NEW=$(( $CURRENT - 10 ))
   if [ "$NEW" -lt 10 ]; then 
      NEW=10
   fi
   echo -n "$NEW" > /proc/i/tak/dalej
else
   echo "$(basename $0) - banalny skrypt do modyfikowania jasności monitora."
   echo "Użycie: $(basename $0) [up|down]"
   exit 666
fi

A zupełnie na marginesie: te skrypty nie mają prawa działać. Najpierw plik /proc/acpi/video/NVID/LCD/brightness jest czytany w poszukiwaniu tekstu „current:”, a po jego znalezieniu, ostatecznie całą jego zawartość będzie stanowiła nowa wartość liczbowa wyrażająca jasność (w przedziale 10-100). W wyniku tego następne wywołanie skryptu nie znajdzie tekstu „current:” i na tym zakończy swoje działanie. Chyba że ten plik jest z chwilą swojego nadpisania automagicznie modyfikowany, ale śmiem w to wątpić.

Błąd ten powinien być banalny do naprawienia, o ile pokażesz zawartość tego pliku przed jakimikolwiek modyfikacjami. Ja nie mam laptopa i nie mogę tego sprawdzić.

Offline

 

#3 2009.03.08 10:59:00

parrotlarch
pijak
Skąd: Olsztyn
Zarejestrowany: 2007.08.28
Posty: 180
System: Debian stable, Ubuntu LTS
Fluxbox: 1.3.5-2

Re: Xev i regulacja jasności wyświetlania monitora

faktycznie skrypt nic nie robi. zawartość pliku /proc/acpi/video/NVID/LCD/brightness:

Kod:

levels:  40 50 60 70 80 100
current: 80

aa...czy do uruchamiania przez sudo wystarczy zrobić tak?

Kod:

Control Up :exec sudo ~/.skrypty/video_brightnessup.sh
Control Down :exec sudo ~/.skrypty/video_brightnessdown.sh

bo o ile wcześniej wysypywało mi brak dostępu, to teraz jest zero reakcji.

Ostatnio edytowany przez parrotlarch (2009.03.08 10:59:22)


Zdzisław Dyrman...zasadniczo

Offline

 

#4 2009.03.08 13:49:03

Minio
Electric Castle resident
Skąd: Brno, Česko
Zarejestrowany: 2006.11.22
Posty: 546
System: Debian Testing
Fluxbox: Plasma 5.10.5 ;) (Fb 1.3.5)
WWW

Re: Xev i regulacja jasności wyświetlania monitora

Mój powyższy skrypt, zmodyfikowany tak by działał:

Kod:

#!/bin/bash
CURRENT=$(awk '/current:/ {print $2}' /proc/acpi/video/NVID/LCD/brightness)

if [ "$1" = "up" ]; then
   NEW=$(( $CURRENT + 10 ))
   if [ "$NEW" -eq 90 ]; then 
      NEW=100
   fi
   if [ "$NEW" -gt 100 ]; then 
      NEW=100
   fi
elif [ "$1" = "down" ]; then
   NEW=$(( $CURRENT - 10 ))
   if [ "$NEW" -lt 40 ]; then 
      NEW=40
   fi
   if [ "$NEW" -eq 90 ]; then 
      NEW=80
   fi
else
   echo "$(basename $0) - banalny skrypt do modyfikowania jasności monitora."
   echo "Użycie: $(basename $0) [up|down]"
   exit 666
fi
echo -n $NEW > /proc/acpi/video/NVID/LCD/brightness

Idea jest taka, że linijka levels w pliku który podałeś odpowiada za obsługiwane poziomy jasności. Konieczne jest pozostanie wśród tych wartości, bo cholera wie co się stanie gdyby za nie wykroczyć (jak masz jakiegoś niepotrzebnego laptopa, możesz sprawdzić wink ). Dlatego w skrypcie sprawdzam czy wartość nie przekracza 100, nie jest mniejsza niż 40 i odpowiednio reaguję jeżeli wyjdzie 90.

Po drugie: ostatnia linijka (sed) odpowiada za zmodyfikowanie linijki z current w pliku jasności. Gdybyś chciał dalej korzystać z tych skryptów co znalazłeś (zauważ, że pisane były dla innych levels niż Twoje), każde tamtejsze wywołanie echo zamień na sed-a którego skopiujesz ode mnie. Tylko zamień $NEW na wartość liczbową. Poniżej przykładowa linijka z tego skryptu i zmodyfikowany sed:

Kod:

echo -n 100 > /proc/acpi/video/NVID/LCD/brightness ;
sed -i -e 's/current: .*/current: 100/gi' /proc/acpi/video/NVID/LCD/brightness

parrotlarch napisał(-a):

aa...czy do uruchamiania przez sudo wystarczy zrobić tak?

Kod:

Control Up :exec sudo ~/.skrypty/video_brightnessup.sh
Control Down :exec sudo ~/.skrypty/video_brightnessdown.sh

bo o ile wcześniej wysypywało mi brak dostępu, to teraz jest zero reakcji.

Brak reakcji spowodowany jest najpewniej tym, że te skrypty nic nie robiły (do czego już doszliśmy). Dopisz na samiuśkim końcu whoami i uruchom przez sudo /e/t/c w terminalu. Wynikiem powinno być root.

EDYTA: dwie drobne poprawki w skrypcie (patrz mój następny post).

Ostatnio edytowany przez Minio (2009.03.08 17:08:30)

Offline

 

#5 2009.03.08 16:41:20

parrotlarch
pijak
Skąd: Olsztyn
Zarejestrowany: 2007.08.28
Posty: 180
System: Debian stable, Ubuntu LTS
Fluxbox: 1.3.5-2

Re: Xev i regulacja jasności wyświetlania monitora

przypisałem twój skrypt do keys i teraz jestem informowany, że

Kod:

/home/lord/.skrypty/brightness.sh: line 12: (: missing ')'

wybacz, że tak zawracam tyłek, ale przepisuję bezmyślnie twoje pomoce i nie bardzo wiem, co robię.


Zdzisław Dyrman...zasadniczo

Offline

 

#6 2009.03.08 17:06:50

Minio
Electric Castle resident
Skąd: Brno, Česko
Zarejestrowany: 2006.11.22
Posty: 546
System: Debian Testing
Fluxbox: Plasma 5.10.5 ;) (Fb 1.3.5)
WWW

Re: Xev i regulacja jasności wyświetlania monitora

parrotlarch napisał(-a):

przypisałem twój skrypt do keys i teraz jestem informowany, że

Kod:

/home/lord/.skrypty/brightness.sh: line 12: (: missing ')'

Dziwne, bo o u mnie czepiał się nawiasów kwaratowych wink . Niemniej popraw pierwszą linijkę na

Kod:

#!/bin/bash

a 12 na

Kod:

elif [ "$1" = "down" ]; then

Jak widać zapomniałem ukośnika i spacji. Pisałem ten skrypt z głowy od razu do przeglądarki — dopiero teraz, jak zgłosiłeś błąd, wkleiłem do pliku i spróbowałem uruchomić smile .

Powinno być ok.

parrotlarch napisał(-a):

wybacz, że tak zawracam tyłek, ale przepisuję bezmyślnie twoje pomoce i nie bardzo wiem, co robię.

No spoko. Generalnie ten skrypt:
1. Czyta aktualną wartość jasności z pliku.
2.a Jeżeli jako argument podano „up”, zwiększa ją o 10. Jeżeli w rezultacie otrzyma wielkość większą niż 100 albo równą 90, ustawia ją na 100
2.b Jeżeli jako argument podano „down”, zmniejsza ją o 10. Jeżeli w rezultacie otrzyma wielkość mniejszą niż 40 ustawia ją na 40, jeżeli równą 90 — ustawia na 80
2.c Jeżeli nie podano żadnego argumentu lub podano coś innego niż up lub down, wyświetla króciutką pomoc i kończy pracę.
3. Zamienia w wiadomym pliku aktualną wartość jasności ze starej na nową, otrzymaną w wyniku powyższych obliczeń.

Skrypt można by zmodyfikować żeby sam czytał levels i w swoich operacjach pozostawał wśród jego wartości, ale osobiście mi się nie chce i nie czuję potrzeby. Dlatego chwilowo nadaje się do użytku tylko na Twoim laptopie wink .

Offline

 

#7 2009.03.08 18:42:03

parrotlarch
pijak
Skąd: Olsztyn
Zarejestrowany: 2007.08.28
Posty: 180
System: Debian stable, Ubuntu LTS
Fluxbox: 1.3.5-2

Re: Xev i regulacja jasności wyświetlania monitora

Brak ukośnika jakoś wychwyciłem sam (geniusz). Poprawiłem też 12 linijkę tak, jak wskazałeś.
I nic.
Jako jedyny komunikat dostaję właśnie wiadomość  z pomocą.
A czy w ogóle dobrze go przypisuję do keys?

Kod:

Control Up :exec sudo ~/.skrypty/brightness.sh
Control Down :exec sudo ~/.skrypty/brightness.sh

Ostatnio edytowany przez parrotlarch (2009.03.08 18:42:31)


Zdzisław Dyrman...zasadniczo

Offline

 

#8 2009.03.08 19:06:16

Minio
Electric Castle resident
Skąd: Brno, Česko
Zarejestrowany: 2006.11.22
Posty: 546
System: Debian Testing
Fluxbox: Plasma 5.10.5 ;) (Fb 1.3.5)
WWW

Re: Xev i regulacja jasności wyświetlania monitora

Brakuje Ci argumentu.

Kod:

Control Up :exec sudo ~/.skrypty/brightness.sh up
Control Down :exec sudo ~/.skrypty/brightness.sh down

Może faktycznie pomoc nie jest najszczęśliwsza, bo zazwyczaj w nawiasy kwadratowe umieszcza się argumenty opcjonalne, nie wymagane. Tutaj jednak chodziło o alternację (tylko jeden z nich może być podany; czy raczej ważny będzie ten podany jako pierwszy).

Offline

 

#9 2009.03.08 20:19:31

parrotlarch
pijak
Skąd: Olsztyn
Zarejestrowany: 2007.08.28
Posty: 180
System: Debian stable, Ubuntu LTS
Fluxbox: 1.3.5-2

Re: Xev i regulacja jasności wyświetlania monitora

to teraz czytam takie coś:

Kod:

sed: nie mozna otworzyć tymczasowego pliku /proc/acpi/video/NVID/LCD//sedQ3F5g0: Nie ma takiego pliku ani katalogu

i zamiast sedQ3F5g0 nowy ciąg znaków w miejsce kolejnego naciśnięcia kombinacji klawiszy z keys.

a propos: można te komunikaty wysłać do jakiegoś loga, żebym nie przepisywał za każdym razem ze zdjęcia zrobionego aparatem po pacnięciu Ctrl+Alt+Del?


Zdzisław Dyrman...zasadniczo

Offline

 

#10 2009.03.08 21:41:46

Minio
Electric Castle resident
Skąd: Brno, Česko
Zarejestrowany: 2006.11.22
Posty: 546
System: Debian Testing
Fluxbox: Plasma 5.10.5 ;) (Fb 1.3.5)
WWW

Re: Xev i regulacja jasności wyświetlania monitora

parrotlarch napisał(-a):

to teraz czytam takie coś:

Kod:

sed: nie mozna otworzyć tymczasowego pliku /proc/acpi/video/NVID/LCD//sedQ3F5g0: Nie ma takiego pliku ani katalogu

i zamiast sedQ3F5g0 nowy ciąg znaków w miejsce kolejnego naciśnięcia kombinacji klawiszy z keys.

Hmm...

/proc/ jest wirtualnym systemem plików i rządzi się swoimi prawami. Jednym z nich jest to, że nie można w nim tworzyć nowych plików od tak (a właśnie to próbuje zrobić sed z flagą -i). Drugim że nie można plików usuwać (i dlatego nie można tam nic przenieść nawet na miejsce już istniejącego pliku).

/proc/ jest dziwne i nie mam z nim wielu doświadczeń. Jeżeli możesz zaloguj się jako root i wykonaj następujące polecenia:

Kod:

cat /proc/acpi/video/NVID/LCD/brightness
echo -n 80 > /proc/acpi/video/NVID/LCD/brightness
cat /proc/acpi/video/NVID/LCD/brightness

(Tak, tam są dwa koty.) Wklej tutaj wyniki.

(Mam powody przypuszczać że wcześniej się pomyliłem, i nie chciałbym teraz sugerować zmiany jasności w sposób bardziej skomplikowany niż trzeba.)

parrotlarch napisał(-a):

a propos: można te komunikaty wysłać do jakiegoś loga, żebym nie przepisywał za każdym razem ze zdjęcia zrobionego aparatem po pacnięciu Ctrl+Alt+Del?

Oczywiście. Uruchamiaj poprzez:

Kod:

Control Up :ExecCommand sudo ~/.skrypty/brightness.sh up >>/home/lord/.brightness-log 2>&1

(Chodzi o te znaczki na samym końcu.) Wszelkie informacje znajdą się w /home/lord/.brightness-log. Będą do pliku dopisywane, więc będziesz miał też wgląd w starsze (oczywiście nie starsze niż ta linijka wink ).

Offline

 

#11 2009.03.08 22:28:15

parrotlarch
pijak
Skąd: Olsztyn
Zarejestrowany: 2007.08.28
Posty: 180
System: Debian stable, Ubuntu LTS
Fluxbox: 1.3.5-2

Re: Xev i regulacja jasności wyświetlania monitora

Z logiem od razu inczej. Dzięki.
Wyniki poleceń:

Kod:

root@debian:/home/lord# cat /proc/acpi/video/NVID/LCD/brightness
levels:  40 50 60 70 80 100
current: 60
root@debian:/home/lord# echo -n 80 > /proc/acpi/video/NVID/LCD/brightness
root@debian:/home/lord# cat /proc/acpi/video/NVID/LCD/brightness
levels:  40 50 60 70 80 100
current: 80

No zmieniło się coś, ale czy nie powinno mi się jaśniej przed oczami przez to zrobić?
Próbowałem wpisywać inne wartości i jasność się nie zmienia, mimo, że zmienia się zawartość tego pliczku.


Zdzisław Dyrman...zasadniczo

Offline

 

#12 2009.03.08 23:23:48

Minio
Electric Castle resident
Skąd: Brno, Česko
Zarejestrowany: 2006.11.22
Posty: 546
System: Debian Testing
Fluxbox: Plasma 5.10.5 ;) (Fb 1.3.5)
WWW

Re: Xev i regulacja jasności wyświetlania monitora

parrotlarch napisał(-a):

Kod:

root@debian:/home/lord# cat /proc/acpi/video/NVID/LCD/brightness
levels:  40 50 60 70 80 100
current: 60
root@debian:/home/lord# echo -n 80 > /proc/acpi/video/NVID/LCD/brightness
root@debian:/home/lord# cat /proc/acpi/video/NVID/LCD/brightness
levels:  40 50 60 70 80 100
current: 80

W takim razie wystarczy ostatnią linijkę (sed) zamienić na:

Kod:

echo -n $NEW > /proc/acpi/video/NVID/LCD/brightness

Zaraz podmienię w moim skrypcie w jednym z poprzednich postów

parrotlarch napisał(-a):

No zmieniło się coś, ale czy nie powinno mi się jaśniej przed oczami przez to zrobić?

Masz rację — powinno smile . Jednak w tej materii nie jestem już w stanie Ci pomóc. Najlepiej gdybyś skonultował z innymi użytkownikami takiego laptopa — być może nie jest on jeszcze obsługiwany. Ewentualnie potrzebujesz oporogramowania w innej (pewnie nowszej) wersji.

Offline

 

#13 2009.03.09 00:16:29

parrotlarch
pijak
Skąd: Olsztyn
Zarejestrowany: 2007.08.28
Posty: 180
System: Debian stable, Ubuntu LTS
Fluxbox: 1.3.5-2

Re: Xev i regulacja jasności wyświetlania monitora

Teraz ładnie nie ma żadnych błędów, ale i nic się nie dzieje.

Minio napisał(-a):

Jednak w tej materii nie jestem już w stanie Ci pomóc. Najlepiej gdybyś skonultował z innymi użytkownikami takiego laptopa — być może nie jest on jeszcze obsługiwany. Ewentualnie potrzebujesz oporogramowania w innej (pewnie nowszej) wersji.

Wielkie dzięki za poświęcony czas. Właśnie wpadłem na nowy szczwany plan, żeby przypisać do keys ustawienia jasności z nvidia-settings. W gui na pewno da się to zmieniać. W wolnej chwili poczytam mana, bo z pobierznego obrzucenia go wzrokiem - jest tam jakiś opis opcji sterowania programem w trybie tekstowym.


Zdzisław Dyrman...zasadniczo

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson