This documents the changes made while installing OpenSUSE LEAP 15.3 on the Framework Laptop (1st edition).
During the guided install, there are some minor changes that will make things smoother later.
There is an option to enlarge swap to support hibernation, but it still fails to create a partition large enough.
- Use the guided setup, then the expert partitioner, based on the guided setup
- Delete the root and swap partitions
- Add a new swap partition that is at least 200MiB larger than your physically installed memory
- Add your remaining partitions
- Note: LUKS encryption is still supported
- CPU Mitigations (optional):
Auto + No SMT
- Check that the installer has automatically populated
resume=
- Add
mem_sleep_default=deep
- Add
acpi_osi="Windows 2020"
- Set hostname (optional)
Your laptop may freeze during reboot. The caps lock might flash rapidly. This is expected and will be resolved be the Post-Install changes. Hold down the power button until the laptop stops.
Once the base system is installed, you will need to install and configure the necessary components.
To make use of the newest features of the laptop, you'll need the newest backported kernel.
sudo zypper ar --priority 50 --refresh https://download.opensuse.org/repositories/Kernel:stable:Backport/standard/Kernel:stable:Backport.repo
sudo zypper ref
sudo zypper up --allow-vendor-change
I found that the best way to configure the trackpad was with xorg.
/etc/X11/xorg.conf.d/99-framework.conf
Section "InputClass" Identifier "Framework Clickpad" MatchProduct "Touchpad" MatchDriver "synaptics" # Enable clicking Option "ClickPad" "true" Option "EmulateMidButtonTime" "0 Option "ClickMethod" "clickfinger" Option "ClickFinger1" "1" Option "ClickFinger2" "3" Option "ClickFinger3" "2" # Disable tapping Option "TapButton1" "0" Option "TapButton2" "0" Option "TapButton3" "0" Option "MaxTapTime" "0" Option "SoftButtonAreas" "0 0 0 0 0 0 0 0" # Prevent Accidental Clicks Option "PalmDetect" "1" Option "PalmMinWidth" "5" Option "PalmMinZ" "40" # Calm the pad down while clicking Option "VertHysteresis" "5" Option "HorizHysteresis" "5" # Natural (reverse) scrolling Option "VertTwoFingerScroll" "1" Option "VertScrollDelta" "-90" Option "HorizTwoFingerScroll" "1" Option "HorizScrollDelta" "-90" # Smooth movement Option "MinSpeed" "1" Option "MaxSpeed" "2" Option "AccelerationProfile" "2" Option "ConstantDeceleration" "4" #Option "PressureMotionMinZ" "15" EndSection
Touchegg is available in most repos, but you'll want the newest. There is one available in the X11:Unity reposity where you can grab the latest and install it manually.
Once installed, you can configure it:
~/.config/touchegg/touchegg.conf
false qdbus-qt5 org.kde.kglobalaccel /component/kwin invokeShortcut 'Expose' begin false qdbus-qt5 org.kde.kglobalaccel /component/kwin invokeShortcut 'ExposeClass' begin false qdbus-qt5 org.kde.kglobalaccel /component/kwin invokeShortcut 'Switch to Previous Desktop' begin false qdbus-qt5 org.kde.kglobalaccel /component/kwin invokeShortcut 'Switch to Next Desktop' begin false XF86Back begin false XF86Forward begin
And you'll need a systemd user service to ensure it's stable across all power states
~/.config/systemd/user/touchegg.service
[Unit] Description=Touchegg User Service [Service] ExecStartPre=/bin/sh -c 'killall -qw touchegg || true' ExecStart=/usr/bin/touchegg Restart=always RestartSec=1s [Install] WantedBy=default.target
Finally you can enable the services:
sudo systemctl enable --now touchegg.service
systemctl enable --now --user touchegg.service
/etc/systemd/logind.conf
HandleLidSwitch=suspend-then-hibernate
/etc/systemd/sleep.conf
HiberateDelaySec=60min
/etc/systemd/system.conf
RebootWatchdogSec=0
- System Settings
- Power Management
- Energy Savings
- On Battery
- While asleep, hibernate after a period of inactivity
- On Low Battery
- While asleep, hibernate after a period of inactivity
- On Battery
- Energy Savings
- Power Management
The laptop may freeze again. Hold down the power button until the laptop shuts off. This should be the last time it freezes during shutdown / reboot.
Note - if the above /etc/X11/xorg.conf.d/99-framework.conf doesn't work for you, your framework probably isn't using the Synaptics driver. I removed the "MatchDriver Synaptic" line and logged out and back in, now it works for me.