Battery Watcher FTW!

Ab und zu vergesse ich gerne mal die Steckerleiste in der das Kabel für mein MacBook steckt auch einzuschalten. Dann merke ich es irgendwann zufällig.

Dank Hammerspoon werde ich jetzt auch via Notifications informiert, wenn sich der Akku entleert. Mittels Tastenkombination kann ich die Benachrichtigungen auch ausschalten, falls ich mal unterwegs bin und den Mac nicht laden kann.

Sollte der Mac dann wieder Strom bekommen, wird die Benachrichtigung wieder eingeschaltet und es erfolgt auch eben diese bei 100% geladenem Akku.

Im Screenshot kann man das alles gut sehen.

battery-watcher

Besserer Workflow beim Datentransfer vom Lumia zum Mac

Meine Frau besitzt ein Lumia 630 und immer wenn Sie die Bilder auf dem Mac runterladen wollte ging beim Verbinden mit dem Mac zwar iPhoto auf, jedoch konnte man hiermit die Fotos und Videos nicht importieren. Man muss – zumindest für ihr Lumia – das Programm Nokia File Transfer öffnen und damit die Daten runterladen.

Da ich mich derzeit sowieso mit Lua beschäftige kam mir Hammerspoon gerade recht.

Mit Hammerspoon (v. 0.9.46) lassen sich sehr viele Dinge am Mac automatisieren und das unter Verwendung von Lua (eingebettet derzeit Version 5.3.2).

Gesagt – getan.

Das nachfolgende Script muss nur in die init.lua Datei mit eingebunden werden und schon starte es Nokia File Transfer beim Verbinden des Telefons mit dem USB-Kabel automatisch und beendet iPhoto.

Viel Spaß damit!

-- Open Nokia Phone Transfer and close iPhoto when connecting Lumia 630
local nokiaWatcher = nil

local function iPhotoCallback(appName, eventType, appObject)
  if (eventType == hs.application.watcher.activated) then
    if (appName == "iPhoto") then
      appObject:kill()
    end
  end
end

local iPhotoWatcher = hs.application.watcher.new(iPhotoCallback)

local function nokiaDeviceCallback(data)
  if (data["productName"]:match("Lumia 630")) then
    if (data["eventType"] == "added") then
      hs.application.launchOrFocus("Nokia Photo Transfer")
      iPhotoWatcher:start()
    elseif (data["eventType"] == "removed") then
      local ntf = hs.notify.new()
      ntf:title("Nokia Phone")
      ntf:informativeText("ausgeworfen")
      ntf:send()
      iPhotoWatcher:stop()
    end
  end
end

nokiaWatcher = hs.usb.watcher.new(nokiaDeviceCallback)
nokiaWatcher:start()

In Zeile 15 sollte man noch die eigene Modellnummer eingeben.

Static Analyzer und Linter für Lua

Wer in Lua entwickelt und dazu den Vim benutzt, dem sei neben dem super Plugin Syntasic auch gleich noch ein passender Linter empfohlen.

Mittels des Paketmanagers LuaRocks kann man sich ganz einfach den Linter Luacheck installieren:

$ luarocks install luacheck

In der .vimrc kann man diesen dann mittels folgender Zeile hinzufügen:

let g:syntastic_lua_checkers = ["luacheck"]