doom emacs 如何设置启动后窗口的大小?

也搜了一些方法,但是都无效

论坛搜到的,加到.doom.d/init.el 和config.el都不起作用

  (defun liu233w/reset-frame-size (&optional frame)
    "重设窗体大小"
    (interactive)
    (when frame
      (select-frame frame))
    (set-frame-width (selected-frame) 100)
    (set-frame-height (selected-frame) 30))
;;设置窗口大小
(liu233w/reset-frame-size)
;;在这里学到: https://github.com/syl20bnr/spacemacs/issues/4365 @raawaa
;;可以使用这个hook来在加载frame之后调用制定的函数,frame将作为参数被传递给
;;这个函数
(add-hook 'after-make-frame-functions 'liu233w/reset-frame-size)

还有网上搜到的一些方法也都无效

(pushnew! initial-frame-alist '(width . 200) '(height . 55))
(add-hook 'window-setup-hook #'toggle-frame-maximized)
(add-hook 'window-setup-hook #'toggle-frame-fullscreen)

第一行是调整窗口大小,第二行是最大化,第三行是全屏。根据需要选择,放在config.el里就行。

6 个赞

感谢,可以了

老哥你是怎么知道这样设置有效的呢?看的什么文档吗?还是经验?

doom-emacs的Discord频道很热闹,作者回答问题也非常热心,我是看其他用户询问的聊天记录看见的。你也可以去搜索一下有没有你感兴趣的问题。

1 个赞

有什么简单的方法可以设置“启动窗口”为半个屏幕?手动调width, height太麻烦而且不智能

你可能需要平铺式窗口管理?

不太行,前几个礼拜装了一个manjaro i3,直接放弃

刚从 manjaro xfce4 切到 i3,正在调整、适应中。

想请教一下,想启动后最大化窗口,使用您提示的第一第二行配置,是最大化了,但是发现二个配置最大化窗口之后都会被屏幕下方的任务条挡住一部分。(我用的是windows10 WSL2 使用x server 启动使用emacs),不知有没有好的解决方法。

不知道呢,很久没用过 windows 了,更没在 win 下用过 emacs

感谢大佬作答,很有帮助

今天出现这个想法,发现你这个需求跟我一样。没有完全解决,但找到一个合适的办法,即:

; 设置高度覆盖屏幕

(add-to-list 'default-frame-alist '(fullscreen . fullheight))

; 设置宽度为 fill column (80) + 行号 (5)

(add-to-list 'default-frame-alist '(width . 85))

用default-frame-alist而不是init-,是发现doom Emacs在server下覆盖了init的设置。

这样可以满足我的需求。而在windows下,如果想让app占满左半屏或者右半屏,只需要用 win+left/right 快捷键即可。