The Framework Laptop is really good due to its modularity, and I always wanted to own a Linux laptop to replace my old Windows 11 laptop.

Also, I am more comfortable using Linux and i3wm for development. I have used Ubuntu before and heard good things about Arch Linux. I found EndeavourOS to be really good for skipping many manual setups, yet still getting quick and comfortable configuration because of the out-of-the-box i3wm option in the initial setups.

However, there are some problems I encountered during setting up my laptop. So, this post serves as personal notes, and I hope people encountering similar problems can find some inspiration here.

Info

My Framework Laptop 13:

AMD Ryzenā„¢ 5 7640U

WD_BLACKā„¢ SN770 NVMeā„¢- M.2 2280 - 1TB

Micron DDR5 5600 16G * 2

Reverse trackpad scroll direction

sudo pacman -S xf86-input-libinput and then vim /etc/X11/xorg.conf.d/30-touchpad.conf

The content:

Section "InputClass" Identifier "touchpad" MatchIsTouchpad "true" MatchDriver "libinput" Option "NaturalScrolling" "true" EndSection

Run xbindkey when booting

vim ~/.xprofile

The content:

xbindkeys &

i3wm

The initial setting of i3wm from EndeavourOS is not what I was used to but I still love some aspects of it, like the theme and those icons. But it will always direct some windows to specific workspaces. You can disable that inside your i3 config

# bind program to workspace and focus to them on startup:
# assign [class="Xfce4-terminal"] $ws1
# assign [class="(?i)firefox"] $ws2
# assign [class="Thunar"] $ws3
# assign [class="thunderbird"] $ws4
# assign [class="TelegramDesktop"] $ws5

I also get used to rename a specific workspace for temporary identification like this:

bindsym $mod+n exec i3-input -F 'rename workspace to "%s"' -P 'New name for this workspace: '

You can press mod+n to rename a workspace.

However, I have to change the original setting to this to make the above work:

strip_workspace_numbers no
strip_workspace_name no

Audio

I have a guitar Blackstar Amp inside my room, and the audio jack of framework will sleep after awhile if no audio playing.

That will cause my Amp making huge noise, I have to do this to avoid that sleeping mechanism.

sudo vim /etc/modprobe.d/disablePower.conf

options snd_hda_intel power_save=0

Info

Although my framework uses AMD, the brand name inside that option is still intel haha. I tested on my computer it still works.

Sleep after closing the laptop lid

sudo vim /etc/systemd/logind.conf

HandleLidSwitch=suspend
HandleLidSwitchExternalPower=suspend
HandleLidSwitchDocked=suspend

systemctl restart systemd-logind

Auto remember your login for Skype

install gnome-keyring

inside your i3 config

exec --no-startup-id /usr/bin/gnome-keyring-daemon --start --components=ssh,secrets,pkcs11

Rebind my logitech mouse

"xdotool key XF86AudioRaiseVolume"
  b:9

"xdotool key XF86AudioLowerVolume"
  b:8