Eclipse #1: KDE, Copypasta und unklickbare Buttons – eine Hassliebe

Dieser Post ist hautpsächlich eine Memo an mich selbst, damit ich in Zukunft die einzelnen Lösungen schneller finde, wenn ich mal wieder eine neue Installation vor mir habe 😀

Eclipse-Benutzer unter KDE können sich seit etwa 2008 an einem bekannten, aber immer noch nicht behobenen Bug erfreuen. Man markiert einen Auszug seines Quellcodes, drückt das allseits beliebte Kürzel Strg-C, springt in eine andere Datei und erwartet, nach einem Druck auf Strg-V seinen gewünschten Code-Auszug wieder zu erblicken. Funktioniert auch manchmal. Aber eben nur manchmal. Öfter kommt es vor, dass nur ein Teil des kopierten Textes wieder erscheint. Mal fehlt der Anfang, mal das Ende. Mal passiert beim Einfügen gar nichts. Und manchmal erscheint etwas völlig unerwartetes, das man nicht einmal vorher kopiert hat. Oder etwas vom Tag zuvor. Die Möglichkeiten sind fast endlos. Etwa jeder zweite bis fünfte Copy/Paste-Vorgang funktioniert wie man es erwartet, der Rest verblüfft immer wieder durch fast schon nicht-deterministisches Verhalten.

Nun ist die Ursache hierfür eigentlich seit über zwei Jahren bekannt – es liegt am Zusammenspiel zwischen Eclipse und Klipper, der Zwischenablage-Verwaltung von KDE. Diese bietet einerseits ein Mittel, die unterschiedlichen Copy/Paste-Protokolle von X11, KDE, Qt, GTK, usw. usf. unter einen Hut zu bringen. Aber sie bietet auch einige komfortable Features, wie beispielsweise eine durchsuchbare Historie der Zwischenablage. Es ist also möglich, etwas einzufügen, was man vor Tagen mal in die Zwischenablage kopiert hat. Wenn man nun (z.B. als Windowsbenutzer ohne große Linuxkenntnisse) nichts von diesem Tool weiß, und annimmt, dass einfach immer nur der zuletzt kopierte Text in der Zwischenablage sein kann und sonst nichts, kann man von diesem unerwarteten Eclipse-Verhalten ganz schön verwirrt sein. Ohne Hintergrundwissen über die Zusammenhänge weiß man vielleicht auch nicht direkt, wonach man überhaupt suchen soll, daher kann dieser Eintrag vielleicht dem einen oder anderen doch irgendwann mal behilflich sein. Also legen wir mal los…

Es gibt im Prinzip keine wirklich saubere Lösung, sondern nur zwei Workarounds. Vielleicht sieht das in weiteren zwei Jahren ja anders aus…

Erste Möglichkeit: Strg-C in Eclipse immer zweimal drücken. Komischerweise funktioniert der zweite Copy-Vorgang immer, egal ob der erste erfolgreich gewesen wäre oder nicht. Geht problemlos, aber ist nervig. Ständig vergisst man es doch wieder, oder man hämmert unnötig auf seiner Tastatur rum und geht damit seinen Kollegen auf die Nerven 😀

Zweiter Weg: Klipper deaktivieren. Die Probleme verschwinden sofort. Alles geht wie gewohnt. Nachteil: Man verliert auch alle Features. Sprich: Die durchsuchbare Historie gehört der Vergangenheit an. Geht problemlos, wenn man auf dieses Feature keinen Weg legt. Für den Rest der Benutzer aber auch eher unschön.

Dritte und optimale Möglichkeit: Man deaktiviert in den Klipper-Einstellungen lediglich den Punkt „leere Zwischenablage vermeiden“ (in englischer Sprache: „prevent empty clipboard“). Genau diese Einstellung ist es nämlich, die das unvorhersehbare Verhalten in Eclipse auslöst. Die Option ist standardmäßig eingeschaltet, was leider bei jedem Eclipse-Benutzer unter KDE erstmal dieses Fehlverhalten auslöst, bis er sich darum gekümmert hat…

Übrigens ist Eclipse nicht die einzige Anwendung, die hiervon betroffen ist. Azureus/Vuze ist ein weiteres Programm mit dem gleichen Problem, hier fällt es allerdings nicht wirklich auf. Bei einer IDE da schon eher, dort nervt es stündlich, wenn nicht sogar öfter.

Nun kommen wir zum nächsten Bug in der Eclipse IDE: Die unklickbaren Buttons. Man bemerkt es zum Beispiel, wenn man mit Strg-F eine Datei nach einem Muster durchsuchen will, und sich der Suchbutton nicht anklicken lässt. Er wechselt zwar den Status (man sieht also, dass er gedrückt wird), aber das GUI-Event des tatsächlichen Klicks (loslassen des Buttons) wird nicht ausgelöst. Mehrere Buttons in der IDE sind betroffen (z.B. „Finish“ beim Fertigstellen eines neuen Projektes), aber nicht alle.
Ich will hier nicht lange auf die Ursache des Problems eingehen, das würde den Rahmen sprengen, so viel wollte ich eh schon nicht schreiben. Kurz gesagt liegt es an einem geänderten Fensterverhalten ab einer gewissen GTK-Version.

Die einfache Lösung: Man startet Eclipse mit dem Parameter „GDK_NATIVE_WINDOWS=1“. Also in der Kommandozeile:
GDK_NATIVE_WINDOWS=1 eclipse

Das kann man z.B. seiner Startverknüpfung oder einem Skript hinzufügen, dann muss man in Zukunft nicht mehr dran denken.
Oder man drückt nach dem Mausklick (der den Button nur selektiert, aber nicht auslöst) die Entertaste, funktioniert ebenfalls, ist aber deutlich nerviger 😀

pl0gbar KL 2010, die erste

Um Sarah zu zitieren:

hat im neuen Jahr eigentlich schon jemand über eine Lautrer #pl0gbar nachgedacht?!

Vielleicht ist es überraschend, die Einladung hier zu lesen, statt wie (fast) immer auf Evilism, aber einer muss es ja machen 😉

Da es im neuen Jahr noch keine #pl0gbar in KL gab, wird es höchste Zeit! Ich schlage mal einfach den übernächsten Samstagabend, den 6. März 2010 vor. Für Zustimmung, Widerrede, Alternativvorschläge – kommentieren! Ort sollte wie üblich das St. Martin sein, gegen 19-20 Uhr.

Also los, kommentiert, twittert, retweetet – bis es jeder der üblichen Verdächtigen im Umkreis mitbekommen hat 😀

————————

EDIT à la Sarah

Wäre sau gut, wenn wir mal nen Termin final auf die Reihe kriegen. Sonst wird es langsam eng 🙂

Irgendwelche Einwände gegen den 13.03.2010 ab 20 Uhr im St. Martin ?!
Andere Vorschläge sind auch genehm – hauptsache es passiert was 😀

Songbird 1.4.3

Keine riesige Neuigkeit, aber ich halte es für erwähnenswert. 🙂

Gerade eben hat mich mein derzeitiges Lieblings-Musikabspielprogramm mit einem kleinen Update-Notification-Popup überrascht. Bei der nun aktuellen Versionsnummer 1.4.3 dachte ich eigentlich zuerst nur an ein kleines Bugfix-Update und habe selbiges natürlich gleich installiert – woraufhin mich Songbird nach dem Neustart mit einem vollkommen neuen User Interface überrascht hat. Auch das interne Datenbank-Format scheint sich geändert zu haben, da beim Neustart zuerst einmal die Medien-Bibliothek neu aufgebaut wird. Das hat schon relativ lange gedauert, hoffen wir einfach, dass sich das positiv auf größere Sammlungen auswirkt, denn bei mittlerweile etwa 400 GB Musik hat es beim alten Songbird schon eine spürbare Weile gedauert, bis das Programm gestartet und wirklich benutzbar war.

Bis jetzt finde ich die neue Version auf den ersten Blick sehr schick und gut gelungen. Seit ich (vor mittlerweile etwa einem Jahr) auf Songbird umgestiegen bin (von Amarok, den ich bisher favorisiert hatte), bin ich damit vollkommen zufrieden und kann das Programm nur weiter empfehlen.

Besorgen, los los! 8)