SSブログ

18.規則正しい生活を送るために [Ubuntu]

昔、良く言われませんでしたか? 「ゲームは一日一時間まで」
ついつい興が乗ると夜更しするのが常で、翌日の朝に寝ぼけ眼で後悔し、
午後はコーヒーが手放せないことに。

結局時間は有限で、特に自分の好きに使える時間はそのなかでも限られていて。
でも自分のやりたいことはそれこそ沢山あって。

その中でどれをやり、どれをやらないかは最終的に自分が決めることですが
その決めたことを維持管理するのに、ちょっとした工夫で助かることも多々有ります。


例えば、先回インストールしたOrageですが、
あれは「非日常的なイベント」を管理するのに向いています。
……が、自分の予定すべてを管理するのには、Orage一つで管理しようとすると
大変なことになります。

例えば、22時にメシ。22時45分に掃除。23時にフロ。24時に寝るなんて
予定を入れてみるとよくわかります。
試しに22時にメシ、といれてみたら下のようになりました。

18_1.png

このようにメシとかの「日常的な出来事」はそれこそ数多く有り、
それらをすべてカレンダーに入力しようとすると
数少ない「非日常的なイベント」が、日常に埋没して目立たなくなります。←おお、なんかかっこいいこと言ったw

18_2.png

そうなると結果としてカレンダーとしての意味を成さなくなります。
11/13(水)までに秋刀魚18匹がどうだこうだ、とかの予定が目立たなくなるとか


もちろん「日常的な出来事」用のICSファイルを別につくり、切り替えればすみますが、
正直面倒ですね。
タイムスケジュールとして「日常的な出来事」を管理する必要があるのならばともかく、
メシの時間一つにそこまで大げさなものは求めていない人が大半でしょう。

というわけで、私としては「日常的な出来事」と「非日常的なイベント」は
分けて管理すべきと考えており、
今回は規則正しい生活を送るために
「日常的な出来事」を簡単に告知してもらうことがお題となっています。



で、やりたいことですが、まず漠然とやりたいことをイメージしてみます。

現在の時刻とやる内容を簡単にポップアップメッセージで知らせてくれる。
メッセージはほっておくと自然と消える。

こんなところでしょうか。

ポップアップメッセージはnotify-sendを使えば良いみたいです。
自動で何かをやってくれるのは、cron という機能で実現できそうです。

cronでnotify-sendを表示したい時刻分実行するか、
cronでシェルスクリプトを実行し、
シェルスクリプト内部で時刻で分岐してnotify-sendを実行するかですね。

一応断っておきますが、下記はUbuntu16.04環境下での話ですので、
環境によって適宜コマンドは置き換えてください。


1.ポップアップ用のnotify-sendの命令を確認する(もしくはシェルスクリプトを作る)
 まずは、ググル先生に「ubuntu デスクトップ通知」 で質問してみます。
 Ubuntuだと先述のnotify-sendというコマンドでいけそうです。
 ついでに端末からman notify-send を実行して、仕様を確認しておきます。
 notify-send  表示アイコン タイトル メッセージ の記述でしたが、
 表示アイコン を最後に持ってきてもいけるようです。試しに端末で実行してみます。


notify-send '疲れたよ。' '今夜も残業か……' --icon=face-tired
  (内容についてはノーコメントでw)

18_3.png

  (つーか、ググル先生って何気にバージョンアップしてません?
  規則正しい生活とか英語でどう言うんやろ、とか調べてみたら
  翻訳とか音声付きでやってくれるし。
   man notify-send の結果とか、大意分かるレベルで翻訳してくれるし。
  今時の中高生はホンマ恵まれとるわ。英語の宿題とか予習とか一発やん。
  写真とかの文字を取り込んで翻訳するとか、もうね
  来年のオリンピックにはスマホから撮影した文字を翻訳したりとか、
  翻訳音声が流れるシーンが多くなるんですかね)

閑話休題
 文字数が多いと表示が欠けるので、予め端末から実行して文字数が
 欠けないか確認します。
 まあ、表示時刻、内容、アイコンについては各自の好きなように設定してくださいな。

 シェルスクリプトはregular_life.shという名前で保存しておきます。
 あと、忘れずにシェルスクリプトに実行権限をつけてくださいな。(15回参照)


2.自動実行の設定をする
 決まった時刻になったら自動でnotify-send、もしくはシェルスクリプトが
 実行されるようにcronの設定をします。

 まずは端末から、現在のcronの設定を確認します。
  
crontab -l

 ここで、何も設定されてなかったら構わないのですが、
 何か既にcronに設定されていた場合は
 リダイレクトを使ってcronのバックアップをとっておきましょう。

crontab -l > ~/cron.back
cp ~/cron.back ~/cron.new

 で、geditで、cron.newを編集します。
 記載する手順は、実行時刻を、分 時 日 月 週 の順に記載して、
 最後に実行したいコマンドを記載します。
 半角スペースで区切られるので、
 候補となる時間が複数の場合はカンマ等で一度に指定できます。

 あと、cronは実行結果をどこに表示するかを明示的に指定しないと、
 notify-sendのポップアップを表示してくれません。(実はここでハマりましたw)
 端末から使用しているディスプレイを確認します。
env | grep DISPLAY
 私の環境だとDISPLAY=:0 と表示されましたので、cron.newの冒頭に記載します。


   でも、DISPLAY=:0 を指定すると、WARNINGが出るんだよなあ(ボソッ)


DISPLAY=:0
0,30,45 * * * * ~/regular_life.sh
0 22 * * * notify-send 'メシ! 只今22時です。' 'そろそろ夕食の時間です。' --icon=/usr/share/pixmaps/faces/puppy.jpg

 上記は例のため、シェルとnotify-sendを直で実行するのと両方を記載していますが、
 実際にはどっちか一つにまとめてくださいな。

 設定が終わったら、cron.newを保存して、cron.newの設定内容をcronに設定します。

crontab ~/cron.new

 設定が反映されているか、crontab -l で確認してみます。
 あと、cronが起動しているかどうかもsudo service cron status で確認します。
active (running) と表示されていればOKです。
 されていなければ、sudo service cron start で起動させます。

ひょっとしたらstatus 表示時にエラーが表示されるかもしれませんが、
WARNINGはひとまず無視の方向で。(解決方法が分からんかった)

 書き込めないエラーが表示されたら、chmodで書き込み権限を与えます。
 今回は手抜きのため、777でやりましたが、
 本来は権限が必要なユーザーに限定してchmod を実行するのが正しいかと。
    
sudo chmod 777 ~/.cache/dconf/
sudo chmod 777 ~/.cache/dconf/user


 さて、ポップアップメッセージはうまく表示されたでしょうか。

 ポップアップメッセージになるべく従って、規則正しい生活を送りましょう。





   さて、問題は22時に家にいるかどうかなんだよな(今日も残業、明日……)w


        ┐(´д`)┌ ヤレヤレ...


共通テーマ:パソコン・インターネット

17.リマインダーを表示したい [Ubuntu]

お題とは全然関係ありませんが、SSブログでは、
どのページにどれだけのアクセスがあったかを集計する機能があったりします。

いきなり何を言っているのか、お前は状態なんですが、
この「備忘録的な何か」ブログはですね、
あんまり(というかまったく)人気のないブログではありますが、
そこそこの回数(0からだから前回までで17回)を書いております。

で、前述の集計機能を使ってですね、色々と書いた中で一番良く読まれているお題は? 
なんてのもすぐ分かったりするのですが……


     ……実はOffice Onlineを扱った回だったりします。(ボソッ)

     ……なんと、2位に8倍くらいのアクセス数の差をつけて、
       ぶっちぎりの1位だったりします。(ボソッ)


一応このブログはUbuntuを扱っているのでねえ、
MSのOffice Onlineのお題の回のアクセス数が、圧倒的にぶっちぎりの一位と
いうのは、ちょっと内心複雑だったりします。

あと最近知ったのですが、Office Onlineという名称が、単なるOfficeになるとかどうとか
ただでさえあんまり知名度がない(個人の感想です) Office Onlineが、
Officeなんて名前にしたらますます周知されにくくなりそうな気がするのですが……

Office Onlineで検索したら一発で関係の有るHPがヒットするのに
Officeで検索したら、案の定なかなか出てきませんがな。



     ハッ━━Σ(゚Д゚;)ノ ━━ ! !  これが狙いか! まさか、孔明の罠?!




……えーっ、それでは今回のお題に行きたいと思います。

今回のお題は、「リマインダーを表示したい」 です。


前回カレンダーに祝日を表示させることを書いたのですが、
その時にですね、最新バージョンのgnome-calendarだと、
リマインダーを表示してくれることが分かったんですね。

現行(というか16.04LTSに入っている)バージョンのgnome-calendarだと、
リマインダーを表示してくれません。←ココ重要

で、私の失敗談なんですが、休日にゲームに夢中になっていて、
気がついたら行こうとしていた店の閉店時刻を過ぎていた、とか
録画するほどでもないけど見ておきたいTV番組を見逃した、
なんてことがよくありましてですね。
あと、Webで公開されている色々な予定日を忘れないように入力したかったりもします。

これはもう是非ともインストールするしかないと思ったのが今回のお題の理由です。


◇gnome-calendar(バージョンは3.30.0)

Ubuntuソフトウェアから、gnome-calendar(バージョンは3.30.0)を検索して
早速インストールしてみました。

インストールしてみたのですが……


           ・・・(;´Д`)ナニコレ


紹介文が日本語化されていない時点で、一抹の不安はあったのですが、
まあ、まともに使えない代物でしたね。
終了時刻入力時に、一瞬でも開始時刻より終了時刻が前になると、
開始時刻の方が勝手に変わってしまったり
何とか苦労して予定を登録したら全然違う時間で登録されてしまったり。

おそらく日本(標準時)で使用することを考慮していないようで、
入力された予定を日本のタイムゾーンに
変更する処理がすっぽり抜け落ちている気がします。

色々と試行錯誤してみたのですが、うまい方法が思いつかず
最終的に最新版gnome-calendarをリマインダーとして使うことは断念して、
アンインストールしました。


◇ThunderbirdのLightning

次に候補となったのが、ThunderbirdのLightningというカレンダーのアドオンです。
直感的で使いやすく、MinimizeToTrayというアドオンでThunderbirdを常駐させれば、
リマインダーも表示してくれるし使い勝手も良かったのですが、
残念ですがgnome-calendarと同期がうまくできませんでした。

Lightningでは入力された予定はicsファイルでの保存はしていないようです。
(local.sqlite って何?)

もちろんLightningに入力した予定をicsファイルとしてエクスポートできるのですが、
予定を入れる度にicsファイルをエクスポートするのも現実的な話ではなく、
現行(というか16.04LTSに入っている)バージョンのgnome-calendarに
予定は表示させたかっため、残念ながら候補から外れました。

あと、Ubuntu起動時に毎回Thunderbirdのパスワードを入力するのも鬱陶しいな、
と思いまして。 (パスワードは記憶させない派なので)


◇Orageカレンダー

で、色々と「Ubuntu リマインダー」で検索してみたり、
Ubuntuソフトウェアから「カレンダー」「リマインダー」で検索して調査した結果、
最終的にOrageカレンダーを使用することにしました。
(これ、オラージュって読みでいいんですかね)

Xfceアプリケーションのカレンダーソフトでして、軽量かつ使いやすくていいです。
その分グラフィックはしょぼく、予定に色をつけたりはできないようです。


まずはOrageカレンダーを起動して、初期設定をします。

 1.Orageカレンダーの設定

  Orageカレンダーのメニューの「編集」 から「設定」 を選択します。

reminder01.png


  基本設定
   タイムゾーン
    アジア/東京 になっていることを確認

  カレンダーウィンドウ
   カレンダー表示詳細
    年内通算週を表示する のチェックを外す
   カレンダー情報ボックス
    予定ウィンドウに表示する日数 31
   起動時の振る舞い
    表示しない ←お好みでどうぞ

  あとはデフォでいいかと思います。


 2.外部ICSファイルの追加
  Orageカレンダーのメニューの「ファイル」 から「データ交換」を選択します。

reminder02.png

  祝日情報が入ったicsファイル(前回参照)と、
  gnome-calendar(evolution?)で使用しているicsファイルを取り込みます。
  calendar.icsはホームディレクトリの
  /.local/share/evolution/calendar/system にあります。

 3.OrageカレンダーのICSファイル取り込み
  今度は、gnome-calendarにOrageカレンダーのICSファイルをインポートします。
  手順については前回を参照してください。
  orage.icsはホームディレクトリの
  /.local/share/orage にあります。

 4.Orageカレンダーの自動起動

reminder03.png

  Ubuntuメニューの「システムツール」「Preferences」から
  「自動起動するアプリケーション」を実行します。

  Ubuntuメニューの「オフィス」 から「Orageカレンダー」を
  「自動起動するアプリケーション」にドラッグします。


 5.予定の作成方法
  それではリマインダーがうまく動作するか確認してみます。

reminder04.png

  メニューのファイルから新規を選択します。
  件名に予定内容を入力して、開始時刻を設定します。
 
reminder05.png

  リマインダーを表示させる時期を5分前に設定します。

  入力が終わったら、
  Orageカレンダーのメニューの「ファイル」 から「保存」 を選択します。


reminder06.png

  予定が入力されました。


reminder07.png

reminder08.png

  他のカレンダーでも予定が表示されています。


reminder09.png

 時間が来たらリマインダーが表示されます。

 これで予定を入力しておけば、PC画面に通知されるようになります。
 これで入力さえしておけば、もう見たいテレビ番組を見逃すなんてことは……



          アッ━━Σ(゜O゜;ノ ━━ ! ! 


 ブログ書くのに夢中で、見たいテレビの予定を入力し忘れていた……

共通テーマ:パソコン・インターネット

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。