Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:linuxclient:buttonbar]] 

Button Bar für Ubuntu

Mit diesem kleinen Widget kann man per Button auf der Desktop-Oberfläche von Ubuntu Shell-Befehle im Userkontext ausführen lassen.
Für Windows siehe → Bildschirmauflösung am Windows Client mit ButtonRes verwalten

  • Das Anmeldefenster im Lightdm ist immer auf dem Bildschirm, auf dem die Maus ist, findet man es nicht muss man die Maus nach rechts oder links bewegen.
  • Das Widget lässt sich per cfg-Datei anpassen, maximal 20 Buttons sind möglich.
  • Version 0.20 der ButtonBar kann auch grafische Buttons erzeugen, siehe → unten
  • Negative Positionsangaben zählen von rechts oder unten, positive von links oder oben.
  • Die Befehle werden direkt ohne shell ausgeführt, ggf. muss deren kompletter Pfad angegeben werden. Ebenso funktionieren keine Wildcard (z.B. der *), mehrere Befehle oder Pipes. Falls diese benötigt werden, muss man den/die Befehle mit
    exec = sh -c "...Befehl..."

    über einen shell-Aufruf ausführen lassen oder man lagert die Befehle in ein eigenes Shellscript aus (→ Beispiel). Dabei sind aber Enviroment-Variablen, wie z.B. „HOSTNAME“ nicht belegt!

  • Man kann das Programm über einen autostart-Eintrag bei der Anmeldung starten lassen (über dash-Suche: „Startprogramme“)
  • Man legt es mit seiner cfg-Datei z.B. unter /opt/buttonbar/ ab oder am Server unter progs.
  • Es gibt keine Umgebungsvariablen, möchte man z.B. den Hostname haben (auch in aufgerufenen Befehlen), muss man diesen z.B. aus /etc/hostname auslesen…
    ist es ein eigener Befehl in z.B. /usr/local/bin, wäre eine mögiche buttonbar.cfg
     [Programm]
    Name="Linuxmuster Button Bar"
    width = 250
    ButtonAnzahl = 1
    xpos = 100
    ypos = -40
    FixedPosition = 1
    Hintergrundfarbe = $FFFFFF
    
    # BorderStyle : none | single
    BorderStyle = "single"
    
    [Button1]
    Name = "Bildschirm Spiegeln"
    exec = sh -c "/usr/local/bin/bildschirm_spiegeln"
    BefehlsAusgabeAnzeigen = 0

    Hier erscheint die Buttonbar übrigens oben links.

  • Die Option „BefehlsAusgabeAnzeigen“ macht nur Sinn, wenn der Befehl auch eine echte Ausgabe hat, sonst erscheint ein leeres Fenster. Fehlermeldungen werden in dem Fenster nicht ausgegeben.

Download 64 Bit → buttonbar-0.1-x86_64.tar.gz
Download 32 Bit → buttonbar-0.1-i386.tar.gz

Download Source → buttonbar-0.1-src.tar (Programmiert mit Lazarus)

buttonbar.cfg
[Programm]
Name="Linuxmuster Button Bar"
width = 250
ButtonAnzahl = 4
xpos = -20
ypos = 40
FixedPosition = 0
Hintergrundfarbe = $FFFFFF
 
# BorderStyle : none | single
BorderStyle = "single"
 
[Button1]
Name = "Erster - ls"
exec = "ls"
BefehlsAusgabeAnzeigen = 1
 
[Button2]
Name = "Zweiter - pwd"
exec = "pwd"
BefehlsAusgabeAnzeigen = 1
 
[Button3]
Name = "Dritter date"
exec = "date"
BefehlsAusgabeAnzeigen = 1
 
[Button4]
Name = "Vierter - mit sh uptime" 
exec = sh -c "echo 'uptime:' ; uptime"
BefehlsAusgabeAnzeigen = 1

Um eine einfache Auflösungsumschaltung zu realisieren, benutzt man folgende cfg-Datei. Die genauen xrandr-Optionen müssen zum eigenen System vorher ermittelt werden, siehe → Bildschirmauflösung unter Ubuntu 12.04 Client-bezogen vorgeben.

Mit FixedPosition =1 wird erreicht, dass sich die ButtonBar nach Auflösungsänderung wieder richtig positioniert.

buttonbar.cfg
[Programm]
Name="Auflösung"
width = 100
xpos = -20
ypos = 40
FixedPosition = 1
Hintergrundfarbe = $FFFFFF
 
# BorderStyle : none | single
BorderStyle = "none"
 
# ButtonAnzahl maximal 20
ButtonAnzahl = 2
 
[Button1]
Name = "800x600"
exec = "xrandr --output VGA1 --mode 800x600"
BefehlsAusgabeAnzeigen = 0
 
[Button2]
Name = "1280x960"
exec = "xrandr --output VGA1 --mode 1280x960"
BefehlsAusgabeAnzeigen = 0

Auflösung "hart" vorgeben

Hinter einem VGA-Splitter o.ä. erkennt Ubuntu die Fähigkeiten des Monitors/Beamer nicht, dann müssen diese „hart“ gesetzt werden, z.B. mit den drei Befehlen:

xrandr --newmode "1280x800_60.00" 83.50 1280 1352 1480 1680  800 803 809 831 -hsync +vsync
xrandr --addmode VGA1 "1280x800_60.00"
xrandr --output VGA1 --mode "1280x800_60.00"

Die vielen Parameter für den newmode-Befehl muss man vorher durch den cvt-Befehl ermitteln:

# cvt 1280 800 60

In der buttonbar.cfg-Datei ruft man dann diese Befehle hintereinander ab:

[Button2]
Name = "Beamer-1280x800"
exec = sh -c "xrandr --newmode '1280x800_60.00' 83.50 1280 1352 1480 1680  800 803 809 831 -hsync +vsync ; xrandr --addmode VGA1 '1280x800_60.00' ; xrandr --output VGA1 --mode '1280x800_60.00'"
BefehlsAusgabeAnzeigen = 0

Befehl per sudo ausführen

Alle Befehle werden zunächst im Userkontext ausgeführt. Wenn diese jedoch root-Rechte benötigen, dann muss der gewünschte Befehl per sudo aufgerufen werden. Um dies passwortlos für alle User zu erlauben muss eine neue Datei im Verzeichnis /etc/sudoers.d/ erzeugt werden:

/etc/sudoers.d/buttonbar
All All=NOPASSWD: /bin/mount
[Button3]
Name = "sudo mount -a"
exec = "sudo /bin/mount -a"
BefehlsAusgabeAnzeigen = 0

Grafische Buttonbar

Version 0.20 der Buttonbar kann auch grafische Buttons in einer oder mehreren Spalten darstellen. Die Grafiken zu den Buttons müssen im BMP-Format vorliegen.
Download 64 Bit → buttonbar-0.20-x86_64.tar.bz2

Konfigurationsdatei:

[Programm]
Name = "ButtonBar 0.20"
width = 200
xpos = -20
ypos = 40
FixedPosition = 1
Hintergrundfarbe = $FFFFFF
BilderButtons = 1
BWidth = 74
BHeight = 74
BilderPfad = "Bilder"
Spalten = 3


# BorderStyle : none | single
BorderStyle = "none"

# ButtonAnzahl maximal 20
ButtonAnzahl = 5

[Button1]
Name = "800x600"
exec = "xrandr --output VBOX0 --mode 800x600"
BefehlsAusgabeAnzeigen = 0
GrafikName= "gluehbirne.bmp"

...
  • BilderButtons=1 schaltet die Grafik-Funktion ein und die Texte ab.
  • BWidth, BHeight gibt die Breite und Höhe der Buttons an, sollte zur Größe der Grafiken passen, somit etwas größer als die Grafiken sein (Diese werden nicht skaliert). Z.B.: Grafiken mit Größe 64×64 Bit benötigen Buttons mit 74×74.
  • Spalten gibt die Anzahl der Spalten der ButtonBar an. Für eine horizontale Darstellung wählt man soviele Spalten wie Buttons. Diese Funktion ist nur für Grafiken verfügbar.
  • GrafikName Angabe des Namens im Verzeichnis Bilder, das sich im Programm-Pfad befinden muss.
 [[anwenderwiki:linuxclient:buttonbar]] anwenderwiki/linuxclient/buttonbar.txt · Zuletzt geändert: 2016/03/11 14:09 (Externe Bearbeitung)