Hatena::ブログ(Diary)

Cherenkovの暗中模索にっき RSSフィード Twitter

2012-11-06 このエントリーを含むブックマーク このエントリーのブックマークコメント

2012-08-25

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 中クリック ミドルマウス ミドルクリック

2012-04-20 このエントリーを含むブックマーク このエントリーのブックマークコメント

2011-08-26

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 中クリック ミドルマウス ミドルクリック

2011-08-23

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

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


参考

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