如何在 Ubuntu 16.04 上的 i3wm 中调整屏幕亮度?

如何在 Ubuntu 16.04 上的 i3wm 中调整屏幕亮度?

我在 System76 笔记本电脑上运行 Ubuntu 16.04。亮度控制(即Fn+F8Fn+ F9)在 Unity/Compiz/Gnome/无论默认设置下都能很好地工作,但当我改为使用 i3wm 时,我什么也没有得到。

在默认情况下,xev 会报告一些不同的东西。在 i3 上,它会报告XF86MonBrightnessUpXF86MonBrightnessDown,如果 xbacklight 能正常工作的话,那将非常酷,但它却不能。它只是没有任何效果。

wayne@waynego:~$ xbacklight -set 10
wayne@waynego:~$ echo $?
0

而且我的显示器仍然像以前一样亮/暗。

我唯一能做的事情就是:

sudo sh -c "cat /sys/class/backlight/intel_backlight/max_brightness > /sys/class/backlight/intel_backlight/brightness"

你可能同意这并不理想,因为我涉及 sudo,我的意思是我可以gksudo或其他什么,但这也很烦人。显然某物与 compiz/unity 配合良好...我只是不知道它在做什么。

有什么方法可以让 xbacklight 工作,或者有其他方法吗?我不想运行 sudo 来更改背光设置。

答案1

按照我在https://itsfoss.com/fix-brightness-ubuntu-1310/结合我已经知道的情况,我有一张英特尔卡,我做到了

sudo touch /usr/share/X11/xorg.conf.d/20-intel.conf
sudoedit /usr/share/X11/xorg.conf.d/20-intel.conf

在该文件中我输入了以下内容:

Section "Device"
        Identifier  "card0"
        Driver      "intel"
        Option      "Backlight"  "intel_backlight"
        BusID       "PCI:0:2:0"
EndSection

现在我可以使用 xbacklight,因为mreq 提及

我将以下内容添加到我的~/.config/i3/config

bindsym XF86MonBrightnessUp exec xbacklight -inc 10
bindsym XF86MonBrightnessDown exec xbacklight -dec 10

最好的部分是,我实际上可以完全关闭背光,所以如果我想像亚当·萨维奇那样将我的电脑用作梦想日记,我完全可以。

答案2

i3wm我在笔记本电脑上全新安装时遇到问题,不知什么原因,我的XF86MonBrightnessUp/Down按键没有被注册(我已检查过xev)。我最终做的是创建与acpi按下的按键相对应的动作和事件。

以下是我分别在/etc/acpi/actions和中定义的动作/事件/etc/acpi/events

操作

/etc/acpi/actions/bl-down.sh

#!/bin/sh

bl_device=/sys/class/backlight/acpi_video0/brightness
echo $(($(cat $bl_device)-1)) | sudo tee $bl_device

/etc/acpi/actions/bl-up.sh

#!/bin/sh

bl_device=/sys/class/backlight/acpi_video0/brightness
echo $(($(cat $bl_device)+1)) | sudo tee $bl_device

活动

/etc/acpi/events/bl-down

event=video/brightnessdown BRTDN 00000087 00000000
action=/etc/acpi/actions/bl-down.sh

/etc/acpi/events/bl-up

event=video/brightnessup BRTUP 00000086 00000000
action=/etc/acpi/actions/bl-up.sh

您可以在终端中使用acpi_listen然后按下相关的组合键来验证亮度调高/调低 acpi 事件代码(例如,对我来说,Fn + 向下箭头表示降低亮度)。

最后,不要忘记重新acpid启动sudo /etc/init.d/acpid reload

笔记:您的背光设备可能定义在与我的位置不同的位置/sys/class/backlight/acpi_video0- 而这正是我的位置。请仔细检查一下。

我还在我的程序中编写了一个小函数~/.bashrc,让我可以从终端设置亮度。我的最大亮度值为 24000,所以我只需将 0 到 10 之间的数字乘以 2400。当我想立即调暗或调亮屏幕时,这个函数非常有用。

brs() {
    inp=$1
    echo $[inp * 2400] | sudo tee /sys/class/backlight/intel_backlight/brightness
}

(此外,出于好奇,您买了哪款 System76 机器,您觉得它怎么样?不久前我正考虑买一台。)

答案3

最简单的解决方案github/particleofmass

i3wm-背光

映射您的热键以增加或减少 i3 wm 中的屏幕亮度。首先安装亮度控制使用:

sudo apt install brightnessctl

将这些行粘贴到您的 i3 配置文件中(~/.config/i3/config):

bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set +5%

bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%-

注意:我是该代码的作者。

答案4

我发现这个,它可能会有帮助:)

https://itsfoss.com/fix-brightness-ubuntu-1310/

相关内容