Skip to content

Liquidprompt ...

Zur Abwechslung mal wieder etwas technisches.

"Drüben" in Google+ hat Christian das Repository liquidprompt empfohlen. Liquidprompt setzt sehr komfortabel den Shell-Prompt für die bash oder zsh. Dabei sammelt sie Informationen aus vielen verschiedenen Quellen, beispielsweise die Uhrzeit, den Batteriestatus (von grün nach rot), die Systemlast (load), Temperatur, den Status des Versionskontrollsystems, einen grünen Doppelpunkt für Schreibrechte im aktuellen Verzeichnis (sonst rot), und, und, und ...

Die "Installation" ist sehr einfach (bei mir sind alle Repositories unterhalb von workspace):

cd ~/workspace
git clone https://github.com/nojhan/liquidprompt.git liquidprompt.git


Ich folge damit auch einer Anregung von Federico, der alle Verzeichnisse, die git-Repositories enthalten auf .git enden lässt.

Aktiviert wird liquidprompt durch

source ~/workspace/liquidprompt.git/liquidprompt


Sollte man mit den Einstellungen einverstanden sein, ist nichts weiter zu tun.

Wenn man aber Änderungen vornehmen will, kopiert man die Datei mit den Voreinstellungen und nimmt dort Änderungen vor.

cp ~/workspace/liquidprompt.git/liquidpromptrc-dist ~/.liquidpromptrc
vim ~/.liquidpromptrc
source ~/workspace/liquidprompt.git/liquidprompt


So, habe ich beispielsweise, die Uhrzeit mittels LP_ENABLE_TIME=1 aktiviert und Versionskontrollsysteme, die ich nicht benutze deaktiviert. Es macht sich besonders unter Cygwin bemerkbar, wenn zu viele Optionen aktiv sind, unter Linux ist das meiner Beobachtung nach kein Problem.

Wenn alle Einstellungen zur Zufriedenheit getroffen sind, braucht nur die Zeile an die ~/.bashrc oder ~/.zshrc angehängt werden. Die Webseite enthält eine ausführliche Beschreibung aller Optionen und auch eine Beschreibung, wie man die Farben anpassen kann.

Trackbacks

Dirks Logbuch am : Solarized ...

Vorschau anzeigen
Dann werfe ich gleich noch einmal ein technisches Thema nach, das passt auch ein wenig zu Liquidprompt. Es geht um Solarized von Ethan Schoonover. Solarized ist eine Farbpalette, die aus acht monchromen Farbunterschieden und acht "echten Farben" besteht

seraphyn.teiko.org am : PingBack

Vorschau anzeigen

Der Standardleitweg am : Liquidprompt

Vorschau anzeigen
Nachdem sowohl Dirk als auch Christian darüber gebloggt haben musste ich mir ja auch mal den Liquidprompt ansehen.Liquidprompt ist eine Erweiterung des Prompts der bash oder zsh und passt sich dynamisch dem an wo man gerade auf der Konsole ist. Die Anzei

Pub Rika am : LiquidPrompt

Vorschau anzeigen
Kennt ihr das? Ihr entwickelt fleißig mit Git, commitet regelmäßig und dann stellt ihr fest, dass die ganze Arbeit umsonst war. Warum? Weil ihr auf dem falschen Branch ward. Ich erlebe das regelmäßig. Aber jetzt habe ich bei Dirk eine Empfehlung zum Li…

Dirks Logbuch am : 2013 im Blog ...

Vorschau anzeigen
Im Jahr 2013 habe ich so wenig gebloggt, wie noch nie. Ich nehme mir nicht vor, mehr zu bloggen und ich weiss nicht, wie ich das Blog weiterhin füllen werde, aber es wird vermutlich oder hoffentlich weiterhin Inhalte geben ... Meine Highlights 2013 im Blo

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Christian M. Grube am :

*Uih, Danke für die Nennung.
Das ist Nett von Dir.
Die Idee mit der Endung auf .git übernehme ich doch glatt, auch wenn sie der Link bei mir Leider nicht öffnet.
Sehr gute Idee

Dirk Deimeke am :

*Hmpf, ich bin zu dämlich einen Link zu setzen, ist jetzt korrigiert.

Das schöne mit der Endung auf .git ist, dass Du leicht ein Skript darüber laufen lassen kannst.

Frakturfreund am :

*Also ich weiß nicht so recht … wo genau liegen denn die Vorteile des .git Suffixes bei einer lokalen Arbeitskopie?

Ich finde das etas doppelt gemoppelt, das eigentliche Verzeichnis mit den Git-Daten liegt dann ja unter project.git/.git … ich kenne diese Konvention eigentlich nur von Bare-Repositories (git init --bare) auf Servern, also Git-Repos ohne lokalen Checkout. Da macht der Name project.git/ Sinn, weil in diesem Order die Git-Daten direkt liegen und es keinen .git/ Unterordner gibt.

Und wenn man die Pfade seine lokalen Git-Repos für ein Skript brucht, reicht auch ein find ~ -type d -name .git :-).

PS: Der Link unten zu zu »BBCode-Formatierung erlaubt« führt grade auf ein »502 Bad Gateway« :-(.

Dirk Deimeke am :

*Der Vorteil liegt darin, direkt am Verzeichnis zu sehen, was drin steckt und darüber hinaus mit einer kleinen Schleife alle Git-Repositories "auf einen Rutsch" zu aktualisieren. Wenn das Verzeichnis auf .git endet, dann wird Git für die Aktualisierung benutzt, wenn .svn, dann Subversion, ...

Im Verzeichnis selbst ist die ausgecheckte Arbeitskopie zu finden.

Der Link hat jetzt gerade funktioniert, eventuell hatte phpBB einen Engpass.

Frakturfreund am :

*Ich verstehe! Bei mir sind die meisten Git-Repositories in einem Oberordner, so dass ich diese zusätzliche Hilfestellung nicht brauche. Für das akualisieren meherer Git-Repositories ist diese Namenskonvention allerdings nicht notwendig, man kann ein Repository allein an dem .git Unterordner erkennen (Quelle):

find . -type d -name .git -execdir sh -c "pwd && git pull --rebase" \;

Für .svn oder .hg entsprechend :-). Tatsächlich, jetzt funktioniert der BB-Link wieder :-). Ich bin mit Foren nie so wirklich warm geworden, so dass mir die Synax weniger vertraut ist als z.B. Markdown oder Mediawiki.

Dirk Deimeke am :

*Wenn Du nur git hast, passt das so, ansonsten meinte ich das hier (statt echo natürlich die Befehle, die Du brauchst):

CODE:
for i in *
do
case $i in
*.git) echo "Git $i"
;;
*.svn) echo "Subversion $i"
;;
*.hg) echo "Mercurial $i"
;;
*.bzr) echo "Bazaar $i"
;;
*) echo "Weiss nicht $i"
;;
esac
done


Mir gefällt das besser und ich finde das übersichtlicher.

Christian M. Grube am :

*Link, passiert allen mal.
Script, mach mich neugierig.... Hast Du, okay.
Nun möchte ich mehr Wissen, vielleicht einen Artikel?

Christian

Dirk Deimeke am :

*Puh, das Skript ist zu banal, um einen Artikel wert zu sein. Den Rahmen findest Du hier, innerhalb der Schleife wird dann jedes Repository aktualisiert und geprüft, ob noch commits ausstehen ("git status").

Axel Beckert am :

*Mir geht es da ähnlich wie Frakturfreund. Das Suffix .git nehme ich nur für Bare-Repositories. Ob ein Verzeichnis ein Git-Repo oder nicht ist, erkenne ich sonst ja problemlos an den Verzeichnissen ".git", ".svn", ".hg" oder "CVS" darin.

Wobei ich das selten nachschauen muss, denn im Normalfall zeigt's mir auch der Prompt.

Und eine Schleife über alle Verzeichnisse, die ein Unterverzeichnis namens .git haben, machen, ist auch kein Hexenwerk:

for i in $(find . -name .git -type d); do echo ${i:h}; done

Aber zurück zum eigentlichen Thema: Liquidprompt muss ich mir definitiv auch mal anschauen. Alleine schon um neue Ideen zu bekommen, wie man den Prompt gestalten könnte, denn momentan bin ich ein wenig unzufrieden mit meinem Prompt-Layout:

!520 Z2 ?0 L1 ssh abe@kiva6:~/pkg-perl/git/packages/ack-grep (pts/3 -zsh 5.0.2-test-3 sid) 2:42:44 (git) [master| ✔ ]
[…]it/packages/ack-grep →

Denn eigentlich habe ich zwei gegensätzliche Anforderungen:

1. Prompt muss "user@host:voller/pfad" zum schnellen Copy&Paste für scp oder rsync enthalten.

2. Prompt sollte kurz sein und direkt vor der Eingabe den Pfad anzeigen.

Momentan löse ich das, indem mein Prompt zweizeilig ist und die hintersten 20 Zeichen des Pfades doppelt angezeigt werden. Und genau das doppelte missfällt mir, auch wenn es alleine schon rein logisch nicht anders geht. Deswegen will ich Ausschau nach neuen Ideen halten.

Und ja, o.g. Prompt zeigt mir u.a. an, _wie_ ich zur Shell kam. In diesem Fall per ssh. Aber er kann auch screen, tmux, mosh, sudo, etc. anzeigen. :-)

Dirk Deimeke am :

*Bei uns beiden fällt mir immer auf, wie unterschiedlich man unter Linux oder Unix seine Arbeit auf der Kommandozeile erledigen kann. Das ist nichts schlechtes, ganz im Gegenteil, es zeigt wie flexibel die Shells sind. Wobei Du meines Wissens nach ZSH benutzt und ich eben die BASH.

Die "Arbeit" in welchem Repository ich mich befinde, nimmt mir Liquidprompt ab. Das zeigt auch den Branch an, das ist mir wichtig, damit Commits nicht an der falschen Stelle landen.

Die Schleife benutze ich auch, allerdings in einem repack- und in einem Aktualisierungsskript.

Mir wäre Dein Prompt deutlich zu lang. Die Informationen, die ich sofort brauche, sehe ich jetzt und ich brauche nicht so viele Informationen sofort wie Du. Das hat auch damit zu tun, wie häufig bestimmte Aufgaben ausgeführt werden.

Mit einem zweizeiligen Prompt konnte ich mich nie anfreunden.

Tmux und screen kann liquidprompt übrigens auch ;-)

Kommentar schreiben

Gravatar, Favatar, Pavatar, Identica, Twitter, MyBlogLog Autoren-Bilder werden unterstützt.
BBCode-Formatierung erlaubt
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
:'(  :-)  :-|  :-O  :-(  8-)  :-D  :-P  ;-) 
Formular-Optionen