amdpgu.backlight=0 not working (15ACH6 or is it 15ARH7?)
I installed Ubuntu a while ago. They have managed to solve the backlight issue in Lenovo Gaming 3 recently. But I've placed the parameters in ArchLinux grub. Nothing. It's not working yet and my eyes are bleeding to this point.
But while booting, I can clearly see the amdgpu_bl1 backlight service starting.
Now after trying out with the system performance mode options, the ones that worked for me were those for the 15ARH7, not those for 15ACH6 (even thought that's what the sticker below says).
Any ideas? Diegopaucarv (talk) 05:22, 15 March 2024 (UTC)
- I've edited the performance mode to include 15ach6 because my laptop also works on the second command. I also added the acpi call for getting the status of rapid charger Theluga (talk) 16:17, 11 July 2024 (UTC)
- also the amdgpu.backlight=0 is useless and should be removed? since backlight is working by default at least on gnome. Theluga (talk) 17:25, 11 July 2024 (UTC)
Installing optimus-manager should be removed?
My laptop works out of the box after installing the nvidia, nvidia-prime and following the wiki: https://wiki.archlinux.org/title/PRIME and https://wiki.archlinux.org/title/NVIDIA.
I also only use wayland now. This was the first time using a laptop with nvidia card and this is outdated and made me go down a unnecessary path until I found prime. Since now you can use wayland with prime-run without needind Xorg (gdm). (So it's only hybrid GPU)
You just need to enable early kms and hdmi works. Optimus is just optional not necessary as the section implies and is without wayland support.
So I believe it should be removed or at least removed the emphasis of necessity for new users when there is none. Theluga (talk) 02:30, 13 July 2024 (UTC)
Fn+Q works for changing performance mode
In my Lenovo Ideapad Gaming 3 (15ARH7) the FN+Q combination works for changing the performance modes. I checked with the acpi calls after changing the mode with the combination and the call showed the correct info. The table however shows that the fn+q combination is not supported and is marked as NO. Why is that? Shouldn't it be changed? Mrinmoy (talk) 03:47, 4 September 2024 (UTC)
- The table does not say it's not supported. The "NO" just indicates that there's no marking on the keyboard that indicates Fn+Q changes the power mode, unlike all the other Fn keys. Echa37 (talk) 14:24, 6 November 2024 (UTC)
- Oh my bad. Thanks for clarifying it Mrinmoy (talk) 18:05, 6 November 2024 (UTC)
Widget for controlling power modes
I made a widget for easily changing the power modes. It's a tray widget so it can be used across distributions and in C++ to be lightweight
https://github.com/TTF-fog/ideapad-control
It's fully configurable through a TOML file so you don't have to manually edit the calls and rebuild if anything changes Ttf (talk) 05:58, 9 January 2025 (UTC)
Enabling Fn+Q Performance Mode Switching on Lenovo IdeaPad Gaming 3 (KDE Only)
If you're using a Lenovo IdeaPad Gaming 3 laptop and want to get the most out of its Fn+Q performance switching feature, this guide provides a detailed setup — specifically for KDE Plasma users on Arch Linux or Arch-based distributions.
The script below allows the system to detect when the Fn+Q key combination is pressed (used to switch between performance modes like Quiet, Balanced, and Performance on Lenovo laptops), and then displays an on-screen notification (OSD) with an appropriate icon and message, just like in Windows.
⚠️ Note: This setup only works in KDE because it uses qdbus and KDE's native osdService for on-screen display notifications.
💬 Comment under the article:
This script monitors the Fn+Q key on Lenovo IdeaPad Gaming 3 laptops using
acpi_call, listens for ACPI events, and displays the current performance mode through KDE's on-screen display. It sets up the necessary services, permissions, and autostart files. KDE is required for this to work because it uses KDE's OSD notification service.
#!/bin/bash
set -e
echo "[1/7] Installing required packages..."
sudo pacman -S --needed --noconfirm acpi_call acpid qt5-tools base-devel git
echo "[2/7] Loading the acpi_call kernel module..."
sudo modprobe acpi_call
echo "[3/7] Creating Fn+Q monitoring script..."
sudo mkdir -p /usr/local/bin
sudo tee /usr/local/bin/fnq-monitor.sh > /dev/null <<'EOF'
#!/bin/bash
ICON_BASE="/usr/share/icons/breeze-dark/status/16"
ACPI_CALL_PATH="/proc/acpi/call"
METHOD_NAME="\_SB.PCI0.LPC0.EC0.GZ44"
if ! [ -e "$ACPI_CALL_PATH" ]; then
echo "acpi_call module not loaded. Loading..."
pkexec modprobe acpi_call
fi
echo "Listening for ACPI events..."
acpi_listen | while read -r line; do
if [[ "$line" == "wmi PNP0C14:00 000000d5 00000000" ]]; then
result=$(echo "$METHOD_NAME" | pkexec tee "$ACPI_CALL_PATH" > /dev/null && pkexec cat "$ACPI_CALL_PATH" | tr -d '\000\r\n')
case "$result" in
0x0)
ICON="$ICON_BASE/temperature-normal.svg"
TEXT="Intelligent Cooling"
;;
0x1)
ICON="$ICON_BASE/temperature-warm.svg"
TEXT="Extreme Performance"
;;
0x2)
ICON="$ICON_BASE/temperature-cold.svg"
TEXT="Quiet Mode"
;;
*)
ICON="$ICON_BASE/temperature.svg"
TEXT="Unknown Mode ($result)"
;;
esac
qdbus org.freedesktop.Notifications /org/kde/osdService org.kde.osdService.showText "$ICON" "$TEXT"
fi
done
EOF
sudo chmod +x /usr/local/bin/fnq-monitor.sh
echo "[4/7] Creating autostart file..."
sudo tee /etc/xdg/autostart/fnq-monitor.desktop > /dev/null <<EOF
[Desktop Entry]
Type=Application
Exec=/usr/local/bin/fnq-monitor.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
X-KDE-autostart-after=panel
Name=Fn+Q ACPI Monitor
Comment=Monitors Fn+Q and displays mode status to all users
EOF
echo "[5/7] Adding polkit rule..."
sudo tee /etc/polkit-1/rules.d/50-acpi_call.rules > /dev/null <<'EOF'
polkit.addRule(function(action, subject) {
if (
(action.id == "org.freedesktop.policykit.exec" ||
action.id == "org.freedesktop.policykit.exec.run") &&
subject.local && subject.active
) {
return polkit.Result.YES;
}
});
EOF
echo "[6/7] Enabling and starting acpid service..."
sudo systemctl enable --now acpid
echo "[7/7] Creating pacman hook to update initramfs after acpi_call updates..."
sudo mkdir -p /etc/pacman.d/hooks
sudo tee /etc/pacman.d/hooks/acpi_call-rebuild-initramfs.hook > /dev/null <<EOF
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = acpi_call
[Action]
Description = Rebuilding initramfs after acpi_call update...
When = PostTransaction
Exec = /bin/sh -c 'mkinitcpio -P'
EOF
echo "✅ Installation complete. Fn+Q monitoring is now active."
Outvoker (talk) 15:24, 6 May 2025 (UTC)
Disable the systemd service for keyboard backlight control
1. Disable the systemd service for keyboard backlight control
This completely disables systemd from saving or restoring the keyboard backlight brightness:
sudo systemctl mask systemd-backlight@leds:platform::kbd_backlight.service
2. [Optional] Block applications from changing brightness
To prevent any application (e.g. powerdevil, gnome-settings-daemon) from modifying the keyboard backlight brightness, create a udev rule:
sudo tee /etc/udev/rules.d/99-disable-kbd-backlight.rules > /dev/null <<'EOF' SUBSYSTEM=="leds", KERNEL=="platform::kbd_backlight", ACTION=="add", RUN+="/bin/chmod 000 /sys/class/leds/platform::kbd_backlight/brightness" EOF
Then reload and apply the new rules:
sudo udevadm control --reload sudo udevadm trigger
3. Notes
This solution works across all desktop environments (e.g. KDE, GNOME, etc.), and also disables the "fake" backlight effect sometimes shown in the UI but not applied to actual hardware.
