Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:linuxclient:buttonbar]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

anwenderwiki:linuxclient:buttonbar [2016/03/11 15:09] (aktuell)
Zeile 1: Zeile 1:
 +{{tag> linuxclients widget}}
  
 +====== 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 -> [[anwenderwiki:​windowsclient:​buttonres]] ​
 +
 +{{ :​anwenderwiki:​linuxclient:​buttonbar-1.png?​300 |}}
 +  * 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<​code>​exec = sh -c "​...Befehl..."</​code>​über einen shell-Aufruf ausführen lassen oder man lagert die Befehle in ein eigenes Shellscript aus (-> [[anwenderwiki:​linuxclient:​buttonbar-beispiel|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\\ <​code>​ [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
 +</​code>​ 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 ->  {{:​anwenderwiki:​linuxclient:​buttonbar-0.1-x86_64.tar.gz|}} ​ \\
 +Download 32 Bit ->  {{:​anwenderwiki:​linuxclient:​buttonbar-0.1-i386.tar.gz|}}  ​
 +
 +Download Source ->  {{:​anwenderwiki:​linuxclient:​buttonbar-0.1-src.tar|}} ​ (Programmiert mit Lazarus)
 +
 +
 +<code text 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
 +</​code>​
 +
 +
 +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 -> [[anwenderwiki:​linuxclient:​bildschirmaufloesung?​s[]=xrandr]].\\
 +
 +
 +
 +{{ :​anwenderwiki:​linuxclient:​buttonbar-2.png?​300 |}}
 +
 +
 +Mit FixedPosition =1 wird erreicht, dass sich die ButtonBar nach Auflösungsänderung wieder richtig positioniert.
 +
 +<code text 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
 +</​code>​
 +
 +
 +===== 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:
 +<​code>​
 +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"​
 +</​code>​
 +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:
 +<​code>​
 +[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
 +</​code>​
 +
 +===== 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:
 +<code text /​etc/​sudoers.d/​buttonbar>​
 +All All=NOPASSWD:​ /bin/mount
 +</​code>​
 +
 +<​code>​
 +[Button3]
 +Name = "sudo mount -a"
 +exec = "sudo /bin/mount -a"
 +BefehlsAusgabeAnzeigen = 0
 +</​code>​
 +
 +===== 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 ->  {{:​anwenderwiki:​linuxclient:​buttonbar-0.20-x86_64.tar.bz2|}} ​ \\
 +
 +
 +{{ :​anwenderwiki:​linuxclient:​bttonbar-0.20-screenshot.jpg?​300 | }}
 +
 +Konfigurationsdatei:​
 +<​code>​
 +[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"​
 +
 +...
 +</​code>​
 +  * **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 64x64 Bit benötigen Buttons mit 74x74.
 +  * **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 15:09 (Externe Bearbeitung)