台式机有亮度控制吗?

我正在使用Ubuntu Trusty tahr并且我注意到没有亮度控制(如滑块),在Windows中我将使用英特尔的图形媒体加速器来降低亮度,但这里看起来不可能。

我将使用我的电脑深夜学习和我的显示器的硬件按钮被淘汰,所以任何帮助将是apreciated。

在这个网站上 ,不久前我发现了一个很好的剧本。 这不是我的!

在此处输入图像描述

我从上网本开始使用它,运行Xubuntu ,似乎可以运行任何东西。

由于没有发布仅限链接的答案,这里是:

 #!/usr/bin/env python from gi.repository import Gtk import subprocess class BrightnessScale: def __init__(self): # get active monitor and current brightness self.monitor = self.getActiveMonitor() self.currB = self.getCurrentBrightness() def initUI(self): # initliaze and configure window window = Gtk.Window() window.set_title('Brightness Scale') window.set_default_size(250, 50) window.set_position(Gtk.WindowPosition.CENTER) window.set_border_width(10) # slider configuration self.adjustment = Gtk.Adjustment(self.currB, 0, 100, 1, 10, 0) self.scale = Gtk.HScale() self.scale.set_adjustment(self.adjustment) self.scale.set_digits(0) # close Gtk thread on closing window window.connect("destroy", lambda w: Gtk.main_quit()) # setup event handler on value-changed self.scale.connect("value-changed", self.scale_moved) # add the scale to window window.add(self.scale) # show all components in window window.show_all() # close window on pressing escape key accGroup = Gtk.AccelGroup() key, modifier = Gtk.accelerator_parse('Escape') accGroup.connect(key, modifier, Gtk.AccelFlags.VISIBLE, Gtk.main_quit) window.add_accel_group(accGroup) def showErrDialog(self): self.errDialog = Gtk.MessageDialog(None, Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.OK, "Unable to detect active monitor, run 'xrandr --verbose' on command-line for more info") self.errDialog.set_title("brightness control error") self.errDialog.run() self.errDialog.destroy() def initStatus(self): if(self.monitor == "" or self.currB == ""): return False return True def getActiveMonitor(self): #Find display monitor monitor = subprocess.check_output("xrandr -q | grep ' connected' | cut -d ' ' -f1", shell=True) if(monitor != ""): monitor = monitor.split('\n')[0] return monitor def getCurrentBrightness(self): #Find current brightness currB = subprocess.check_output("xrandr --verbose | grep -i brightness | cut -f2 -d ' '", shell=True) if(currB != ""): currB = currB.split('\n')[0] currB = int(float(currB) * 100) else: currB = "" return currB def scale_moved(self, event): #Change brightness newBrightness = float(self.scale.get_value())/100 cmd = "xrandr --output %s --brightness %.2f" % (self.monitor, newBrightness) cmdStatus = subprocess.check_output(cmd, shell=True) if __name__ == "__main__": # new instance of BrightnessScale brcontrol = BrightnessScale() if(brcontrol.initStatus()): # if everything ok, invoke UI and start Gtk thread loop brcontrol.initUI() Gtk.main() else: # show error dialog brcontrol.showErrDialog() 

如何使用

  • 将脚本粘贴到空文件中,将其保存为~/bin brightness_set (您可能需要创建目录)。 让它可执行

  • 将其添加到快捷键:选择:系统设置>“键盘”>“快捷方式”>“自定义快捷方式”。 单击“+”并添加命令:

     brightness_set 
  • 退出并重新登录,它应该工作


编辑

要创建一个好的设置,可以通过在~/.local/share/applications添加.desktop文件,使Dash,Launcher或任何其他应用程序菜单中的滑块可用。

在此处输入图像描述

 [Desktop Entry] Type=Application Name=Brightness Scale Icon=/path/to/set_brightness.png Exec=brightness_set OnlyShowIn=Unity; 
  • Icon=行中,设置图标的路径。 Yopu可以选择您自己的图标,或者将下面的图标保存为set_brightness.png

    在此处输入图像描述

  • Exec=行中,假设脚本在$PATH (包括Ubuntu上的~/bin )和可执行文件

这不会使您的亮度function键工作,但它是一个workround。

使用以下命令安装Brightness Controller :使用以下命令安装Brightness Controller :

 sudo add-apt-repository ppa:apandada1/brightness-controller sudo add-apt-repository ppa:apandada1/brightness-controller sudo apt-get update sudo apt-get update 

对于具有最多4个监视器支持的版本1:

 sudo apt-get install brightness-controller sudo apt-get install brightness-controller-simple 

]([![亮度控制器版本1

对于具有多显示器支持和其他function的版本2:您可以使用其滑块控制两个显示器的亮度。

 sudo apt-get install brightness-controller 

在此处输入图像描述

基于xrandrzenity设置亮度更容易的zenity

 #! /bin/bash displays=($(xrandr | awk '/ connected /{print $1}')) if (( ${#displays[@]} > 1 )) then selected_display="$(zenity --list --title 'Select Display' --radiolist --column '' --column 'Display' $(xrandr | awk '/ connected /{print NR,$1}'))" else selected_display="${displays[0]}" fi zenity --scale --title "Set brightness of $selected_display" --value=100 --print-partial | while read brightness do xrandr --output "$selected_display" --brightness $(awk '{print $1/100}' <<<"$brightness"}) done 

安装Zenity和xrandr:

 sudo apt-get install x11-xserver-utils zenity 

将脚本保存在某处,使其可执行( chmod +x some-script.sh ),如果您愿意, 可以创建一个启动器 。 然后,您可以运行该脚本并使用此GUI来设置亮度。

截图:

显示选择亮度滑块

自定义亮度使用dbus和zenity scale控制脚本

在此处输入图像描述

介绍:

知道Ubuntu的Unity依赖于dbus服务来向内核和硬件传递许多设置和事件,我已经整理了一个依赖于dbuszenity --scale的简单bash脚本。

安装

脚本可以从这里复制,也可以从我的github导入。

要手动复制脚本:

  1. 打开gedit文本编辑器,复制代码,保存文件。 记住位置。 最好是在$HOME/bin文件夹中。
  2. 打开终端,导航到脚本位置。 发出chmod +x scriptName.sh
  3. 此时脚本已准备就绪。 您可以将其绑定到键盘快捷键 , 桌面或启动器 。

要从github导入:

  1. sudo apt-get install git
  2. 如果您没有$HOME/bin目录,请创建一个。
  3. cd $HOME/bin/; git clone https://github.com/SergKolo/sergrep.git

下载完成后, ubright.sh使用ubright.sh ,位于$HOME/bin/sergrep

脚本来源

 #!/usr/bin/env bash # ########################################################### # Author: Serg Kolo , contact: 1047481448@qq.com # Date: February 25th, 2016 # Purpose: Simple brightness control for Ubuntu Unity # Written for: https://askubuntu.com/q/583863/295286 # Tested on: Ubuntu 14.04 LTS ########################################################### # Copyright: Serg Kolo , 2016 # # Permission to use, copy, modify, and distribute this software is hereby granted # without fee, provided that the copyright notice above and this permission statement # appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE. # set -x ARGV0="$0" ARGC="$#" main () { local DISPLAY=:0 getPercentage | setBrightness > /dev/null # echo $(getPercentage) } setBrightness() { local PERCENTAGE read PERCENTAGE [[ -n "$PERCENTAGE" ]] || exit 1 dbus-send --session --print-reply\ --dest=org.gnome.SettingsDaemon.Power\ /org/gnome/SettingsDaemon/Power \ org.gnome.SettingsDaemon.Power.Screen.SetPercentage uint32:"$PERCENTAGE" } getPercentage() { local PCT PCT="$(zenity --scale --text='Choose brightness level')" if [[ -n PCT ]] then echo "${PCT}" fi } main 

附加信息:虽然这里的许多答案都依赖于xrandr ,但值得注意的是xrandr并不是一个“实际”的硬件解决方案,也就是说,它可能会改变屏幕的颜色,使其看起来不那么明亮,但实际的功耗来自屏幕没有减少。 来自xrandr手册页:

– 亮度亮度

将当前附加到输出的crtc上的gamma值乘以指定的浮点值。 适用于过亮或过暗的输出。 但是,这只是一个软件修改,如果您的硬件支持实际更改亮度,您可能更喜欢使用xbacklight。

这个答案依赖于dbus接口,它改变了实际的亮度设置,由/sys/class/backlight的子文件夹中的文件表示。 因此,通过使用dbus我们实际上控制了硬件。

相关文章

  • 如何通过终端改变亮度

你还有一个brigthness控制托盘小程序:

https://launchpad.net/indicator-brightness

如果可以帮助。 (这对我很有效。)