You are helping the user tune KDE Plasma settings for better performance and responsiveness.
Tunes KDE Plasma settings for better performance and responsiveness. Use this to disable visual effects, optimize the compositor, reduce animations, and manage system services like Baloo indexing.
/plugin marketplace add danielrosehill/linux-desktop-plugin/plugin install lan-manager@danielrosehillYou are helping the user tune KDE Plasma settings for better performance and responsiveness.
Check current performance baseline:
# CPU/RAM usage of KDE processes
ps aux | grep -E "plasma|kwin" | grep -v grep
# Memory usage
free -h
# KWin resource usage
top -b -n 1 | grep -E "plasma|kwin"
Disable unnecessary visual effects:
# Reduce KWin effects
kwriteconfig6 --file kwinrc --group Plugins --key blurEnabled false
kwriteconfig6 --file kwinrc --group Plugins --key contrastEnabled false
kwriteconfig6 --file kwinrc --group Plugins --key slidebackEnabled false
kwriteconfig6 --file kwinrc --group Plugins --key zoomEnabled false
# Disable desktop effects for slower systems
kwriteconfig6 --file kwinrc --group Compositing --key Enabled false
# Or keep compositing but reduce effects
kwriteconfig6 --file kwinrc --group Compositing --key AnimationSpeed 3
# Restart KWin to apply
qdbus org.kde.KWin /KWin reconfigure
Optimize compositor settings:
# Use OpenGL 3.1 (faster than 2.0, more compatible than 3.1 Core)
kwriteconfig6 --file kwinrc --group Compositing --key GLCore false
kwriteconfig6 --file kwinrc --group Compositing --key GLPlatformInterface egl
# Set rendering backend (EGL is usually faster)
kwriteconfig6 --file kwinrc --group Compositing --key Backend OpenGL
# Disable VSync for lower latency (may cause tearing)
# kwriteconfig6 --file kwinrc --group Compositing --key GLPreferBufferSwap n
# Or use adaptive VSync
kwriteconfig6 --file kwinrc --group Compositing --key GLPreferBufferSwap a
# Reduce latency
kwriteconfig6 --file kwinrc --group Compositing --key LatencyControl false
qdbus org.kde.KWin /KWin reconfigure
Disable Baloo file indexing (if not needed):
# Disable Baloo
balooctl disable
# Stop Baloo service
balooctl stop
# Check status
balooctl status
# Or configure to index only specific folders
balooctl config add /home/user/Documents
balooctl enable
Reduce desktop search scope:
# Configure Baloo to exclude large directories
kwriteconfig6 --file baloofilerc --group "General" --key "exclude filters" "*.tmp,*.o,*.pyc"
kwriteconfig6 --file baloofilerc --group "General" --key "folders[$e]" "$HOME/Downloads/,$HOME/.cache/,$HOME/.local/share/Trash/"
balooctl restart
Optimize Plasma widget performance:
# Disable weather widget auto-update
kwriteconfig6 --file plasma-org.kde.plasma.desktop-appletsrc --group "Containments" --group "1" --group "Applets" --group "org.kde.plasma.weather" --key "updateInterval" 3600
# Reduce system monitor update frequency
# (Edit via GUI: Right-click widget -> Configure)
Reduce animation speed or disable:
# Faster animations
kwriteconfig6 --file kdeglobals --group KDE --key AnimationDurationFactor 0.5
# Disable animations entirely
kwriteconfig6 --file kdeglobals --group KDE --key AnimationDurationFactor 0
# Apply changes
kquitapp6 plasmashell && kstart plasmashell
Optimize KWin window management:
# Disable window focus effects
kwriteconfig6 --file kwinrc --group Plugins --key diminactiveEnabled false
kwriteconfig6 --file kwinrc --group Plugins --key dimscreenEnabled false
# Faster window switching
kwriteconfig6 --file kwinrc --group TabBox --key DelayTime 0
# Instant window placement
kwriteconfig6 --file kwinrc --group Windows --key Placement Smart
qdbus org.kde.KWin /KWin reconfigure
Disable unnecessary Plasma features:
# Disable desktop thumbnails
kwriteconfig6 --file kwinrc --group Plugins --key thumbnailasideEnabled false
# Disable desktop grid effect
kwriteconfig6 --file kwinrc --group Effect-DesktopGrid --key ShowAddRemove false
# Disable magic lamp effect
kwriteconfig6 --file kwinrc --group Plugins --key magiclampEnabled false
qdbus org.kde.KWin /KWin reconfigure
Configure KWin for better performance:
# Unredirect fullscreen windows (better gaming performance)
kwriteconfig6 --file kwinrc --group Compositing --key UnredirectFullscreen true
# Allow tearing for low latency
kwriteconfig6 --file kwinrc --group Compositing --key AllowTearing true
# Refresh rate (match your monitor)
kwriteconfig6 --file kwinrc --group Compositing --key RefreshRate 0 # Auto-detect
qdbus org.kde.KWin /KWin reconfigure
Optimize system tray:
# Remove unnecessary system tray icons
# (Done via GUI: Right-click system tray -> Configure System Tray -> Entries)
# Check what's running in system tray
qdbus | grep "org.kde.StatusNotifierItem"
Reduce memory usage:
# Clear Plasma cache
rm -rf ~/.cache/plasma*
rm -rf ~/.cache/kwin*
# Disable clipboard history
kwriteconfig6 --file klipperrc --group General --key KeepClipboardContents false
# Reduce clipboard history size
kwriteconfig6 --file klipperrc --group General --key MaxClipItems 5
Disable KDE Connect if not needed:
# Stop KDE Connect
kdeconnect-cli --refresh
systemctl --user stop kdeconnect
systemctl --user disable kdeconnect
Optimize font rendering:
# Disable font anti-aliasing for speed (not recommended for readability)
# kwriteconfig6 --file kcmfonts --group General --key forceFontDPI 96
# Use faster font rendering
kwriteconfig6 --file kcmfonts --group General --key XftAntialias true
kwriteconfig6 --file kcmfonts --group General --key XftHintStyle hintslight
Monitor performance improvements:
# Before and after comparison
echo "=== Plasma Performance ==="
ps aux | grep plasmashell | grep -v grep | awk '{print "CPU: "$3"% RAM: "$4"%"}'
echo "=== KWin Performance ==="
ps aux | grep kwin | grep -v grep | awk '{print "CPU: "$3"% RAM: "$4"%"}'
echo "=== Total KDE Memory Usage ==="
ps aux | grep -E "plasma|kwin|kde" | awk '{sum+=$6} END {print sum/1024 " MB"}'
Create benchmark script:
cat > /tmp/kde-performance-test.sh << 'EOF'
#!/bin/bash
echo "KDE Performance Test"
echo "===================="
echo ""
# Test 1: Plasma shell responsiveness
echo "Test 1: Measuring Plasma restart time..."
start=$(date +%s%N)
kquitapp6 plasmashell && kstart plasmashell
sleep 3
end=$(date +%s%N)
echo "Plasma restart: $((($end-$start)/1000000)) ms"
# Test 2: KWin reconfigure time
echo "Test 2: Measuring KWin reconfigure time..."
start=$(date +%s%N)
qdbus org.kde.KWin /KWin reconfigure
end=$(date +%s%N)
echo "KWin reconfigure: $((($end-$start)/1000000)) ms"
# Test 3: Resource usage
echo "Test 3: Current resource usage..."
ps aux | grep -E "plasma|kwin" | grep -v grep | awk '{print $11 ": CPU="$3"% MEM="$4"%"}'
EOF
chmod +x /tmp/kde-performance-test.sh
/tmp/kde-performance-test.sh
If optimizations cause issues:
# Backup then remove KWin config
mv ~/.config/kwinrc ~/.config/kwinrc.optimized
kquitapp6 kwin_wayland && kstart kwin_wayland
# Reset Plasma config
mv ~/.config/plasmarc ~/.config/plasmarc.optimized
kquitapp6 plasmashell && kstart plasmashell
# Reset KDE globals
mv ~/.config/kdeglobals ~/.config/kdeglobals.optimized
For AMD GPUs:
# Use AMDGPU backend
kwriteconfig6 --file kwinrc --group Compositing --key GLPlatformInterface egl
# Enable TearFree if tearing occurs
# (Set in xorg.conf or kernel parameters)
For older/slower systems:
# Minimal effects
kwriteconfig6 --file kwinrc --group Plugins --key kwin4_effect_translucyEnabled false
kwriteconfig6 --file kwinrc --group Plugins --key kwin4_effect_fadeEnabled false
# Disable compositing entirely
kwriteconfig6 --file kwinrc --group Compositing --key Enabled false
For high-end systems:
# Enable all effects
kwriteconfig6 --file kwinrc --group Compositing --key AnimationSpeed 1
kwriteconfig6 --file kwinrc --group Plugins --key blurEnabled true
radeontop or nvidia-smiqdbus org.kde.KWin /KWin supportInformation