博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LINUX下调节屏幕亮度(Intel核显)-续
阅读量:6228 次
发布时间:2019-06-21

本文共 1246 字,大约阅读时间需要 4 分钟。

 之前写的博文里已经实现了屏幕亮度的调节(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,如需转载请自行联系原作者

你可能感兴趣的文章
【转】iOS Programming – 触摸事件处理
查看>>
Handler的介绍及实例
查看>>
Vitamio FAQ(2012-11-20 )
查看>>
程序集引用里面的“Culture=neutral”是什么意思?
查看>>
批处理学习笔记2 - 编写批处理的for循环
查看>>
【web前端面试题整理07】我不理解表现与数据分离。。。
查看>>
C++一些注意点之转换操作符
查看>>
以JTextPanel为例Swing的鼠标事件详解
查看>>
【转】python中的lambda函数
查看>>
HashSet中实现不插入重复的元素
查看>>
atitit.破解 拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结...
查看>>
mongodb用户授权
查看>>
操作系统学习基本概念汇总
查看>>
RESTful架构详解
查看>>
linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg)
查看>>
用户IP地址的三个属性的区别(HTTP_X_FORWARDED_FOR,HTTP_VIA,REM_addr
查看>>
编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议11~15)...
查看>>
华为OJ平台试题 ——数组:整形数组合并
查看>>
ORA-01410: 无效的 ROWID
查看>>
【Spark】Spark Streaming + Kafka direct 的 offset 存入Zookeeper并重用
查看>>