danielrosehill's picture
commit
279efce
# Optimize Display Scaling
You are helping the user configure HiDPI scaling and fractional scaling for optimal display clarity.
## Task
1. **Check current display information:**
```bash
# Display server type
echo $XDG_SESSION_TYPE
# Current resolution and size
kscreen-doctor -o # Wayland/KDE
# OR
xrandr --query # X11
# Calculate DPI
xdpyinfo | grep -B 2 resolution # X11
```
2. **Determine optimal scaling:**
- Display resolution
- Physical size (diagonal in inches)
- Calculate PPI: `sqrt(width² + height²) / diagonal_inches`
- Recommended scaling:
- PPI < 110: 100% (1x)
- PPI 110-140: 125% (1.25x)
- PPI 140-180: 150% (1.5x)
- PPI 180-220: 200% (2x)
- PPI > 220: 250% or higher
3. **For KDE Plasma (Wayland or X11):**
```bash
# Set global scale factor (Wayland)
kscreen-doctor output.DP-1.scale.1.5
# Or use GUI
kcmshell6 kcm_kscreen
```
**Via settings file:**
```bash
# Edit KDE scaling
kwriteconfig6 --file kdeglobals --group KScreen --key ScaleFactor 1.5
kquitapp6 plasmashell && kstart plasmashell
```
4. **For GNOME (Wayland):**
```bash
# Enable fractional scaling
gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
# Set scale factor (200% = 2.0)
gsettings set org.gnome.desktop.interface scaling-factor 2
```
5. **For X11 systems (general):**
```bash
# Set Xft DPI
echo "Xft.dpi: 144" >> ~/.Xresources
xrdb -merge ~/.Xresources
# Set scale factor for Qt applications
export QT_SCALE_FACTOR=1.5
# Set scale factor for GTK applications
export GDK_SCALE=2
export GDK_DPI_SCALE=0.5
```
6. **Configure per-application scaling:**
```bash
# For specific Qt apps
QT_SCALE_FACTOR=1.5 application-name
# Add to .bashrc or application launcher
echo 'export QT_SCALE_FACTOR=1.5' >> ~/.bashrc
```
7. **Adjust font DPI:**
```bash
# KDE
kwriteconfig6 --file kcmfonts --group General --key forceFontDPI 144
# GNOME
gsettings set org.gnome.desktop.interface text-scaling-factor 1.25
```
8. **Handle cursor size:**
```bash
# Set cursor size
gsettings set org.gnome.desktop.interface cursor-size 32 # GNOME
kwriteconfig6 --file kcminputrc --group Mouse --key cursorSize 32 # KDE
```
## Verify Configuration
1. **Check current settings:**
```bash
echo $QT_SCALE_FACTOR
echo $GDK_SCALE
gsettings get org.gnome.desktop.interface scaling-factor # GNOME
```
2. **Test applications:**
- Open various applications (browser, terminal, file manager)
- Check text clarity
- Verify UI element sizes
- Test both Qt and GTK applications
3. **Log out and back in** to apply system-wide changes
## Troubleshooting
- **Blurry applications:** Some apps don't support fractional scaling on X11
- **Inconsistent scaling:** Mix of Qt and GTK apps may scale differently
- **Wayland vs X11:** Wayland generally handles fractional scaling better
- **XWayland apps:** May appear blurry on Wayland with fractional scaling
**Solutions:**
```bash
# Force XWayland scaling
kwriteconfig6 --file kwinrc --group Xwayland --key Scale 1.5
# Disable fractional scaling for specific apps
env QT_SCALE_FACTOR=1 application-name
```
## Notes
- Wayland provides better fractional scaling support than X11
- Some applications may require restart to apply scaling
- Integer scaling (1x, 2x) is sharper than fractional (1.25x, 1.5x)
- Consider display distance when choosing scale factor
- Multi-monitor setups with different DPI may require per-monitor scaling