(defvar my-move-frame-distance 15) ;; 移動量
(defun my-move-frame (&optional vertical horizon)
"vertical, horizon の数だけ Frame を動かす"
(when window-system
(let* ((meadowy (featurep 'meadow))
(top (frame-parameter (selected-frame) 'top))
(left (frame-parameter (selected-frame) 'left))
(mpos (if meadowy
(cdr (mouse-position))
(cdr (mouse-pixel-position))))
(hoff (* (or horizon 0) my-move-frame-distance))
(voff (* (or vertical 0) my-move-frame-distance)))
(set-frame-position (selected-frame) (+ left hoff) (+ top voff))
(if meadowy
(set-mouse-position (selected-frame) (car mpos) (cdr mpos))
(set-mouse-pixel-position (selected-frame)
(+ (car mpos) hoff)
(+ (cdr mpos) voff))))))
(defun my-move-frame-up ()
"Frame を上に動かす"
(interactive)
(my-move-frame -1 0))
(defun my-move-frame-down ()
"Frame を下に動かす"
(interactive)
(my-move-frame 1 0))
(defun my-move-frame-left ()
"Frame を左に動かす"
(interactive)
(my-move-frame 0 -1))
(defun my-move-frame-right ()
"Frame を右に動かす"
(interactive)
(my-move-frame 0 1))
(define-key global-map [?\C-\M-1] 'my-move-frame-left)
(define-key global-map [?\C-\M-2] 'my-move-frame-down)
(define-key global-map [?\C-\M-3] 'my-move-frame-up)
(define-key global-map [?\C-\M-4] 'my-move-frame-right)
一番時間がかかったのはキーアサインをどれにするか考えていた時間。C-u つきでたくさん移動っていうのをやったら、Frame が遥か彼方に行ってしまって帰って来なくなってしまったのでやめた。マウスポインタの場所のキープが UNIX な Emacs21 と Meadow1.15 で別にやらないとうまく行かなかった。などなど
top left の件は、Scarab に登録してくださいね^^;;
うぅ、Scarab の使い方忘れている ^^; あとでね。<br>(というか最初から知らないか ^^;;;)