- 1 Screenshot software
- 1.1 Dedicated software
- 1.2 Desktop environment specific
- 1.3 Packages including a screenshot utility
- 2 Screencast software
- 3 Wayland
- 4 Terminal
- Deepin Screenshot — Quite easy-to-use screenshot tool. Features: global hotkey to trigger screenshot tool, take screenshot of a selected area, easy to add text and line drawings onto the screenshot. Python/Qt5 based. However, it is now deprecated and has been merged into Deepin Screen Recorder. There is also a known issue with the clipboard functionality. There is a patched version in the aur AUR
- Escrotum — Screen capture using python and gtk3, inspired by scrot.
- Flameshot — Qt5 based software for interactive screenshot taking. Select the desired area, draw with different tools and enjoy the customization capabilities.
- GNOME Screenshot — Screenshot tool for the GNOME desktop.
- grim — Grab images from a Wayland compositor.
- gscreenshot — Simple GTK screenshot utility with delays, selection, and copy-to-clipboard functionality.
- imgur-screenshot — Take screenshot selection, upload to imgur. + more cool things
- ksnip — Ksnip is a Qt based cross-platform screenshot tool that provides many annotation features for your screenshots.
- Lightscreen — Simple tool to automate the tedious process of saving and cataloging screenshots, it operates as a hidden background process that is invoked with one (or multiple) hotkeys and then saves a screenshot file to disk according to the user's preferences.
- http://lightscreen.com.ar || AUR
- LXQt Screenshot — Screenshot tool for LXQt. Run with
- maim — Simple command line utility that takes screenshots. It is meant to replace scrot and performs better than scrot in many ways.
- MATE Screenshot — Screenshot tool for the MATE desktop.
- Pantheon Screenshot — Screenshot tool designed for elementary OS.
- ScreenCloud — Take a screenshot of the entire screen or to select an area and then uploading the screenshot to imgur+auth. has plugins and system tray.
- http://screencloud.net/ || AUR
- ScreenGrab — Cross-platform application designed to quickly take screenshots (Qt).
- Scrot — Simple command-line screenshot utility for X.
- Shotgun — Minimal X screenshot utility written in Rust. According to the author it is twice as fast as maim.
- Shutter — Rich screenshot and editing program. Supports delay.
- http://shutter-project.org/ || AUR
- Spectacle — KDE application for taking screenshots. It is capable of capturing images of the whole desktop, a single window, a section of a window, a selected rectangular region or a freehand region. Part of .
- Xfce4 Screenshooter — Application and Xfce4 panel plugin to take screenshots about the entire screen, the active window or a selected region. Part of .
- xwd — X Window System image dumping utility
Take a screenshot of the root window:
$ xwd -root -out screenshot.xwd
importcan also be used with
enables taking screenshots from the CLI and offers features such as a user-definable time delay. Unless instructed otherwise, it saves the file in the current working directory.
$ scrot -t 20 -d 5
The above command saves a dated .png file, along with a thumbnail (20% of original), for Web posting. It provides a 5 second delay before capturing in this instance.
You can also use standard date and time formatting when saving to a file. e.g.,
$ scrot ~/screenshots/%Y-%m-%d-%T-screenshot.png
saves the screenshot in a filename with the current year, month, date, hours, minutes, and seconds to a folder in your home directory called "screenshots"
See .for more information. You can simply automate the file to uploaded like so
scrot -sdoes not work properly when running via window manager's keyboard shortcut, this can be worked around by prepending scrot invocation with a short pause
sleep 0.2; scrot -s.
AUR screen capture using PyGTK, inspired by scrot
Created because scrot has glitches when selection mode is used with refreshing windows.
Because the command line interface its almost the same as scrot, can be used as a replacement of it.
is aimed to be an improved scrot.
Takes screenshots of your desktop using slop for regions. It is meant to overcome shortcomings of scrot.
To select a portion of the screen and store it on the clipboard,can be used:
$ maim -s -u | xclip -selection clipboard -t image/png -i
Desktop environment specific
If you use KDE, you might want to use
Spectacle is provided by thepackage.
If you use Xfce you can install and then add a keyboard binding:
Xfce Menu > Settings > Keyboard > Application Shortcuts
If you want to skip the Screenshot prompt, type
$ xfce4-screenshooter -h in terminal for the options.
GNOME users can press
PrintScreen or Apps > Accessories > Take Screenshot. You may need to install .
The default installation of Cinnamon does not provide a screenshot utility. Installing will enable screenshots through the Menu > Accessories > Screenshot or by pressing
Other desktop environments or window managers
$ import -window root ~/Pictures/$(date '+%Y%m%d-%H%M%S').png
import is part of the package. Adding the above command to the
PrintScreen key to Compiz allows to take the screenshot to the Pictures folder according to date and time.
Notice that the
rc.xml file in Openbox does not understand commas; so, in order to bind that command to the
PrintScreen key in Openbox, you need to add the following to the keyboard section of your
<!-- Screenshot --> <keybind key="Print"> <action name="Execute"> <command>sh -c "import -window root ~/Pictures/$(date '+%Y%m%d-%H%M%S').png"</command> </action> </keybind>
Packages including a screenshot utility
You also can take screenshots with GIMP (File > Create > Screenshot...).
provides a binary
imlib2_grab to take screenshots. To take a screenshot of the full screen, type:
$ imlib2_grab screenshot.png
Screencast utilities allow you to create a video of your desktop or individual windows.
- Byzanz — Simple screencast tool that produces GIF animations.
- Deepin Screen Recorder — Screen recorder application for Deepin desktop.
- FFcast — FFmpeg-based screencast tool written in Bash.
- Green Recorder — Simple yet functional desktop recorder for Linux systems.
- Kazam — Screencasting program with design in mind. Handles multiscreen setups.
- https://launchpad.net/kazam || AUR
- OBS — Video recording and live streaming application.
- https://obsproject.com/ ||
- AUR – plugin for GNOME screencast feature, supports Wayland.
- AUR – plugin that uses Desktop portal for Wayland & X11 screencasting
- AUR – OBS with Wayland patches
- Peek — Simple screencast tool that produces GIF, APNG, WebM or MP4 animations.
- RecApp — User friendly screencaster written in GTK. Using free GStreamer modules and not depend on FFmpeg.
- RecordItNow — Plugin based desktop recorder for KDE.
- RecordMyDesktop — Easy to use utility that records your desktop into the ogg format with a CLI, GTK or Qt interface. (inactive development)
- http://recordmydesktop.sourceforge.net/ || CLI: , GTK: AUR, Qt: AUR
- screencast — Command line interface to record an X11 desktop using FFmpeg, having support for offline recording and live streaming.
- Screencast — Simple screencast recorder designed for elementary OS.
- SimpleScreenRecorder — Feature-rich screen recorder written in C++/Qt5 that supports X11 and OpenGL.
- VokoScreen — Simple screencast GUI tool using GStreamer.
- XVidCap — Application used for recording a screencast or digital recording of an X Window System screen output with an audio narration.
Capturing the screen can be done usingor AUR for screenshots and (or AUR) for video; AUR is an plugin that allows you to screen capture on wlroots-based compositors. Optionally, can be used to select the part of the screen to capture.
Take a screenshot of the whole screen:
$ grim screenshot.png
Take a screenshot of current window:
$ grim -g "$(swaymsg -t get_tree | jq -r '.. | select(.focused?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"')" screenshot.png
Take a screenshot of a part of the screen:
$ grim -g "$(slurp)" screenshot.png
Take a screenshot of a part of the screen and put the output into the clipboard using:
$ grim -g "$(slurp)" - | wl-copy
Capture a video of the whole screen:
$ wf-recorder -o recording.mp4
Capture a video of a part of the screen:
$ wf-recorder -g "$(slurp)"
- slurpshot is an interactive screenshot taking script using .
- To use a post-capture screenshot editing and drawing tool such as
grim -g "$(slurp)" - | swappy -f -AUR:
Via GNOME screencast
AUR, AUR and AUR support screen recording on Wayland using GNOME screencast feature.
Via a virtual webcam video feed
WfRecorder, but outputs a blank screen.
v4l2loopback kernel module with the following parameters:
# modprobe v4l2loopback exclusive_caps=1 card_label=WfRecorder
Verify that a new virtual video device
WfRecorder has been created:
$ v4l2-ctl --list-devices
... WfRecorder (platform:v4l2loopback-000): /dev/video2 ...
Start recording the screen with
wf-recorder and feed the output to the new virtual video device
WfRecorder created by
$ wf-recorder --muxer=v4l2 --codec=rawvideo --file=/dev/video2 -x yuv420p
yuv420p colour space is required for the video output to be compatible with Zoom .
You can now select the above virtual video device as your "webcam" in video calling/video conferencing applications (the device is called
WfRecorder). You can use
ffplay (part of ), , or
gst-launch (part of ) to verify that the virtual video device indeed outputs your screenshare:
$ ffplay /dev/video2
$ mpv av://v4l2:/dev/video2
$ gst-launch-1.0 -v v4l2src device=/dev/video2 ! glimagesink
Sharing individual applications
As explained above,
wf-recorder is able to record only a portion of the screen by first selecting a region with . To use this functionality for sharing a specific region/application window through a virtual video device, start recording the screen with the following modified command:
$ wf-recorder -g $(slurp) --muxer=v4l2 --codec=rawvideo --file=/dev/video2 -x yuv420p
After selecting a region of the screen, you will be able to access the video feed through the vitual video device
/dev/video2 as above.
Via the WebRTC protocol
Set the following environment variables before starting your Wayland session:
export XDG_SESSION_TYPE=wayland export XDG_CURRENT_DESKTOP=sway
XDG_CURRENT_DESKTOPneeds to be set to
swayfor to run .
Enter the URL
chrome://flags/#enable-webrtc-pipewire-capturer into a Chromium tab and enable
WebRTC PipeWire support.
Chromium (and Firefox if installed from Mozilla's getUserMedia / getDisplayMedia Test Page.AUR) should now be able to access the screenshare. You can verify this through
It is not possible to select the output you want to share "on the fly" . However, it is possible to choose such output globally by passing a flag to
xdg-desktop-portal-wlr . For example, to share output
xdg-desktop-portal-wlr.service as follows:
[Unit] Description=Portal service (wlroots implementation) [Service] Type=dbus BusName=org.freedesktop.impl.portal.desktop.wlr ExecStart=@libexecdir@/xdg-desktop-portal-wlr --output=eDP-1 Restart=on-failure
Make sure to kill previous instances of
xdg-desktop-portal for the above change to enter into effect.
Capture with ANSI codes
You can use the
script and from that moment, all the output is going to be saved to the
typescript file, including the ANSI codes.
Once you are done, just run
exit and the
typescript would ready. The resulting file can be converted to HTML using the AUR package, from the AUR.
To convert the
typescript file to
typescript.html, do the following:
$ ansi2html --bg=dark < typescript > typescript.html
Actually, some commands can be piped directly to ansi2html:
$ ls --color|ansi2html --bg=dark >output.html
That does not work on every single case, so in those cases, using
script is mandatory.
Install a framebuffer and use or to take a screenshot.
If you merely want to capture the text in the console and not an actual image, you can use
setterm, which is part of the package. The following command will dump the textual contents of virtual console 1 to a file
screen.dump in the current directory:
# setterm -dump 1 -file screen.dump
Root permission is needed because the contents of
/dev/vcs1 need to be read.