Bindings to libmonitors, allowing the handling of monitor querying and resolution changing.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

About cl-monitors

This is a small wrapper library around libmonitors, providing independent monitor resolution detection and change support.

How To

Precompiled versions of the underlying library are included in this. If you want to build it manually however, refer to the libmonitors README.

Load the system through ASDF or Quicklisp and initialise it:

(ql:quickload :cl-monitors)

Now you can retrieve a list of the monitors on your system:


You can inspect the available video modes for each of them too:

(mapcar #'cl-monitors:modes *)

And even switch the mode:

(cl-monitors:make-current (second (first *)))

Though you probably want to switch back again to your preferred resolution:

(cl-monitors:make-current (first (first **)))

Once you're all done, don't forget to clean up again after yourself:


And that's all there is to it. Well-- almost all. You can query information from the monitor and mode objects as well of course. For this, see width, height, refresh, current-p, mode, name, and primary-p.