Create screencasts with menyoki
Moving Pictures
Short snippets using animated GIFs are often sufficient to show what's happening on your desktop. With menyoki, you can create these animations from the command line.
If you need to demonstrate complex desktop processes, a video can be worth a thousand words. Conveniently, numerous screencast tools let you record what is happening on the screen and generate a video from your actions in MP4 format. However, GIF animations are far better suited for short events. They do not display annoying blocky artifacts, can be easily sent via a messaging app, and can be quickly integrated into websites.
The menyoki [1] screencast tool lets you create animations and save the captured processes in GIF or APNG format. If so desired, menyoki can also break down videos into individual frames, which proves useful when fishing a screenshot out of a rapidly moving process or monitoring such a process in peace afterwards. Conversely, menyoki can also create an animation from individual images, making it possible, for example, to integrate photos from a wildlife camera into a short movie. In addition, menyoki lets you create screenshots and – within narrow limits – edit the individual images.
Currently, menyoki only works in an X11 session; capturing images on Wayland is not supported yet.
Installation
To get menyoki up and running, Arch Linux users can retrieve the program from the community repository by typing:
pacman -S menyoki
For other distributions, you can download the current menyoki version as a tarball from GitHub [2] and proceed to unpack the archive.
You only need the menyoki
program in the current directory; call it by typing ./menyoki
. If you want to make menyoki available to all users, copy it to a suitable directory, such as /usr/local/bin/
, which allows you to run menyoki directly from anywhere by typing menyoki
. Either way, you will be responsible for updates in the future. For other installation options, see the "Alternatives" box.
Alternatives
You also can install menyoki with Docker or Cargo. Both are a bit more complicated than downloading the menyoki archive, but they make it a little easier to update the tool in the future.
If you are familiar with Docker, just call:
docker pull orhunp/menyoki
to set up the appropriate container. You can then call menyoki by typing:
docker run orhunp/menyoki menyoki
Depending on your system, you may also need to prefix the commands with sudo
(e.g., on Ubuntu).
Menyoki also can be integrated via the Cargo package manager for the Rust programming language. All major distributions have Cargo and Rust in their repositories, but these are mostly outdated versions that are not suitable for installing menyoki. You should therefore always install the latest version of Rust manually in your home directory. To do this, first use the package manager to install the curl
tool, a C compiler, and the developer packages for the libX11 and libXrandr libraries.
On Ubuntu, line 1 of Listing 1 provides everything you need. You can download an installation script for Rust with the command in line 2. Run it, and enter 1
at the prompt. After installation, open a new terminal and install menyoki (line 3). Don't forget to regularly update Rust (line 5) and menyoki (line 6) later.
Listing 1
Setting up menyoki via Cargo
01 $ sudo apt install curl build-essential librust-x11-dev libxrandr-dev 02 $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 03 $ cargo install menyoki 04 [...] 05 $ rustup update 06 $ cargo install menyoki --force
And, Action!
To capture what's happening in a desktop window as a GIF animation and save it in film.gif
, just call menyoki with the command shown in line 1 of Listing 2. This long line of instructions may initially look cryptic, but upon closer inspection it nicely demonstrates the menyoki command structure. Immediately following the menyoki
command, you need to type the action that you want menyoki to complete. In Listing 2, that action, the record
switch, records an animation.
Listing 2
Recording with menyoki
01 $ menyoki record --countdown 5 gif save "film.gif" 02 $ menyoki record --with-alpha --countdown 5 apng save "film.apng"
You then use parameters to influence record
's behavior. In Listing 2, following record
, the --countdown 5
parameter tells menyoki to start recording after five seconds. This not only allows time for preparation, but – very usefully – it also lets you hide the terminal window with the menyoki
call. Without this parameter, menyoki waits for three seconds by default. The action and its parameters are followed by the file format for storing the animation. Listing 2 uses the GIF format in line 1, but APNG is also possible (line 2).
Finally, save
tells the software to save the video in the film.gif
file after recording. If you omit this specification, menyoki independently chooses a storage location along with the file name, which it outputs on exiting – typically ~/pictures/rec.gif
.
Framed
After calling the command from line 1 of Listing 2, a delicate frame appears (Figure 1). Menyoki will record whatever is inside the frame. You can record a different window by clicking on the desired window. In its own terminal window, menyoki informs you of the associated Window title
and Window size
. Armed with this information, you can determine whether menyoki has chosen the right window content. You have 60 seconds to select the desired window. If you need more time, specify the required number of seconds with the --timeout
parameter.
Gnome and KDE draw a shadow around their windows. Since the shadow belongs to the window, menyoki also draws it. The selection frame therefore appears to be far larger than the actual window (Figure 1). In the final animation, however, the shadow is shown as a black area.
To get around this, you have a couple of options. First, using the --with-alpha
parameter tells menyoki also to record transparent pixels. However, this only works smoothly with the APNG format (Listing 2, line 2). Alternatively, you can hold down the Alt key and then use the arrow keys to reduce the size of the selection rectangle. You can enlarge the recording area again by holding down the left Ctrl+Alt keys. Pressing the left Shift+Alt keys along with the arrow keys lets you move the entire frame. However, exact frame placement around the window can be a fiddly process (Figure 2).
Alternatively, turn off the shadows completely in the system settings (not all desktop environments let you do this). As a final measure, you can post-process the recording with a video editing program.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Systemd Fixes Bug While Facing New Challenger in GNU Shepherd
The systemd developers have fixed a really nasty bug amid the release of the new GNU Shepherd init system.
-
AlmaLinux 10.0 Beta Released
The AlmaLinux OS Foundation has announced the availability of AlmaLinux 10.0 Beta ("Purple Lion") for all supported devices with significant changes.
-
Gnome 47.2 Now Available
Gnome 47.2 is now available for general use but don't expect much in the way of newness, as this is all about improvements and bug fixes.
-
Latest Cinnamon Desktop Releases with a Bold New Look
Just in time for the holidays, the developer of the Cinnamon desktop has shipped a new release to help spice up your eggnog with new features and a new look.
-
Armbian 24.11 Released with Expanded Hardware Support
If you've been waiting for Armbian to support OrangePi 5 Max and Radxa ROCK 5B+, the wait is over.
-
SUSE Renames Several Products for Better Name Recognition
SUSE has been a very powerful player in the European market, but it knows it must branch out to gain serious traction. Will a name change do the trick?
-
ESET Discovers New Linux Malware
WolfsBane is an all-in-one malware that has hit the Linux operating system and includes a dropper, a launcher, and a backdoor.
-
New Linux Kernel Patch Allows Forcing a CPU Mitigation
Even when CPU mitigations can consume precious CPU cycles, it might not be a bad idea to allow users to enable them, even if your machine isn't vulnerable.
-
Red Hat Enterprise Linux 9.5 Released
Notify your friends, loved ones, and colleagues that the latest version of RHEL is available with plenty of enhancements.
-
Linux Sees Massive Performance Increase from a Single Line of Code
With one line of code, Intel was able to increase the performance of the Linux kernel by 4,000 percent.