【问题标题】:How to set linux wallpaper using clx如何使用 clx 设置 linux 壁纸
【发布时间】:2021-07-16 17:12:12
【问题描述】:

我正在尝试使用 clx 更改壁纸,但它不起作用。我的代码有什么问题?

(ql:quickload :clx)

(defpackage #:wm/uw
  (:use #:cl #:xlib))

(in-package #:wm/uw)

(setf *display* (open-default-display))

(setf *screen* (display-default-screen *display*))

(setf *root* (screen-root *screen*))

(setf (window-background *root*) (screen-white-pixel *screen*))

(clear-area *root*)
(close-display *display*)


【问题讨论】:

    标签: lisp common-lisp clx


    【解决方案1】:

    为了提高网络性能,许多 X11 客户端库不直接执行 X11 命令。相反,命令被存储并批量发送到 XServer。通常,这会在事件处理之前自动发生。由于您没有进行任何事件处理,因此命令队列似乎永远不会被刷新。如果你执行

    (xlib::buffer-flush *display*)
    

    在关闭显示之前,您应该会看到想要的效果。 CLX 不会导出buffer-flush 函数,因此您需要明确声明包名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多