A solução Fortran.
No diretório inicial do Linux, crie um subdiretório /mygamma/
O diretório mygamma contém seis arquivos: 2 scripts de programa fortran: contrastdown.f90
and contrastup.f90
, seus executáveis gammadown
e gammaup
, e um arquivo shebang xgammasave
que salva o valor atual do xgamma em um arquivo de textoxgammaval.txt
O arquivo xgammasave é assim:
#!/bin/bash
xgamma |& tee ~/mygamma/xgammaval.txt
O contrastup.f90
arquivo fica assim:
program contrastup
character(len=20):: string,string2,string3 ! variable type declarations
real(kind(1.0)) :: x
call system('/home/my_name/mygamma/xgammasave') ! write the xgamma value to a file
open(unit=2,file='/home/my_name/mygamma/xgammaval.txt',action='read',status='old')
read(unit=2,fmt=*)string,string2,string3 ! read the file
read(string3,*)x ! make a real from a string
x=x/1.2 ! change the contrast
if (x .le. 0.1) goto 10 ! xgamma value can not be less than 0.1
write(string,*)x ! make a string from a real
string2='xgamma -gamma ' // trim(string) ! concatenate 2 strings
call system(string2) ! pass the string to the command line
10 close(unit=2)
end program contrastup
e contrastdown.f90
program contrastdown
character(len=20):: string,string2,string3 ! variable type declarations
real(kind(1.0)) :: x
call system('/home/my_name/mygamma/xgammasave') ! write xgamma value to a file
open(unit=2,file='/home/my_name/mygamma/xgammaval.txt',action='read',status='old')
read(unit=2,fmt=*)string,string2,string3 ! read the record
read(string3,*)x ! make a real from a string
x=x*1.2 ! change the contrast
if (x .ge. 10.0) goto 10 ! xgamma value can not be greater than 10.0
write(string,*)x ! make a string from a real
string2='xgamma -gamma ' // trim(string) ! concatenate two strings
call system(string2) ! pass the string to the command line
10 close(unit=2)
end program contrastdown
Torne os arquivos executáveis do Fortran gammaup
e gammadown
:
~/mygamma $ gfortran contrastup.f90 -o gammaup
~/mygamma $ gfortran contrastdown.f90 -o gammadown
Dependendo da versão do Linux, em Control Center> Atalhos de teclado, em 'Custom Shortcuts', selecione 'add', no campo name digite o nome da tecla de atalho 'raise gamma' e, na caixa de comando, insira o /home/my_name/mygamma/gammaup
mesmo 'low contrast' chave com comando/home/my_name/mygamma/gammadown
No meu laptop FnF6e FnF5as teclas de aumento / redução do brilho padrão, agora acima delas, as teclas recém-definidas ShiftF6e ShiftF5as teclas de aumento / redução do contraste. Os filmes em preto e branco do vintage agora ficam bem na tela brilhante :)
A solução Fortran pode ser Code Golf
em menos linhas?