はじめに
日頃、 メモとか昔の資料の整理とかに emacsのorg-modeを使っていて、重宝している。予定とかTODOとかは、 googleカレンダーをThunderbirdとかWebブラウザで使うのと、 org-modeとの、両刀使いになっている。なので、emacs上のorg-modeに統合したいのだが、 私レベルが使えるものが見つからない。
- calfwはハードルが高いし、一方通行みたい。
- org-gcal.elは単一カレンダーを英語のみなら使えるが、日本語の予定だと、googleからの読み込みはOKだがアップがNG。
- org-caldavは最近のemacsでは使えないらしい。
代替えは、caldav client + caldav server。クライアントは、khalとThunderbird。サーバーは、
- GitHub - pimutils/khal: CLI calendar application
- GitHub - pimutils/vdirsyncer: Synchronize calendars and contacts
vdirsyncer の設定
Debianのパッケージにあるので、インストする。設定は、 ~/.config/vdirsyncer/ 以下に作成。(1)
[general] status_path = "~/.cache/vdirsyncer/status/" [pair calendar] a = "calendar_local" b = "calendar_remote" collections = ["from a", "from b"] # Calendars also have a color property metadata = ["displayname", "color"] [storage calendar_local] type = "filesystem" path = "~/Documents/ownCloud/caldav/" fileext = ".ics" [storage calendar_remote] type = "caldav" url = "http://192.168.0.21/owncloud/remote.php/dav/" username = "xxxxxxx" password = "xxxxxxx"
[general] status_path = "~/.cache/vdirsyncer/status2/" [pair yahoo_calendar] a = "yahoo_calendar_local" b = "yahoo_calendar_remote" collections = ["from a", "from b"] # Calendars also have a color property metadata = ["displayname", "color"] [storage yahoo_calendar_local] type = "filesystem" path = "~/Documents/ownCloud/caldav2/" fileext = ".ics" [storage yahoo_calendar_remote] type = "caldav" url = "https://caldav.calendar.yahoo.co.jp/" username = "xxxxxxxxx" password = "xxxxxxxxx"
(3) 初回の同期
これで、サーバーに作成しているカレンダーが登録される。vdirsyncer -c ~/.config/vdirsyncer/config_oc discover vdirsyncer -c ~/.config/vdirsyncer/config_ya discover
(4) 二回目以降
これを同期用のスクリプトとして作成し、 crontab -e で cron 登録。vdirsyncer -c ~/.config/vdirsyncer/config_oc sync vdirsyncer -c ~/.config/vdirsyncer/config_ya sync
*/45 * * * * /home/hoge/bin/vcal_sync_oc */45 * * * * /home/hoge/bin/vcal_sync_ya
khalの設定
khalは、 軽量なコンソールのカレンダーアプリで、 khal とか ikhal でコンソールに表示させる。 ikhalはインタラクティブ。・予定の登録は、 'khal new -a home tomorrow 16:30 あいつと遊ぶ' とかで、登録。
・予定の表示は、 'khal list -a private tomorrow 3d' で、明日から三日間のprivateのリスト表示。
ikhalはインタラクティブ表示なのだが、 Debianのパッケージは古いので、データのリロードが自動で行われない。 最新版をインストした方がよい。
設定は、~/.config/khal/config。こちらは一本化出来る。
dateformat を変更。短くした。
[calendars] [[private]] path = /home/hoge/Documents/ownCloud/caldav/private color = light cyan [[work]] path = /home/hoge/Documents/ownCloud/caldav/work color = light red [[yahoo-cal]] path = /home/hoge/Documents/ownCloud/caldav2/yahoo-cal color = dark red [[weather]] path = "/home/hoge/Documents/ownCloud/caldav2/大阪府 大阪の天気" color = light blue readonly = True # update [locale] timeformat = %H:%M dateformat = %m-%d longdateformat = %Y%m%d datetimeformat = %Y%m%d %H:%M longdatetimeformat = %Y%m%d %H:%M firstweekday = 0 unicode_symbols = true weeknumbers = off [default] # default_command = calendar # version 0.10.0 から不要扱い(20190328) default_calendar = private highlight_event_days = True timedelta = 10d [view] theme = dark event_view_weighting = 2
Yahooカレンダーで天気を登録しておくと、このデータも同期される。コンソールでansiwratherとかでもよいが、 週間予報が表示されるのは嬉しい誤算。
しばらく使ってみようと思う。 googleとは一旦、お別れ。
一応、org-agendaにデフォのgoogleカレンダー表示は残す。
[20170624追加]
khalでは月表示みたいな比較的長いスパンでの作業が不便に感じている。そこで、 KOrganizerを併用しはじめた。 KOrganierのインターフェースは今ひとつ好みでないが、設定が簡単。なお、KOrganizerを終了しても、akonadi 関連が残るので、akonadictl stop で終了させること必要。ここは不便だ。
Thunderbirdのカレンダーに、Yahooカレンダーを登録する設定がわからなかったので諦めた。
QNAP上のownCloudは反応が遅すぎてストレスになるのでWebで使うのはやめた。(ラズパイへ移行した)
で、予定については、通常はkhalで、長スパンが必要な場合はKOrganizerという二本立てでしばらく試してみる。
しかし、khalのドキュメントのとおりに動かない。なにかを間違えているのだと思うが、ペンディング。
khalを簡単なメモ代わりに使うのもありかも。
$ khal new today ほにゃなら
$ khal new tomorrow 9:00 10:30 ほにゃなら :: ほにゃらについて
$ khal new -a works today ほにゃなら
でいけちゃう。
[20171108追加]
ラズパイのmicroSDが逝った。jessieからstretchへのupgradeに伴いownCloudのVer.も上げたら、カレンダーが使えない。Ver.を下げるのも癪に障るので、caldavサーバーをDAViCalに変更した。結果的に良くなったかも。
# CALDAV [pair ayage_calendar] a = "a_calendar_local" b = "a_calendar_remote" collections = ["from a", "from b"] # Calendars also have a color property metadata = ["displayname", "color"] [storage ayage_calendar_local] type = "filesystem" path = "~/Documents/calDav/caldav/" fileext = ".ics" [storage ayage_calendar_remote] type = "caldav" url = "http://192.168.0.21/baikal/cal.php/calendars/hoge/" username = "hoge" password = "hogepass"[20171123追加]
Yahooのsyncがエラーを吐くようになった。基本的にurlを指定してアクセスすることはできなくなってた(ここ)わけで、やはりダメなのだろうか。短かったなあ。で、googleに再トライした。
[pair google_calendar] a = "google_calendar_local" b = "google_calendar_remote" conflict_resolution = "b wins"collections = ["hogehoge@gmail.com"]collections = ["from a", "from b"] metadata = ["displayname", "color"] [storage google_calendar_local] type = "filesystem" path = "~/Documents/ownCloud/caldav1/" fileext = ".ics" [storage google_calendar_remote] type = "google_calendar" token_file = "/home/hogehoge/.config/vdirsyncer/token_file" client_id = "" client_secret = "" start_date = "datetime.now() - timedelta(days=60)" end_date = "datetime.now() + timedelta(days=240)"
vdirsyncer -vdebug -c ~/.config/vdirsyncer/config_gc discoverで、吐かれたメッセージ見ながら、 requests-oauthlib をインストしたり、 Google Calendar CalDAV API を有効にしたりとか、 色々怒られながたやってたら、なんとか、デフォのマイカレンダーはシンクロできるようになった。
あとは、複数のマイカレンダーがシンクロ出来るようにしたいけど、出来るのかなあ。 [出来た。普通だった。]
週間予報が無くなるのはショックかも。
[20171130追加]
Yahooカレンダーを止めたので、週間天気予報が表示されない。で、ical形式の天気予報データの入手方法を探してたら、英語だけど、phpでics形式で吐き出してくれるスクリプト [weather-calendar-feed]を見つけたので、使ってみた。 サブディレクトリのライブラリも必要なので、一緒にいれておく。
サーバーサイトで、自宅近くのサイトを探してパラメータをセット。
$location = param('location', 'Japan/Osaka/Hirakata');あとは、
php index.php > weatherdata
で、データが得られる。ただし、9日間のデータが一つのファイルになっていて、そのままではkhalで使えない。
そこで、awkで分割してcaldav用に放り込むスクリプトを書いて、cronを設定してお試し中。
使いながら、php のスクリプトを修正してゆこう。gawk -f split_weather.awk < weatherdata
[20180902追加]
khal のカラーテーマの配色は、ソースコードを変更すれば、好みに修正できるようだ。 私は pyenv 環境で使ってるので、以下のファイルを編集するだけ。 mlterm から st に変更したら配色が変になったので、こちらを修正した次第。 本末転倒か。
$ ~/.pyenv/versions/3.6.6/lib/python3.6/site-packages/khal/ui/colors.pyこれまでメモった、khalのコマンドサンプル。
$ khal at 今の情報 $ khal list 今日から一週間(デフォ値)の予定 $ khal list 20170723 10d 20170723から 10日間 # x $ khal list 7-23 10d 20180723から 10日間 $ khal list -a bikes bikes だけの予定 # x $ khal list -d bikes 12-01 14d bikes 以外の予定 $ khal search 病 病 を探す # default calendar は使えなくなった(20190327)。 $ khal new today hogehoge $ khal new tomorrow 12:00 ほにゃなら :: ほげ $ khal new now 15m 今から15分ほどバグ探し # $ khal new 10-30 ほにゃなら 10月30日に ほにゃら $ khal new today 16:25 5m 振込 :: 今日、16:25 から5分ほど、振込作業。 $ khal new -a work 20180213 hoge :: hoge $ khal new -a pubs 20181020 13:00 病院 :: 車で行く $ khal new -a pubs 10-20 13:00 病院 :: 車で行く $ khal new 20180828 09:30 20180830 17:00 Travel $ khal new -a pubs today 08:45 25m update blogger $ khal new -a pubs today 3d 今日から3日の予定 $ khal new -a pubs now 10m update vim plugins $ khal new -a work `date "+%Y%m%d %H:%M" --date='15 minutes ago'` 10m update ctags 15分前から10分ほど、ctags の更新作業をした。(pet に登録して使っている)
- T510での省メモリ化 (1) 軽量ブラウザはどう?
- T510での省メモリ化 (2) I3 WM を試す
- T510での省メモリ化 (3) URxvtとか
- T510での省メモリ化 (4) i3 WM を少し便利に (20170714更新)
- T510での省メモリ化 (5) QNAPへ一部移管で終了
- T510での省メモリ化 (20170320でのまとめ)
- T510での省メモリ化 (20170529追加設定) i3 WM と ranger
- 軽量ブラウザ luakit をサブで使う(20170804追加)
- khal + vdirsyncer + (Yahooカレンダー & owncloud)
- T510での省メモリ化 (20170621) i3bar など
- T510での省メモリ化 (20170624) i3 WM 10個を越える WS、compton の追加。
0 件のコメント:
コメントを投稿