少し前から
マウスのありかたについて
考えていました。
しばらく使っていると、
僕の場合ですが、マウスは
主にバッファを閲覧する目的で使うと
快適になることがわかりました。
普段はあまりマウスを使わないのですが、
稼働率が低いのでは
やはり勿体ないと思っています。
一昨日は マウスホイールでスムーズスクロール を
実現させました。
今度は左右クリックも
ほとんど使っていなかったことに気付きましたので、
左右クリックによる画面単位の
スクロールを設定してみました。
思えばダブルクリックも
まったく使っていませんでした。
使う必要性を感じていません。
というわけで、
マウスカーソルのウィンドウをスクロールするための道具
という位置付けにしています。
とくにノートパソコンのトラックパッドは
細かい位置調整がしづらいですので、
これくらい思い切った設定も
悪くはないと思います。
以下の設定を加えると
- ダブルクリックが無効になる
- 左クリックでC-vの効果
- 右クリックでM-vの効果
- 中クリックでマウスカーソル移動
- マイナーモードなのでメジャーモードのマウス設定より優先する
となります。
なお、ウィンドウ大きさの
調整などは普通に使えます。
設定 170315091753.mouse-click-scroll.el(以下のコードと同一)
(defun mouse-click-scroll (e) (interactive "e") (let ((curwin (prog1 (selected-window) (select-window (posn-window (event-start e)))))) (unwind-protect (funcall (if (eq (event-basic-type e) 'mouse-1) 'scroll-up 'scroll-down)) (select-window curwin)))) ;; (makunbound 'mouse-click-scroll-mode-map) (define-minor-mode mouse-click-scroll-mode "マウスクリックで画面単位でスクロールする" nil "" '(([mouse-1] . mouse-click-scroll) ([mouse-2] . mouse-set-point) ([mouse-3] . mouse-click-scroll) ([down-mouse-1] . ignore) ([down-mouse-3] . ignore) ([C-down-mouse-2] . ignore) ([drag-mouse-1] . ignore) ([drag-mouse-3] . ignore)) :global t) (mouse-click-scroll-mode 1) ;; 面倒なのでダブルクリックは無効にする (setq double-click-time nil) ;; orgのマウス操作を無効にする (with-eval-after-load "org" (setq org-mouse-map nil)) ;;key-translation-mapで余計なことをさせないようにする (define-key key-translation-map [down-mouse-1] nil) (define-key key-translation-map [double-down-mouse-1] nil)
実行方法
$ wget http://rubikitch.com/f/170315091753.mouse-click-scroll.el $ emacs -Q -l 170315091753.mouse-click-scroll.el
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。