键盘背光

键盘背光

我有一个三星笔记本 7 Spin 15.6 英寸 FHD 触控 NP740U5L-Y02US - i7-6500U - 12GB - 1TB设置双启动 Windows 10 和 Ubuntu 16.04。

功能键 + F9 应该可以控制键盘背光,但它什么也不做。键盘背光一直亮着。我知道 Ubuntu控制背光,因为当我用手电筒直​​接照射传感器时,背光会关闭。但是当我移开手电筒时,背光会再次亮起。

我如何手动控制背光(通过功能键或其他方式)?

我看过的东西:

  • 我查看了我的/sys/class文件夹,发现其中有一个名为的文件夹backlight,里面有屏幕亮度设置,还有一个名为的文件夹,leds里面有大写锁定等指示灯设置。我以为键盘灯设置可能在leds文件夹中,但我没有看到它。就像我说的,我知道 Ubuntu通过光传感器控制我的键盘灯,但我需要手动控制它。

  • 我也尝试过xset led循环遍历 1-32 号数字。我也尝试过编辑GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"全部行,/etc/default/grub但没有成功。

  • 我尝试安装三星工具包(https://answers.launchpad.net/samsung-tools/+question/289901)但使用它我得到了消息Backlight cannot be disabled

  • asus-keyboard-backlight.sh存在于/etc/acpi 并且脚本包含对的引用,KEYS_DIR=/sys/class/leds/asus\:\:kbd_backlight 但是该文件不存在。

  • 如果我跑步acpi_listen并击打Fn-F9(这应该映射到键盘灯),什么也不会发生。如果我用光照射传感器,键盘灯会熄灭,但跑步时没有输出acpi_listen

答案1

键盘背光

任何供应商

来自 Arch Linux wiki:您可以通过 D-Bus 接口控制计算机键盘背光。使用它的好处是不需要修改设备文件并且与供应商无关。

这是 Python 3 中的一个示例实现。输入以下脚本 /usr/local/bin/并使其可执行。然后,您可以映射键盘快捷键以运行/usr/local/bin/kb-light.py +/usr/local/bin/kb-light.py -增加和减少键盘背光级别。

以下是 python 代码/usr/local/bin/kb-light.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-    
from sys import argv
import dbus


def kb_light_set(delta):
    bus = dbus.SystemBus()
    kbd_backlight_proxy = bus.get_object('org.freedesktop.UPower', '/org/freedesktop/UPower/KbdBacklight')
    kbd_backlight = dbus.Interface(kbd_backlight_proxy, 'org.freedesktop.UPower.KbdBacklight')

    current = kbd_backlight.GetBrightness()
    maximum = kbd_backlight.GetMaxBrightness()
    new = max(0, current + delta)

    if new >= 0 and new <= maximum:
        current = new
        kbd_backlight.SetBrightness(current)

    # Return current backlight level percentage
    return 100 * current / maximum

if __name__ == '__main__':
    if len(argv[1:]) == 1:
        if argv[1] == "--up" or argv[1] == "+":
            # ./kb-light.py (+|--up) to increment
            print(kb_light_set(1))
        elif argv[1] == "--down" or argv[1] == "-":
            # ./kb-light.py (-|--down) to decrement
            print(kb_light_set(-1))
        else:
            print("Unknown argument:", argv[1])
    else:
        print("Script takes exactly one argument.", len(argv[1:]), "arguments provided.")

相关内容