Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
05.08.2021, 07:46:38

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
  • Mitglieder insgesamt: 25805
  • Letzte: antaresc
Statistiken
  • Beiträge insgesamt: 748240
  • Themen insgesamt: 60197
  • Heute online: 420
  • Am meisten online: 2287
  • (22.01.2020, 19:20:24)
Benutzer Online
Mitglieder: 7
Gäste: 412
Gesamt: 419

Autor Thema: [gelöst]  Toggle Script für Cinnamon panel autohide  (Gelesen 254 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

[gelöst] Toggle Script für Cinnamon panel autohide
« am: 12.04.2021, 16:58:41 »
Hallo zusammen,

ich bräuchte mal Hilfe für ein Script das per toggle die Cinnamon Taskleiste ein- und ausblendet. Ich habe 3 Bildschschirme, also müssen alle 3 Leisten gleichzeitig angesprochen werden. Das Script sieht so aus:

#!/bin/bash
state=$(gsettings get org.cinnamon panels-autohide)
if [ $state = "['1:true',\ '3:true',\ '2:true']" ]; then

    gsettings set org.cinnamon panels-autohide "['1:false', '3:false', '2:false']"
else
    gsettings set org.cinnamon panels-autohide "['1:true', '3:true', '2:true']"
fi

Beim starten des Scipts werden die Leisten ausgeblendet, aber es kommt eine Fehlermeldung im Terminal

./Shortcut_toggle_taskbar.sh: Zeile 3: [: Zu viele Argumente.

user@debian-sid:~/Scripte$ echo $state
['1:false', '3:false', '2:false']

Beim zweiten mal aufrufen kommt die gleiche Fehlermeldung aber die Taskleiste bleibt verborgen.

Also irgendwie scheint die Syntax in Zeile 3 nicht zu stimmen, aber ich weiß leider nicht genau was.

« Letzte Änderung: 13.04.2021, 01:41:01 von Hashikawa »

Re: Toggle Script für Cinnamon panel autohide
« Antwort #1 am: 12.04.2021, 17:12:24 »
Hallo Hashikawa,

ich kann Dir zwar nicht beim programmieren helfen, aber vielleicht hilft Dir das.

Re: Toggle Script für Cinnamon panel autohide
« Antwort #2 am: 12.04.2021, 17:21:34 »
Von Hand kann ich die Leiste ausblenden, aber da ich 3 Monitore habe ist mir das zu viel rumgeklicke. Deshalb ja die Lösung mit dem Script, welches ich auf eine eigene Tastenkombination legen kann.

Re: Toggle Script für Cinnamon panel autohide
« Antwort #3 am: 12.04.2021, 18:17:06 »
Moin Hashikawa,

wenn ich richtig interpretiere, willst du zwei Strings vergleichen, dann fehlt ein "=" in deinen eckigen Klammern. Also "if [ $state == "['1:true',\ '3:true',\ '2:true']" ]; then"
Je nachdem, was gsettings zurück gibt, würde ich "$state" zusätzlich "quoten", um unerwünschtes globbing zu verhindern. Siehe Beispiel hier:
 
#Check equality two string variables

if [ "$strval1" == "$strval2" ]; then
  echo "Strings are equal"
else
  echo "Strings are not equal"
fi
« Letzte Änderung: 12.04.2021, 18:24:28 von Slangbein »

Re: Toggle Script für Cinnamon panel autohide
« Antwort #4 am: 12.04.2021, 19:26:54 »
Hallo Slangbein,

danke für den Tip. Ich habe das Script jetzt folgendermaßen abgeändert:


#!/bin/bash
state=$(gsettings get org.cinnamon panels-autohide)
if [ "$state" == "['1:true', '3:true', '2:true']" ]; then
    gsettings set org.cinnamon panels-autohide "['1:false', '3:false', '2:false']"
else
    gsettings set org.cinnamon panels-autohide "['1:true', '3:true', '2:true']"
fi


Ich musste nur noch den Backslash entfernen und es funktioniert jetzt wie es soll, vielen Dank  :)