3

我遇到了麻烦。我想按下F11并让 Emacs 创建一个新框架,然后设置其大小,然后启动gnus. 在此期间,我希望它将新框架带到前面。我似乎无法弄清楚最后一部分。这是我的代码减去前面的部分:

(defun launch_gnus_new_frame ()
  "Open a new frame and then launch gnus"
  (interactive)
  (let* (new_frame_gnus (new-frame))
    (switch-to-buffer-other-frame new_frame_gnus)
    (if window-system
        (set-frame-size (selected-frame) 101 90))
    (gnus)))

(global-set-key [f11] 'launch_gnus_new_frame)

任何想法,将不胜感激。谢谢!

编辑:这是我当前的代码。

(defun launch_gnus_new_frame ()
  "Open a new frame and then launch gnus"
  (interactive)
  (let ((gmail_frame (make-frame '((name . "gmail") (window-system . x)))))
    (select-frame-set-input-focus gmail_frame)
    (if window-system
        (set-frame-size (selected-frame) 101 90))
    (gnus)))

(global-set-key [f11] 'launch_gnus_new_frame)

我已经确定新框架已经创建,我的观点是在新的缓冲区运行gnus中。但是,在我最小化并恢复它之前,该框架不会出现在我的显示器上。如果我跑步,M-x make-frame我会得到相同的行为。我正在使用 Cinnamon 桌面运行 Linux Mint。

4

1 回答 1

1

看看x-focus-frame功能。

(when (fboundp 'x-focus-frame)
  (x-focus-frame nil))
于 2012-12-24T06:52:19.907 回答