u16suzuの blog

日々学んだことのメモブログです。

Alfredのメモ用のワークフローをかいた

DropboxとAlfred、Atomを組み合わせて自前のメモツールとしている。

find_fileのワークフロー

メモファイルをファイル名で検索し、検索結果をAlfredに表示し、選択してAtomで開く。

  • script filter languageはruby, with input as {query} を指定する。
require 'json'

files = `find -E ~/Dropbox/memoWork/ -type f -iregex \'.*{query}.*\'`

items = []

files.split("\n").each do |file|
  items << {
    title: File.basename(file),
    subtitle: file,
    arg: file,
    icon: 'some_icon.png',
  }
end

res = {
  "items" => items
}.to_json

print res

指定のハッシュ形式でprintすると、Alfredの中で一覧表示し選択することができる。選択した項目はハッシュの arg の部分が run script の {query} に入る。

  • run script
/usr/local/bin/atom {query}

memoのワークフロー

メモディレクトリを開きつつatomを起動 日付メモも開く

  • keyword

  • run script

/usr/local/bin/atom ~/Dropbox/memoWork

ruby ./main.rb daily

grep_fileのワークフロー

brew install pt しておく必要がある。 run script は find_file と同じ。

require 'json'

s =`/usr/local/bin/pt {query} ~/Dropbox/memoWork/ | grep -v 00_daily | grep -v 99_アーカイブ`

items = []

s.split("\n").each do |line|
  l = line.split(":")
  fname = l.first
  arg   = l.take(2).join(":")
  items << {
      title: File.basename(fname),
      subtitle: arg,
      arg: arg,
      icon: 'some_icon.png',
  }
end

res = {
  "items" => items
}.to_json

print res