KDE One Klick Patcher

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen

KDE One Klick Patcher – Einklick-Verhalten dauerhaft aktivieren (Plasma 5/6)

Mit Plasma 6 hat KDE das Bedienverhalten umgestellt: Statt Einklick ist nun wieder der klassische Doppelklick Standard. Was wie eine Kleinigkeit wirkt, ist für viele Nutzer ein Rückschritt – insbesondere für alle, die auf effiziente Dateibedienung angewiesen sind.

Noch kritischer: Auch in Plasma 5 kann dieses Verhalten durch Upstream-Änderungen oder neue Defaults plötzlich wieder auftauchen.

Ziel des Patches

Dieses Skript stellt das Einklick-Verhalten dauerhaft wieder her – sowohl unter Plasma 5 als auch 6 – und schützt zuverlässig gegen Rücksetzung durch Updates oder Defaults. Es nutzt offizielle KDE-Tools (kein sed, kein Dirty-Hack) und lässt sich vollständig interaktiv bedienen.

Funktionen im Überblick

  • Aktiviert Einklick dauerhaft, unabhängig von Plasma-Version
  • Optional: Deaktiviert Doppelklick vollständig
  • Erkennt automatisch die Plasma-Version
  • Führt Änderungen über `kwriteconfig5` durch (kein Manipulieren von Dateien per Texteditor)
  • Verifiziert gesetzte Einstellungen
  • Bietet interaktive GUI-Konfiguration via `kdialog`
  • Erstellt auf Wunsch einen Autostart-Eintrag
  • Optional: Rückkehr zum KDE-Default möglich
  • Prüft Abhängigkeiten und Schreibrechte
  • Kann auch ohne Terminal genutzt werden (GUI-Modus)

Zielgruppe

  • Nutzer von Plasma 6 (Standardverhalten wurde dort auf Doppelklick umgestellt)
  • Nutzer von Plasma 5, die zukünftigen Änderungen vorbeugen wollen
  • Alle, die ein wartbares, nicht-invasives Tool bevorzugen

Nutzung

1. Skript speichern

Öffne einen Texteditor (z. B. Kate oder KWrite) und speichere den folgenden Code unter dem Namen:

kde-oneclick-patcher.sh

Achte darauf, dass der Dateiname auf `.sh` endet.

2. Skript ausführbar machen

A: Per Rechtsklick → Eigenschaften → Reiter "Berechtigungen" → Haken bei „Datei ist ausführbar“

B: Alternativ im Terminal: chmod +x kde-oneclick-patcher.sh

3. Skript starten

A: Doppelklick auf die Datei und „Ausführen“ oder „Ausführen im Terminal“ wählen

B: Terminal öffnen und ausführen: ./kde-oneclick-patcher.sh

Das Skript zeigt dann alle weiteren Optionen grafisch an.

Der Quellcode

#!/bin/bash
set -e
CONFIG_DIR="${HOME}/.config"
AUTOSTART_DIR="${CONFIG_DIR}/autostart"
KDEGLOBALS="${CONFIG_DIR}/kdeglobals"
AUTOSTART_FILE="${AUTOSTART_DIR}/restore-singleclick.desktop"
SCRIPT_PATH="$HOME/.local/bin/restore-singleclick.sh"

echo "KDE One Klick Patcher by June"
echo "for Debian Lovers"
echo "Powered for The Debianforum and others..."

for cmd in kwriteconfig5 kreadconfig5 kdialog; do
    if ! command -v "$cmd" >/dev/null 2>&1; then
        zenity --error --text="$cmd fehlt. Bitte mit 'sudo apt install kde-cli-tools' installieren."
        exit 1
    fi
done

if [ ! -w "$CONFIG_DIR" ]; then
    kdialog --error "Keine Schreibrechte auf $CONFIG_DIR – Skript wird abgebrochen."
    exit 1
fi

detect_plasma_version() {
    plasmashell --version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+' | head -n1
}

set_single_click() {
    kwriteconfig5 --file "$KDEGLOBALS" --group "KDE" --key "SingleClick" "true"
    kwriteconfig5 --file "$KDEGLOBALS" --group "KDE" --key "DoubleClick" "false"
}

verify_setting() {
    value=$(kreadconfig5 --file "$KDEGLOBALS" --group "KDE" --key "SingleClick")
    if [ "$value" = "true" ]; then
        kdialog --msgbox "Einklick wurde erfolgreich aktiviert."
    else
        kdialog --error "Einstellung konnte nicht verifiziert werden – bitte manuell prüfen."
    fi
}

reset_to_kde_default() {
    kwriteconfig5 --file "$KDEGLOBALS" --group "KDE" --key "SingleClick" "false"
    kwriteconfig5 --file "$KDEGLOBALS" --group "KDE" --key "DoubleClick" "true"
    kdialog --msgbox "Zurück zum KDE-Default (Doppelklick) gesetzt."
}

enable_autostart() {
    if [ -f "$AUTOSTART_FILE" ]; then
        kdialog --msgbox "Autostart-Eintrag existiert bereits: $AUTOSTART_FILE"
        return
    fi

    mkdir -p "$(dirname "$SCRIPT_PATH")"
    cp "$0" "$SCRIPT_PATH"
    chmod +x "$SCRIPT_PATH"
    mkdir -p "$AUTOSTART_DIR"

    cat > "$AUTOSTART_FILE" <<EOF
[Desktop Entry]
Type=Application
Exec=$SCRIPT_PATH
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Restore SingleClick Behavior
Comment=Ensures single click is always active
EOF

    kdialog --msgbox "Autostart wurde eingerichtet."
}

remove_double_click() {
    kwriteconfig5 --file "$KDEGLOBALS" --group "KDE" --key "DoubleClick" "false"
    kdialog --msgbox "Doppelklick wurde entfernt, soweit möglich."
}

ask_kdialog() {
    question="$1"
    default_yes="$2"
    if [ "$default_yes" = "yes" ]; then
        kdialog --yesno "$question (Standard: Ja)" && return 0 || return 1
    else
        kdialog --yesno "$question (Standard: Nein)" && return 0 || return 1
    fi
}

kdialog --msgbox "KDE One Klick Patcher by June\n\nDieses Tool aktiviert das klassische Einklick-Verhalten dauerhaft – unter Plasma 5 und 6."

PLASMA_VERSION=$(detect_plasma_version)
if [ -n "$PLASMA_VERSION" ]; then
    kdialog --msgbox "Plasma-Version erkannt: $PLASMA_VERSION"
else
    kdialog --sorry "Plasma konnte nicht erkannt werden – fahre trotzdem fort."
fi

set_single_click
verify_setting

if ask_kdialog "Soll das Skript bei jedem Start automatisch ausgeführt werden?" "yes"; then
    enable_autostart
fi

if ask_kdialog "Soll die Konfiguration update-resistent gemacht werden (z. B. über /etc/skel)?" "no"; then
    kdialog --msgbox "Hinweis: Für echte Update-Resistenz kann das Skript in /etc/skel oder systemweite Konfigurationen integriert werden."
fi

if ask_kdialog "Soll Doppelklick vollständig deaktiviert werden?" "yes"; then
    remove_double_click
fi

if ask_kdialog "Willst du später wieder auf KDE-Default zurücksetzen können?" "no"; then
    reset_to_kde_default
fi

kdialog --msgbox "Konfiguration abgeschlossen. Das Skript kann jederzeit erneut ausgeführt werden."

Feedback

Feedback ist ausdrücklich erwünscht – egal ob zur Funktion, zu Edge-Cases oder zur Erweiterung (z. B. .deb-Paket, systemweite Nutzung). Einfach im Forum melden!

Lizenz

Dieses Skript steht unter der MIT-Lizenz. Nutzung auf eigene Gefahr.


Erstellt von: June für das Debianforum Getestet unter: Debian 12 mit KDE Plasma 5.27 & 6.0