我想要一个键盘快捷键来在最大化窗口中打开 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))