Linux 调节并自动保存屏幕亮度,重启有效

2023-05-16

        用过几个Linux的发行版,发现在笔记本上每次调节亮度后,不能固定下来,重新开机后就又恢复最大亮度了。

        之前一直用的是网上流行的方法,即往etc/rc.local文件写入命令,使其每次重新开机都会将亮度值写入特定的文件以控制屏幕亮度。虽然能满足大多数情况下的需要,因为人们一旦找到适合自己的亮度后,一般也不会再变了。但是这种方法每次开机都是将事先固定好了的亮度值写入设备文件的。

        昨晚搞了一晚上,搞到了凌晨三点,终于解决了这个问题。我的思路是,电脑开机后,亮度是可调节的,并且这个亮度值会写入特定的文件以控制屏幕亮度,但是这个文件是内存文件,就是说关机后就消失了,所以亮度值不是保存在持久文件中的。那么,在关机的时候,读取这个亮度值并写入持久文件中,再在开机的时候从文件中读入,写入控制设备的内存文件中,不就可以了吗?

        首先,写一个脚本文件:savelight

        #!/bin/bash
echo "                                   SAVING THE LIGHT VALUE"
echo "                                   SAVING THE LIGHT VALUE"
echo "                                   SAVING THE LIGHT VALUE"
echo "                                   SAVING THE LIGHT VALUE"
echo "                                   SAVING THE LIGHT VALUE"
echo "                                   SAVING THE LIGHT VALUE"
for line in `cat /sys/class/backlight/intel_backlight/brightness`
do
echo $line > /root/.blacklight
echo vsv > /root/.baa
done

       /sys/class/backlight/intel_backlight/brightness,此文件保存有屏幕当前的亮度值,当手动调节亮度后,此文件的值也随之改变。脚本文件savelight首先echo几行内容是我做测试用的,之后将/sys/class/backlight/intel_backlight/brightness文件中的亮度值读入line中,最后将其写入/root/.blacklight文件中。此脚本若在关机或重启的时候执行,就达到我的目的了。

        将下面的脚本命令加入/etc/rc.local:

for line in `cat /root/.blacklight`
do
echo $line > /sys/class/backlight/intel_backlight/brightness
done

        首先,读入/root/.blacklight文件中的值,然后将其写入/sys/class/backlight/intel_backlight/brightness文件,/sys/class/backlight/intel_backlight/brightness文件控制屏幕亮度,若这几行脚本能在开机的时候得到执行,那么就达到我的目的了。

        以上的过程简单来说就是,关机的时候将当前屏幕亮度值保存下来,开机的时候再读取并写入设备内存文件。思路简单清晰,剩下来的就是怎么实现的问题了。

        上面的脚本命令可以直接写入rc.local文件,需要root权限。因为此文件会在开机的时候得到执行。但是事件证明,还是将其写入/etc/init.d/bootlog文件中好。

        那么,如何让系统关机的时候自动执行savelight脚本文件呢?网上搜索了资料,都是关于运行级别的,繁琐,也没有成功,就放弃了。感觉就是让系统关机的时候自动执行一段脚本而已,能有多复杂?经实验,最终发现,在/etc/init.d/umountroot脚本文件中开头,一定要是开头处,因为此时系统还没有卸载根文件系统,若卸载了,就不能进行文件操作了,加入一行代码:bash /root/savelight。我是将savelight放在了/root目录下。

        ok,以上操作都需要root权限。关于/etc/init.d/umountroot再说几点,这个文件和系统的运行级有关,/etc/init.d/目录下的多数文件都是在系统运行级别发生改变的时候执行的,有的开启服务,有的关闭服务,有开就有关,这个多数都是一一对应。开始的时候,我v把bash /root/savelight这行代码放在了apache2这个文件中,我的本意是让其关机时执行,但是这个脚本是开机和关机的时候都会执行的,关机的时候没有问题,但是开机的时候,再执行savelight脚本就不对了。我也尝试过将其写入halt和reboot文件,但是这也是不行的,因为savelight脚本会进行文件操作,而执行halt或者reboot的时候,已经将文件系统卸载了。所以最终我选择了umountroot文件,写在文件开始,也就是文件系统卸载之前。

        ok,就这样就解决问题了。每次开机后可随意调节屏幕亮度,再次重启后亮度和之前一致。感觉这个问题不是很难解决,但是不知道为什么Linux发行版公司没有给出系统级的方案。难道是为了锻炼Linux用户?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 调节并自动保存屏幕亮度,重启有效 的相关文章

  • 推荐用于小型站点的 IRC 服务器 (ircd)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 情况 我想使用 IRC 机器人作为我正在研究的其他代码的通用通信接口 服务器硬件陈旧且内存不足 但运行在相对最新的 Debian GNU
  • 这种 bash 文件名提取技术有何用途?

    我有一部分 bash 脚本正在获取不带扩展名的文件名 但我试图了解这里到底发生了什么 是做什么用的 有人可以详细说明 bash 在幕后做了什么吗 如何在一般基础上使用该技术 bin bash for src in tif do txt sr
  • Linux“屏幕”的 Windows 等效项还是其他替代方案?

    我正在寻找一种在 Windows 环境中控制程序的方法 我希望它与 Linux 软件有点相似 screen 我搜索的原因是我需要使用标识符启动一个程序 在 Windows 上 这样我以后就能够关闭该特定程序 而无需关闭其他任何程序 即使实际
  • 从 php/linux 获取 pdf 的布局模式(横向或纵向)

    给定一个 PDF 如何使用 PHP lib 或 Linux 命令行工具获取 PDF 的布局模式 或相对宽度 高度 Using http www tecnick com public code cp dpage php aiocp dp tc
  • 未找到 Gem 命令

    我已经在 Ubuntu 10 10 32 位上安装了 gem apt get install gem y 但当我尝试跑步时 gem install something gem 我收到未找到命令的错误 bash gem command not
  • 如何重命名 .tar.gz 文件而不提取内容并在 UBUNTU 中创建新的 .tar.gz 文件?

    我有一个命令将创建一个新的 tar gz现有文件中的文件 sudo tar zcvf Existing tar gz New tar gz 该命令将创建一个新的New tar gz从现有的文件Existing tar gz file 谁能告
  • 如何从远程 ssh 连接上运行的 tmux(复制模式)复制到本地剪贴板

    我通过 OS X 上的 VirtualBox 运行 Linux 我通过在无头状态下运行虚拟机 然后使用端口转发 sshing 到 Linux 机器来实现这一点 现在 无论复制到我的虚拟机上的剪贴板 我都可以粘贴到我的远程 ssh 会话上 但
  • ubuntu 的 CSS 更少(并且自动编译)? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我尝试过 simples 但现在 l
  • Python将文件从Linux复制到WIndows

    我正在构建一个网站 该网站有一个表单 可以捕获用户数据并在用户数据上运行一些cgi cgi 的第一步是需要将文件从 Linux Web 服务器复制到 Windows 计算机 服务器将使用 Active Directory 角色帐户作为复制凭
  • 裸机交叉编译器输入

    裸机交叉编译器的输入限制是什么 比如它不编译带有指针或 malloc 的程序 或者任何需要比底层硬件更多的东西 以及如何才能找到这些限制 我还想问 我为目标 mips 构建了一个交叉编译器 我需要使用这个交叉编译器创建一个 mips 可执行
  • 在非实时操作系统/内核上执行接近实时任务的最佳方法是什么?

    在一台 GNU Linux 机器上 如果想要执行 实时 亚毫秒级时间关键 任务 您几乎总是必须经历漫长 复杂且容易出现问题的内核补丁过程 以提供足够的支持 1 http en wikipedia org wiki RTLinux Backg
  • Bash - 比较 2 个文件列表及其 md5 校验和

    我有 2 个列表 其中包含带有 md5sum 检查的文件 即使文件相同 列表也具有不同的路径 我想检查每个文件的 md5 和 我们正在讨论数千个文件 这就是为什么我需要脚本来仅显示差异 第一个列表是普通列表 第二个列表是文件的当前状态 我想
  • 了解 Linux oom-killer 日志

    我的应用程序被 oom killer 杀死了 它是在实时 USB 上运行的 Ubuntu 11 10 无需交换 PC 具有 1 Gig 的 RAM 唯一运行的应用程序 除了所有内置的 Ubuntu 东西 是我的程序 flasherav 请注
  • 如何使用 go1.6.2 构建 linux 32 位

    有没有任何组合GOARCH and GOOS我可以设置哪些值来构建 ELF 32 位二进制文 件 GOOS linux and GOARCH 386 更多示例 架构 32 bit gt GOARCH 386 64 bit gt GOARCH
  • 套接字发送调用被阻塞很长时间

    我每 10 秒在套接字上发送 2 个字节的应用程序数据 阻塞 但发送调用在下面的最后一个实例中被阻塞超过 40 秒 2012 06 13 12 02 46 653417 信息 发送前 2012 06 13 12 02 46 653457 信
  • 在嵌入式系统上将内核控制台发送到哪里?

    我正在开发一个嵌入式系统 该系统当前通过串行端口 1 上的控制台输出启动 Linux 使用启动加载程序中的控制台启动参数 然而 最终我们将使用这个串行端口 内核控制台输出的最佳解决方案是什么 dev null 能否以某种方式将其放在 pty
  • 从哪里获取 iostream.h

    我正在尝试在 Linux 中做一些事情 但它抱怨找不到 iostream h 我需要安装什么才能获取此文件 这个标准头的正确名称是iostream没有扩展名 如果您的编译器仍然找不到它 请尝试以下操作 find usr include na
  • 如何通过不同的接口路由 TCP/IP 响应?

    我有两台机器 每台机器都有两个有效的网络接口 一个以太网接口eth0和 tun tap 接口gr0 目标是使用接口在机器 A 上启动 TCP 连接gr0但然后让机器 B 的响应 ACK 等 通过以太网接口返回 eth0 因此 机器 A 发出
  • 为什么无论 -rdynamic 如何,backtrace 都不包含 Objective-C 符号?

    Update 我正在 Linux 上使用 GNU 运行时 问题是not发生在带有 Apple 运行时的 MacOS 上 更新2 我在 MacOS 上编译了 GNU 运行时并用它构建了示例 该错误确实not发生在带有 GNU 运行时的 Mac
  • 为什么使用signalfd无法捕获SIGSEGV?

    我的系统是ubuntu 12 04 我将示例修改为man 2 signalfd 并添加sigaddset mask SIGSEGV 在示例中 但我无法得到输出SIGSEGV被生成 这是一个错误吗glibc 源代码片段如下 sigemptys

随机推荐

  • bash提示符的配置:

    bash提示符的配置 xff1a 如果您很容易使 shell 提示行变得色彩绚烂斓且带有更多信息 xff0c 为什么还要坚持用单调的标准 shell 提示行呢 xff1f 在这篇技巧中 xff0c Daniel Robbins 将说明如何获
  • Linux线性地址空间的划分及内核寻址方式

    今天研究Linux1 2内核时 xff0c 注意到该版本中的PAGE OFFSET宏被定义为0 xff0c 考虑到进程的地址空间被划分为3G的用户态地址空间和1G的内核态地址空间 xff0c 于是深入的研究了一下这个问题 一开始我只是疑惑
  • linux 最简单的模块的编写和运行

    第一次动手编写一个内核模块 xff0c 但是查找了许多资料没有一个可以完美通过编译的 xff0c 郁闷 xff0c 最后还是解决了 xff0c 分享出来 首先是hello c include lt linux kernel h gt Nee
  • 截获或替换linux系统调用

    直接上代码吧 xff1a hello c include lt linux kernel h gt Needed by all modules include lt linux module h gt Needed for KERN inc
  • oracle临时表实际应用

    xff08 这段是后面添加的 xff1a 临时表 xff0c 在实际应用中 xff0c 其实和nologging的固定表 xff0c 是差不多的 xff0c 都是中间表 xff0c 所以这里为什么添加这段话 xff0c 是让自己记得 xff
  • linux sys_call_table 初始化

    前几天看内核中系统调用代码 xff0c 在系统调用向量表初始化中 xff0c 有下面这段代码写的让我有点摸不着头脑 xff1a const sys call ptr t sys call table NR syscall max 43 1
  • Linux gcc 利用反汇编来研究C语言函数堆栈的分配方式

    越来越感觉学习C和汇编才是最能接近计算机本质的途径 所以 xff0c 今天开始研究汇编了 xff0c 先从gcc反汇编开始 首先是下面的C代码 xff1a include lt stdio h gt int sum int a int b
  • ubuntu linux GAIM QQ

    sudo add apt repository ppa lainme pidgin lwqq sudo apt get update sudo apt get install pidgin lwqq sudo apt get install
  • Ubuntu 14.10 播放avi视频闪屏的简单解决方案

    昨天将ubuntu升级到了14 10版本 xff0c 没有得到想象中的视觉效果 但是 xff0c 后来却发现不能播放avi视频了 xff0c 尝试了各种播放器 xff0c 都无解 xff0c 总是闪屏 xff0c 而播放flv格式的视频就没
  • Ubuntu删除Compiz之后 恢复方法

    因为ubuntu14 10不能播放avi的问题纠结了很久 xff0c 最终使用转码软件解决的 但是还是不甘心啊 xff0c 总想解决这个问题或者知道问题的原因 偶然看到了系统中的compiz软件 xff0c 想到在网上看到的有人说是因为系统
  • Ubuntu14.10 unity-tweak-tool 不能正常打开的解决方法

    新的系统 xff0c 风格都变了 xff0c 折腾了一晚上 xff0c 想安装个苹果主题 xff0c 可是unity tweak tool 这个东西就是死活打不开 这么晚了 xff0c 不想多说了 xff0c 直接给解决方法吧 xff1a
  • 安装ubuntu14.04后做的一些事情

    ubuntu又折腾坏了 xff0c 于是有重新装系统了 装完之后 xff0c 美化美化 xff1a 1 本来嫌每次都sudo麻烦 xff0c 于是想将我的帐号设置为sudo不用输入密码 xff0c 但是编辑sudoer文件的时候 xff0c
  • LFS编译GCC GNU_USER_TARGET_OS_CPP_BUILTINS not declared in this scope

    gcc v 发现使用的gcc版本是4 7 安装gcc 4 4 or 4 3 xff0c 重新链接 xff0c 问题解决 apt get install gcc 4 4 g 43 43 4 4 进入 usr bin cd usr bin 建个
  • 将LFS系统通过grub装到优盘上启动

    最近在搞LFS xff0c 就是通过自己动手 xff0c 亲自编译源代码的方式 xff0c 建立自己的linux发行版 通过这个过程可以详细的深入了解linux内部的工作方式 xff0c 对理解操作系统的机制有很大的帮助 做这个项目 xff
  • kali linux 解决风扇猛转

    之前玩ubuntu的时候 xff0c 就感觉风扇猛转个不停 xff0c 之前是通过安装nvidia的闭源驱动 xff0c 然后再安装一个管理双显卡的工具解决的 xff0c 确实风扇及立马安静了下来 http www linuxidc com
  • PHP下十六位数值转IP地址

    PHP函数提供的long2ip和ip2long是IP和整形数值之间的转换 xff0c 没有和十六位数值的转换 xff0c 所以写下这个函数 function ntoip iphex len 61 strlen iphex 得到16进制字符串
  • linux系统备份命令

    tar cvpzf backup tgz exclude 61 proc exclude 61 lost 43 found exclude 61 backup tgz exclude 61 mnt exclude 61 sys exclud
  • 硬盘寻址能力的变换

    1 8G限制 硬盘寻址的限制 硬盘最初使用的寻址方法是柱面 磁头 扇区CHS xff08 Cylinder Head Sector xff09 xff0c 也称为3D模式 xff0c 是硬盘最早采用的寻址模式 通过分别指定柱面 磁头 扇区来
  • 关于动态new二维数组的问题

  • Linux 调节并自动保存屏幕亮度,重启有效

    用过几个Linux的发行版 xff0c 发现在笔记本上每次调节亮度后 xff0c 不能固定下来 xff0c 重新开机后就又恢复最大亮度了 之前一直用的是网上流行的方法 xff0c 即往etc rc local文件写入命令 xff0c 使其每