Fork me on GitHub Fork me on GitHub

uninformativ.de

GNU, Linux, Shell und Co.

Vergessene Funktion des Tages: Scroll-Lock in XTerm

Pingu-Avatar

22.01.2012, 14:05:49

Ich behaupte, dass so gut wie niemand heute noch die Scroll-Lock-Taste benutzt. Eigentlich möchte ich auch noch einen Schritt weiter gehen und behaupten, dass viele Leute ihre Bedeutung gar nicht (mehr?) kennen. Zumindest drängt sich mir dieser Eindruck auf, wenn ich in der Suchmaschine meiner Wahl nach „Scroll Lock“ suche. Und wie wir alle wissen, ist das eine repräsentative Quelle. :-)

Dabei ist die Taste und ihre Funktion äußerst nützlich – insbesondere dann, wenn man viel an Terminals unterwegs ist und nicht ständig zur Maus greifen möchte. Allerdings sagt die Wikipedia, dass es auch in Microsoft Excel noch funktioniert. In LibreOffice tut’s das übrigens nicht.

Okay, wofür ist die Taste gut? Drückt man sie, so soll man mit den Cursortasten scrollen können anstatt den Cursor zu bewegen. Außerdem wird als Folge dessen das automatische Weiterscrollen bei neuer Ausgabe auf dem Bildschirm deaktiviert. Drückt man Scroll-Lock noch einmal, dann wird wieder das normale Verhalten hergestellt.

Man stelle sich nun vor, dass am Terminal viel Text erzeugt wird, zum Beispiel durch einen Lauf von „./configure“. Normalerweise scrollt der Text einfach so über’s Terminal. Vielleicht will man aber kurz anhalten und genauer nachlesen, was da eben vorbeigerauscht ist. Wie kann man das erreichen?

Eine Möglichkeit stellt Strg+S dar, was ein SIGSTOP an die aktuelle Prozessgruppe sendet und sie dadurch anhält. Dann kann ich scrollen und danach mit Strg+Q ein SIGCONT senden und weitermachen.

Vielleicht will ich aber gar nicht, dass die Prozesse stehenbleiben. Oder vielleicht ist es ein zeitkritischer Prozess und er darf nicht stehenbleiben. Hier kommt nun Scroll-Lock ins Spiel. Wenn das Terminal diese Funktion unterstützt, dann kann man damit das automatische Weiterscrollen unterbinden. Neuer Text wird dann außerhalb des aktuellen „Viewports“ erscheinen, man muss also aktiv nach unten scrollen, um ihn zu sehen.

In XTerm ist diese Funktion standardmäßig abgeschaltet. Die Begründung dafür ist in der Manpage, dass der User nicht verwirrt werden soll. :-) Man kann es über X-Ressourcen wieder anschalten:

XTerm*allowScrollLock: true

Leider ist die Semantik von Scroll-Lock wohl nicht eindeutig genug spezifiziert (oder es verwendet einfach so gut wie niemand), weshalb XTerm nur das automatische Weiterscrollen deaktiviert. Ein manuelles Scrollen mit den Cursortasten ist nicht möglich. Deswegen habe ich mir, weil es auch allgemein nützlich ist, folgende Keybinds angelegt:

XTerm*VT100.Translations: #override \
		Shift<Key>Prior: scroll-back(1,halfpage) \n\
		Shift<Key>Next: scroll-forw(1,halfpage) \n\
		Shift<Key>Up: scroll-back(1,line) \n\
		Shift<Key>Down: scroll-forw(1,line) \n\
		Ctrl<Key>plus: larger-vt-font() \n\
		Ctrl<Key>minus: smaller-vt-font() \n

(Die letzten beiden haben nichts mit dem Thema zu tun, sind aber IMHO trotzdem interessant: Damit kann man mal eben die Schriftgröße ändern.)

Shift+CursorUp scrollt nun eine Zeile nach oben, Shift+PageUp eine halbe Seite nach oben – andere Richtung analog. Das funktioniert sowohl bei aktiviertem Scroll-Lock als auch im normalen Betrieb.

Happy GNU Year!

Pingu-Avatar

01.01.2012, 10:52:45

Das hier ist hinreichend knuffig, um als Neujahrsgruß gepostet zu werden. :)

                           .-.
                         .'   '.
              *         ( 2012! )
              /\         \     /
      /\     /o \   /\    '- -'
     / /    /_ _o\  \ \     "
     \ \__.'  '   './ /      '
      \___.---'---___/        )
         /    @    @_     __.'
        /  )     _   '   /_/
       ;_-'    _(,\__,) / /
         / \   \'uuuu' / /
       ,'   "", '---' ' /
      /       """,--, ,/
     /  /       '"\\\ '

         *************
         * HAPPY GNU *
         *   YEAR!   *
         *************

(Von Chris Webber, Quelle.)

Ein Weihnachtsgeschenk? „Harveys neue Augen“!

Pingu-Avatar

18.12.2011, 11:25:18

Vor satten 3 Jahren – mir kommt es vor, als sei es dieses Jahr gewesen – wurde Edna bricht aus (EBA) veröffentlicht. Ein Spiel, das sich – zugegebenermaßen aus Ressourcenmangel notgedrungen – wieder auf den Inhalt konzentriert statt auf optisches Spektakel. Es war ein Java-Spiel, was die Chancen, dass es auch auf GNU/Linux anständig läuft, deutlich erhöht hat. Und tatsächlich war das dann auch so.

Vor kurzem bin ich über Radio Tux Talk #150 auf Harveys neue Augen (HNA) gestoßen, das schon im August diesen Jahres herauskam. Hatte ich aber überhaupt nicht mitgekriegt, da ich fast gar nicht mehr spiele. Es ist der Nachfolger von EBA und wurde deshalb von mir einfach mal blind gekauft, ohne die Demo auszuprobieren. Gut, ganz blind war es nicht: Vorher noch auf Holarse informiert, wie es mit GNU/Linux aussieht – kein Problem. Es ist zwar kein Java-Spiel mehr, man braucht also Wine, aber es soll prinzipiell kein großes Problem sein. Da ich EBA großartig fand, habe ich einen Spontankauf riskiert und mir gesagt, „wenn es nicht auf Anhieb läuft, dann muss ich mir eben etwas ausdenken“. ;-)

Aber HNA läuft. Anders als in der Beschreibung der AppDB von Wine habe ich auch keine „Fixfiles“ benötigt. Aber mittlerweile gibt es ja auch schon Wine 1.3.35 statt 1.3.28, vielleicht macht das einen Unterschied.

inline thumbnail

[…]

Heads-up: Änderungen bei pdfpres

Pingu-Avatar

05.11.2011, 18:04:02

Es gibt ein paar Änderungen im Programm, die hier oder da Inkompatibilitäten verursachen könnten:

  • Alles wurde von „pdfPres“ nach „pdfpres“ umbenannt (6cd5892), was insbesondere auch den Pfad zu den Settings („~/.config/pdfpres“) betrifft. Das war damals eine sehr schlechte Idee, Groß- und Kleinschreibung zu mischen und das noch nicht einmal konsequent durchzuhalten. Jetzt ist alles kleingeschrieben – bis auf GitHub-URLs. Zugehöriger Feature Request.
  • Im Quellcode wurde das Verzeichnis „man“ nach „man1“ umbenannt (5f89ad7), was meinen Schreibprozess der Manpage vereinfacht.
  • Aus Poppler ist mit Release 0.17 die GDK-API rausgeflogen, welche ich in pdfpres benutzt habe. Das ist etwas lästig. Der vorübergehende Workaround ist nun, dass ich den alten Poppler-Code lokal ins Programm kopiert habe. Bei älteren Poppler-Versionen, wie sie zum Beispiel bei Ubuntu 11.10 noch existieren, kommt dieser Workaround nicht zum Tragen.

Bezüglich der GDK-API-Sache: Das ist natürlich keine schöne Lösung. Ich schätze, dass langfristig ohnehin der einzig sinnvolle Weg eine Portierung auf Gtk3 ist. Dafür fehlt mir aber im Moment eindeutig die Zeit. Das heißt, falls du Interesse an pdfpres haben solltest und zufällig eine saubere Lösung für den API-Drop kennst oder gar etwas in Richtung Gtk3 tun möchtest, dann wäre ich über einen Fork auf GitHub äußerst dankbar. :)

Ein bisschen Zeit gebe ich mir noch, um die eine oder andere Kleinigkeit aufzufangen, dann aber werde ich in Kürze den Tag „0.2.2“ vergeben.

Orientierung: Gopher

Pingu-Avatar

04.11.2011, 14:35:05

Ich mag es, wenn Dinge technisch und konzeptionell einfach sind. Deswegen verwende ich Arch Linux, mutt statt Thunderbird, Vim, manchmal ed und so weiter. „Aus Einfachheit erwächst Flexibilität und Übersichtlichkeit, aus Übersichtlichkeit erwächst Wartbarkeit“, heißt das Mantra. Im luftleeren Raum kann Einfachheit aber nicht existieren, sondern man braucht Bezugspunkte. Deswegen behaupte ich, dass man nicht mal eben einfache Software schreiben und einfache Architekturen bauen kann, sondern dass das ein fortwährender Prozess ist. Man muss sich stetig orientieren.

Das heutige Web ist etwas, das ich aus technischer Sicht nicht mehr als „einfach“ bezeichnen mag. Ein paar Dinge hat Meillo in zwei schönen Rants angesprochen. In etwa diese Richtung geht auch mein Empfinden. Folglich möchte ich nun im Hinblick auf das Web hier und da ein paar zusätzliche Orientierungspunkte anregen.

Seit kurzem gibt es da links im Menü der Webseite den Punkt Gopher. Ja, genau, gemeint ist das Gopher-Protokoll. Warum du, falls du darauf klickst, vielleicht nichts siehst, erzähle ich gleich. Wenn Gopher für dich ein Fremdwort ist, dann könnte das daran liegen, dass du zu spät geboren wurdest. ;) Gopher kann man heute zwar zurecht als historisches Protokoll bezeichnen, da es nur noch von einer Hand voll Leuten eingesetzt wird. Dennoch bin ich der festen Überzeugung, dass sich – gerade heute – ein Blick darauf lohnt. Man sieht sehr schön, an welchen Stellen wir im Web falsch abgebogen sein könnten. Auf ein paar prägnante möchte ich eingehen.

[…]