Certain kernel parameters are required to fix the console stuttering issues. The issue is linked to the power-saving feature of the i915 framebuffer (i915fb).
Parameters:
i915.modeset=1i915.enable_dc=0
/etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="... i915.modeset=1 i915.enable_dc=0"The thinkpad X1C8 has a default display resolution of 3840x2160, requiring several fixes to scale essential system components. This section does not include fixes for userland applications.
TTY Console fonts are limited to a maximum of 32×32 pixels, which makes text appear tiny on HiDPI displays. A solution is fbterm, a user-space console emulator that allows scalable fonts for clear, high-resolution text.
# Installs fbterm from aur
yay -S fbterm
# Adds user to video & input groups
sudo usermod -aG video,input <user>
# Creates an alias in the user's shell config (zsh-specific)
echo 'alias fx='~/.fbtermrc' >> ~/.zshrc~/.fbtermrc:
#!/bin/sh
fbterm -n "Consolas" -s 64The X server can downscale the high-resolution display output, making UI elements and fonts appear correctly sized without affecting actual pixel density.
~/.xinitrc:
# Scales the X server's display to 1920x1080
xrandr --output eDP1 --scale 0.5x0.5
xrandr --output HDMI-1 --mode 1920x1080 --rate 60DBus used to be auto-launched by XFCE4 components via dbus-launch --autolaunch, but the feature has since been disabled at compile-time.
~/.xinitrc:
# Start D-Bus session if not already running
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
eval "$(dbus-launch --sh-syntax --exit-with-session)"
fiThis minimal setup does not start the user's systemd instance by itself, so the command below is required to enable systemctl --user services without a graphical login.
loginctl enable-linger <user>