さてみなさん、Twitterしてますかー?(挨拶)
最近はもうtwitterもブームが過ぎて安定期という感じですね。
twitterはクライアントを作成することができますが、
rubyで日本人の手によって書かれたておくれな素晴しいクライアントがあります。
その名もmikutter
詳細はこことかここ見てね
ArchLinuxはAURに、GentooLinuxはPortageの公式レポジトリに登録されており、
誰でも[要出典]簡単にmikutterをインストールできることが知られています。
最近はなんとDebianの公式レポジトリにも登録されたので、
ついでにUbuntuでもPPAを追加することなく apt-get install mikutterとするだけで
インストール可能です。 ベネ。
閑話休題
rubyということはマルチプラットフォームなはずですが、GTKを用いているために
Linux以外と相性が悪いです。
ということなので、Macでも動いたり動かなかったりなのに
Windowsはさらに茨の道です。
実は私も以前試したことがあるのですが、
mikutter 0.0.3以上はWindowsで動かそうとすると何故か起動直後に応答しなくなって落ちてしまいました。
しかし、mikutter wikiに最新のmikutterをWindowsで動かす方法が最近追加された模様。
これについてすこし解説します(+パッチつくりました)。
やりかたはWikiの通りです。
まずrubyinstallerからruby1.9以上をダウンロード&インストールします。
32bit版のほうを入れるのがベター。
この時、RubyをPATH環境変数に登録するように設定すると後がラクです。
ここで、rubyinstallerのページにあるDevKitは必要ありません
DevKitでgtkのnative extensionをビルドしたとき、どうやらmikutterの応答が無くなります。
私がハマってたのはここでした。
なので、bundlerを使うとよろしくないです。
自分で必要なgemを全てインストールする必要があります。
次のパッケージをgem install <package name>でインストールしましょう。
安心ですね。
次にmikutterのページから最新版のmikutterをダウンロードして、解凍してください。
0.2.2.1373は動作確認しました。
あとは、コマンドプロンプトを開いて、解凍したmikutterのフォルダまで移動して、
または、ショートカットを作成し、
リンク先を
私はそれぞれ、
D:\Ruby\bin\rubyw.exe C:\Users\orumin\mikutter\mikutter.rb
C:\Users\orumin\mikutter\
と設定したショートカットをタスクバーに登録しています。
さあ、これでみなさん、Let’s \(・ω・)/ておくれ!
んん、ちょっとまってください。
これじゃ、mikutterを起動しても、popup通知も音声通知もありません。
mikutterを使う意味が激減(当社比)します。これはよくありません。
mikutter wikiに曰く、
まずは音声通知。
gem install win32-soundを実行し、rubyからでもWin32APIで音を鳴らせるようにします。
%USERPROFILE%.mikutter\フォルダにpluginフォルダを作成しておいてください。
https://github.com/orumin/mikutter-win32soundからプラグインをダウンロードし、
先程作成したpluginフォルダにwin32soundというフォルダ名でコピーor移動して下さい。
あとは、設定で、サウンドをALSAからWin32APIに変更し、
通知のところで好きな音声を設定してください。
mikutterフォルダの、core\skin\data\soundにあるデータとかおすすめですね!!!!!
次にpopup通知。
これはまずGrowl for Windowsをインストールし、Growlを先に起動しておく必要があります。
次にgemで、 growlとruby_gntpの二つのパッケージをインストールしましょう。
最後に、次のパッチをmikutterフォルダに当ててください。
CygwinやGoWを入れてない環境では、
http://gnuwin32.sourceforge.net/packages/patch.htm
のBinariesからダウンロードし、そのpatchコマンドを使ってください。
もしエラー吐いたら--bainaryオプション付けたりコマンドプロンプトを管理者権限で
実行すると良し。
ダウンロードしたpatchコマンドをC:\Windows\System32に放り投げておくと、
他のコマンドプロンプトのコマンドと同様に実行できますがあんまりオススメしません。
patchコマンドの使い方はググれ。
あとは設定の通知のところで、ポップアップにチェック入れるの忘れないでね。
さあ、これでWindowsでもmikutterで音声とpopupによる通知を受け取れます!!!!
ておくれたのしい! ✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌
最近はもうtwitterもブームが過ぎて安定期という感じですね。
twitterはクライアントを作成することができますが、
rubyで日本人の手によって書かれた
その名もmikutter
詳細はこことかここ見てね
ArchLinuxはAURに、GentooLinuxはPortageの公式レポジトリに登録されており、
誰でも[要出典]簡単にmikutterをインストールできることが知られています。
最近はなんとDebianの公式レポジトリにも登録されたので、
ついでにUbuntuでもPPAを追加することなく apt-get install mikutterとするだけで
インストール可能です。 ベネ。
閑話休題
rubyということはマルチプラットフォームなはずですが、GTKを用いているために
Linux以外と相性が悪いです。
( ^o^)Macでmikutter起動できた-mikutter公式ページFAQより
( ˘⊖˘)。o(待てよ、なんでMacでmikutter起動できたんだ…?)
|@toshi_a| ┗(☋` )┓三
( ◠‿◠ )☛ なんで作者ができないのにお前ができるんだよ垢消せ
▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわああああああ
ということなので、Macでも動いたり動かなかったりなのに
Windowsはさらに茨の道です。
実は私も以前試したことがあるのですが、
mikutter 0.0.3以上はWindowsで動かそうとすると何故か起動直後に応答しなくなって落ちてしまいました。
しかし、mikutter wikiに最新のmikutterをWindowsで動かす方法が最近追加された模様。
これについてすこし解説します(+パッチつくりました)。
やりかたはWikiの通りです。
まずrubyinstallerからruby1.9以上をダウンロード&インストールします。
32bit版のほうを入れるのがベター。
この時、RubyをPATH環境変数に登録するように設定すると後がラクです。
ここで、rubyinstallerのページにあるDevKitは必要ありません
DevKitでgtkのnative extensionをビルドしたとき、どうやらmikutterの応答が無くなります。
私がハマってたのはここでした。
なので、bundlerを使うとよろしくないです。
自分で必要なgemを全てインストールする必要があります。
次のパッケージをgem install <package name>でインストールしましょう。
addressableこれらは、mingw32で既にビルドされたものが降ってきます。
bsearch
memoize
oauth
typed-array
ruby-hmac
gtk2
安心ですね。
次にmikutterのページから最新版のmikutterをダウンロードして、解凍してください。
0.2.2.1373は動作確認しました。
あとは、コマンドプロンプトを開いて、解凍したmikutterのフォルダまで移動して、
ruby mikutter.rbとコマンドを打てば起動します。
または、ショートカットを作成し、
リンク先を
<Rubyをインストールしたフォルダ>\bin\rubyw.exe <mikutterのフォルダ>\mikutter.rbそして作業場所を
<mikutterのフォルダ>としてショートカットをクリックするだけでmikutterを実行するのも良いでしょう。
私はそれぞれ、
D:\Ruby\bin\rubyw.exe C:\Users\orumin\mikutter\mikutter.rb
C:\Users\orumin\mikutter\
と設定したショートカットをタスクバーに登録しています。
さあ、これでみなさん、Let’s \(・ω・)/ておくれ!
んん、ちょっとまってください。
これじゃ、mikutterを起動しても、popup通知も音声通知もありません。
mikutterを使う意味が激減(当社比)します。これはよくありません。
mikutter wikiに曰く、
だそうなので、パッチとプラグインを書きました。音が出ない
パッチを書くか、あきらめてください。
まずは音声通知。
gem install win32-soundを実行し、rubyからでもWin32APIで音を鳴らせるようにします。
%USERPROFILE%.mikutter\フォルダにpluginフォルダを作成しておいてください。
https://github.com/orumin/mikutter-win32soundからプラグインをダウンロードし、
先程作成したpluginフォルダにwin32soundというフォルダ名でコピーor移動して下さい。
あとは、設定で、サウンドをALSAからWin32APIに変更し、
通知のところで好きな音声を設定してください。
mikutterフォルダの、core\skin\data\soundにあるデータとかおすすめですね!!!!!
次にpopup通知。
これはまずGrowl for Windowsをインストールし、Growlを先に起動しておく必要があります。
次にgemで、 growlとruby_gntpの二つのパッケージをインストールしましょう。
最後に、次のパッチをmikutterフォルダに当ててください。
CygwinやGoWを入れてない環境では、
http://gnuwin32.sourceforge.net/packages/patch.htm
のBinariesからダウンロードし、そのpatchコマンドを使ってください。
もしエラー吐いたら--bainaryオプション付けたりコマンドプロンプトを管理者権限で
実行すると良し。
ダウンロードしたpatchコマンドをC:\Windows\System32に放り投げておくと、
他のコマンドプロンプトのコマンドと同様に実行できますがあんまりオススメしません。
patchコマンドの使い方はググれ。
あとは設定の通知のところで、ポップアップにチェック入れるの忘れないでね。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -urN mikutter.orig/core/mui/gtk_postbox.rb mikutter/core/mui/gtk_postbox.rb | |
--- mikutter.orig/core/mui/gtk_postbox.rb 2013-10-22 08:30:44.330987100 +0900 | |
+++ mikutter/core/mui/gtk_postbox.rb 2013-10-21 19:50:11.893088600 +0900 | |
@@ -138,7 +138,7 @@ | |
text = widget_post.buffer.text | |
text += UserConfig[:footer] if add_footer? | |
@posting = service.post(:message => text){ |event, msg| | |
- notice [event, msg].inspect | |
+ # notice [event, msg].inspect | |
case event | |
when :start | |
Delayer.new{ start_post } | |
diff -urN mikutter.orig/core/plugin/libnotify/libnotify.rb mikutter/core/plugin/libnotify/libnotify.rb | |
--- mikutter.orig/core/plugin/libnotify/libnotify.rb 2013-10-22 08:30:45.313043300 +0900 | |
+++ mikutter/core/plugin/libnotify/libnotify.rb 2013-10-22 08:18:38.318461600 +0900 | |
@@ -7,4 +7,7 @@ | |
elsif command_exist? 'notify-send' # notify-sendコマンドが有る場合 | |
notice 'notify: use notify-send' | |
require File.expand_path File.join(File.dirname(__FILE__), 'notify-send') | |
+elsif require_if_exist('ruby_gntp') #ruby_gntp(Growl)が使える場合 | |
+ notice 'notify: use rgrowl' | |
+ require File.expand_path File.join(File.dirname(__FILE__), 'rgntp') | |
end | |
diff -urN mikutter.orig/core/plugin/libnotify/rgntp.rb mikutter/core/plugin/libnotify/rgntp.rb | |
--- mikutter.orig/core/plugin/libnotify/rgntp.rb 1970-01-01 09:00:00.000000000 +0900 | |
+++ mikutter/core/plugin/libnotify/rgntp.rb 2013-10-22 08:27:30.470899000 +0900 | |
@@ -0,0 +1,41 @@ | |
+# -*- coding: utf-8 -*- | |
+ | |
+require 'rubygems' | |
+require 'ruby_gntp' | |
+ | |
+Plugin::create(:libnotify) do | |
+ on_popup_notify do |user, text, &stop| | |
+ | |
+ icon = nil | |
+ title = nil | |
+ category = nil | |
+ timeout = UserConfig[:notify_expire_time].to_i * 1000 | |
+ | |
+ if text.is_a? Message | |
+ text = text.to_s | |
+ end | |
+ | |
+ if user | |
+ icon = Gdk::WebImageLoader.local_path(user[:profile_image_url]) | |
+ title = "@#{user[:idname]} (#{user[:name]})" | |
+ end | |
+ | |
+ g = GNTP.new "mikutter" | |
+ g.register({ | |
+ :app_icon => File.join(File.dirname(__FILE__), "../../skin/data/icon.png"), | |
+ :notifications => [{ | |
+ :name => "notification", | |
+ :enabled => true, | |
+ }] | |
+ }) | |
+ | |
+ g.notify({ | |
+ :name => "notification", | |
+ :title => title, | |
+ :text => text, | |
+ :icon => icon | |
+ }) | |
+ | |
+ stop.call | |
+ end | |
+end |
ておくれたのしい! ✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌