linux 灰度显示grayscale

68 篇文章 5 订阅
博主因长时间使用电脑导致眼部疲劳,尝试将显示器设置为灰度模式,模拟墨水屏效果以减轻眼睛不适。通过在macOS和Linux上设置灰度显示,博主发现这种方法有效缓解了眼睛疲劳,并分享了具体的操作步骤和shell脚本,以便在不同系统间切换灰度显示。
摘要由CSDN通过智能技术生成

之前我在使用macOS的时候,非常喜欢使用灰度显示界面。到底是什么原因让我有这么“变态”的需求。
下面听听我的故事,当时不重要,可以跳过。

是这样的,因为我是程序员,算上电脑+手机,一天但用屏幕的时候超过10小时。我的眼睛经常出现疲劳的情况。有这么一阵子,我的眼皮一直在跳,连接跳了两个多月,让我心神不宁。我知道肯定是用眼过度导致的,但是我又没有什么办法。毕竟我的工作就是这样。

退而求其次,我就想购买一款比较护眼的显示器。提到护眼,大家可能会想到墨水屏的电纸书。我找了一下,市面上很少有墨水屏的显示器。就算有,我也担心自己会适应不了,黑白屏的效果。所以我就尝试把我的显示器调整成黑白的(灰度),来模拟墨水屏的效果,起初的目的只是为了,测试我是否能适应黑白屏。

刚开始从彩色屏切换到黑白屏时,真的不习惯。后来慢慢的我就习惯了,奇妙的事情就发生了。使用了一周黑白屏后,我的眼睛舒适了,眼睛酸涩感明显减轻。眼皮连接跳动2个月的症状也消失了。

macOS/iOS启用黑白显示

比较简单,系统设置中就有。找到色彩滤镜就行了。因为写这篇文章的时候,手头没有macOS的电脑,我截图了iOS的设置。两者基本相同。
在这里插入图片描述

linux

我使用的是archlinux,我以它为例。
参考:
https://wiki.archlinux.org/title/Picom#Grayscale

安装picom

pacman -S picom

创建glsl文件

我的路径是/home/itkey/.soft/shader/file.glsl
内容如下:

uniform float opacity;
uniform bool invert_color;
uniform sampler2D tex;

void main() {
	vec4 c = texture2D(tex, gl_TexCoord[0].xy);
	float g = 0.2126 * c.r + 0.7152 * c.g + 0.0722 * c.b;   // CIELAB luma, based on human tristimulus.
	c = vec4(vec3(g), c.a);
 	if (invert_color)
		c = vec4(vec3(c.a, c.a, c.a) - vec3(c), c.a);
	c *= opacity;
	gl_FragColor = c;
}

显示灰度

picom --backend glx --glx-fshader-win "$(cat /home/itkey/.soft/shader/file.glsl)"

执行完这个代码以后显示器的所有画面就是黑白显示了。

这种方式跟macOS有一点小的区别。黑白模式如果截图,截图下来的内容也是黑白的。而macOS中只是你看到的是黑白的,截图依然是彩色的。

还有一个问题,当快速切换窗口时,会出现淡入淡出的效果。

变回彩色

当我们需要截图或者要临时调色时,如何切换到彩色呢?其实结束进程就可以了。

killall -q picom

shell脚本

能否把这能的内容合并成一个shell脚本呢?以下是我的脚本仅供参考 。

#!/usr/bin/env bash

GRAYSCALE=$(cat <<-END
uniform bool invert_color;
uniform sampler2D tex;

void main() {
	vec4 c = texture2D(tex, gl_TexCoord[0].xy);
	float g = 0.2126 * c.r + 0.7152 * c.g + 0.0722 * c.b;   // CIELAB luma, based on human tristimulus.
	c = vec4(vec3(g), c.a);
 	if (invert_color)
		c = vec4(vec3(c.a, c.a, c.a) - vec3(c), c.a);
	gl_FragColor = c;
}

END
)

# 关闭掉之前已经存在的进程 
killall -q picom 
if [[ $MODE == "grayscale" ]]; then
	#后台运行并输入日志到/home/itkey/.soft/log/picom.log
	nohup picom "$@" --glx-fshader-win "$GRAYSCALE" --backend glx > /home/itkey/.soft/log/picom.log 2>&1 &
else
    nohup picom "$@" > /home/itkey/.soft/log/picom.log 2>&1 &
fi

使用方法 :
启用灰度

MODE=grayscale picom.sh

禁用灰度

MODE=normal picom.sh

在i3wm中设置 快捷键开启黑白显示

#切换到黑白显示
bindsym $mod+Shift+g exec MODE=grayscale /home/itkey/.soft/bin/picom.sh

每次点击可以切换 。
参考了:https://raw.githubusercontent.com/kantord/compton-grayscale-reading-mode/master/compton.sh

参考

https://github.com/kantord/compton-grayscale-reading-mode

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值