Having just taken the rhe jump from Arch linux over to Fedora 40 (due to some recent AMD related graphics issues,) on my gaming pc Euclid, I needed to document the quirks of my system so the next time I swap around it will be less painful!

Hardware

GPU: AMD 6800 XT
Motherboard: B550M DS3H
Processor: Ryzen 7 5700X

Power Management - No Wake From Sleep / Constant Fan Spin

With the B550M motherboard in this pc, on most distros (that I have tried) whenever I suspend the pc, the fans spin up and the computer never wakes when requested. This is a documented issue, and its resolution is documented on the arch wiki here

To resolve it the following is required.

  
    nano /etc/systemd/system/toggle-gpp0-to-fix-wakeup.service
   
  
    [Unit]
    Description="Disable GPP0 to fix suspend issue"

    [Service]
    ExecStart=/bin/sh -c "/bin/echo GPP0 > /proc/acpi/wakeup"

    [Install]
    WantedBy=multi-user.target
   

Do a daemon-reload and start/enable the newly created unit.

Independent Display Brightness

I have two different monitors a Benq and an Alienware, they have wildly different bightness settings requirements. A nice fix for adjusting these independently in KDE is the following plasmoid.

DDCCI Plasmoid

Stop Audio Popping On Change / Stop Audio Sleep

I have had popping issues due to the suspension of power to my USB audio card, this disables suspend on the card (or any card)

Create a file in ~/.config/wireplumber/wireplumber.conf.d called 51-disable-suspension.conf

  
monitor.alsa.rules = [
  {
    matches = [
      {
        # Matches all sources
        node.name = "~alsa_input.*"
      },
      {
        # Matches all sinks
        node.name = "~alsa_output.*"
      }
    ]
    actions = {
      update-props = {
        session.suspend-timeout-seconds = 0
      }
    }
  }
]
# bluetooth devices
monitor.bluez.rules = [
  {
    matches = [
      {
        # Matches all sources
        node.name = "~bluez_input.*"
      },
      {
        # Matches all sinks
        node.name = "~bluez_output.*"
      }
    ]
    actions = {
      update-props = {
        session.suspend-timeout-seconds = 0
      }
    }
  }
]