Compton richtig konfigurieren
Compton ist ein auf xcompmgr basierender Compositor, der aktiv weiterentwickelt wird und einige nette Features wie automatische Transparenz für inaktive Fenster mitbringt. Damit ist er derzeit die einzige Wahl, will man einen relativ bugfreien Compositor benutzen (der nicht in einem Fenstermanager integriert ist).
Allerdings liegt es nicht in den Quellen, compton muss selbst kompiliert werden.
Was noch fehlt ist Feinschliff. So haben Ubuntus Notify-OSD-Benachrichtigungen einen hässlichen weißen Schatten/Rahmen, genauso Simdock. Doch kann das mit ein paar Konfigurationseinstellungen gefixt werden:
shadow-exclude = [ "n:e:Notification" , "class_g ?= 'Notify-osd'"];
behebt den Schatten der Benachrigungen (via)
shadow-ignore-shaped = true;
half bei Simdock
Edit: Leider funktioniert das nicht zuverlässig, besser bewährt sich ein
wintypes: { dock = { shadow = false; }; };
Hier meine gesamte Konfigurationsdatei ~/.compton.conf (fast identisch zur Beispielkonfiguration):
# Shadow shadow = true; no-dnd-shadow = true; no-dock-shadow = true; clear-shadow = true; shadow-radius = 7; shadow-offset-x = -7; shadow-offset-y = -7; # shadow-opacity = 0.7; # shadow-red = 0.0; # shadow-green = 0.0; # shadow-blue = 0.0; shadow-exclude = [ "n:e:Notification" , "class_g ?= 'Notify-osd'"]; # shadow-exclude = "n:e:Notification"; shadow-ignore-shaped = true; # Opacity menu-opacity = 0.9; inactive-opacity = 0.8; frame-opacity = 0.7; inactive-opacity-override = false; alpha-step = 0.06; # Fading fading = true; # fade-delta = 30; fade-in-step = 0.03; fade-out-step = 0.03; # no-fading-openclose = true; # Other mark-wmwin-focused = true; mark-ovredir-focused = true; use-ewmh-active-win = false; detect-rounded-corners = true; detect-client-opacity = true; refresh-rate = 0; vsync = "none"; dbe = false; paint-on-overlay = false; sw-opti = false; # Window type settings wintypes: { tooltip = { fade = true; shadow = false; opacity = 0.75; }; dock = { shadow = false; }; };
Grub 2 immer automatisch booten lassen
Der Timeout von Grub 2, also dass nach x Sekunden automatisch der Standardeintrag gestartet wird, funktionierte bei mir nicht zuverlässig. Manchmal startete der Timeout einfach nicht. Und tatsächlich hat Grub 2 einen Mechanismus, diesen Autoboot zu deaktivieren, wenn der letzte Boot nicht erfolgreich war - was mittels eines Boot-Skriptes festgestellt wird, über das ich beim Aufräumen gestolpert bin.
Nun ärgerte mich das schon eine Weile, weil jetzt nicht mehr zuverlässig mein Linux gestartet wurde. Ich weiß nicht, ob das am häufigeren Starten von Windows lag oder ob das Skript nicht zuverlässig funktionierte, aber der fehlende Timeout fiel mir erst seit kurzem auf.
Natürlich kann man den Autostart immer ausführen lassen. In der /boot/grub/grub.cfg steht in Zeile 59 dieser Code:
if [ ${recordfail} = 1 ]; then set timeout=-1 else set timeout=10 fi
Die Abfrage kann ersetzt werden durch:
set timeout=10
Der richtige Ort, um das persistent zu machen, ist wohl die make_timeout-Funktion in /etc/grub.d/00_header.
PS: Wenn ich mir diese "Konfigurationsdatei" so ansehe, die ein einziges Bashskript-Wirrwarr ist, freue ich mich fast auf UEFI und die dadurch ausgelöste Bewegung bei den Booloadern. Grub 2 ist ein Moloch. Warum sollte ein Bootloader keine normale ini/tom/sonstige-einfach-lesbare Konfiguration haben?
Simdocks Daseinsberechtigung
Für heute hatte ich einen schönen Vorsatz: Finde einen Ersatz für Simdock, damit du das Projekt aufgeben kannst. Ich bin gescheitert.
Meine Anforderungen an ein Dock sind ziemlich simpel:
- Icons für gestartete Programme und Programmstarter anzeigen
- Diese minimieren können
- Mit Mittelklick neue Instanzen starten
- Einfache Konfiguration (eigentlich nur wichtig: "Im Panel behalten" als Option haben)
- Transparenz unterstützen
Nun ist es natürlich nicht so, dass es kein anderes Programm gäbe, das dem im Grunde gerecht wird. Aber alle scheitern an der Transparenz - bzw am Zusammenspiel mit compton.
Als mögliche Alternative zu Simdock kenne ich diese Programme:
- Plank
- Wbar
- Avant-Window-Navigator
- Cairo-Dock (Glx-Dock)
Insbesondere Plank ist ein guter Kandidat, Simdock zu ersetzen: Ähnlich schlicht, aktiver entwickelt und mit allen notwendigen und zusätzlich einer Autohide-Funktion. Der einzige Nachteil wäre, dass es keine Pseudotransparenz zu unterstützen scheint. Und ich mag Simdocks Feature, das Programmicon im Dock mit dem Fenstericon zu updaten, was Plank ebenfalls nicht zu können scheint, aber das wäre kein Ausschlusskriterium.
Doch trotzdem funktionieren weder Plank noch die anderen Docks für mich. Wbar ist generell kaputt, die Icons schlieren und es scheint keine Menüs zu haben. Die anderen drei kommen mit compton/xcompmgr nicht zurecht. Hier die Bilder:
Plank
AWN
Cairo-Dock
Sie alle scheitern daran, bei aktiviertem Compositor Transparenz so zu aktivieren, dass der leere Bereich echt transparent ist, bzw bei AWN an der Transparenz des Iconhintergrunds. Dies ist das gleiche Problem, welches ich damals schon hatte und mich überhaupt zum Schrauben am verlassenen Simdock bewegt hat. Damals war es allerdings eine andere Ubuntuversion und andere Hardware, ich habe nicht damit gerechnet, dass das Problem noch existiert.
Hintergrund
Ein Dock muss eigentlich keine echte Transparenz per Compositor unterstützen, da es sowieso nie Fenster hinter sich hat. Die Ausnahme dieser Regel ist die Autohide-Funktion: Wenn das Dock von Vollbild-Fenstern verdrängt wird und vom Bildschirmrand aus über das Vollbild-Fenster fährt, wenn es aktiviert wird. Plank verhält sich so und das ist eigentlich ein schönes Feature.
Ein Dock mit Autohide-Funktion kann also eine Compositor-Funktion gut gebrauchen, ein Dock ohne (wie Simdock) kann probemlos darauf verzichten.
Warum aber ist der schwarze Balken so viel größer als die Docks selbst, was ist der leere Bereich? Ich bin darauf gestoßen, als ich an Simdock gearbeitet habe. Grundsätzlich will ein Dock gerne in Bereiche zeichnen, die erstmal nicht direkt zum Dock gehörig sind. Beispielsweise den Programmnamen in einem Tooltip über den Icons anzeigen oder die Icons nach oben hüpfen lassen, aber ohne den Bereich für sich zu beanspruchen. Ohne in den Code geschaut zu haben gehe ich davon aus, dass Plank und Cairo-Dock sich einen entsprechend großen Bereich als Canvas sichern.
Das wollte ich für Simdock übrigens auch machen, zusätzlich zum bestehenden Fenster mit einer hübschen dafür gedachten Funktion, das hat aber ein wxWidget-Bug verhindert (es hatte schlicht keinen Effekt).
Es scheint nun so, als ob im Zusammenspiel mit AMD-Grafikkartentreibern und xcompmgr/compton die in diesen Docks verwendete Transparenz nicht funktioniert und der von ihnen registrierte Canvasbereich davon ebenfalls betroffen ist.
Simdocks Status
Das soll nicht heißen, dass Simdocks den anderen Docks grundsätzlich überlegen ist - ich bin im Gegenteil überzeugt davon, dass Plank in vielen Fällen eine bessere Wahl ist. Der Vorteil in diesem Fall rührt einfach aus der Beschränkung Simdocks auf Pseudotransparenz - der von Simdock verdeckte Bildschirmhintergrund wird per XServer-Funktion als Bild geholt und hinten eingefügt, was unabhängig vom Compositor zuverlässig zu funktionieren scheint.
Auf Simdocks Seite steht:
- Funktionierende Transparenz
- Menü mit ein paar grundlegenden Einstellungen
- Aktualisierung des Programmicons (wichtig bei Programmen mit Startern, wie Eclipse)
- "Im Starter behalten"-Funktion, zyklisches Minimieren und Öffnen der einzelnen Programmfenster, Instanzenstart per mittlerem Klick
Das sind rein zufällig die grundlegenden Features, die ich gerne in einem Dock hätte.
Gegen Simdock spricht natürlich auch einiges. Zum einen wird es nicht aktiv weiterentwickelt. Ich habe anfangs eingebaut, was ich haben wollte, und danach noch einzelne Bugs gefixt, aber bisher war es das. Zum anderen wird es wenn, dann von mir entwickelt. Das ist von Nachteil, weil ich normalerweise nicht an C++-Programmen arbeite - so gibt es immer noch einen Bug, der manchmal zu Abstürzen führt, der kein mir ersichtliches Schema hat und daher nicht von mir nachstellbar und fixbar ist. Und ich bin durch die nötige Speicherverwaltung schlicht daran gescheitert, Einstellungen on-the-fly übernehmen zu lassen (jemand Lust, mir einen entsprechenden Pull-Request zukommen zu lassen?). Außerdem ist die ganze Library- und Build-Umgebung unter C++ ein für mich schwer durchschaubares Wirrwarr und müsste sicher aufgeräumt werden.
Trotzdem: Für die eigene Desktopumgebung scheint Simdock derzeit meine einzige Wahl zu sein, will ich einen Compositor mit meiner AMD-Grafikkarte nutzen. Oder kennt jemand noch eine von mir übersehene Alternative?
crypt-gem: TypeError fixen
Um den Blowfish-Algorithmus des crypt-gems in Ruby 1.9.x zu nutzen und die Fehlermeldung
TypeError: can't convert String into Integer
zu vermeiden, muss in Zeile 47 der blowfish.rb (bei mir: /var/lib/gems/1.9.1/gems/crypt-1.1.4/crypt/blowfish.rb) aus
data = ((data << 8) | @key[keypos]) % ULONG
data = ((data << 8) | @key[keypos].ord) % ULONG
gemacht, also das .ord hinzugefügt werden (Quelle).
Steamchat in Pidgin
Auch wenn es jetzt einen Steam-Client für Linux gibt, muss Steam ja trotzdem nicht die ganze Zeit im Hintergrund laufen und so auf dem Arbeitsrechner an die mögliche Ablenkung erinnern. Dabei ist die Software mehr als eine Spieleplattform, es ist auch ein Kommunikationsmedium durch die Freundesliste und den integriertem Chat. Wäre natürlich toll, das immer zur Verfügung zu haben, um auch den steamnutzenden Jabber- und ICQ-Verweigerer erreichen zu können….
pidgin-opensteamworks macht genau das möglich, indem es den Steam-Chat in Pidgin einbaut. Früher musste dafür der Steam-Client im Hintergrund laufen, was das Plugin relativ nutzlos machte, dem ist nicht mehr so.
Von der Downloadseite die libsteam-1.1.so (oder libsteam64-1.1.so auf 64-bit-Systemen) und die icons.zip herunterladen. Die Icons entpacken nach /usr/share/pixmaps/pidgin/protocols/, die libsteam-1.1.so nach /usr/lib/pidgin/ verschieben. Pidgin neustarten und ein Konto anlegen, nach dem per Mail verschickten Steam-Guard-Code wird beim ersten Einloggen gefragt.
Macht einen hervorragenden ersten Eindruck.
Firefly
Der Serie habe ich mich jetzt eine ganze Weile verweigert. Den Film hatte ich schon vor längerer Zeit geguckt, aber ohne Firefly zu kennen ist Serenity nichts besonderes. Als Abschluss der Serie funktioniert er wesentlich besser.
Firefly wirkt überraschend entspannt. Nach Buffy und besonders nach Angel habe ich damit nicht wirklich gerechnet und fand das sehr angenehm. Heimelig. Vielleicht liegt das auch an der Kürze der Geschichte - so ist es eben nur ein großartiger kleiner Western im Weltraum mit ein paar Andeutungen einer epischen Hintergrundgeschichte, welche die Serie aber nie erreicht. Was durchaus schade ist.
Tipps zu Deus Ex HR
Inzwischen ist das Spiel schon etwas älter und das meiste ist bekannt. Trotzdem anbei ein paar auf meiner Spielart beruhende Tipps.
Bosse
Die Bossgegner sind im Normalfall äußerst unangenehm. Mit der richtigen Taktik dagegen sind sie problemlos und teils in wenigen Sekunden besiegbar.
Barret
Auf dem Weg zum Radio-Kontrollturm in Detroit kommt Adam an einigen Minen vorbei. Mit diesen (Kriechen und gleichzeitig per Strg verlangsamen zum entschärfen) und mit dem Raketenwerfer, der nach dem Fahrstuhl im Fema Stützpunkt links vom Roboter herumliegt, kann Barret einfach besiegt werden. Bei Kampfbeginn direkt einmal schießen, dann rechts hinter den Pfeiler und von dort aus Minen werfen. Kommt Barret zu nahe, läuft er links am Pfeiler vorbei, man kann also an der Wand entlang zum hintersten Pfeiler sprinten und von dort aus weitermachen.
Alternativ zeigt dieses Video die perfekte Verwendung von Blendgranaten:
Fedorova
Auch sie besiegt man am besten mit Minen. Hinter eine Computerwand sprinten und rechts und links die Eingänge verminen. Eine Explosion betäubt sie lange genug, um die nächste Mine hinterherzuwerfen und ein paar Schüsse abzusetzen. Zusätzlich zu den Explosionsminen sind auch EMP-Minen hilfreich, die sie betäuben.
In diesem Kampf ist das EMP-Schutz-Implantat nützlich, das vor den Stromstößen schützt.
Namir
Mit dem DLC Explosive Mission gibt Tong Adam einen Granatwerfer. Mit diesem kann Namir mit fünf Schüssen besiegt werden. Also ungefähr so, nur dass die EMP-Granate komplett unnötig ist:
Hat Adam keinen Granatwerfer, müssen eben wieder die Minen genügen. Wegrennen, Minen legen, Explosion abwarten. Und dabei durch die Spalten in der Wand schießen.
Zhao
Der letzte Endkampf ist nicht ohne. Mühsam die Computer hacken, einzeln die Mädchen töten. Oder das Sicherheitssystem deaktivieren. In jedem Fall einige Zeit abwarten, bis das Schild zusammenbricht, und dabei Roboter und Soldaten töten oder ihnen ausweichen. Wie gesagt, nicht ohne - außer, Adam hat die Laserkanone von Tong oder aus der Garage in der Omega-Ranch. Die kann von Anfang an durch das Schild schießen und den Kampf so in wenigen Sekunden beenden.
Zusatz: Balls-Achievement
Den Basketballkorb vom Boden aus zu treffen ist eine Heidenarbeit. Einfacher geht es mit diesem Gerüst
und diesem Wurf
Der Ball muss wirklich geworfen, nicht nur losgelassen werden.
Übrigens: Keine Sorgen wegen dem Mann am Boden, der verrückte Prediger in Endlosschleife wurde nur schnell nervig und daher fachgerecht betäubt.