Wie bekomme ich den verlorenen Busy-Cursor beim Öffnen einer Datei/App zurück?

Wie bekomme ich den verlorenen Busy-Cursor beim Öffnen einer Datei/App zurück?

Es gibt einen Fehlerbericht dazu inhttps://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/862662, obwohl ich mir in letzter Zeit nicht mehr sicher bin, ob es wirklich ein Nautilus-Fehler ist oder nicht. Vor der Installation von Precise habe ich es getestet, indem ich PCManFM installiert habe, um zu sehen, ob beim Öffnen von Dateien daraus während des Wartens der Besetzt-Cursor angezeigt wird, aber der Besetzt-Cursor wird immer noch nicht angezeigt.

Der Busy Cursor funktioniert sowohl in Oneiric als auch in Precise Live USB, und in der früheren Zeit, in der ich Oneiric verwende, hat er auch funktioniert. Dann habe ich Precise installiert und meinen Home-Ordner unformatiert gelassen, aber das Problem besteht weiterhin. Ich habe auch versucht, die Konfigurationsordner und -dateien in meinem Home-Ordner zu entfernen (eigentlich in einen Ordner zu verschieben, damit er wiederhergestellt werden kann), mich abzumelden und wieder anzumelden, aber das Problem besteht immer noch (in Oneiric habe ich jedoch einen neuen Benutzer erstellt, um zu sehen, ob es sich um ein Konfigurationsproblem handelt, aber auch das hat nichts genützt).

Daher,wenn man bedenkt, dass der Busy Cursor in der Live Session funktioniert, gibt es eine Möglichkeit, den Busy-Cursor im installierten System wieder normal zum Laufen zu bringen (z. B. durch Bearbeiten einer Systemkonfiguration)?

Ist das ein allgemeines Problem oder tritt es nur bei bestimmter Hardware auf?

Antwort1

Zwei mögliche Problemumgehungen für diesen Fehler:

  • Installiere dasPaket "gdm". Das Installationsprogramm fragt Sie, welchen Anmeldemanager Sie bevorzugen. Wählen Sie „gdm“ statt „lightdm“.
  • Bleiben Sie bei lightdm, aber konfigurieren Sie Ihr Konto so, dass Sie zum Anmelden kein Passwort eingeben müssen. Wenn Ihr Home-Ordner verschlüsselt ist, ist das nicht möglich. Wenn nicht, aktivieren Sie die Option „Automatische Anmeldung“ im Abschnitt „Benutzerkonten“ des Systemeinstellungsfensters.

Beachten Sie, dass diese Lösung nicht perfekt ist. Nur GTK-Anwendungen haben beim Start einen aktiven Cursor. Bei Qt und anderen, wie VLC und Libreoffice, ist dies immer noch nicht der Fall.

Antwort2

Nur ganz schnell noch eine mögliche Problemumgehung:

ÜberprüfenIndex von /doc/startup-notification-devel-0.12/beispieleund holen Sie sich test-monitor.c; ändern Sie die Datei so, dass sie übereinstimmt mit:

...
//#include <config.h>
#ifndef SN_API_NOT_YET_FROZEN
#define SN_API_NOT_YET_FROZEN
#endif
#include <libsn/sn.h>
...
int
main (int argc, char **argv)
{
  Display *xdisplay;
  SnDisplay *display;
  SnMonitorContext *context;

  setbuf (stdout, NULL);

  xdisplay = XOpenDisplay (NULL);
...

Bauen mit:

sudo apt-get install libstartup-notification0-dev
gcc -I/usr/include/startup-notification-1.0 test-monitor.c -o test-monitor -lX11 -lstartup-notification-1

Dann:

$ sudo apt-get install python-osd
$ cat > osd.py <<"EOF" 
import pyosd # XOSD
import time
import sys
import os

# default_font="-*-helvetica-medium-r-normal-*-*-360-*-*-p-*-*-*"
# xlsfonts | less # to find fonts, say
# -misc-fixed-bold-r-normal--0-0-75-75-c-0-iso10646-1:
tfont="-*-fixed-bold-r-normal--*-*-100-*-c-*-*-*"
osd = pyosd.osd(font=tfont, colour='#FF0000', lines=3)
osd.set_align(pyosd.ALIGN_CENTER)
osd.set_pos(pyosd.POS_MID)
display = osd.display
osd.set_timeout(1)
# display will last as long the python program hasn't exited!
#display("Hello") 
#display(50, type=pyosd.TYPE_SLIDER, line=0) 

display("Hello from pyosd/XOSD", line=1)


# disable stdin buffering (ok on Python 2.7)
ttfo = os.fdopen(sys.stdin.fileno(), 'r', 0)

while 1:
  try:
    inline = ttfo.readline().rstrip()
  except KeyboardInterrupt:
    break
  if not inline:
    break
  print(inline)
  for ix in range(0,50):
    display(ix, type=pyosd.TYPE_PERCENT, line=0) 
    display(inline, line=1)
    display(ix, type=pyosd.TYPE_PERCENT, line=2) 
    time.sleep(0.02)
  time.sleep(1)
EOF

... und testen:

./test-monitor | stdbuf -oL grep description | python osd.py

In /etc/lightdm/lightdm.confadd session-setup-script=/path/to/mylightdm-startup.sh; und in mylightdm-startup.sh`:

SND=/path/to/folder
($SND/test-monitor | stdbuf -oL grep description | python $SND/osd.py) &

Dies sollte Ihnen eine einfache Bildschirmanzeige-Benachrichtigung geben; eine andere (kompliziertere) Möglichkeit ist die Verwendung vonGhosd - On-Screen-Display (OSD) mit Transparenz(AuchHier).

Antwort3

Dieser Fehler tritt auf, wenn Sie den Lightdm-Anmeldemanager verwenden. Der Fehler wird von Lightdm, GDK3 und der Spezifikation von Xorg koordiniert und ist ausführlicher beschrieben inLaunchpad-Fehler #1024482.

Um das Problem zu beheben, müssen Sie GDK_CORE_DEVICE_EVENTSeine Umgebungsvariable festlegen, die dafür sorgt, dass GDK3 den fehlerhaften Xorg-Aufruf nicht verwendet.

echo "GDK_CORE_DEVICE_EVENTS=true" | sudo tee ~lightdm/.pam_environment

verwandte Informationen