Dstask verwaltet anstehende Aufgaben auf der Kommandozeile

Aus LinuxUser 02/2021

Dstask verwaltet anstehende Aufgaben auf der Kommandozeile

© Natpaphat Pornpatrawiwat, 123RF

Gut geplant

Der Taskmanager Dstask nimmt im Terminal anstehende Aufgaben entgegen, führt Buch über deren aktuellen Bearbeitungsstand und verrät die dringlichsten Arbeiten.

Im Keller versteckte sich das dringend benötigte Netzwerkkabel unter zahlreichem anderen Gerümpel. Höchste Zeit also, dort einmal aufzuräumen. Damit diese unliebsame Aufgabe nicht in Vergessenheit gerät, kann man sie dem Taskmanager Dstask anvertrauen. Im Gegensatz zu vielen anderen Aufgabenverwaltungen arbeitet Dstask ausschließlich auf der Kommandozeile. Dort ist mit jeweils einem kurzen und knackigen Befehl eine neue Aufgabe hinzugefügt oder eine erledigte abgeschlossen.

Auf Wunsch liefert Dstask eine Liste mit allen anstehenden Aufgaben, sortiert nach ihrer Dringlichkeit. Filter helfen, im Dschungel der Aufgaben den Überblick zu behalten. Abschließend kann man seinen Kunden oder seinem Chef noch alle ausgeführten und abgeschlossenen Arbeiten belegen.

Unter der Haube speichert der Taskmanager die anstehenden Aufgaben in der Versionsverwaltung Git. Dank deren Hilfe lassen sich die Aufgaben auch mit anderen Geräten synchronisieren. Im Gegensatz zu allen anderen Funktionen benötigen Sie jedoch bei der Synchronisation ein wenig Git-Kenntnisse.

Kickstart

Um Dstask in Betrieb zu nehmen, installieren Sie zunächst Git über die Software-Verwaltung. Unter Ubuntu erledigt das etwa sudo apt install git. Wechseln Sie jetzt auf die Dstask-Projektseite bei Github [1] und klicken Sie dort am rechten Seitenrand unter Releases auf die aktuelle Versionsnummer. Laden Sie sich dann unter Assets die Version für Linux in Form der Datei dstask-darwin-amd64 herunter.

Das so erhaltene Programm benennen Sie in dstask um und kennzeichnen es als ausführbar. Letzteres gelingt beispielsweise mit chrmod +x dstask. Eine Installation ist nicht notwendig; der Entwickler empfiehlt jedoch, Dstask unter /usr/local/bin abzulegen. Damit können dann alle Nutzer des Systems das Programm direkt per dstask aufrufen.

Danach müssen Sie noch ein sogenanntes Git-Repository anlegen, in dem Dstask alle Aufgaben speichert, und sich anschließend noch mit Git bekannt macht (Listing 1). Tauschen Sie redaktion@linux-user.de und Tim Schürmann gegen Ihre eigene E-Mail-Adresse und Ihren vollständigen Namen aus. Ohne diese Informationen erhalten Sie bei der Arbeit mit Dstask immer wieder Fehlermeldungen.

Listing 1

Initialisieren

$ mkdir ~/.dstask && git -C ~/.dstask init
$ git config --global user.email "redaktion@linux-user.de"
$ git config --global user.name "Tim Schürmann"

Hereinspaziert

Der Keller müsste tatsächlich dringend aufgeräumt werden. Um diese Aufgabe in Dstask einzupflegen, genügt ein Aufruf wie ihn die erste Zeile von Listing 2 zeigt. Der Befehl add weist das Programm an, eine neue Aufgabe anzulegen. Die wiederum beschreibt die folgende kurze Zusammenfassung.

Listing 2

Aufgaben hinzufügen

$ dstask add Keller aufräumen +Keller +Privat P2
$ dstask add +Privat Keller +Keller aufräumen P2

Alle hinter einem Pluszeichen stehenden Wörter klebt Dstask jeweils als Stichworte an die Aufgabe. Im obigen Beispiel wären das Keller und Privat. Diese Tags helfen unter anderem später bei der Suche nach ganz bestimmten Aufgaben. Sie dürfen die Tags übrigens auch in die Zusammenfassung einstreuen, wie etwa in der zweiten Zeile von Listing 2.

Den Keller aufzuräumen, ist zwar nicht ganz so dringend, sollte aber in den kommenden Tagen erledigt werden. Die Priorität des Tasks verrät die Zahl hinter dem P. Die Software kennt die Stufen P3 bis P0, wobei P0 besonders dringliche beziehungsweise kritische Aufgaben charakterisiert. P2 steht für eine normale Priorität. Diese nimmt Dstask automatisch an, falls Sie beim Aufruf die Angabe zur Priorität weglassen.

In die Hände gespuckt

Welche Aufgaben sich Dstask gemerkt hat, verrät der Aufruf von dstask. Jeder Aufgabe weist das Programm eine aufsteigende ID zu. Übergeben Sie die Nummer an das Tool, erhalten Sie detailliertere Informationen über die Aufgabe. Ein dstask 1 liefert etwa die Daten aus Abbildung 1. Wie Sie dort sehen, ignoriert das Programm bei den Tags die Groß- und Kleinschreibung.

Abbildung 1: Die beim Anlegen der Aufgabe eingestreuten Tags hat Dstask aus der Zusammenfassung <code>Keller aufr&auml;umen</code> entfernt. In schwachem Grau gehaltene Meldungen stammen von Git &ndash; Sie k&ouml;nnen sie ignorieren.

Abbildung 1: Die beim Anlegen der Aufgabe eingestreuten Tags hat Dstask aus der Zusammenfassung Keller aufräumen entfernt. In schwachem Grau gehaltene Meldungen stammen von Git – Sie können sie ignorieren.

Unter den Informationen findet sich auch der Status der Aufgabe. Direkt nach dem Anlegen steht die Aufgabe noch aus (pending). Sobald Sie in den Keller gehen und die erste Kiste in die Hand nehmen, rufen Sie dstask start Keller aufräumen auf.

Damit versetzen Sie die Aufgabe in den Zustand active, sie wird also gerade bearbeitet. Sobald Sie eine Pause machen, stoppen Sie die Bearbeitung mit dstask stop Keller aufräumen. Die Aufgabe wechselt dann wieder in den Zustand pending.

Ist am Sonntagabend der Keller schließlich leer, kennzeichnen Sie die Aufgabe noch per dstask done Keller aufräumen als erledigt. Obwohl Dstask Sie damit nicht mehr an die Aufgabe erinnern muss, bewahrt der Taskmanager sie weiterhin auf. Das hilft Ihnen, am Ende eines Projekts gegenüber dem Kunden oder dem Chef die erledigten Aufgaben zu belegen.

Das Kommando dstask show-resolved zeigt Ihnen in solchen Fällen alle abgearbeiteten Aufgaben übersichtlich an. Dstask sortiert dabei die Aufgaben automatisch nach Wochen. Per dstask remove Keller aufräumen lässt sich die Aufgabe aber auch komplett aus dem Gedächtnis von Dstask löschen.

Post-Its

Einige alte Romane im Keller stammen von Tante Irmgard. Dies sollte man unbedingt noch irgendwie als Erinnerung notieren. Sie dürfen beliebig viele solcher Notizen an eine Aufgabe heften. Die passende für Tante Irmgard erstellt Dstask mit dem Befehl aus der ersten Zeile von Listing 3. Die Zahl steht dabei für die ID der Aufgabe. Im Beispiel tackert Dstask folglich die Notiz Romane an Tante Irmgard zurückgeben an die Aufgabe Keller aufräumen.

Listing 3

Notizen anheften

$ dstask note 1 Romane an Tante Irmgard zurückgeben
$ dstask add Keller aufräumen +Keller P2 / Romane an Tante Irmgard zurückgeben

Nach demselben Prinzip legen Sie beliebig viele weitere Notizen an. Markdown-Kenner dürfen dabei auch entsprechende Tags verwenden, die Dstask 0.23.2 aber noch nicht auswertet beziehungsweise optisch umsetzt. Eine Notiz können Sie Dstask auch direkt beim Hinzufügen einer Aufgabe mit auf den Weg geben (Abbildung 2). Dazu hängen Sie einfach einen Schrägstrich an, gefolgt von der Notiz (Listing 3, zweite Zeile).

Abbildung 2: Die Notizen listet Dstask am Ende auf. Sie eignen sich auch f&uuml;r Checklisten, wobei dann jede Notiz einen Punkt aus der Liste widerspiegelt.

Abbildung 2: Die Notizen listet Dstask am Ende auf. Sie eignen sich auch für Checklisten, wobei dann jede Notiz einen Punkt aus der Liste widerspiegelt.

Projektarbeit

Wenn man schon einmal dabei ist, den Keller zu ordnen, könnte man sich auch direkt die Garage vorknöpfen, und im Schuhschrank könnten ein paar ausgetretene Sneaker weichen. Damit gibt es dann schon drei Aufgaben, die thematisch zusammengehören und das Projekt Frühjahrsputz bilden.

Genau diesen Sachverhalt teilen Sie Dstask beim Anlegen einer Aufgabe über einen weiteren Parameter mit. Die Aufgaben in den ersten beiden Zeilen von Listing 4 gehören dem hinter project: angegebenen Projekt an; im Beispiel heißt es Frühjahrsputz. Groß- und Kleinschreibung ignoriert Dstask auch hier wieder.

Listing 4

Aufgabe in Projekten organisieren

$ dstask add Garage aufräumen +Privat P3 project:Frühjahrsputz
$ dstask add Schuhschrank entrümpeln +Privat P1 project:Frühjahrsputz
$ dstask modify 1 -Privat +Bücher P1 project:Frühjahrsputz

Wie der Aufruf von dstask verrät, gehört die ursprüngliche Aufgabe Keller aufräumen noch zu keinem Projekt (Abbildung 3). Um das nachzuholen, ändern Sie die entsprechende Information schnell mit dstask modify 1 project:Frühjahrsputz. Die Zahl steht dabei wieder für die ID der entsprechenden Aufgabe. Mit modify passen Sie neben dem Projekt auch die Priorität und die Schlagworte an, wobei ein Minuszeichen das entsprechende Tag entfernt (Listing 4, letzte Zeile).

Abbildung 3: Beim Aufruf von <code>dstask</code> erhalten Sie eine Liste mit den anstehenden Aufgaben. Eventuell vorhandene Notizen zeigt dstask in schwachem Grau in der Spalte <code>Summary</code> an.

Abbildung 3: Beim Aufruf von dstask erhalten Sie eine Liste mit den anstehenden Aufgaben. Eventuell vorhandene Notizen zeigt dstask in schwachem Grau in der Spalte Summary an.

Gezielter Eingriff

Möchten Sie einen Tippfehler in einer Notiz oder eine andere Informationen bearbeiten, verwenden Sie den Befehl dstask edit 1. Der Taskmanager öffnet dann sämtliche Informationen über die angegebene Aufgabe in einem Texteditor (Abbildung 4).

Abbildung 4: Im Editor sehen Sie die Aufgabe so, wie sie Dstask unter der Haube speichert: als Textdatei im YAML-Format.

Abbildung 4: Im Editor sehen Sie die Aufgabe so, wie sie Dstask unter der Haube speichert: als Textdatei im YAML-Format.

Welcher Editor sich bei Ihnen meldet, verrät die Umgebungsvariable $EDITOR. Häufig ist das Nano, manchmal auch Vim. Einige Distributionen setzen keinen Texteditor, etwa Ubuntu 20.04 und später. Dort müssen Sie das mit den Kommandos aus Listing 5 noch explizit nachholen.

Listing 5

Umgebungsvariable

$ echo "export EDITOR=nano" > ~/.bash_profile
$ source ~/.bash_profile

Bei Ihren Änderungen sollten Sie nur die Werte rechts neben den Doppelpunkten anpassen. Der Name des Projekts steht beispielsweise neben project:. Speichern Sie Ihre Anpassungen, und beenden Sie den Editor (in Nano per [Strg]+[O] gefolgt von [Strg]+[X]).

Während die Schuhe aus dem Schuhschrank geflogen sind, kam nebenbei auch das Altpapier in den dafür vorgesehenen Container. Um auch diese abgeschlossene Aufgabe nachträglich in Dstask zu protokollieren, gibt es die Aktion log. Sie funktioniert exakt wie add, setzt das Projekt aber umgehend auf resolved (Listing 6).

Listing 6

Tasks protokollieren

$ dstask log Altpapier entsorgt +Privat P3 project:Frühjahrsputz

Beim Frühjahrsputz stehen mittlerweile einige Aufgaben an. Die dringlichste verrät dstask oder dstask next. Die Liste sortiert der Taskmanager nach Priorität und Alter der Aufgabe. Ganz oben erscheint folglich die Aufgabe, die Sie sich als Nächstes vorknöpfen sollten. Alle angefangenen, aber noch nicht beendeten Aufgaben liefert dstask show-active, analog zeigt dstask show-paused alle unterbrochenen.

Dstask kennt noch einige weitere Darstellungsformen, die Sie in der Tabelle “Anzeigeformen und Befehle” finden. Sofern Dstask zu einer Aktion keine passenden Aufgaben oder Daten findet, liefert es einfach stur eine Befehlsübersicht.

Aktion

Funktion

next

Liste der wichtigsten Aufgaben.

show-projects

Liste aller Projekte samt den darin bereits gelösten Aufgaben.

show-tags

Liste mit allen vergebenen Tags.

show-active

Liste mit allen angefangenen Aufgaben.

show-paused

Liste mit allen Aufgaben, die angefangen und dann unterbrochen wurden.

show-open

Liste mit allen noch nicht fertiggestellten Aufgaben.

show-resolved

Liste mit allen abgearbeiteten Aufgaben.

show-templates

Liste aller Templates.

show-unorganised

Liste mit allen Aufgaben, die weder ein Tag tragen, noch einem Projekt zugeordnet sind.

Im Kontext

Im Laufe der Zeit sammeln sich immer mehr Aufgaben an, die Liste kann folglich recht lang werden. Mehr Übersicht schaffen Sie dann über den Kontext-Befehl. Dieser filtert unerwünschte Aufgaben aus. Die dabei angelegten Kriterien geben Sie selbst vor (Listing 7).

Listing 7

Kontext

$ dstask context +privat -keller project:frühjahrsputz

Mit diesem Befehl beachtet Dstask ab sofort nur noch Aufgaben, die das Tag privat tragen, nicht das Stichwort keller besitzen, und zum Projekt Frühjahrsputz gehören. Alle anderen Aufgaben ignoriert das Tool erst einmal. Wenn Sie jetzt eine neue Aufgabe anlegen, trägt diese automatisch das Tag privat und gehört zum Projekt frühjahrsputz.

Den Filter setzen Sie mit dstask context none wieder zurück. Damit arbeitet Dstask wieder auf allen existierenden Aufgaben. Den gerade aktiven Kontext verrät der Taskmanager bei jedem Aufruf. Sollten Sie eine Aufgabe vermissen, werfen Sie als Erstes einen Blick auf den Kontext (Abbildung 5).

Abbildung 5: Die Aufgabe <code>Keller aufr&auml;umen</code> erf&uuml;llt nicht die Regeln des eingestellten Kontexts und erscheint daher nicht mehr in der Liste mit den anstehenden Aufgaben.

Abbildung 5: Die Aufgabe Keller aufräumen erfüllt nicht die Regeln des eingestellten Kontexts und erscheint daher nicht mehr in der Liste mit den anstehenden Aufgaben.

Vorlagen

Den eigenen Arbeitsplatz sollte man deutlich häufiger aufräumen als den Keller. Bei solchen wiederkehrenden Aufgaben sparen Sie sich mit Templates etwas Tipparbeit (Abbildung 6). Diese Vorlagen sind zunächst herkömmliche Aufgaben, die Sie allerdings per template anlegen (Listing 8, erste Zeile). Alle vorhandenen Templates listet dann dstask show-templates auf, die übrigen Aktionen ignorieren Sie.

Abbildung 6: Hier entsteht zun&auml;chst ein neues Template, auf dessen Basis wiederum eine neue Aufgabe entsteht. Da Dstask die Templates intern wie Aufgaben behandelt, erh&auml;lt das Template die ID&nbsp;4.

Abbildung 6: Hier entsteht zunächst ein neues Template, auf dessen Basis wiederum eine neue Aufgabe entsteht. Da Dstask die Templates intern wie Aufgaben behandelt, erhält das Template die ID 4.

Listing 8

Vorlagen

$ dstask template Schreibtisch aufräumen +Privat P3 project:Verwaltung
$ dstask add template:4 Bleistifte sortieren

Um eine neue Aufgabe anhand einer Vorlage anzulegen, verwenden Sie wieder add, beziehen sich dabei aber auf das Template. Mit dem Kommando aus der zweiten Zeile von Listing 8 erstellt Dstask eine neue Aufgabe, die alle Einstellungen aus dem Template mit der ID 4 übernimmt, dabei aber als Summary den Text Bleistifte sortieren verwendet.

Git-Spiele

Die zuletzt ausgeführten Aktionen liefert das Kommando dstask git log (Abbildung 7). Rückgängig machen lassen sie sich per dstask undo 3. Die Zahl gibt dabei die Anzahl der zurückzunehmenden Aktionen an, ausgehend von der zuletzt ausgeführten Aktion.

Abbildung 7: &Uuml;ber die <code>git</code>-Aktion k&ouml;nnen Sie neben <code>log</code> auch beliebige weitere Git-Befehle direkt aufrufen.

Abbildung 7: Über die git-Aktion können Sie neben log auch beliebige weitere Git-Befehle direkt aufrufen.

Möchten Sie Ihre Aufgabensammlung mit anderen Geräten synchronisieren, muss dort ebenfalls Dstask installiert sein. Des Weiteren benötigen Sie ein Repository, auf das alle Geräte zugreifen können, wie etwa eines bei Github. Achten Sie darauf, dass nur Sie selbst Zugang zum Repository erhalten und nicht auch noch das komplette Internet.

Erstellen Sie jetzt auf allen Geräten das Verzeichnis ~/.dstask/, und klonen Sie mit git clone den Inhalt des externen Git-Repositorys hinein. Jetzt können Sie Ihre Aufgaben wie gewohnt anlegen und verwalten. Danach rufen Sie dstask sync auf. Damit schiebt Dstask alle Änderungen in das externe Git-Repository.

Auf einem anderen PC rufen Sie erneut dstask sync auf. Damit synchronisiert sich Dstask mit dem Git-Repository und holt so von dort den aktuellen Stand. Unter der Haube ruft Dstask dabei die Git-Befehle git pull und git push auf. Über die Aktion dstask git können Git-Kenner übrigens noch beliebige weitere Git-Befehle durchreichen.

Effizienter Tippen

Möchten Sie regelmäßig in der Bash mit Dstask viele Aufgaben verwalten, lässt sich die Arbeit mit zwei Handgriffen wesentlich beschleunigen. Zunächst empfiehlt es sich, ein Alias anzulegen, etwa mit alias t=dstask. Damit verwenden Sie zukünftig t anstelle von dstask und sparen sich so Tipparbeit.

Des Weiteren stellt der Dstask-Entwickler auf der Github-Seite die Datei .dstask-bash-completions.sh bereit. Führen Sie diese mit source .dstask-bash-completions.sh aus, kennt die Bash alle Parameter von Dstask und vervollständigt sie beim Druck auf die Tabulatortaste automatisch.

Das funktioniert allerdings nur, wenn Sie dstask nach /usr/local/bin/ oder eine andere entsprechende Stelle im $PATH verschoben haben. Damit Sie die beiden vorgestellten Kommandos nicht immer wieder neu eintippen müssen, ergänzen Sie sie in der Datei ~/.bashrc.

Auf der Github-Seite steht zudem noch das Skript .dstask-zsh-completions.sh bereit, das die Autovervollständigung unter der Zsh einrichtet.

Fazit

Dstask verwaltet auf der Kommandozeile recht flott alle anstehenden Aufgaben. An der Aufgabenverwaltung dürfte daher besonders derjenige Freude finden, wer viel im Terminal arbeitet oder sein System gern per Tastatur bedient. Der Funktionsumfang genügt zwar für den Alltag, reicht aber an den ausgewachsenen Taskmanager nicht heran.

Der Entwickler plant jedoch, in zukünftigen Versionen Unteraufgaben sowie ein erweitertes Projektmanagement zu unterstützen. So sollen Aufgaben etwa auch eine Deadline erhalten können. Die Dokumentation beschränkt sich derzeit auf die Online-Hilfe, die dstask help abruft. Wenn Sie diesem Kommando noch eine Aktion wie add anhängen, erhalten Sie eine ausführliche Beschreibung nur zum jeweiligen Befehl. (cla)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 02/2021 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben