AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 526653
Accepted
Luís de Sousa
Luís de Sousa
Asked: 2019-06-25 08:48:11 +0800 CST2019-06-25 08:48:11 +0800 CST 2019-06-25 08:48:11 +0800 CST

在 i3 中控制屏幕亮度

  • 772

我想在带有Fn键的英特尔笔记本电脑中控制i3的屏幕亮度。这些键可与任何其他 DE 一起使用。

首先确保可用的设备是英特尔:

$ ls -l /sys/class/backlight/
total 0
lrwxrwxrwx 1 root root 0 juin  24 18:26 intel_backlight -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight

在另一个论坛中,建议将该程序xbacklight作为控制i3亮度的方法。然而,它在我迄今为止尝试过的笔记本电脑中失败了:

$ xbacklight -inc 10
No outputs have backlight property

有没有其他方法可以控制i3的亮度?

i3 brightness
  • 9 9 个回答
  • 55575 Views

9 个回答

  • Voted
  1. leafmeal
    2020-01-29T16:39:07+08:002020-01-29T16:39:07+08:00

    brightnessctl可用于设置实际设备亮度。

    • 20
  2. Best Answer
    Jae Beojkkoch
    2019-07-10T03:39:35+08:002019-07-10T03:39:35+08:00

    要更改屏幕亮度,您可以使用xrandr.

    为此,您可以执行以下操作:

    xrandr -q | grep ' connected' | head -n 1 | cut -d ' ' -f1
    

    这将返回所有连接的监视器(LVDS-1例如DVI-D-0)。

    现在,要更改屏幕亮度,请执行以下命令(用DVI-D-0前面的命令输出替换):

    xrandr --output DVI-D-0 --brightness 0.7
    

    例如,此命令将亮度设置为 70%。

    我希望它会有所帮助!

    • 19
  3. Anatolii Kurotych
    2020-12-25T05:06:14+08:002020-12-25T05:06:14+08:00

    我的解决方案。它在 Ubuntu 20.04 上进行了测试。

    1. sudo apt install light

    2. sudo chmod +s /usr/bin/light

    3. 添加到 i3 配置:

      bindsym XF86MonBrightnessUp exec --no-startup-id light -A 1 # increase screen brightness
      bindsym XF86MonBrightnessDown exec --no-startup-id light -U 1 # decrease screen brightness

    • 10
  4. Try431
    2019-08-14T16:00:53+08:002019-08-14T16:00:53+08:00

    从我的旧答案复制到一个问题:XF86MonBrightnessUp/XF86MonBrightnessDown special keys not working


    编辑:如下所述,您必须acpi在您的机器上安装这些才能工作:)

    编辑 2:此代码将亮度值递增/递减 1,但某些型号的值会在数千范围内,因此请相应地修改更改。

    这是一个老问题,但答案可能对其他人有所帮助。我在笔记本电脑上全新安装时遇到了一个问题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在终端中使用并按下相关的组合键(例如,对我来说,它是 Fn + 向下箭头来降低亮度)来验证您的亮度升高/降低 acpi 事件代码。

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

    注意:您的背光设备可能定义在不同的位置,而/sys/class/backlight/acpi_video0这正是我的位置。做一些闲逛。

    • 5
  5. JoL
    2020-01-29T17:35:13+08:002020-01-29T17:35:13+08:00

    有 2 个xbacklight。在 Archlinux 中(在您的发行版中可能相同),一个来自 https://xorg.freedesktop.org/ 的包,另一个来自xorg-xbacklighthttps://gitlab.com/wavexx/acpilight的包。如果一个不起作用,也许另一个会。acpilight

    的描述xorg-xbacklight说:

    基于 RandR 的背光控制应用

    并从acpilight链接:

    在某些现代笔记本电脑上,“XRandR”可能缺乏设置显示亮度的能力。此功能已通过 /sys/class/backlight/ 移动/统一到内核的 ACPI 接口。"acpilight" 为使用 ACPI 接口而不是 "XRandR" 的 xbacklight 命令提供了一个替代品

    所以,这可能是你xbacklight不工作的原因。

    • 2
  6. Pavan Dayal
    2020-08-28T21:54:14+08:002020-08-28T21:54:14+08:00

    我目前的解决方案:

    1. 获取默认显示(例如 DVI-0)

      xrandr -q | grep " connected " | cut -d' ' -f1 | head -n 1

    2. 添加以下内容以~/.config/i3/config将 DVI-0 替换为您的显示器

    bindsym XF86MonBrightnessUp exec --no-startup-id bash -c 'b=$(xrandr --verbose | grep -i brightness | head -n 1 | cut -d" " -f2) && b2=$(echo -e "import math\nf = lambda x: (1 - 1/(1+math.exp(4*x-2)))\nprint(\\\"%.2f\\\" % f(0.1+$b))" | python) && xrandr --output DVI-0 --brightness $b2'
    
    bindsym XF86MonBrightnessDown exec --no-startup-id bash -c 'b=$(xrandr --verbose | grep -i brightness | head -n 1 | cut -d" " -f2) && b2=$(echo -e "import math\nf = lambda x: (1 - 1/(1+math.exp(4*x-2)))\nprint(\\\"%.2f\\\" % f(-0.1+$b))" | python) && xrandr --output DVI-0 --brightness $b2'
    
    • 1
  7. Inspired_Blue
    2019-09-10T13:46:28+08:002019-09-10T13:46:28+08:00

    这里是基于 bash 脚本的解决方案xrandr: 首先创建一个文件来存储当前的亮度值,使用echo 1.o > brightness.txt. 现在可以使用以下 bash 脚本:

    #!/bin/bash
    
    BRIGHT=`cat brightness.txt`
    
    if [ "$1" = '+' ]; then
        NEWBRIGHT=$(echo "$BRIGHT + 0.05" | bc)
        if [ "$(echo "$NEWBRIGHT > 1.0" | bc)" -eq 1 ]; then
            NEWBRIGHT='1.0'
        fi
    elif [ "$1" = '-' ]; then
        NEWBRIGHT=$(echo "$BRIGHT - 0.05" | bc)
        if [ "$(echo "$NEWBRIGHT < 0.0" | bc)" -eq 1 ]; then
            NEWBRIGHT='0.0'
        fi
    fi
    

    假设调用了上面的脚本,brightness.sh那么它可以用作:

    .\brightness.sh + #to increase brightness
    .\brightness.sh - #to decrease brightness
    

    并且由于您使用i3,您可以将键绑定到这些命令。例如,您可以将这些行添加到您的i3-config:

    # change brightness of screen
    mode "controls" {
            # These bindings trigger as soon as you enter the control mode
            bindsym j exec "~/Scripts/brightness.sh -"
            bindsym k exec "~/Scripts/brightness.sh +"
            # back to normal: Enter or Escape
            bindsym Return mode "default"
            bindsym space mode "default"
    }
    
    bindsym $mod+shift+semicolon mode "controls"
    

    进一步将这些行添加到您i3-config 的最后一次使用的亮度值:

    exec "~/Scripts/brightness.sh -"
    exec "~/Scripts/brightness.sh +"
    
    • 0
  8. Emanuele Sabato
    2020-10-24T06:15:38+08:002020-10-24T06:15:38+08:00

    对于使用 xrandr 来说,inspired_Blue 答案是一个很好的答案,但它不完整,我建议在 bash 脚本的末尾添加这些行以使其工作:

    echo $NEWBRIGHT > brightness.txt
    xrandr --output LVDS-1 --brightness $NEWBRIGHT
    

    小心检查您的显示名称

    xrandr -q | grep ' connected' | head -n 1 | cut -d ' ' -f1

    如 Jae Beojkkoch 所示。在我的例子中,名称是 LVDS-1。

    第一行使用新的亮度值重写 txt 文件,第二行用于使用 xrandr 设置亮度。

    • 0
  9. Amuoeba
    2022-07-08T12:51:09+08:002022-07-08T12:51:09+08:00

    安装ddcutil。您可能需要先安装i2c-tools并运行

     sudo modprobe i2c-dev
    

    并将您的用户名添加到 i2c 组:

    sudo usermod -G i2c -a your_user
    

    你可以运行:

    sudo ddcutil capabilities
    

    看看什么是可以控制的

    要增加/减少背光,您可以执行以下操作:

    sudo ddcutil setvcp 10 + 10
    sudo ddcutil setvcp 10 - 10
    

    分别。

    有关ddcutil我建议您查看文档的更多信息: https ://www.ddcutil.com/command_setvcp/

    • 0

相关问题

  • i3wm:切换到工作区并将容器移动到(相同)工作区映射到不同的工作区

  • 从 i3 使用 gdmflexiserver 切换用户

  • 从命令行运行 i3 命令

  • Conky i3bar 无法识别空格

  • 如何配置 gdm 以登录到 sway 会话?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve