KurzeTipps – Fensterverteilung über die Maus aktivieren

Wer unter dem Unity Desktop die Funktion Fensterverteilung (SUPER + W) einmal ausprobiert hat, findet hier einen kleinen Tipp. Um nicht immer über das Tastaturkürzel die Funktion aufzurufen, sondern ähnlich wie bei Gnome die obere linke Ecke zu nutzen, kann der folgenden Befehl im Terminal ausgeführt werden.

gsettings set org.compiz.scale:/org/compiz/profiles/unity/plugins/scale/ initiate-edge '[EDGE]'

Für [EDGE] können folgende Werte eingesetzt werden (Groß- und Kleinschreibung beachten):

Wert Beschreibung
Top Obere Seite
TopLeft Obere linke Ecke
TopRight Obere rechte Ecke
Bottom Untere Seite
BottomLeft Untere linke Ecke
BottomRight Untere rechte Ecke
Left Linke Seite
Right Rechte Seite

KurzeTipps – Kalender Widget per Skript

Ich habe mich heute per Zufall mit dem Thema Widgets beschäftigt. Da ich jedoch nicht noch irgendwelche Software wie beispielsweise Conky dafür installieren möchte, habe ich mir ein kleines Skript geschrieben. Das Skript ist recht simple aufgebaut und besteht im Grunde nur aus dem Ersetzen des Icon-Pfades. Ich habe im folgenden die Vorgehensweise anhand eines Kalenders beschrieben.

Verwendung

Als erstes erstellt man für den Kalender die entsprechenden Zahlen für Tag und Monat als Bild. (Hier ist ein Archiv in der sowohl das Skript als auch die Bilder enthalten sind.)

Nun ruft man das Skript auf und es werden zwei neue Icons auf dem Desktop erstellt. Nachdem man im Kontextmenü (Rechte Maustaste) die Eigenschaften („Properties„) des Icons aufgerufen hat, setzt man in dem Reiter Berechtigungen („Permissions„) die Erlaubnis zum Ausführen der Datei. Das Icon sollte nach dem Schließen zu sehen sein.

Nachdem man für beide Icons (Tag, Monat) die Berechtigung gesetzt hat, kann man das Skript zu den Autostart-Programmen hinzufügen. Von nun an ist nach jedem Einloggen das aktuelle Datum auf dem Desktop zu sehen.

Tipp: Wem die Icons zu klein sind, der kann im Kontextmenü die Größe der Icons verändern.

Gegebenenfalls bitte die Pfade an die eigenen anpassen.

#!/bin/bash
# Copyright 2015 Marc Volker Dickmann
# A simple script to use icons as widgets

# CONFIG
# This script.
scriptfile="Bilder/calendar_flat_two/calendar_flat_two.sh"

# The icon for the day
iconfile_day="Schreibtisch/calendar_day.desktop"

# The icon for the month
iconfile_month="Schreibtisch/calendar_month.desktop"

# Path to the image files
imgfiles="Bilder/calendar_flat_two/png"

# For using other file formats
imgfileending="png"

# The dateformat for the day file
dateformat_day="+%d"

# The dateformat for the month
dateformat_month="+%m"

# DAY
currentday=$(date "$dateformat_day")

echo "#!/usr/bin/env xdg-open

[Desktop Entry]
Name=.
TryExec=$HOME/$scriptfile
Exec=$HOME/$scriptfile
Icon=$HOME/$imgfiles/$currentday-white.$imgfileending
Type=Application
StartupNotify=true
OnlyShowIn=GNOME;Unity;" > "$HOME/$iconfile_day"

# MONTH
currentmonth=$(date "$dateformat_month")

echo "#!/usr/bin/env xdg-open

[Desktop Entry]
Name=.
TryExec=$HOME/$scriptfile
Exec=$HOME/$scriptfile
Icon=$HOME/$imgfiles/$currentmonth-orange.$imgfileending
Type=Application
StartupNotify=true
OnlyShowIn=GNOME;Unity;" > "$HOME/$iconfile_month"

KurzeTipps – Icons automatisch positionieren

Ich habe mich heute per Zufall mit dem Thema Icons automatisch anordnen beschäftigt und dabei ist ein kleines Skript entstanden. Das Skript ist recht simple gehalten und positioniert automatisch alle Icons nebeneinander, ähnlich eines Docks. Für den Fall das jemand diese Funktion noch gebrauchen kann, stelle ich es hier jedem zur Verfügung.

Achtung: Bitte statt USERNAME den eigenen Nutzernamen eintragen und die anderen Werte anpassen.

#!/bin/bash
# Copyright 2015 Marc Volker Dickmann
# Positions the icons like a dock

width="1920"
height="1080"
icons="0"
iconswidth="128"
iconsheight="128"
iconsheightadd="64"
desktoppath="/home/USERNAME/Schreibtisch"

for iconfile in ./*.desktop ; do 
	icons=$(($icons+1))
done

width=$((($width/2)+($iconswidth * ($icons/2))))

for iconfile in ./*.desktop ; do 
	iconname=$(basename "$iconfile")
	posx=$(($width - ($iconswidth *$icons)))
	posy=$((($height-$iconsheightadd) - $iconsheight))
	gvfs-set-attribute "$desktoppath/$iconname" metadata::nautilus-icon-position "$posx,$posy"
	icons=$(($icons-1))
done

Bask – Aufgabenverwaltung im Terminal

Ich arbeite seit ca. 2 Wochen an einer Aufgabenverwaltung, die man über das Terminal benutzen kann. Das Projekt trägt den Namen Bask und ist komplett in der Programmiersprache C umgesetzt. Dabei verwende ich nur die Standardbibliotheken von C und zunächst einmal die Farben für die Bash Shell welche unter vielen Distributionen bereits vorinstalliert ist. Das Programm steht dabei unter der Lizenz GNU GPL v.3.

Quelle - Marc Volker Dickmann
Quelle – Marc Volker Dickmann

Installation

Da Bask sich noch in der Entwicklung befindet, muss man zur Zeit noch den Quellcode herunterladen und ihn Anschließend kompilieren. Dazu befindet sich eine Makefile die diesen Schritt auf den Befehl $ make innerhalb des Ordners reduziert. Anschließend kopiert man die Datei zb. in den Ordner bin welcher im Benutzerverzeichnis angelegt werden kann. Wird der Ordner bin erstellt muss man sich vor dem verwenden einmal Aus- und wieder Einloggen.

Erster Start

Das Programm ist im Grunde sehr simple aufgebaut. Nachdem man es installiert hat, gibt man den Befehl $ bask init ein und Bask erstellt im Benutzerverzeichnis in dem Ordner .local/share einen neuen Ordner namens Bask. Zusätzlich werden die benötigten Dateien wie das Theme, die Konfigurationsdatei sowie einen leeren Baskbin in dem die Aufgaben gespeichert werden.

Um eine Aufgabe in Bask anzulegen, wird der nachfolgende Befehl verwendet. Dabei aber die mit <> gekennzeichneten Parameter anpassen.

$ bask add <Priorität> <Projektname> <Beschreibung der Aufgabe>
$ bask add 0 "BaskTut" "Dies ist eine neue Aufgabe. Priorität Normal."
$ bask add 1 "BaskTut" "Dies ist eine neue Aufgabe. Priorität Wichtig."
$ bask add 2 "BaskTut" "Dies ist eine neue Aufgabe. Priorität Heute."
$ bask add 3 "BaskTut" "Dies ist eine neue Aufgabe. Priorität Kritisch."

Alle Aufgaben lassen sich mit list in einer Tabelle anzeigen.

$ bask list

Um eine Zusammenfassung aller Projekte zu erhalten, kann man summary verwenden.

$ bask summary

Um eine Aufgabe als erledigt zu markieren, wird der nachfolgende Befehl verwendet.

$ bask finish <id>
$ bask finish 1

Falls man eine Aufgabe endgültig aus dem Baskbin löschen möchte, kann man remove benutzten.

$ bask remove <id>
$ bask remove 1

Möchte man die Aufgabe noch im Baskbin behalten, sie aber nicht mehr in der Liste stehen haben, kann man stop verwenden.

$ bask stop <id>
$ bask stop 1

Befehlsliste

In der unten stehenden Tabelle sind einige Befehle und ihre Funktionen aufgelistet.

Befehl Funktion
$ bask add <Priorität> <Projektname> <Beschreibung der Aufgabe> Erstellt eine neue Aufgabe.
$ bask remove <id> Entfernt eine Aufgabe.
$ bask finish <id> Markiert eine Aufgabe als erledigt.
$ bask stop <id> Versteckt eine Aufgabe.
$ bask show <id> Zeigt alle Informationen einer Aufgabe.
$ bask mod <id> Modifiziert eine Aufgabe. Bitte in der Hilfe von Bask nachschauen.
$ bask search [Ansicht] <Suchwort> Durchsucht den Baskbin und nutzt optional die in Ansicht gegebene Anzeige für die Ergebnisse.
$ bask list Zeigt alle Aufgaben in einer Tabelle an.
$ bask summary Zeigt die Zusammenfassung aller Projekte an.
$ bask help Zeigt die ausführliche Hilfe an.

Anregung oder Kritik

Auf der Projektseite von Bask finden sich weitere Informationen sowie die der Link zu dem Projekt auf Launchpad. Wenn jemand Anregungen oder Kritik zu Bask hat, nehme ich diese gerne über Kommentare oder entsprechende Einträge auf dem Launchpad Projekt entgegen.

KurzeTipps – Multimonitor Gaming

Ich besitze momentan mehrere Monitore, genauer gesagt drei, und bis auf wenige Ausnahmen gibt es kaum Spiele die problemlos die Auflösung von 5760×1080 unterstützen. Viele Spiele übernehmen für die Größe des Fensters bzw. des Vollbildes die Auflösung von Compiz welcher derzeit unter Unity unter anderem für die Komposition verantwortlich ist. Vor ein paar Tagen kam ich auf eine Lösung, welche die Liste von Unterstützen Spielen etwas länger macht.

Über ein Skript setze ich die Variable outputs auf einen Screen mit der Auflösung von allen Monitoren zusammen (5760×1080) und deaktiviere vorher die automatische Erkennung von outputs. Dann werden beim Maximieren oder dem Vollbild die Anwendungen über alle Monitore gestreckt.

#!/bin/bash
gsettings set "org.compiz.core:/org/compiz/profiles/unity/plugins/core/" "detect-outputs" false 
gsettings set "org.compiz.core:/org/compiz/profiles/unity/plugins/core/" "outputs" "['5760x1080+0+0']"

Bei dem Spiel Shadow of Mordor zum Beispiel lässt sich so im Fenstermodus das Spiel über drei Monitore spielen. Bei Vollbildanwendungen wird nebenbei auch die volle Auflösung genommen, erkennbar durch das kurze Auftauchen des Steam Notifikation ganz rechts, jedoch stellt nicht jedes Spiel die Auflösung dar und bleibt beim linken Monitor in dessen Auflösung.

Um wieder zum normalen Modus zu kommen, führt man folgendes Skript aus. Der Modus erlaubt es wieder, dass Fenster beim Maximieren auf die Größe von einem Monitor gestreckt werden. Das Skript setzt dafür die Einstellungen wieder auf die festgelegten Werte zurück. Hier habe ich die Werte für drei 1080p Monitore festgelegt.

#!/bin/bash
gsettings set "org.compiz.core:/org/compiz/profiles/unity/plugins/core/" "detect-outputs" true
gsettings set "org.compiz.core:/org/compiz/profiles/unity/plugins/core/" "outputs" "['1920x1080+0+0', '1920x1080+1920+0', '1920x1080+3840+0']"

Wallpaper – Flat Design

Ich habe mich diesmal an Hintergründen mit dem sogenannten Flat Design probiert. Das Flat Design besteht in der Basis aus der flachen Ansicht. Bei dem Ausprobieren sind einige Hintergründe entstanden, die ich nun auf meinem Blog anderen zur Verfügung stellen möchten. Ich habe für dass Zeichnen der Hintergründe wiedermal die freie Software GIMP verwendet.

Die Hintergründe können von jedem heruntergeladen und für den privaten Gebrauch verwendet werden. Zur Weitergabe bitte den Link zu diesem Artikel verwenden. Für die vollständige Auflösung bitte auf das entsprechende Vorschaubild klicken.

Wallpaper – Metal

Ich habe mir mal wieder einen neuen Hintergrund designt und stelle ihn euch hier zum Download zur Verfügung. Da ich das Originallogo aus rechtlichen Gründen nicht verwenden kann, habe ich den Namen meines Blogs in ähnlichem Design darauf platziert. Ich fand, dass das Logo gut zu meinem Hintergrund passte. Wer möchte, kann sich auf der Hompage der Distribution aber das Logo selber herunterladen. Wie die meisten meiner Hintergrundbilder ist auch dieses mithilfe der freien Bildbearbeitungs Software Gimp entstanden.

Um das Bild in der vollen Auflösung von 1920 x 1080 herunterzuladen, bitte auf die Vorschau unten klicken. Die Lizenz entspricht dem Weitergeben des Linkes (unter Nennung meines Namens) und natürlich für den privaten Desktop nutzbar.

Quelle - Eigener Hintergrund
Quelle – Eigener Hintergrund

Wallpaper – The Thing

Ich habe mir mal wieder einen neuen Hintergrund für meinen Desktop designt und stelle ihn hier kurz zum Downloaden bereit. Ich habe diesmal die Open Source Software Blender genutzt, da ich mir die neue Version mal anschauen wollte. Als render Engine in Blender habe ich die mit Blender ausgelieferte Cycles Engine verwendet. Da in dem „Ding“ jeder etwas anderes interpretieren kann, habe ich den Hintergrund den Namen „The Thing“ gegeben.

Wer sich den Hintergrund in der Auflösung von 1920 x 1080 herunterladen möchte, kann auf dies über einen Klick auf das Vorschaubild tun. Wie alle meine Hintergrundbilder steht er unkommerzieller Nutzung mit Namensnennung frei zur Verfügung.

Quelle - Eigenes Hintergrundbild
Quelle – Eigenes Hintergrundbild

Wenn Interesse besteht, wie man so etwas mit Blender kreiert, kann ich gerne einen Artikel dazu schreiben.

Software – Byobu Terminal

Fast jeder Linux Nutzer dürfte schon einmal, mehr oder weniger, mit dem Terminal in Berührung gekommen sein. Meist sind die vorinstallierten Terminals jedoch schlicht, was keineswegs falsch ist. Wer diese Möglichkeit der Befehlseingabe häufig in Anspruch nimmt, dem könnte leicht die einfache Verwaltung von verschiedenen Terminals, wie man sie von dem Fenstermanager gewohnt ist, fehlen. Eine Lösung für dieses Problem bietet Byobu. Das Skript bzw. Hilfsprogramm stellt im Grunde die Möglichkeiten einer Fensterverwaltung für die Kommandozeile bereit. Dafür verwendet die Software entweder den Shell-Fenstermanager Screen oder tmux.

Byobu mit einem Tab. - Quelle - Bildschirmfoto von Byobu
Byobu mit einem Tab – Quelle – Bildschirmfoto von Byobu

Installation

Byobu ist unter Ubuntu sogar in den Standard Paketquellen von main zu finden. Auch bei anderen Distributionen kann man die Software meist installieren, ohne weitere Paketquellen hinzuzufügen. Bei Debian basierten Distributionen lässt sich das entsprechende Paket beispielsweise über folgenden Befehl installieren.

sudo apt-get install byobu

Verwendung

Nach der Installation findet man in dem Menü einen Eintrag, um direkt ein Terminal mit Byobu zu starten. Möchte man dies jedoch manuell erledigen, kann man den folgenden Befehl verwenden.

byobu

Wenn die Software häufiger zu Einsatz kommt, kann man natürlich einen Starter auf dem Desktop oder in der Startleiste platzieren.

Ansicht

Nachdem die Anwendung gestartet wurde, präsentiert sie einem zunächst eine leicht veränderte Befehlszeile. Unten wird jedoch eine kleine Leiste eingeblendet die Informationen zu dem System, wie etwa Zeit, Prozessorauslastung, verfügbarer Arbeitsspeicher und mehr, anzeigt. Bei Bedarf kann man Byobu so konfigurieren, dass auch andere Informationen eingeblendet werden.

Über die Taste F9 gelangt man in das Menü von Byobu. Dort kann man unter dem Menüpunkt „Statusmeldungen ändern“ die in der Statusleiste anzuzeigenden Informationen auswählen.

Steuerung

Einer der Hauptfunktionen ist jedoch die Möglichkeit in einem Fenster mehrere Sitzungen zu starten und sie wie bei einem Tiled Fenstermanager (z.B. I3) anzuordnen. Diese Funktion lässt sich sehr simple über Tastenkombinationen steuern. Für diese Funktion verwendet Byobu die eigentlichen Shell-Fenstermanager Screen oder tmux.

Tastenkombination Funktion
F2 Startet eine neue Sitzung in einem neuen Tab.
F3 Wechselt zur vorherigen Sitzung (Tab links).
F4 Wechselt zur nächsten Sitzung (Tab rechts).
Shift + F2 Teilt die aktuelle Sitzung Horizontal.
Strg + F2 Teilt die aktuelle Sitzung Vertikal.
Shift + F3 Setzt den Fokus auf die vorherige Teilsitzung.
Shift + F4 Setzt den Fokus auf die nächste Teilsitzung.
Shift + F5 Verbindet alle Teilsitzungen.
Shift + F6 Entfernt die aktuelle Teilsitzung.
Strg + D Sitzung beenden und Tab schließen.

Einige der Funktionstasten

Besonderheiten

Im Gegensatz zu den herkömmlichen Terminals wird bei Byobu ein Prozess beim Schließen des Fensters nicht beendet, sondern läuft im Hintergrund weiter. Startet man nun Byobu erneut, so findet man den Zustand vor dem schließen des Fensters vor. Damit der Prozess beendet und das Fenster geschlossen wird, kann man die Tastenkombination Strg + C und anschließend Strg + D verwenden.

Byobu mit 3 Teilsitzungen - Quelle - Bildschirmfoto von Byobu
Byobu mit 3 Teilsitzungen – Quelle – Bildschirmfoto von Byobu

Details

Aktueller Debian Maintainer der Open Source Software ist Dustin Kirkland. Das Projekt steht momentan unter der GPL v.3 Lizenz.

Tipps und Tricks

Wem die Hintergrundfarbe des Terminals nicht gefällt, kann mit der Tastenkombination Strg + Shift + F5 die Farbe durch eine zufällig ausgewählte Farbe ersetzen. Dafür muss man sich allerdings im sogenannten byobu-tmux Modus befinden. Der Modus bedeutet im Grunde nur, dass die Anwendung den tmux Shell-Fenstermanager verwendet.

Hat man beide Shell-Fenstermanager installiert, kann man über den Befehl byobu-screen oder byobu-tmux der Anwendung vorschreiben welchen sie benutzen soll.

Die jeweiligen Skripts für die Statusmeldungen findet man unter dem Pfad „/usr/lib/byobu/„.

Über die Tastenkombination Shift + Pfeiltasten kann man ebenfalls zwischen den Teilsitzungen navigieren.

Weitere Infos

Für weitere Informationen zu dem Programm habe ich hier ein paar Quellen aufgelistet.

– In der Man Page von Byobu findet man im Grunde alles, was man wissen muss. (Englisch)

– Auf der entsprechenden Seite des Wikis von Ubuntuusers.de findet man einen Überblick. (Deutsch)

Fazit

Mir hat Byobu sehr gut gefallen, besonders die Option mit den Teilsitzungen ermöglicht mir nun weniger Fenster geöffnet zu haben. Wem der Fenstermanager I3 gefällt, aber für grafische Programme einen anderen nutzten möchte, der wird bei dem Hilfsprogramm Byobu fündig. Ich empfehle jedem diese Software einmal auszuprobieren.