Ergebnis 1 bis 2 von 2

Thema: OS-Skripting mit AppleScript, DCOM, D-Bus etc.

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    OS-Skripting mit AppleScript, DCOM, D-Bus etc.

    Ich hatte bis vor Kurzem ein "Problem": Um an der Uni ins VPN (= ins Internet) zu kommen mußte ich auf das AirPort-Symbol in der Menüleiste klicken; "AirPort aktivieren" auswählen; warten, bis ich eine Verbindung habe; das Internetverbindungssymbol anklicken und dann "Verbinden" auswählen.

    Die Lösung war am Ende verdammt einfach. Zuerst braucht man die XNetwork-Skripterweiterung. Die kommt nach (~)/Library/Scripting Additions (anlegen, falls nicht existent) und erlaubt es, AirPort per AppleScript anzusteuern. Das Skript selbst ist simpel:
    Code:
    try
      tell application "Internet Connect"
        if state of status of current configuration is 8 then
          disconnect
          delay 1 -- warten, bis VPN abgebaut ist
          stop airport
        else -- alles außer 8 gilt als disconnected
          start airport
          delay 4 -- warten, bis AirPort tut
          connect
        end if
        quit application
      end tell
    end try
    Es startet Internet Connect (aka Internetverbindung), holt sich den aktuellen Verbindungszustand und... naja, der Rest ist selbsterklärend. Status 8 ist eine stehende Verbindung, 0 ist keine Verbindung und alles dazwischen irgendein Zwischenstadium.

    Das Skript lasse ich mir von Butler auf einen Hotkey binden und schon reicht eine Tastenkombination, um VPN und AirPort zu steuern. Ja, ich weiß, daß Quicksilver Hotkeys kann, aber ich will nur einen Hotkeymanager und keine Studie in postmoderner Philosophie, danke sehr. Butler ist zwar überladen, aber nicht ganz so schlimm wie Quicksilver.


    BTW, die Version ohne VPN würde so aussehen:
    Code:
    try
      if is airport working then
        stop airport
      else
        start airport
      end if
    end try

    Verwendet ihr derartige Skripte selber? Habt ihr welche, von denen die Welt wissen müßte? Her damit.

  2. #2
    Interessantes Thema. Und da du im Titel schon D-Bus ansprichst, möchte ich doch gleich mal fragen, ob jemand Erfahrung damit hat, in der D-Bus Session eines Users als root rumzuwurschteln. Ich will das nicht zum BOFH-spielen, sondern um meinen gnome-screensaver beim Ausschalten des Bildschirms automatisch zu locken. Im Moment sieht das so aus, aber das finde ich einfach nur
    Code:
    if [ `pidof gnome-screensaver` ]; then
            xpid=$(pgrep -u $user gnome-screensav)
            xdisp=$(awk 'BEGIN{RS="\\000";FS="="}($1 == "DISPLAY"){print $2}' < /proc/$xpid/environ)
            xauth=$(awk 'BEGIN{RS="\\000";FS="="}($1 == "XAUTHORITY"){print $2}' < /proc/$xpid/environ)
            xdbus=$(awk 'BEGIN{RS="\\000";FS="="}($1 == "DBUS_SESSION_BUS_ADDRESS"){print $2"="$3"="$4}' < /proc/$xpid/environ)
            if [ -z "$xauth" ] ; then
                    xhome=$(awk 'BEGIN{RS="\\000";FS="="}($1 == "HOME"){print $2}' < /proc/$xpid/environ)
                    xauth="$xhome/.Xauthority"
            fi  
    
            DISPLAY=$xdisp XAUTHORITY=$xauth DBUS_SESSION_BUS_ADDRESS=$xdbus su $user -c "$(command -v gnome-screensaver-command) --lock"
    fi
    (teilweise aus den Scripts der Ubuntu Distro geklaut)

    Ansonsten *kratz* Ich hab mir n kleines Script geschrieben dass den Lüfter meines Thinkpads über die /proc/acpi/ibm/fan Datei kontrolliert und benutzerdefinierte Modi setzt (low-noise, low-temp) und damit den Lüfter der Gewalt des normalen Steuerungschips entreißt, aber das ist an sich nix weiter als ne Reihe von if/else

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •