LINUX下调节屏幕亮度(Intel核显)-续

简介:

 之前写的博文里已经实现了屏幕亮度的调节(http://jianshusoft.blog.51cto.com/2380869/810780),但是毕竟没有和Fn快捷键绑定,略有遗憾。所以写个小程序让键盘来控制亮度。原理很简单,监控acpi_video0目录下的brightness文件,如果有改动,则修改到intel_backlight下的brightness。而且把密码隐藏在了程序里,不用担心shell脚本会漏露密码了。

 
  1. #include <stdlib.h> 
  2. #include <unistd.h> 
  3.  
  4.  
  5. int main() 
  6.     int fd = inotify_init(); 
  7.     if(fd == -1){ 
  8.         printf("inotify_init error!\n"); 
  9.         exit(-1); 
  10.     } 
  11.  
  12.     system("echo \"这里输入密码\" | sudo -S chmod 777 /sys/class/backlight/intel_backlight/brightness"); 
  13.  
  14.     inotify_add_watch(fd, "/sys/class/backlight/acpi_video0/brightness", IN_MODIFY); 
  15.  
  16.     inotify_event buf[1]; 
  17.     int size = sizeof(inotify_event) * 1; 
  18.  
  19.     int last = 0; 
  20.     char brightness[10]; 
  21.     while(read(fd, buf, size)){ 
  22.         FILE *source = fopen("/sys/class/backlight/acpi_video0/brightness""r"); 
  23.         if(fgets(brightness, 10, source) != NULL){ 
  24.             fclose(source); 
  25.  
  26.             int temp = (atoi(brightness) + 1) * 4882 / 10; 
  27.             if(last != temp ){ 
  28.                 last = temp; 
  29.                 sprintf(brightness, "%d", temp); 
  30.                 FILE *file = fopen("/sys/class/backlight/intel_backlight/brightness""w"); 
  31.                 fputs(brightness, file); 
  32.                 fclose(file); 
  33.  
  34.                 printf("changed %s \n", brightness); 
  35.             } 
  36.  
  37.             //每次按键会修改三次,所以忽略后两次 
  38.             //read(fd, buf, size); 
  39.             //read(fd, buf, size); 
  40.         } 
  41.  
  42.     } 
  43.  
  44.     int result = close(fd); 
  45.     printf("%d", result); 

 



本文转自 dogegg250 51CTO博客,原文链接:http://blog.51cto.com/jianshusoft/817443,如需转载请自行联系原作者


相关文章
|
7月前
|
Shell Linux C语言
【Shell 命令集合 系统设置 】⭐⭐⭐Linux 清除终端屏幕内容 clear命令 使用指南
【Shell 命令集合 系统设置 】⭐⭐⭐Linux 清除终端屏幕内容 clear命令 使用指南
147 0
|
Linux Shell Go
《Linux操作系统编程》第四章 屏幕编程器vi : 了解屏幕编辑器vi的概述和基本操作命令
《Linux操作系统编程》第四章 屏幕编程器vi : 了解屏幕编辑器vi的概述和基本操作命令
96 0
|
3月前
|
Linux API SoC
Linux电压和电流调节器框架 【ChatGPT】
Linux电压和电流调节器框架 【ChatGPT】
|
4月前
|
编解码 Linux 开发工具
Linux平台x86_64(麒麟|统信UOS)|aarch64(飞腾)如何实现摄像头|屏幕和麦克风|扬声器采集推送RTMP服务或轻量级RTSP服务
国产化操作系统的发展,减少了外部依赖,更符合国家安全标准,并可提升自主研发能力,促进产业链发展,满足定制开发能力,减少了外部技术封锁的风险,提高了国际竞争力,推动了产业升级。目前大牛直播SDK针对Linux平台x86_64架构和aarch64架构的RTMP推送模块和轻量级RTSP服务模块
|
Ubuntu 小程序 Linux
linux虚拟机手动安装VMware Tools使屏幕自适应
电脑装了双系统,但是,linux系统的使用率不是很高,而且这玩意没有镜像,一旦手残给整废了,还得重装系统,太费劲~ 我这就装了虚拟机,有啥软件,现在虚拟机上安装,或者测试,没有问题了,要是有问题,可以回滚镜像啊,不需要重装系统 测试没有问题,再装到另一个ubuntu中,这就相当于有了双保险。
150 0
|
Linux
linux 挂起后无法唤醒屏幕
linux 挂起后无法唤醒屏幕
105 0
|
Linux Android开发 开发者
[轻量级RTSP服务]Linux|麒麟操作系统下实现屏幕|系统声音采集
随着国产操作系统的推进,传统行业对Linux平台的呼声和需求越来越大,之前几年,我们发布了Linux平台运营商级的RTSP转RTMP推送模块、RTMP推送模块和RTSP、RTMP播放模块,前段时间,有开发者问我们,是不是可以在Linux平台实现轻量级RTSP服务,通过采集摄像头或者屏幕,在Linux平台实现类似于IPC的功能,便于第三方系统对接。
|
安全 Linux 开发工具
基于RTMP实现Linux|麒麟操作系统下屏幕|系统声音采集推送
Windows操作系统自问世以来,以其简单易用的图形化界面操作受到大众追捧,为计算机的普及、科技的发展做出了不可磨灭的功绩,也慢慢的成为人们最依赖的操作系统。在中国,90%以上的办公环境都是Windows,学校和各种培训班的培训内容也都是Windows,Windows操作系统已经渗入到各行各业,人们已经习惯了Windows的界面和操作习惯,IT计算机和Windows已经被习以为常的画上了等号。
127 0
Linux: 2>/dev/null 解决大量屏幕输出
Linux: 2>/dev/null 解决大量屏幕输出
Linux: 2>/dev/null 解决大量屏幕输出
|
存储 编解码 Ubuntu
Linux第二课:Ubuntu 操作入门(内含:1Ubuntu 下打开终端+2 Linux 文件属性+3 设置屏幕+4 系统关机与重启+5.文件浏览器)
Linux第二课:Ubuntu 操作入门(内含:1Ubuntu 下打开终端+2 Linux 文件属性+3 设置屏幕+4 系统关机与重启+5.文件浏览器)
287 0
Linux第二课:Ubuntu 操作入门(内含:1Ubuntu 下打开终端+2 Linux 文件属性+3 设置屏幕+4 系统关机与重启+5.文件浏览器)