在我的光面窄视角 LCD 笔记本电脑上,除了亮度之外,我还希望能够通过按功能键来调整对比度。
在控制台命令提示符下:
~ $ 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
然后以我的键盘布局为例,使用发行版依赖的:控制中心 > 键盘快捷键,我们可以ShiftF5在现有的亮度功能键上方定义一个对比度更高的功能键FnF5。对比度较低时,乘以 1.1
答案1
FORTRAN 解决方案。
从 Linux 主目录创建一个子目录/mygamma/
mygamma 目录包含六个文件:2 个 fortran 程序脚本:contrastdown.f90
和contrastup.f90
、它们的可执行文件gammadown
和,以及一个 将当前 xgamma 值保存到文本文件的gammaup
shebang 文件xgammasave
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
制作 Fortran 可执行文件gammaup
并gammadown
:
~/mygamma $ gfortran contrastup.f90 -o gammaup
~/mygamma $ gfortran contrastdown.f90 -o gammadown
根据 Linux 风格,从控制中心 > 键盘快捷键,在“自定义快捷键”下,选择“添加”,在名称字段中输入快捷键名称“raise gamma”,在命令框中输入,/home/my_name/mygamma/gammaup
同样对于“lowercontrast”键使用命令/home/my_name/mygamma/gammadown
在我的笔记本电脑上FnF6,和 FnF5是默认的亮度调高/调低键,现在它们上方是新定义的ShiftF6和ShiftF5是对比度调高/调低键。老式黑白电影现在在光滑的屏幕上看起来很漂亮 :)
是否可以通过使用不同的、更合适的语言来简化 FORTRAN 解决方案。