最近把本科时用的一台垃圾笔记本重装了一个 ArchLinux 系统。这里简单记录了下我的配置过程,主要解决几个没有被系统很好兼容的 Fn 键,双显卡的使用。如果有不妥的地方也希望大家指正。

触控板

触控板的支持还是比较好的,基本上开箱即用。唯一的问题,也是老生常谈的问题,就是我需要根据我的习惯把触控板改成双指自然滚动,当然这些设置如果有桌面环境应该都可以在设置中心里配置,而我没有使用桌面环境,需要手动编辑配置文件。
安装 xf86-input-libinput 包,然后在 /etc/X11/xorg.conf.d 里配置 20-touchpad.conf ,写入以下内容:

Section "InputClass"
    Identifier                  "libinput touchpad catchall"
    MatchIsTouchpad             "on"
    MatchDevicePath             "/dev/input/event*"
    Driver                      "libinput"
    Option "NaturalScrolling"   "on"
    Option "Tapping"            "on"
    Option "DisableWhileTyping" "on"
EndSection

这样打开了自然滚动,敲击模拟单击,打字时临时禁用触控板的功能。

WIFI 开关键

笔记本电脑上有个 wifi 的开关,看起来它也不听话。因为它并不是一个在硬件上关闭无线网卡的按钮。
通过以下命令来捕获按键事件:

$ xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'

它能被识别为 246 , 也就是 XF86WLAN 键。
这样的话方案就很明确了,我只需要自己在 i3 的配置里加上这个按钮的功能(打开/关闭 wifi)。我的网络管理后端使用的是 NetworkManager, 所以我就搓了个脚本来控制无线网络,并在 i3 的配置里调用这个脚本:

bindsym XF86WLAN exec --no-startup-id ~/.config/i3/toggle_wifi
#!/bin/sh
status=$(nmcli radio wifi)
case $status in
    enabled)
        nmcli radio wifi off
        ;;
    disabled)
        nmcli radio wifi on
        ;;
esac

DPMS

只要内核启用了 ACPI,DPMS 是会自动启用的。但是我发现在 lightdm 下,我默认启用 DPMS 似乎并没有生效,一晚上屏幕都没有自动关闭。
个人觉得可行的解决方法有两个,一个是在 lightdm 配置的 greeter-setup-script 里自己用 xset 强行设置 DPMS 的时间;另一个是手动设置 xorg.conf
我选择了第二种方式,/etc/X11/xorg.conf.d 下新建一个配置 10-monitor.conf

Section "Monitor"
    Identifier      "LVDS0"
    Option "DPMS"   "true"
EndSection

Section "ServerFlags"
    Option "StandbyTime"    "5"
    Option "SuspendTime"    "5"
    Option "OffTime"        "5"
EndSection

双显卡

硬件型号:Intel HD Graphics 5500 & NVIDIA GeForce 910M

安装驱动

Intel 显卡驱动

安装 xf86-video-intel 包即可。

$ sudo pacman -S xf86-video-intel

NVIDIA 显卡驱动

安装 nvidia 包即可。

$ sudo pacman -S nvidia

不过我由于最新内核对我的部分硬件支持存在 bug,我暂时使用的是 lts 内核。所以我安装的是 nvidia-lts 驱动。

配置 PRIME render offload

安装 nvidia-prime 包,一般就行,不需要额外配置。

$ pacman -S nvidia-prime

这时候重启系统,通过 prime-run 命令就能使指定程序在 NVIDIA 显卡上渲染了。

当然你可以这样测试来比较两次输出的不同:

$ glxinfo | grep "OpenGL renderer"
$ prime-run glxinfo | grep "OpenGL renderer"

亮度调节

不过,这样配置还是出现了一些问题。 我发现,我的笔记本上的亮度调节按键并没有作用。由于我使用的 i3wm 不是桌面环境,调节亮度需要自己手动设置。
安装 xorg-xbacklight 包,在 i3 的配置中添加以下内容:

bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 5.0 #increase screen brightness
bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 5.0 #decrease screen brightness

并在 /etc/X11/xorg.conf.d 下新建一个配置 20-nvidia.conf

Section "Device"
    Identifier  "iGPU"
    Driver      "intel"
    Option      "Backlight"  "intel_backlight"
EndSection
Section "Screen"
  Identifier    "iGPU"
  Device        "iGPU"
EndSection
Section "Device"
  Identifier    "dGPU"
  Driver        "nvidia"
EndSection

这样就可以在使用双显卡的同时使用 intel_backlight 了。

最后修改:2021 年 02 月 13 日 06 : 44 PM
如果觉得我的文章对你有用,请随意赞赏