AutoHotkeyを使ってChromeのタブ周りの操作を快適にする

追記:20120826。再起動したせいか Chrome_WidgetWin_1 に戻ってた。バージョンは同じ 21.0.1180.83 m。謎。

#IfWinActive ahk_class Chrome_WidgetWin_1

を複数のクラス名でもマッチするように以下のようにした。

if WinActive("ahk_class Chrome_WidgetWin_0") or WinActive("ahk_class Chrome_WidgetWin_1") or WinActive("ahk_class Chrome_WidgetWin_2") or WinActive("ahk_class Chrome_WidgetWin_3")

どうもchrome以外でタブを使うアプリも切り替えが効いちゃうので、orは諦めた。

参考:IfWinActive / IfWinNotActive


追記:20120823。chrome 21.0.1180.83 mからchromeのウィンドウのクラス名がChrome_WidgetWin_1 から Chrome_WidgetWin_2 に変更された。

注意:chrome19で Chrome_WidgetWin_0 から Chrome_WidgetWin_1 に変更されました。

ダブル中クリックでchromeのタブを復元する設定を書いた。
AutoHotkeyを使ってChromeのタブ切り替えをマウスホイールで行う - Cherenkovの暗中模索にっき の設定と合わせて

#IfWinActive ahk_class Chrome_WidgetWin_1

;mouse wheel to tab switch
~WheelUp::
MouseGetPos, x, y
if (y < 45) {
  send, ^{PgUp}
}
return

~WheelDown::
MouseGetPos, x, y
if (y < 45) {
  send, ^{PgDn}
}
return


;double middle click to reopen closed tab
~MButton::
MouseGetPos, x, y
if (y < 45) {
  if ((A_PriorHotKey = A_ThisHotKey) && (A_TimeSincePriorHotkey < 300)) {
    send ^+t
  }
}
return

#IfWinActive

*1

*1:double middle mouse click 中クリック ミドルマウス ミドルクリック

AutoHotkeyを使ってChromeのタブ周りの操作を快適にする

追記:再起動したせいか Chrome_WidgetWin_1 に戻ってた。謎。

#IfWinActive ahk_class Chrome_WidgetWin_1

のようにしてたのを複数条件にするには型(?)とセットで半角スペースでつなげればよかった。

#IfWinActive ahk_class Chrome_WidgetWin_1 ahk_class Chrome_WidgetWin_2 ahk_class Chrome_WidgetWin_3

参考:
http://ahk.xrea.jp/commands/_IfWinActive.html
http://ahk.xrea.jp/Window.html


追記chrome 21.0.1180.83 mからchromeのウィンドウのクラス名がChrome_WidgetWin_1 から Chrome_WidgetWin_2 に変更された。20120823

注意:chrome19で Chrome_WidgetWin_0 から Chrome_WidgetWin_1 に変更されました。

ダブル中クリックでchromeのタブを復元する設定を書いた。
AutoHotkeyを使ってChromeのタブ切り替えをマウスホイールで行う - Cherenkovの暗中模索にっき の設定と合わせて

#IfWinActive ahk_class Chrome_WidgetWin_1

;mouse wheel to tab switch
~WheelUp::
MouseGetPos, x, y
if (y < 45) {
  send, ^{PgUp}
}
return

~WheelDown::
MouseGetPos, x, y
if (y < 45) {
  send, ^{PgDn}
}
return


;double middle click to reopen closed tab
~MButton::
MouseGetPos, x, y
if (y < 45) {
  if ((A_PriorHotKey = A_ThisHotKey) && (A_TimeSincePriorHotkey < 300)) {
    send ^+t
  }
}
return

#IfWinActive

*1

*1:double middle mouse click 中クリック ミドルマウス ミドルクリック

AutoHotkeyを使ってChromeのタブ切り替えをマウスホイールで行う

Vista SP2, Chrome13, AutoHotkey_L 1.0.92.02, AutoHotkey 1.1.02.03 で動作確認。

;chromeのタブ切り替えをマウスホイールで行う
#IfWinActive ahk_class Chrome_WidgetWin_1
~WheelUp::
MouseGetPos, x, y
if (y < 45) {
  send, ^{PgUp}
}
return


~WheelDown::
MouseGetPos, x, y
if (y < 45) {
  send, ^{PgDn}
}
return
#IfWinActive
追記

ウィンドウの下の方(下から15%の高さ)でもタブ切り替えできるように改造した。普通のサイトだとスクロール位置がずれるけど主に画像ファイルで使うので気にしない。

#IfWinActive ahk_class Chrome_WidgetWin_0
~WheelUp::
MouseGetPos, x, y
WinGetActiveStats, title, width, height, winx, winy
if (y < 45) {
  send, ^{PgUp}
} else if ( y > height * 0.85 && y < height) { ;ウィンドウの下の部分でもタブ切り替えができるように。スクロール位置がずれたりするけど対応できなかった
  send, {click, WheelDown}^{PgUp}
}
return

~WheelDown::
MouseGetPos, x, y
WinGetActiveStats, title, width, height, winx, winy
if (y < 45) {
  send, ^{PgDn}
} else if ( y > height * 0.85 && y < height) {
  send, {click, WheelUp}^{PgDn}
}
return
#IfWinActive

AutoHotkeyを使ってホイールクリックで貼り付け(Chrome等で)

Vista SP2, Chrome13, AutoHotkey 1.1.02.03 で動作確認。

注意:chrome19で Chrome_WidgetWin_0 から Chrome_WidgetWin_1 に変更されました。

;chromeでホイールクリックしたら貼り付け
;ホイールクリックしながらドラッグでスクロールする機能を生かすために、キーが離されたらコピペする動作
#IfWinActive ahk_class Chrome_WidgetWin_1
~MButton::
KeyWait, MButton
send, ^v
return
#IfWinActive


#IfWinActive ahk_class Chrome_WidgetWin_0のとこをとっぱらってchrome以外も汎用的に動作することもできるけど、不都合がでたり自分が求めてないので。

と思ってたけど、「middlemouse.pasteに相当するuserChrome.js」を使う必要がなくなったり、意外と便利だったので汎用的にしてしばらく使ってみる。

;chromeでホイールクリックしたら貼り付け
;ホイールクリックしながらドラッグでスクロールする機能を生かすために、キーが離されたらコピペする動作
~MButton::
KeyWait, MButton
send, ^v
return

ホイールクリックでタブを閉じる人は、inputにフォーカスがある状態でタブを閉じるとペーストされちゃいますね。どうしたもんか。

追記

コピーした画像やテキストを右ダブルクリックでペーストする方法 : ライフハッカー[日本版] を参考にすることにした。

;Double Right Click to paste (http://www.lifehacker.jp/2009/07/post_1009.html)
~RButton::
If ((A_PriorHotKey = A_ThisHotKey) && (A_TimeSincePriorHotkey < 300)) {
  Sleep 200
  Send {Esc}
  Send ^v
}
Return

*1:中クリック middle click mouse ミドル マウス

PCの時計を2011/02/15 00:00:00より前にするとはてなスターがバレンタイン仕様になる

どうでもいい。

HatenaStar.js

/* Valentine's Day */ 
try {
(function () {
    var valentine_end = new Date('2011/02/15 00:00:00');
    var now = new Date();
    if (now < valentine_end) {
        Hatena.Star.Star.ColorPallet.yellow.ImgSrc = Hatena.Star.BaseURL + 'images/valentine-star.gif';
        Hatena.Star.Star.ColorPallet.green.ImgSrc  = Hatena.Star.BaseURL + 'images/valentine-star-green.gif';
        Hatena.Star.Star.ColorPallet.red.ImgSrc    = Hatena.Star.BaseURL + 'images/valentine-star-red.gif';
        Hatena.Star.Star.ColorPallet.blue.ImgSrc   = Hatena.Star.BaseURL + 'images/valentine-star-blue.gif';
        Hatena.Star.Star.ColorPallet.purple.ImgSrc = Hatena.Star.BaseURL + 'images/valentine-star-purple.gif';
        Hatena.Star.Star.ColorPallet.temp.ImgSrc   = Hatena.Star.BaseURL + 'images/valentine-star-temp.gif';
    }
})()
} catch (e) {}

また、時計がズレた状態でFirefoxgmailなどを開くと「接続の安全性を確認できません」となって困る。
インターネット時刻で同期する際もある程度リアルな日時に仮設定しないとエラーがでて同期に失敗する。