Xkill unter kubuntu 26.10 funktioniert nicht

andy_m4 schrieb:
Das X11/Xorg verschwindet wird wohl noch ne ganze Weile dauern.
"Das" oder "Dass" - du gehörst wohl auch zu denen, die das permanent falsch machen. ;)

Wenn man mal guckt, wie lange andere (und weitaus unbedeutendere) legacy-Technologie überlebt, muss man sich darum noch nicht akut Sorgen machen.
Ich mach mir darum eh keine Sorgen - in allen von mir genutzten Systemen gibt es kein X11 mehr.

Unabhängig davon, hier in diesem Strang ging es um Kubuntu 26.10 und da ist X11 nun mal nicht mehr vorhanden und muss auch, nur um ein Programm zu killen, nicht nachinstalliert werden → Thema gelöst, fertig.
 
  • Gefällt mir
Reaktionen: Linuxfreakgraz
Habicht schrieb:
nur um ein Programm zu killen, nicht nachinstalliert werden
Ja. Aber die Tastenkombination ist auch keine soo tolle Lösung. Ich hoffe es gibt da eine bessere Lösung. Notfalls muss ich KI fragen. XFWM4 Themes lassen sich ja relativ einfach anscheinend in aurorae themes konvertieren, habe ich gesehen. GTK Themes lassen sich mit etwas Feintuning in kvantum öffnen. Nur xkill läuft nicht. Da muss ein funktionierender Ersatz her. Notfalls lasse ich mir das von ki bauen.
 
Habicht schrieb:
"Das" oder "Dass" - du gehörst wohl auch zu denen, die das permanent falsch machen. ;)
Das kann gut sein. 🙂


gaym0r schrieb:
Wie kommst du drauf, dass es nicht mehr gepflegt wird?
Ergänzung:
Der xorg-server 21.1.25 beispielsweise ist ja Anfang Oktober erschienen.

Aber vielleicht ist auch gemeint, das keine neuen Features mehr erscheinen werden und auch die Weiterentwicklung (was moderne Hardware/Software angeht) nicht mehr weiter gehen wird.
Und das ist in der Tat fraglich.

Gibt zwar Forks wie xlibre, die aber auch die grundsätzlichen Probleme nicht lösen können. Zumindest nicht ohne inkompatibel zu werden. Und dann stellt sich auch irgendwann die Sinnfrage. Weil wenn ich nicht mal mehr Kompatibilität hab, kann ich genauso gut zu Wayland greifen.
 
  • Gefällt mir
Reaktionen: Deinorius und Linuxfreakgraz
andy_m4 schrieb:
Aber vielleicht ist auch gemeint, das keine neuen Features mehr erscheinen werden und auch die Weiterentwicklung (was moderne Hardware/Software angeht) nicht mehr weiter gehen wird.
Was ich mal so gelesen habe, haben neue Entwickler Schwierigkeiten den alten Code zu lesen.
 
@Linuxfreakgraz Es ist halt auch sehr viel über Jahrzehnte historisch gewachsen, wie man so schön sagt.
Und natürlich ist das dann inzwischen ein ziemliches Kauderwelsch.

Deswegen gibt es ja den Xlibre-Ansatz, das mal so ein bisschen aufzuräumen (möglicherweise kann auch KI dabei helfen, den Quelltext wieder urbar zu machen).
Ist aber trotzdem schwer weil viele grundsätzliche architektonische Entscheidungen und Entscheidungen die das Protokoll betreffen sind auch einfach überholt und würde man so nicht mehr machen.
Und klar kann man auch das im Prinzip aufräumen, nur verlässt man damit halt im Prinzip die X11-Welt und dann hätte man ein new-X11 welches inkompatibel ist.

Und selbst wenn man den Weg wählen würde, das man das entschlackt und nur noch ein Subset von X11 supportet wäre das ja auch nicht wirklich zielführend.

Zumal es ja mit XWayland eine Möglichkeit gibt, legacy-Software weiter zu betreiben.
 
andy_m4 schrieb:
Es ist halt auch sehr viel über Jahrzehnte historisch gewachsen
Deshalb wäre Ausmisten mit der von dir beschriebenen Inkompatibilität Verbunden, daher ist stattdessen ein leicht zu wartendes Protokoll nur ein Konsequenter Schritt.

andy_m4 schrieb:
Ist aber trotzdem schwer weil viele grundsätzliche architektonische Entscheidungen und Entscheidungen die das Protokoll betreffen sind auch einfach überholt und würde man so nicht mehr machen.
Wenn ich mich nicht irre fingen die Vorläufer von X.org in den 1970er an, ich will das jetzt nicht googlen.

Das Problem liegt bei kleinen Projekten ihren Code umzuschreiben, und bei Betriebsystemen außerhalb des Linuxverse, außer bei Redox das habe ich auch getestet und kommt mit einen ganz eigenen Grafikstack daher. Wenn man bei Unixiden Systemen bleibt.
 
Zuletzt bearbeitet: (Müde Augen)
Linuxfreakgraz schrieb:
Deshalb wäre Ausmisten mit der von dir beschriebenen Inkompatibilität Verbunden
Ja. Man muss sich ja auch vergegenwärtigen, das zur damaligen Zeit die Hardware so gut wie nix konnte und man deshalb selbst primitive Dinge in Software realisieren musste.
Genau für diese Situation ist halt auch X11 konzipiert worden.

Heute haben wir aber die Situation, das selbst der einfachste Grafikchip der in irgendeiner embedded-Hardware verbaut ist da meilenweit weg von dem ist, was damals gängig war. Logischerweise hast Du deshalb viel Kram, den Du eigentlich nicht brauchst.
Dazu kommt, das X11 als erweiterbares Protokoll definiert ist. Und eigentlich ist das eine gute Sache die mit dazu beigetragen hat, das X11 auch heute noch recht gut funktioniert.
Das führte aber eben auch dazu, das über die Jahrzehnte zig Protokoll-Erweiterungen angefallen sind.

Ins Kern-Protokoll eingreifen macht ja ohnehin wenig Sinn. Das einzige, was sinnvoll wäre, ist bei den Erweiterungen anzusetzen. Aber auch da wirst Du natürlich Kompatibilität brechen für Software(teile) die auf diese Erweiterungen angewiesen sind.

Und ein veraltetes Protokoll am leben zu erhalten, macht aus meiner Sicht nur aus Kompatibilitätsgründen Sinn.
Daher sehe ich auch diese Aufräumprojekte a-la XLibre eher skeptisch.
Aber gut. Sollen die mal machen und dann kann man immer noch anhand des Ergebnisses bewerten.

Für die meisten wird sich jetzt und auf absehbarer Zeit gar nicht mehr die Frage stellen. Die werden einfach Wayland nutzen und fertig. Und selbst wenn man einen X11-basierten Desktop hat, kann man sich ja mit Hilfe von XWayland eine kompatible Umgebung basteln, in der man das weiter betreiben kann.

Der Bedarf für ein natives Xorg wird damit immer "nischiger" werden.
 
  • Gefällt mir
Reaktionen: Deinorius und Linuxfreakgraz
#!/usr/bin/env bash
#
# kwin-xkill - an xkill for KWin on Wayland (works on X11 sessions too).
#
# xkill turns the pointer into a target cursor, kills the application you click
# on, and does nothing if you right-click. On Wayland no client is allowed to
# kill another client, so this hands the job to the one process that is allowed
# to: the compositor. KWin already implements exactly that interaction as its
# "Kill Window" action (on-screen hint, target cursor, force kill on left click,
# cancel on right click or Escape) and exposes it on D-Bus as
# org.kde.KWin.killWindow. This script adds the sanity checks around that call
# so you get a dependable command for a terminal or a keyboard shortcut.
#
# Exit codes: 0 = the picker was started, 1 = something went wrong, 2 = bad usage.

set -uo pipefail

PROG=${0##*/}
BUS_ARGS=(--session --type=method_call)
KILL_SERVICE=org.kde.KWin
KILL_PATH=/KWin
KILL_METHOD=org.kde.KWin.killWindow

usage() {
cat <<EOF
$PROG - click a window to force-kill it (an xkill for KWin)

Usage:
$PROG

Then click the window you want to kill. Left click force-kills the application
that owns it; right click or Escape cancels. The command returns immediately
and KWin keeps the picker open until you pick or cancel.

Options:
-h, --help show this help and exit

Nothing happens if you click a window KWin does not manage (the desktop or a
panel), or plasmashell itself.

On Plasma 6 this same picker is also available without any tool at all:
Meta+Ctrl+Esc (System Settings > Keyboard > Shortcuts > KWin > "Kill Window").
EOF
}

die() {
printf '%s: %s\n' "$PROG" "$1" >&2
exit "${2:-1}"
}

# dbus-send is used for everything: the kill method is declared no-reply by
# KWin, so a caller that waits for a reply would sit there until it timed out.
dsend() {
dbus-send "${BUS_ARGS[@]}" --print-reply=literal "$@" 2>&1
}

case "${1:-}" in
-h | --help) usage; exit 0 ;;
'') : ;;
*) die "unknown argument '$1' (try --help)" 2 ;;
esac

command -v dbus-send >/dev/null 2>&1 ||
die "dbus-send is missing; it is part of the 'dbus' package."

# 1. Is a KWin session reachable at all?
owner=$(dbus-send --session --type=method_call --print-reply=literal \
--dest=org.freedesktop.DBus /org/freedesktop/DBus \
org.freedesktop.DBus.NameHasOwner string:$KILL_SERVICE 2>&1) ||
die "cannot talk to the session bus (is a desktop session running?)"

case $owner in
"boolean true") : ;;
*) die "KWin is not running on this session; $PROG only works under KWin." ;;
esac

# 2. Does this KWin actually offer the click-to-kill call?
xml=$(dsend --dest=$KILL_SERVICE "$KILL_PATH" \
org.freedesktop.DBus.Introspectable.Introspect) ||
die "KWin did not answer on D-Bus (is it still starting up?)"

case $xml in
'name="killWindow"') : ;;
*) die "this KWin has no org.kde.KWin.killWindow; press Meta+Ctrl+Esc instead." ;;
esac

# 3. Guard against old KWin, where that D-Bus call meant "kill the focused
# window" rather than "let the user pick a window". KWin 6 opens the picker.
info=$(dsend --dest=$KILL_SERVICE "$KILL_PATH" org.kde.KWin.supportInformation) ||
die "could not read the KWin version; press Meta+Ctrl+Esc instead."

version=$(printf '%s\n' "$info" |
sed -n 's/^KWin version: \([0-9][0-9.]\).*$/\1/p' | head -n 1)
major=${version%%.*}

if [ -z "$version" ]; then
die "could not work out the KWin version; press Meta+Ctrl+Esc instead."
fi
if [ "$major" -lt 6 ] 2>/dev/null; then
die "KWin $version is too old: its D-Bus killWindow() kills the focused window instead of letting you pick one. Press Meta+Ctrl+Esc instead."
fi

# 4. Hand over to KWin: it shows the on-screen hint, switches the cursor to the
# picker, and force-kills whatever you click. Deliberately no reply wait.
dbus-send "${BUS_ARGS[@]}" --dest=$KILL_SERVICE "$KILL_PATH" "$KILL_METHOD" ||
die "KWin rejected the request."

exit 0

Hoffe das Forum zerlegt den Code nicht. KI schlägt mir dieses Skript vor.
 
@bluedxca93 KI kann bis zu 40% Fehler enthalten.


andy_m4 schrieb:
Aber gut. Sollen die mal machen und dann kann man immer noch anhand des Ergebnisses bewerten.
Vielleicht sollte man spenden, alles fällt und steht mit der Manpower, als Hobby ist das nicht zu realisieren.
 
Electric_Eye schrieb:
wird zwar seit Ewigkeiten nicht mehr weiterentwickelt
Fractal Scaling, neue GPU Technologie.
Alles kommt ins Hintertreffen.
Electric_Eye schrieb:
Versorgung mit Sicherheitsupdates.
Das reicht nicht um dauerhaft bestand zu haben, irgendwann ist man mit neuer Hardware Inkompatibil oder hat die größten Schwierigkeiten, spätestens wenn es für X.org keine Treiber mehr entwickelt werden.
 
Was Du geschrieben hast, stimmt durchaus, aber es ging nur darum, ob es noch Sicherheitsupdates erhält oder nicht. Klar ist es stark veraltet, aber leider gibt es noch immer Desktop-Umgebungen wie z.B Xfce 4.20, die noch kein stabiles Wayland mitbringen.
 
  • Gefällt mir
Reaktionen: Linuxfreakgraz
Electric_Eye schrieb:
aber leider gibt es durchaus noch Desktops wir z.B Xfce 4.20, die noch keine stabiles Wayland mitbringen.
Selbst das wäre kein K.O.-Kriterium für Wayland. Du kannst 'nen fullscreen-Wayland Compositor nehmen und darin XFCE als XWayland-Session laufen lassen.
 
Linuxfreakgraz schrieb:
@andy_m4 wie stabil läuft das?
Da hab ich jetzt keine tiefen Erfahrungen drin die über ein "damit rumspielen" hinaus gehen.
Aber prinzipiell kann man das machen.
 
  • Gefällt mir
Reaktionen: Linuxfreakgraz
Linuxfreakgraz schrieb:
wie stabil läuft das?
Wayfire und/oder labwc habe ich genutzt, labwc hat(te) irgendwie ein Problem mein keymap/keyboard layout zuzuordnen, weshalb ich schnell das Interesse daran verloren habe. Wayfire fand ich deutlich alltagstauglicher und ist eine gute Option, imo.
Wesentliche Veränderungen in Bezug auf RAM-Bedarf sind mir keine aufgefallen im Vergleich zu xfwm4 – „bloatfree“ ist hier nicht mein Fetisch, mein Browser ballert ohnehin einige Gigabyte weg.

edit: Die Xfce Wayland Roadmap dokumentiert etwaige Baustellen.
https://wiki.xfce.org/releng/wayland_roadmap
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Linuxfreakgraz
Wenns dir darum geht, dass du das über einen simplen Command á la xkill machen kannst, geht auch das hier:
Bash:
sudo tee /usr/local/bin/wkill <<EOF && sudo chmod +x /usr/local/bin/wkill
#!/bin/bash

qdbus6 org.kde.KWin /KWin killWindow
EOF

Erzeugt einfach ein Shell-Skript, das sich wkill nennt, analog zu xkill, der D-Bus-Befehl wird da reingeschrieben und das Skript dann ausführbar gemacht. Wenn du dann auf der Konsole wkill eingibst, hat es den gleichen Effekt wie wenn du xkill eingibst. Funktioniert aber eben so nur unter KDE Plasma 6 und keinen anderen Desktops.

20261109_202738.jpg
 
  • Gefällt mir
Reaktionen: bluedxca93 und Linuxfreakgraz
Zurück
Oben