ScreenShot+Record Desktop

UUID: ScreenShot+RecordDesktop@tech71
Last edited:
2 days ago 2019-10-19, 17:00 UTC
Last commit: [7c2233d6] New Italian translations (#2634)

Take A Snapshot Or Record Your Desktop (recording requires the packages ffmpeg, xdotool & x11-utils to be installed)



Screenshot & Record Desktop


To use this applets recording functionality you must have the following packages installed.

  • ffmpeg
  • xdotool
  • x11-utils

To install in Linux Mint open a terminal (Ctrl-Alt-T) and enter the command apt install ffmpeg xdotool x11-utils

Log In To Comment!


BRENTGAMEZ-1 month ago
I like it but I do wish there was a way to record the desktop sounds and mic audio separate cause sometimes I want to record my desktop with sound but no mic audio included, Also if there was a way to change the default save location or it be able to ask you were you want the file to save to after the screenshots or recordings are done, that would be grand.
Dragoş-2 months ago
Until (and if) the author decides to improve this applet, I've taken upon myself to make a few changes which have been repeatedly asked here, namely 'save to clipboard' and 'allow custom paths for saving'. Disclaimer: I'm no programmer, and although the changes work for me (on Mint 19.2 beta) you may have a different experience. Please exercise caution if you decide to use the modified file! Also please note there are a few places where you would have to enter your own preferred info (save paths, image prefix/suffix, delay time) - those have been clearly marked in the beginning of the file. Special note: all spaces, parenthesis and other special characters need to be escaped by double-backslash (see the prefix example). Having said that, here's the new contents of applet.js that should replace the original at /home/<username>/.local/share/cinnamon/applets/ScreenShot+RecordDesktop@tech71 (make a backup copy of the original first !!!): //=============================================================== //ScreenShot+Record Applet By Infektedpc // Modded by Drugwash 2019.08.02 const Applet = imports.ui.applet; const Main = imports.ui.main; const PopupMenu = imports.ui.popupMenu; const Util = imports.misc.util; const GLib =; const UUID = 'ScreenShot+RecordDesktop@tech71'; const Gettext = imports.gettext; // The constant values below can be modified by the user const UImgPath = '/media/<username>/Data/Downloads/Pictures/Screenshots'; // destination path for images (escape any spaces, paranthesis etc in your path) const UVidPath = '/media/<username>/Data/Downloads/video/screencast'; // destination path for videos (escape any spaces, paranthesis etc in your path) const UImgPre = 'Screenshot\\ from\\ '; // Image filenames prefix (note the spaces escaped by double-backslashes!) const UImgSuf = ''; // Image filenames suffix (escape any spaces, paranthesis etc) const UDel = '5'; // User-defined delay (in seconds) for whole screen screenshot // No more user modifications after this point (unless you know what you're doing!) Gettext.bindtextdomain(UUID, GLib.get_home_dir() + "/.local/share/locale") function _(str) { return Gettext.dgettext(UUID, str); } function ConfirmDialog(){ this._init(); } function MyApplet(orientation, panelHeight, instanceId) { this._init(orientation, panelHeight, instanceId); } function SetSSpath(params) { var d = new Date(); var df = d.getFullYear() + "-" + ("0"+(d.getMonth()+1)).slice(-2) + "-" + ("0" + d.getDate()).slice(-2) + "\\ " + ("0" + d.getHours()).slice(-2) + "-" + ("0" + d.getMinutes()).slice(-2) + "-" + ("0" + d.getSeconds()).slice(-2); var imgpath=UImgPath + "/" + UImgPre + df + UImgSuf + ".png"; // global.log("Format=" + df + "\tPath=" + imgpath); Main.Util.spawnCommandLine("gnome-screenshot " + " " + params + " -f " + imgpath); } MyApplet.prototype = { __proto__: Applet.IconApplet.prototype, defineScreenShotDefault: function () { //Advanced Screenshot - opens gnome-screenshot"Interactive ScreenShot"), function(event) { SetSSpath("--interactive"); }); }, defineScreenShotMenuItemC: function () { this.screenshotItemC = new PopupMenu.PopupSubMenuMenuItem(_("Copy to Clipboard"));"Current Window"), function(actor, event) { SetSSpath("-c -w --delay=1"); });"Selected Area"), function(actor, event) { SetSSpath("-c -a"); });"Whole Screen"), function(actor, event) { SetSSpath("-c --delay=1"); });"Whole Screen (delayed)"), function(actor, event) { SetSSpath("-c --delay=" + UDel); }); }, defineScreenShotMenuItemS: function () { this.screenshotItemS = new PopupMenu.PopupSubMenuMenuItem(_("Save to Disk"));"Current Window"), function(actor, event) { SetSSpath("-w --delay=1"); });"Selected Area"), function(actor, event) { SetSSpath("-a"); });"Whole Screen"), function(actor, event) { SetSSpath("--delay=1"); });"Whole Screen (delayed)"), function(actor, event) { SetSSpath("--delay=" + UDel); });;; PopupMenu.PopupSeparatorMenuItem()); }, defineRecordMenuItem: function () { this.recordItem = new PopupMenu.PopupSubMenuMenuItem(_("Record Screencast")); var self = this; //Start Recording With Audio"Record Desktop With Audio"), function(actor, event) { self.set_applet_icon_symbolic_name("media-record"); Main.Util.spawnCommandLine("bash " + GLib.get_home_dir() + "/.local/share/cinnamon/applets/" + UUID + "/"); Main.Util.spawnCommandLine("notify-send --icon=gtk-add '" + _("Recording") + "' '" + _("With-Audio") + "'"); }); //Start Recording No Audio"Record Desktop Without Audio"), function(actor, event) { self.set_applet_icon_symbolic_name("media-record"); Main.Util.spawnCommandLine("bash " + GLib.get_home_dir() + "/.local/share/cinnamon/applets/" + UUID + "/"); Main.Util.spawnCommandLine("notify-send --icon=gtk-add '" + _("Recording") + "' '" + _("No-Audio") + "'"); }); //Start Recording With Audio"Record Current Window With Audio"), function(actor, event) { self.set_applet_icon_symbolic_name("media-record"); Main.Util.spawnCommandLine("bash " + GLib.get_home_dir() + "/.local/share/cinnamon/applets/" + UUID + "/"); Main.Util.spawnCommandLine("notify-send --icon=gtk-add '" + _("Recording") + "' '" + _("With-Audio") + "'"); }); //Start Recording No Audio"Record Current Window Without Audio"), function(actor, event) { self.set_applet_icon_symbolic_name("media-record"); Main.Util.spawnCommandLine("bash " + GLib.get_home_dir() + "/.local/share/cinnamon/applets/" + UUID + "/"); Main.Util.spawnCommandLine("notify-send --icon=gtk-add '" + _("Recording") + "' '" + _("No-Audio") + "'"); }); //Stop Recording"Stop Recording"), function(actor, event) { self.set_applet_icon_symbolic_name("camera-photo-symbolic"); Main.Util.spawnCommandLine("killall -SIGTERM"); Main.Util.spawnCommandLine("killall -SIGTERM"); Main.Util.spawnCommandLine("killall -SIGTERM ffmpeg"); Main.Util.spawnCommandLine("notify-send --icon=gtk-add '" + _("Recording-Stopped") + "'"); Main.Util.spawnCommandLine("notify-send --icon=gtk-add '" + _("Recording-Finished") + "'"); });; PopupMenu.PopupSeparatorMenuItem()); }, _init: function(orientation, panelHeight, instanceId) {, orientation, panelHeight, instanceId); try { this.set_applet_icon_symbolic_name("camera-photo-symbolic"); this.set_applet_tooltip(_("Take A Snapshot or Record Your Desktop")); this.menuManager = new PopupMenu.PopupMenuManager(this); = new Applet.AppletPopupMenu(this, orientation); this.menuManager.addMenu(; this._contentSection = new PopupMenu.PopupMenuSection();; this.defineScreenShotDefault(); this.defineScreenShotMenuItemC(); this.defineScreenShotMenuItemS(); //Record My Desktop - Dropdown Menu this.defineRecordMenuItem(); //Open Screenshot Pictures Folder"Open Pictures Folder"), function(actor, event) { // For the Pictures user folder Main.Util.spawn_async(["xdg-open", UImgPath], null); }); //Open Recorded Video Folder"Open Videos Folder"), function(actor, event) { // For the Videos user folder Main.Util.spawn_async(["xdg-open", UVidPath], null); }); // Doesn't work (yet)'open-state-changed', Lang.bind(this, function(){ popupMenuExpander.setSubmenuShown(true); })); } catch (e) { global.logError(e); } }, on_applet_clicked: function(event) {; }, }; function main(metadata, orientation, panelHeight, instanceId) { let myApplet = new MyApplet(orientation, panelHeight, instanceId); return myApplet; } //=============================================================== That's it, hope it works for you but don't blame me if it doesn't. :-)
Inoro-5 months ago
Would be way more useful with the ability to change save location, at the moment this is not particularly useful.
ChooChooAl-8 months ago
Are there shortcuts to do selected area or window without having to click the applet icon on the panel? I want to capture another window that closes as soon as I click anywhere. I currently have to capture the whole screen and then edit it in GIMP or such. Yes, save location and filename would be a great option.
Hansen-9 months ago
It would be nice if it would let me use a custom save path and save the image to my clipboard so I can paste it into another application too.
Knezev-1 year ago
I noticed only one problem, around the sound, it always takes my sound from the microphone, Record Current Window With Audio - it takes a sound from my microphone, not with window.
MarcoB-0049-1 year ago
EU/DE: Sehr gute Arbeit, keine Frage! Eine Option zum Ändern des Standardpfads für die Bildspeicherung, z.B. Bilder/ein Unterordner, würde das Applet noch komfortabler gestalten. ;) EU-brexit/UK: Very good work, no question! An option to change the default path for image storage, e.g. images/subfolders, would make the applet even more comfortable. ;)
Knezev-1 year ago
Works great :), although I'm a little burden on the computer when recording. Add if you want the option of the screen resolution 720p and 480p and other formats eg mp4,3gp...
Jano9055-1 year ago
An error occurred during the installation of ScreenShot+RecordDesktop@tech71. Please report this incident to its developer. Detaily: [Errno 13] Prístup odmietnutý: '/home/*****/.local/share/cinnamon/applets/ScreenShot+RecordDesktop@tech71/applet.js'
Steve Ebey
Steve Ebey-1 year ago
Keyboard shortcuts to start and stop screen recorder, so I do not have to edit recording and remove the popup of my stopping the recording.
2dxb-1 year ago
"Record Desktop" does not work.
©TriMoon™-1 year ago
Could you add options to configure where to save the screenshots and videos?
Seth Bergman
Seth Bergman-1 year ago
Very nice work!
Christopher .Karkarkar
Great applet
Murat Çileli
Murat Çileli-2 years ago
Bora Ön
Bora Ön-2 years ago
Good shortcut.