emacs 开始最大化

emacs 开始最大化

我想要一个键盘快捷键来在最大化窗口中打开 emacs。我试过了emacs --fullscreen,但那是全屏而不是最大化窗口……也就是说,emacs 窗口覆盖了 ubuntu 菜单栏。emacs -fw获得一个全宽窗口和emacs -fh一个全高窗口,但如果你同时设置这两个选项,它只会读取第二个。目前,我只有另一个键盘快捷键来最大化窗口。有没有办法让 emacs 最大化启动?

Ubuntu 9.10,emacs 22,如果这有区别的话。

答案1

我的 .emacs 中有这个,然后我将其绑定到一个键:

(defun my-frame-toggle ()
  "Maximize/Restore Emacs frame using 'wmctrl'."
  (interactive)
  (shell-command "wmctrl -r :ACTIVE: -btoggle,maximized_vert,maximized_horz"))

(global-set-key [(control f4)] 'my-frame-toggle)

然后,您可以点击CtrlF4并在常规和全屏之间切换(但不会覆盖 Ubuntu 菜单栏和屏幕底部的栏,我现在想不起它的名字)。要以这种方式启动,只需调用它:

$ emacs -e "my-frame-toggle"

答案2

我也遇到了同样的问题。在这个帖子中找到了答案: http://ubuntuforums.org/showthread.php?t=1619533

基本上从命令行使用以下参数启动 emacs:

  • emacs -fs //如果你想让 emacs 覆盖你的整个屏幕(覆盖 ubuntu 栏)
  • emacs -mm //如果您希望 emacs 启动时就像您按下最大化按钮一样(显示 ubuntu 栏)

当然,您可以将这些启动选项绑定到图标并让 emacs 始终按照您想要的方式启动。

答案3

我的 .emacs 中有以下函数,它们首先定义发送窗口管理器以分别在 X.org 和 Win32 上最大化框架的代码,然后将其添加为设置挂钩(如果适用):

(defun x-maximize-frame ()
    "Maximize the current frame (to full screen)"
    (interactive)
    (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))
    (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0)))

(defun w32-maximize-frame ()
  "Maximize the current frame (to full screen)"
  (interactive)
  (w32-send-sys-command 61488))

(defun maximize-frame ()
    (if (eq window-system 'w32)
            (w32-maximize-frame)
        (x-maximize-frame)))

(if window-system
    (add-hook 'window-setup-hook 'maximize-frame t))

答案4

可能就是你要找的。你也可以硬编码屏幕的像素宽度/高度,然后在 .emacs 文件中设置(作者介绍了这一点这里)。

相关内容