Функциональные клавиши контрастности ноутбука
На моем глянцевом ЖК-ноутбуке с узким углом обзора, в дополнение к яркости, я хотел бы иметь возможность регулировать контрастность, нажимая функциональную клавишу.
В командной строке консоли:
~ $ xgamma
возвращает:
Red 0.900, Green 0.900, Blue 0.900
Я хотел бы создать командную строку, которая принимает последнее возвращенное поле 0,900, умножить его на 1,1 (чтобы получить 0,990) и использовать этот результат в качестве входного значения для:
~ $ xgamma -gamma 0.990
Командная строка в соответствии с:
~$ xgamma | last / 1.1 | xgamma -gamma
Затем, используя мою раскладку клавиатуры в качестве примера и используя зависимое от дистрибутива: Control Center > Keyboard Shortcuts, мы можем определить функциональную клавишу ShiftF5 более контрастной над существующей функциональной клавишей яркости FnF5. Для меньшей контрастности умножьте на 1,1
1 ответ
Решение Фортрана.
Из домашнего каталога Linux создайте подкаталог /mygamma/
Каталог mygamma содержит шесть файлов:
2 сценария программы Фортран: contrastdown.f90
а также contrastup.f90
, их исполняемые файлы gammadown
а также gammaup
и файл Шебанга xgammasave
который сохраняет текущее значение xgamma в текстовый файл xgammaval.txt
Файл xgammasave выглядит так:
#!/bin/bash
xgamma |& tee ~/mygamma/xgammaval.txt
contrastup.f90
файл выглядит так:
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
а также 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
Сделать исполняемые файлы Фортрана gammaup
а также gammadown
:
~/mygamma $ gfortran contrastup.f90 -o gammaup
~/mygamma $ gfortran contrastdown.f90 -o gammadown
В зависимости от разновидности Linux, в Центре управления> Сочетания клавиш, в разделе "Пользовательские сочетания клавиш" выберите "Добавить", в поле имени введите имя сочетания клавиш "Повышение гаммы" и в командной строке введите /home/my_name/mygamma/gammaup
и аналогично для клавиши "нижний контраст" с командой /home/my_name/mygamma/gammadown
На моем ноутбуке FnF6 и FnF5 - клавиши увеличения / уменьшения яркости по умолчанию, теперь над ними вновь определены клавиши ShiftF6 и ShiftF5 - клавиши контрастности вверх / вниз. Винтажные черно-белые фильмы теперь красиво смотрятся на глянцевом экране:)
Может ли решение Fortran быть Code Golf
меньше строк.