最近把本科时用的一台垃圾笔记本重装了一个 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
了。