# Switch Display Profile You are helping the user switch between different display configurations/profiles (e.g., docked, laptop only, presentation). ## Task 1. **Check current display setup:** ```bash # Display server type echo $XDG_SESSION_TYPE # Connected displays kscreen-doctor -o # KDE/Wayland # OR xrandr --query # X11 ``` 2. **Ask user which profile they want:** - **Laptop only** (internal display only) - **Docked** (external monitors only or primary external) - **Extended** (laptop + external monitors) - **Mirrored** (same output on all displays) - **Presentation** (external display as primary) - **Custom** (user-defined configuration) 3. **KDE Plasma - Use saved profiles:** ```bash # List saved display configurations ls ~/.local/share/kscreen/ # KDE automatically switches profiles based on connected displays # Force reload configuration kscreen-doctor --reload ``` 4. **Create/Use autorandr (X11):** ```bash # Install if not present sudo apt install autorandr # Save current configuration as profile autorandr --save profile-name # Switch to saved profile autorandr --load profile-name # Auto-detect and load appropriate profile autorandr --change ``` 5. **Manual X11 configuration examples:** **Laptop only:** ```bash xrandr --output eDP-1 --auto --primary \ --output HDMI-1 --off \ --output DP-1 --off ``` **Docked (external monitors only):** ```bash xrandr --output eDP-1 --off \ --output HDMI-1 --auto --primary \ --output DP-1 --auto --right-of HDMI-1 ``` **Extended (laptop + external):** ```bash xrandr --output eDP-1 --auto \ --output HDMI-1 --auto --primary --above eDP-1 ``` **Mirrored:** ```bash xrandr --output eDP-1 --auto \ --output HDMI-1 --auto --same-as eDP-1 ``` 6. **Wayland/KDE configuration:** ```bash # Laptop only kscreen-doctor output.eDP-1.enable \ output.HDMI-1.disable \ output.DP-1.disable # Docked kscreen-doctor output.eDP-1.disable \ output.HDMI-1.enable output.HDMI-1.primary \ output.DP-1.enable output.DP-1.position.1920,0 # Extended kscreen-doctor output.eDP-1.enable \ output.HDMI-1.enable output.HDMI-1.primary \ output.HDMI-1.position.0,-1080 ``` 7. **Create quick-switch scripts:** ```bash # Create scripts directory mkdir -p ~/.local/bin/display-profiles # Example: Laptop only script cat > ~/.local/bin/display-profiles/laptop-only.sh << 'EOF' #!/bin/bash xrandr --output eDP-1 --auto --primary \ --output HDMI-1 --off \ --output DP-1 --off notify-send "Display Profile" "Switched to: Laptop Only" EOF chmod +x ~/.local/bin/display-profiles/laptop-only.sh ``` 8. **Create keyboard shortcuts (KDE):** ```bash # Add custom shortcut kwriteconfig6 --file kglobalshortcutsrc \ --group "Display Profile - Laptop" \ --key "_k_friendly_name" "Laptop Display Only" ``` 9. **Automatic profile switching with udev:** ```bash # Create udev rule for auto-switching when docking sudo tee /etc/udev/rules.d/95-monitor-hotplug.rules << 'EOF' ACTION=="change", SUBSYSTEM=="drm", RUN+="/usr/local/bin/display-switch.sh" EOF # Create switch script sudo tee /usr/local/bin/display-switch.sh << 'EOF' #!/bin/bash export DISPLAY=:0 export XAUTHORITY=/home/daniel/.Xauthority /usr/bin/autorandr --change EOF sudo chmod +x /usr/local/bin/display-switch.sh sudo udevadm control --reload-rules ``` ## Verify Configuration - Check display arrangement with GUI or commands - Test window movement between displays - Verify primary display setting - Check resolution and refresh rates - Test systray/panel positioning ## Troubleshooting **Profile not loading:** - Verify display names with `xrandr` or `kscreen-doctor -o` - Check saved profile files - Ensure all referenced displays are connected **Automatic switching not working:** - Check udev rule syntax - Verify script permissions and paths - Check logs: `journalctl -f` while connecting/disconnecting displays **Black screen after switching:** - Use Ctrl+Alt+F2 to access TTY - Reset display configuration: `xrandr --auto` - Restart display manager: `sudo systemctl restart sddm` (or gdm, lightdm) ## Notes - autorandr is the most reliable tool for X11 profile management - KDE Plasma handles profile switching automatically on Wayland - Save profiles for different scenarios (home office, conference room, etc.) - Consider using descriptive names for profiles - Test profiles before relying on them for important presentations