如何用图像填充整个框架?

时间:2019-04-03 15:12:03

标签: emacs elisp

我正在使用(make-frame)创建一个Emacs框架并将图像加载到其中。当我使用-q选项启动Emacs并运行脚本时,Emacs会创建一个框架,并用图像填充整个框架。

但是,当我从普通的Emacs会话(emacsclient)运行此命令时,Emacs会在图像左侧插入1,并在框架左侧的整个高度上创建一列图片:

Screenshot

下面是我创建框架并插入图像的代码:

(defvar bckgimg "~/a.jpg" "Image used for desktop background")
(progn
    (setq backgr-frame
          (make-frame
           `((name . "background-frame")
             (width . ,(display-pixel-width))
             (height . ,(display-pixel-height))
             (undecorated . t)
             (fringe . nil)
             (below . t)
             (left-fringe . 0)
             (right-fringe . 0)
             (tool-bar-lines . 0)
             (menu-bar-lines . 0)
             (unsplittable . t)
             (mode-line . nil)
             (buffer-predicate . (lambda (x) nil))
             (internal-border-width . 0)
             (z-group . below)
             (visibility . nil)
             (skip-taskbar . t)
             (minibuffer . nil)
             (top . 0)
             (left . 0))))

    (with-selected-frame backgr-frame
            (toggle-frame-maximized)
            (lower-frame backgr-frame)
            (make-frame-visible backgr-frame)
            (with-output-to-temp-buffer "backgr"
                    (switch-to-buffer "backgr")
                    (setq mode-line-format nil)
                    (if (fboundp 'display-line-numbers-mode)
                                    (display-line-numbers-mode -1))
                    (if (fboundp 'linnum-mode)
                                    (linnum-mode -1))
                    (insert-image (create-image bckgimg
                                                'jpeg nil
                                                :width 3840)))))

我一直在研究文档并进行搜索,但是似乎找不到解决方法。在左侧没有多余的列(屏幕截图为绿色)的情况下显示图像的代码是什么?

1 个答案:

答案 0 :(得分:0)

好的,我已经在Reddit的某人的帮助下解决了它。问题在于行号。我启用了global-display-line-numbers-mode。添加

(Preview)

解决了问题。我已经编辑了上面的代码以获取正确的解决方案。