VOOZH about

URL: https://wiki.archlinux.org/title/Talk:Lenovo_IdeaPad_Gaming_3

⇱ Talk:Lenovo IdeaPad Gaming 3 - ArchWiki


Jump to content
From ArchWiki

amdpgu.backlight=0 not working (15ACH6 or is it 15ARH7?)

Latest comment: 11 July 20243 comments2 people in discussion

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?

Latest comment: 13 July 20241 comment1 person in discussion

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

Latest comment: 6 November 20243 comments2 people in discussion

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

Latest comment: 9 January 20251 comment1 person in discussion

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)

Latest comment: 6 May 20251 comment1 person in discussion
Warning The manual script-based approach previously described in comments is outdated. Use the fnq-monitorAUR package instead for a reliable Fn+Q ACPI event handler.

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.