読者です 読者をやめる 読者になる 読者になる

hogashi.*

日記から何から。

 なんとなく、大学数学を勉強するごとに、今まで習ってきた数学を俯瞰するみたいに(一般化されて)見方が変わるように感じている。それはそうと今日は勉強していた訳でなく、単に人に数学の話をしていたら突然それが起こって驚いた。

 複素関数の話を、「y=f(x)」くらいならわかる人に説明しようとしていたところ、「複素数が関数で映る?みたいな言い方をされるんだけど」とかいうふんわりした言葉で喋っていたらわからんみたいな顔をされていた。とにかくわかる概念から理解していかないといけないのでy=f(x)で説明しようとしたら、「数直線上のxってのがfって関数でyに映る」とかいう自分も聞き覚えのない考え方がスラスラ口から出てきた。聞き手はわかってくれたようでよかったんだけど自分はびっくりながら話を続けていて、「複素数は実数にひとつ次元が足されるから数直線じゃ表せなくて平面になって、平面から映った先も平面だからいっこで表すにはy=f(x)の座標平面みたいな2次元じゃ無理*1で」とかどんどん喋っていた。
 つまり「数直線上の実数xを関数で映した先の数直線上の値がy」という考え方が会話の中で湧いて出た。「y=f(x)のグラフはその映る前と映った先の点(無限個)を結んだ、映る前後の関係性を表すもの」とかいう言葉も出てすごかった。

 複素関数の理解が若干追いついてなかったところだったので今日の会話で助かった。会話できる頭を維持していきたい。

*1:2次元と2次元で4次元グラフになるのだろうか

GoogleChrome拡張機能「twitter画像原寸ボタン」ver.2.1

WIP

[追記(2016/08/28)]: ver.2.1はすっかり公開してました。もうすぐver.2.1.1を公開するので、そちらへどうぞ。

――――

 GoogleChrome拡張機能twitter画像原寸ボタン」ver.2.1を(そろそろ)公開します。
 前回のミス(ブログ書く前に更新しちゃうやつ)を繰り返しそうなので取り急ぎ書いています。

 今回、TweetDeckに少し対応しました。その影響でおそらく「tweetdeck.twitter.comのなんとか許可」みたいなことを聞かれると思います。
 また、画像を表示したページ(pbs.twimg)での保存の挙動に挑戦しています。これも「pbs.twitter.comのなんとか許可」とか聞かれるかもしれません。

 詳しくは後日書きますが、おおまかな更新を書きます。

更新内容(簡易版)
  • TweetDeckのタイムラインにOriginalボタンを追加

 クリックで原寸画像を新しいタブに開きます。

  • 画像を開いたページ(pbs.twimg)での保存動作の改善

 [Ctrl] + [s] での保存で「.jpg-orig/.png-orig」ではなく「.jpg/.png」で保存するようにしました。


 あまり保存を主目的としないつもりでいるので、直感的に正しい挙動になるくらいを目指しています。

 monkey系は追って更新します。

増えるファイルを古い順に削除して一定数に保つbashスクリプト

 もっといい方法がありそうだけど思いついてちょっと面白かったので備忘録。

目的
  • ファイルが同じ階層に不定期に増えていくので、その総数を100に保つ
  • 100を超えたら古いファイルから削除する
 # 最初
content/ -+- 001.txt
          `- 002.txt

 # 総数が100を超える
content/ -+- 001.txt # <- 削除
          |- 002.txt
          |...
          |- 100.txt
          `- 101.txt

 # 総数が103のとき
content/ -+- 101.txt # <- 削除
          |- 102.txt # <- 削除
          |- 103.txt # <- 削除
          |- 104.txt
          |...
          |- 202.txt
          `- 203.txt

 これをするスクリプトを毎日1回cronで実行する。

方策

 lsしてtailしてrmに渡す。

rm `ls -t content/* | tail -n+101`

 これだけだとファイルが100を超えていないときrmに何も渡されずエラーになるので、渡すファイルがあるか確認する。

[ -n "`ls -t content/* | tail -n+101`" ] && rm -v `ls -t content/* | tail -n+101`
# 以下でもok、[ hoge ] は test hoge と置き換え可能
if test -n "`ls -t content/* | tail -n+101`";then
  rm -v `ls -t content/* | tail -n+101`
fi
解説
rm `ls -t content/* | tail -n+101`

 バッククォートの中身は次。

  • 「ls -t」: ファイルを更新日時順に表示(下が古い)
  • 「tail -n+101」: 101行目から末行までを表示(頭行から100行目までカット)

 これでrmに「『100番目に新しいファイル』より古いファイル」を渡せる。つまり最新100個だけ残して古いものを削除する。

 ちなみにバッククオートの外側をダブルクォートしてはいけない。してしまうと引数が1つに固まってしまい、「rm: `content/002.txt\ncontent/001.txt' を削除できません: そのようなファイルやディレクトリはありません」とか言われる。
 「content」ではなく「content/*」とするのは、lsの出力が

  • 前者では「001.txt 002.txt ...」

とファイル名だけなのに対して

  • 後者では「content/001.txt content/002.txt ...」

相対パスが含まるので、rmにそのまま渡せるから。

[ -n "`ls -t content/* | tail -n+101`" ] && rm `ls -t content/* | tail -n+101`
  • 「[ -n "`~`" ]」: 「[」コマンド。角括弧の中に条件式を入れる。「-n」は「文字列の長さが0より大きければ真」つまり「101個以上ファイルが存在したら真」となる
  • 「&&」: 直前の式が真のとき次の式を実行する

 角括弧の内側はそれぞれ空白を空けなければならない。これは「[」がコマンドだからという理由らしい。
 条件式の部分ではバッククォートの外側をダブルクォートしなければならない。しないと、常に真が返ったりする*1

# 以下でもok、[ hoge ] は test hoge と置き換え可能
if test -n "`ls -t content/* | tail -n+101`"; then
  rm `ls -t content/* | tail -n+101`
fi
  • 「test -n "`~`"」: 角括弧と代替可能なtestコマンド*2
結び

 やることがワンラインで書けるならそのままcronに書けて便利。ただし「&&」はOKだけど「;」は使えないので、いくら1行に書いたからといってifが使えるというわけではない。
 あとcronの実行環境は全然違ったりするので環境変数はじめ色々気をつける点が多い。「bash -l コマンド」とか書くとbash環境下で実行してくれる。

*1:「[ ! -z `~` ]」だとクォートしなくても思い通りの真偽が得られる。何故なのか……。

*2:寸分違わず同じかどうかはわからない。

拡張機能「twitter画像原寸ボタンforGreaseTampermonkey」ver.2.0.5公開

 GoogleChrome拡張機能twitter画像原寸ボタン」ver.2.0.5を公開しました(詳細は以下の記事)。
hogashi.hatenablog.com
 これに伴って、Greasemonkey/Tampermonkey用のスクリプトtwitter画像原寸ボタンforGreaseTampermonkey」ver.2.0.5を公開しました。

 これによって、Firefoxにもちゃんと(?)対応しました。これでChrome/Firefox/Operaには対応できたことになります。
 以下の方法でインストールを行ってください。
 なお、Chromeで使えていた拡張機能の設定(タイムラインでボタンを表示するかどうか、などのチェックボックスのアレ)は、Firefoxの方法では使えません。すべての機能がオンになります(詳しくは後述)。

各ブラウザについてのインストール方法

Firefox

 FirefoxGreasemonkey/Tampermonkeyどちらも存在するので、どちらでもOKです。

 (追記:) TampermonkeyはFirefox44.0に非対応なようで、インストールができなくなっていました。Greasemonkeyをお使いください。


 その後、スクリプトのリンク(以下のいずれか)をクリックします(どちらも内容は同じです)。
GitHub: tooi-forGreaseTamperMonkey.user.js - GitHub
Hogashi(個人サイト): tooi-forGreaseTamperMonkey.user.js - Hogashi

Opera

 OperaChrome拡張機能をそのまま使うことが出来ます。

 まず以下からDownload Chrome Extensionをインストールします。
拡張機能「 Download Chrome Extension」 - Opera アドオン

 次にChromeウェブストアからtwitter画像原寸表示をインストールします。
twitter画像原寸ボタン - Chrome Web Store

Chrome

 Chromeウェブストアからインストールするのが良いと思います。
twitter画像原寸ボタン - Chrome Web Store

 ただ、Tampermonkeyも存在するのでそれを使うことも出来ます。
Tampermonkey - Chrome ウェブストア
 この場合はFirefoxと同様に次のいずれかのリンクをクリックしてインストールします(どちらも内容は同じです)。
GitHub: tooi-forGreaseTamperMonkey.user.js - GitHub
Hogashi(個人サイト): tooi-forGreaseTamperMonkey.user.js - Hogashi

設定機能について

 Chromeでは設定機能が使えたのですが、Grease/Tampermonkeyを使うと設定機能が使えません。
 ただし、少し面倒ではありますが、自分でソースコードに手を加えるという方法があります。複雑ではないので、やろうと思えば簡単です。

Greasemonkey(Firefox)

 まず、

  • 右上の横棒三本メニューから「アドオン」をクリックするか、
  • アドレスバーに「about:addons」と入力する

と、左のバーに猿のアイコンがありますが、それがGreasemonkeyスクリプト管理ページです。これをクリックします。

 「twitter画像原寸ボタンforGreaseTampermonkey」というスクリプトがインストールされているので、「設定」→「このユーザスクリプトを編集」とクリックします。

 すると新しいウィンドウでスクリプトの内容が表示されるので、これを編集します。

 編集する場所は以下(15行目~22行目)です。

// 設定項目の初期値は「有効」
// 設定を変えるにはここを「無効」にする
// 有効: 'istrue', 無効: 'isfalse'
var options = {
	// タイムラインにボタン表示
	'SHOW_ON_TIMELINE': 'istrue',
	// ツイート詳細にボタン表示
	'SHOW_ON_TWEET_DETAIL': 'istrue',
	// Enterキーで原寸を開く
	'OPEN_WITH_KEY_PRESS': 'istrue'
};

 コメント文にもある通り、項目を有効にする場合は'istrue'、無効にする場合は'isfalse'と入力します。
 例えば「タイムラインにボタン表示」の機能をオフにしたい場合、次のようになります。

// 設定項目の初期値は「有効」
// 設定を変えるにはここを「無効」にする
// 有効: 'istrue', 無効: 'isfalse'
var options = {
	// タイムラインにボタン表示
	'SHOW_ON_TIMELINE': 'isfalse',
	// ツイート詳細にボタン表示
	'SHOW_ON_TWEET_DETAIL': 'istrue',
	// Enterキーで原寸を開く
	'OPEN_WITH_KEY_PRESS': 'istrue'
};
Tampermonkey(Chrome)

 右上にあるTampermonkeyのアイコン(黒い四角に丸2つ)をクリックして、「ダッシュボード」をクリックします。
 「twitter画像原寸ボタンforGreaseTampermonkey」をクリックすると編集画面になるので、上のGreasemonkey(Firefox)と同じように編集してください。

スクリプトの中身

 2つのスクリプトのリンク先の内容は、それぞれ以下で見ることが出来ます。インストールの前に確認したい方はどうぞ(どちらも内容は同じです)。

GitHub: twitterOpenOriginalImage/tooi-forGreaseTamperMonkey.user.js at master · hogashi/twitterOpenOriginalImage · GitHub
Hogashi(個人サイト): tooi-forGreaseTamperMonkey.user.js

結び

 不具合や疑問点などありましたらお寄せください。
hogas (@hogextend) | Twitter

GoogleChrome拡張機能「twitter画像原寸ボタン」ver. 2.0.5公開

 随分長くかかってしまいました、GoogleChrome拡張機能twitter画像原寸ボタン」更新です。

 今回の更新で変更した点で、権限を追加したため、拡張機能が一旦無効となるようです。chromeの右上の横棒三本メニューから「設定」→「拡張機能」と進み、twitter画像原寸ボタンを有効にしてください。
 その際「権限を付与~」などと表示されます。表示にはありますが、閲覧履歴の読み取りはしません(後述)。お使い頂ける方は許可してください。

 またその部分で大分不安な感じになってしまったようで申し訳ありませんでした。その辺りも説明しながら書きます。

 取り急ぎ質問したい!などありましたら、

どちらでもどうぞ。

 あと、やっとFirefoxにも対応しました。次の記事に詳しいので、ご確認ください。
拡張機能「twitter画像原寸ボタンforGreaseTampermonkey」ver.2.0.5公開 - hogashi.*

更新内容

権限

 まず「新たに権限を付与する必要」「閲覧履歴の読み取り」などと出てしまう点ですが、下記の変更点の3番目に使う権限でした。
 閲覧履歴を読み取る訳ではないのですが、タブの操作をするための権限(tabs)が、「閲覧履歴の読み取り」と表示されるようです*1

 この拡張機能は閲覧履歴を読み取ることはしません。
 また「twitter.com 上にある自分のデータの読み取りと変更」も、画像URLを取得してOriginalボタンを表示するくらいなものです。

 総括すると、「個々人のデータを何処かへ送信する」とか「データを悪用する」などといったことはしていません*2

 確認不足で不安なお気持ちにさせてしまったことをお詫びします。申し訳ありませんでした。
 どうしても不安な方は削除なさってください。今までありがとうございました。

主な変更点

 今回は以下3点の更新です。

  1. 画像ツイートにリプライするとき、改行のためにEnterキーを押すと画像が開いてしまって厄介
  2. 画像をクリックしたときのポップアップにはボタンが表示されない
  3. タイムラインにボタンが表示されない

 1つ目。リプライ欄にカーソルがあるうちは、Enterを押しても画像が開かないようになりました。他の場所をクリックしたりして、リプライ欄にカーソルが出ない状態なら、Enterキーで画像が開きます。

 2つ目。画像をクリックした際のポップアップにもOriginalボタンを表示しました。複数画像ツイートのうちの1枚だった場合は、そのツイートのすべての画像が開きます。

 3つ目。ボタン表示周りの挙動を少し改善してみました。目に見えて変わったわけではないのですが、長時間の連続使用でも大丈夫になったのではないかな、と思います(ただこちらでその症状を確認できていないので、絶対直ったとも言えないのが現状です)。
 詳しい説明としては、

  1. 長時間放置したタイムラインでOriginalボタンが表示されないおそれがある
  2. その原因として「ボタン設置時に設定項目を毎度毎度確認していたら、確認に使う機能がエラーを起こして止まっていた」ことが考えられる
  3. よって、設定ページで「設定を保存」ボタンを押した時だけ設定を確認することにする
  4. そのために、設定ページの「設定を保存」ボタンを押したことを、開いているタブへ通知するようにした

 ここでタブ操作の権限(tabs)が必要になったということです。

 権限(tabs)を追加したため、「新たに権限を付与する必要があります」と表示されます。
 このとき、これがなぜか「閲覧履歴の読み取り」という文言で表示されます。
 Googleの公式な文書は以下しか見つかりませんが、「Access your browsing activity」が「閲覧履歴の読み取り」と訳されているものと思います。誤訳な気がしますが……。
Permission Warnings - Google Chrome

 (追記[2016/03/23]:) ご指摘を頂いたので訂正します。
 「閲覧履歴の読み取り」は「Access your browsing activity」の誤訳ではなく、以下のような理由からの文言だったということです(ソース: Read your browsing history permission - Google グループ)。

「タブ操作の権限を使えば、『ユーザが今ブラウズしているページのURLを知ることができる』から、それは"Read your browsing history"(閲覧履歴の読み取り)と言っていいからです」

 つまり、「今までの閲覧履歴は読み取ることはできないが、これからの閲覧情報は読み取ることが可能だ(しかし書き換えはできないためあくまで『読み取り』)」ということです。

 いずれにしても私は、「閲覧履歴の読み取り含めデータの悪用などは一切しません」と主張します。
 権限としては、閲覧履歴の読み取りが可能、ということになってしまいましたので、根拠はソースコードを読んで頂くしかなくなりました……。
 ここで逆に、ソースコードを読んで「閲覧履歴の読み取りをしているじゃないか!」とご指摘頂ける方がいらっしゃいましたらお願い致します。もしそのような場合、それは完全に意図せぬものであり、お詫びとともに対処致します。

 慎重を期す方は、拡張機能の削除をお願いします。ありがとうございました。(追記[2016/03/23]ここまで)

不安な方へ

 chromeにインストールされた拡張機能ソースコードは、実際に見ることが出来ます。

ソースコードの場所

 以下の場所にソースコードが存在します。

  • Windows([ユーザ名]は自分のユーザ名に置き換える):
"C:\Users\[ユーザ名]\AppData\Local\Google\Chrome\User Data\Default\Extensions\kmcomcgcopagkhcbmcmcfhpcmdolfijg"
"~/Library/Application Support/Google/Chrome/kmcomcgcopagkhcbmcmcfhpcmdolfijg"
# "~/.config/google-chrome/kmcomcgcopagkhcbmcmcfhpcmdolfijg" # 古い情報
"~/.config/google-chrome/Default/Extensions/kmcomcgcopagkhcbmcmcfhpcmdolfijg"
 # (修正[2016/03/29])

 「kmcomcgcopagkhcbmcmcfhpcmdolfijg」は、この拡張機能twitter画像原寸ボタン」の拡張機能IDです。
 このIDはChrome拡張機能の一覧で、「デベロッパーモード」をチェックすると確認することが出来ます。もちろん他の拡張機能も同じようにできます。

確認するポイント

 「manifest.json」というテキストファイルに、以下(7~9行目)のように拡張機能で使いたい権限を記載します。

"permissions": [
  "tabs"
]

 これによりその権限を要求します。この拡張機能は「tabs」、タブ操作についての権限を記載しています。
 先述の通り、これはGoogleの文書によれば、英語では「Access your browsing activity」と表示するはずですが、日本語で「閲覧履歴の読み取り」と表示されたようです。

 ちなみに、閲覧履歴の読み書きをするには「history」か「topSites」という権限をここに記載する必要があります。もちろんこの拡張機能には記載していません。
 Googleの文書を再掲します。
Permission Warnings - Google Chrome

見通し

 いくつか頂いていた「保存時の挙動改善」の要望ですが、個人的なポリシーとしてあまり保存機能を付けたくない、というのが現状です。

 画像の保存をスムーズにするには、

のいずれかが良いのではないかと思います。
 特に後者の「Twitter 原寸びゅー」は、画像の保存までできるようです。

 これからもお使い頂ける方はよろしくお願いします。
 これまでとされる方はありがとうございました。

使い方

 twitterの、タイムラインツイート詳細画面画像ツイートに、「Originalボタン」を表示します。
 タイムラインでは、表示されたOriginalボタンを押すと、ツイートに含まれる画像の原寸を新しいタブで表示します。

 ツイート詳細ページでは、表示されたOriginalボタンを押す or Enterキー で、ツイートに含まれる画像の原寸を新しいタブで表示します。

 ※画像の原寸:画像URL「https://pbs.twimg.com/media/(文字列).jpg」の末尾に「:orig」ってつけるのと同じです。
 複数画像のツイートは、一番右から順に1,2,3,4枚目と開きます(最初に1枚目が見えることになります)。

 また、それぞれの機能のオン/オフを設定することができます。

をクリックで、設定画面が開きます。チェックボックスで設定を決め、「設定を保存」ボタンで保存してください。

諸々

 GitHubに公開しています。どんどん改善してください(ご報告頂けるとさらに嬉しいです)。
GitHub - hogashi/twitterOpenOriginalImage: Opens original image to new tab. It's an extension of GoogleChrome.

 この拡張機能による動作の保証はできません。ただ、不具合などありましたらお言い付けください。なるがたけ改善します。
chrome拡張機能「twitter画像原寸表示」の不具合? - hogashi.*

更新履歴

2016.03.19 | ver. 2.0.5 リプライ中はEnterキーで画像が開かないように修正、画像をクリックしたポップアップにもOriginalボタンを表示、タイムラインでのOriginalボタンの表示を安定化
2016.02.06 | ver. 2.0.4 タイムライン上のOriginalボタンを押してもツイートがポップアップしないよう修正
2016.01.22 | ver. 2.0.3 設定項目「Enterキーで画像を開く」を追加
2016.01.13 | ver. 2.0.2 画像URLの「:」以降が何であっても「:orig」と出来るよう改善
2016.01.13 | ver. 2.0.1 画像URLが「:orig:orig」となる不具合を修正
2016.01.01 | ver. 2.0 タイムラインへOriginalボタンの表示、設定画面の追加
2015.12.09 | ver. 1.6.1 twiter公式のツイート及び画像の表示の更新への対応((また)完全に何も動作しない症状を改善)
2015.10.28 | ver. 1.6 twiter公式のツイート及び画像の表示の更新への対応(完全に何も動作しない症状を改善)
2015.10.20 | ver. 1.5.2 Originalボタンが下に入り込んでいたのを公式の操作ボタンと横並びにした
2015.08.02 | ver. 1.5.1 twitter公式の画像表示の更新への対応(画像ツイートへの複数画像ツイートリプライにおける画像が正しく取得されない症状を改善)
2015.07.20 | ver. 1.5 twitter公式の画像表示の更新への対応(複数画像が1枚しか出ない症状を改善)
2015.05.14 | ver. 1.3 画像ツイートに対するリプライ画像ツイートに対応
 2015.03.24 | readme.txtの内容を修正
2015.03.19 | ver. 1.2 動作の改良、複数画像ツイートに対応
2015.02.16 | ver. 1.1 動作の改良、操作方法の追加(Enterキー)
2015.02.15 | ver. 1.0 公開

        • -

*1:historyは使ってないのに……

*2:googleが何をしているかはわかりません。少なくとも私はしていません。

GoogleChrome起動オプション「--disable-directwrite-for-ui」ができない

 GoogleChromeを49.0.2623.87 mに更新したところ、起動オプション「--disable-directwrite-for-ui」ができなくなった。

解決法
chrome://flags/#disable-direct-write

にアクセス(?)して

DirectWrite Windows
試験運用版の DirectWrite フォント レンダリング システムの使用を有効にします。 #disable-direct-write

を「無効にする」ことで起動オプションが使えるようになった。

詳しく

 更新してChromeを再起動したら右下にいくつか拡張機能がクラッシュしたとのバルーン通知が出て、クリックしても再起動しないので再起動するもまたクラッシュ。
 よくわからんので起動オプションを外したら正常に起動したため、上述の解決策を施した*1

 今のところおかしな動作はないので大丈夫だと思う。

*1:「--disable-directwrite-for-ui」は、「タブ名やブックマークバーといったUI周りのDirectWriteを無効にする(見た目としてはフォントをMSPゴシックのままにする)」オプションで個人的な好み。

GoogleChrome拡張機能「twitter画像原寸ボタン」ver. 2.0公開

 新年明けましておめでとうございます。2016年もよろしくお願いします。

 GoogleChrome拡張機能、「twitter画像原寸ボタン」(改名しました!)の ver. 2.0 を公開しました。初めてのメジャーアップデートです。
 (追記[2016/04/10]:) 最新バージョンは ver.2.0.5 です。以下の記事をご確認ください。*1
hogashi.hatenablog.com

 (2016/01/04 追記): 個人Webサイトにページを作りました*2(以下のリンク)。この拡張機能の概要、ブックマークレットのリンクを載せてあります。twitter画像原寸ボタン - Hogashi(追記(2016/02/09):ちょっとサーバーを落としてしまっているのでしばらくつながりません(2月末再開予定です)。)(追記[2016/04/10]:http://hogas.moeのサーバーは既に復活しています。)

インストール/アップデート

GoogleChrome

 以下、chromeウェブストアからインストールしてください。
chrome.google.com

 既にインストールされている方は、しばらくすると自動で更新がされるようです。が、すぐ/確実に更新したい場合は以下を行ってください。

 GoogleChrome47.0.2526.106mで動作を確認しています。

Opera

 Operaでは、「拡張機能「 Download Chrome Extension」 - Opera アドオン」からアドオン「Download Chrome Extension」をインストールし、Chromeと同じようにインストールして下さい。

 Opera34.0.2036.39で動作を確認しています。

FireFox

 FireFoxでは、twitter画像原寸ボタンver.1.6.1(ひとつ前のバージョン)のコードが動きます(2.0のコードは今のところ動かないようです)。「Greasemonkey :: Add-ons for Firefox」からアドオン「Greasemonkey」をインストールして、以下のGitHubからソースコードを貼り付けてください。今のところではver.1.6.1のバージョン(タイムラインにはOriginalボタンが表示されません)が動作することを確認しました。
twitterOpenOriginalImage/main.js at 473e4376ded36c4dbf7d99797c81bdcc5c85cd16 · hogashi/twitterOpenOriginalImage · GitHub

 (追記[2016/04/03]:) Firefoxでも最新版で対応しました。Greasemonkeyで使えます。
 詳しくは以下をご覧ください。
hogashi.hatenablog.com
(追記ここまで)

 FireFox42.0で確認しています。

変更点

 Originalボタンを、タイムラインの画像ツイートにも設置しました。押すと、新しいタブで画像の原寸を開きます。
 また、機能のオン/オフ設定を追加しました。タイムライン/ツイート詳細画面それぞれでボタンの表示/非表示を変えることができます。
 あと、拡張機能自体の名前を変えました(「twitter画像原寸表示」→「twitter画像原寸ボタン」)*3!これからもよろしくお願いします。

使い方

 twitterの、タイムラインツイート詳細画面の 画像ツイートに、「Originalボタン」を表示します。
 タイムラインでは、表示されたOriginalボタンを押すと、ツイートに含まれる画像の原寸を新しいタブで表示します。
f:id:hogashi:20160101121244j:plain
 ツイート詳細ページでは、表示されたOriginalボタンを押す or Enterキー で、ツイートに含まれる画像の原寸を新しいタブで表示します。
f:id:hogashi:20160101121248j:plain
 ※画像の原寸:画像URL「https://pbs.twimg.com/media/(文字列).jpg」の末尾に「:orig」ってつけるのと同じです。
 複数画像のツイートは、一番右から順に1,2,3,4枚目と開きます(最初に1枚目が見えることになります)。

 また、それぞれの機能のオン/オフを設定することができます。

をクリックで、設定画面が開きます。チェックボックスで設定を決め、「設定を保存」ボタンで保存してください。
f:id:hogashi:20160101121251j:plain

ブックマークレット

 今回から、拡張機能のコードを使って新しくつくってみました*4。よければお使いください。
 以下のリンクをURLとしてブックマークにして下さい。ツイート詳細ページを開いた後、ブックマークをクリックすると画像を原寸で新しいタブに開きます。

javascript:(function(){if(m=document.querySelector('.permalink-tweet-container'))for(i=((m=m.getElementsByClassName('AdaptiveMedia-photoContainer')).length-1);i>=0;i--)if(u=m[i].getElementsByTagName('img')[0].src)window.open(u+':orig')})();

 または以下のページ(個人サイトです)にリンクを載せてあります。ブックマークバーにドラッグアンドドロップでブックマークにして下さい。同じくツイート詳細ページを開いた後、ブックマークをクリックすると画像を原寸で新しいタブに開きます。
twitter画像原寸ボタン - Hogashi

 GoogleChrome47.0.2526.106m、Opera34.0.2036.39、InternetExplorer11.0.9600.18124で動作を確認しています。「常にポップアップを許可」などする必要があるかもしれません。
 FireFoxでは動作しないようです……なんとかしたいですが……。

諸々

 GitHubに公開しています。どんどん改善してください(ご報告頂けるとさらに嬉しいです)。
GitHub - hogashi/twitterOpenOriginalImage: Opens original image to new tab. It's an extension of GoogleChrome.

 この拡張機能による動作の保証はできません。ただ、不具合などありましたらお言い付けください。なるがたけ改善します。
chrome拡張機能「twitter画像原寸表示」の不具合? - hogashi.*

更新履歴

2016.01.01 | ver. 2.0 タイムラインへOriginalボタンの表示、設定画面の追加
2015.12.09 | ver. 1.6.1 twiter公式のツイート及び画像の表示の更新への対応((また)完全に何も動作しない症状を改善)
2015.10.28 | ver. 1.6 twiter公式のツイート及び画像の表示の更新への対応(完全に何も動作しない症状を改善)
2015.10.20 | ver. 1.5.2 Originalボタンが下に入り込んでいたのを公式の操作ボタンと横並びにした
2015.08.02 | ver. 1.5.1 twitter公式の画像表示の更新への対応(画像ツイートへの複数画像ツイートリプライにおける画像が正しく取得されない症状を改善)
2015.07.20 | ver. 1.5 twitter公式の画像表示の更新への対応(複数画像が1枚しか出ない症状を改善)
2015.05.14 | ver. 1.3 画像ツイートに対するリプライ画像ツイートに対応
 2015.03.24 | readme.txtの内容を修正
2015.03.19 | ver. 1.2 動作の改良、複数画像ツイートに対応
2015.02.16 | ver. 1.1 動作の改良、操作方法の追加(Enterキー)
2015.02.15 | ver. 1.0 公開
−−−−

*1:この記事を見てくださる方の数がまだまだあるので、水引をば

*2:作りが雑なのはまたしばらくしてから綺麗にします……。

*3:既に「twitter画像原寸表示」という名前のブックマークレット (Twitter画像原寸表示ブックマークレット) が存在していたことを後から知ったためです……調べぬまま命名してしまい、申し訳ありませんでした。

*4:Twitter画像原寸表示ブックマークレット」の動作が少し上手く行っていない印象があったので、自分でもつくってみました。twitterのページ遷移に上手く対応できたと思います。