Gnome Shell 40 and screen recorder

I have a simple drawing tool in a very early stage, and so I thought it might be a good idea to do a screen recording of its functionality – to show to others, and to help me remember myself.

Google told me that CTRL ALT SHIFT R should launch a Gnome recorder. But for me nothing happens. Has this been removed from Gnome 40? I opened some of the gnome settings tools and indeed saw somewhere the “CTRL ALT SHIFT R” sequence. May it not work with wayland?

I think it should be possible – some decades ago kids begun posting smartphone pictures instead of plain textual error messages, and since a few years they post big video files now to report simplest issues. So making a screen video can be not that difficult.

In my laptop, (old indeed), pressing Ctrl Alt Shift R doesn’t work. So I changed in settings it to Ctrl Shift R.
But I’m on GNOME 3.38, so YMMV.
If you want a screen recorder, OBS has Wayland support and also Kooha GitHub - SeaDve/Kooha: Elegantly record your screen
:slight_smile:

1 Like

For the built-in screen recording in Wayland, I believe you need to have gst-plugins-base and pipewire installed, and pipewire needs to be running. If it’s working, you will see a red circle icon in the status indicator area after pressing the record keys. The file will be placed automatically in the ~/Videos folder.

1 Like

Thanks for your replies.

I just started pipewire and also changed key combination to “Ctrl Shift R”, but even after a reboot it still does not work.

Google told me already about Kooha yesterday, I may try that later.

[EDIT]

And it seems to be not a wayland problem only, restarting the Gnome shell in XORG mode (GDMSESSION=gnome-xorg) does not help. Maybe a Gnome40 issue, unfortunately I never tried with older Gnome. But there where issues before, see https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1901391

Maybe check the user session logs for an error message? Or use the pw-mon tool to verify if there is activity in pipewire?

1 Like
$ journalct

Jul 07 15:06:29 nuc dhcpcd[308]: wlp3s0: refresh in 86400 seconds
Jul 07 15:09:09 nuc gnome-shell[852]: libinput error: event3  - HOLTEK USB Wireless Device: client bug: event processing lagging behind by 35ms, your system is too slow
Jul 07 15:13:07 nuc dbus-daemon[794]: [session uid=1001 pid=794] Activating service name='org.gnome.Shell.Screencast' requested by ':1.48' (uid=1001 pid=1008 comm="/usr/libexec/gsd-media-keys ")
Jul 07 15:13:07 nuc dbus-daemon[794]: [session uid=1001 pid=794] Successfully activated service 'org.gnome.Shell.Screencast'
Jul 07 15:13:07 nuc gjs[6945]: JS ERROR: Gio.DBusError: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.Mutter.ScreenCast was not provided by any .service files
                               _proxyInvoker@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:122:46
                               _makeProxyMethod/<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:147:30
                               ScreencastAsync@resource:///org/gnome/Shell/Screencast/js/screencastService.js:350:43
                               _handleMethodCall@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:354:35
                               _wrapJSObject/<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:387:34
                               run@resource:///org/gnome/Shell/Screencast/js/dbusService.js:177:20
                               main@resource:///org/gnome/Shell/Screencast/js/main.js:10:13
                               run@resource:///org/gnome/gjs/modules/script/package.js:206:19
                               start@resource:///org/gnome/gjs/modules/script/package.js:190:8
                               @/usr/share/gnome-shell/org.gnome.Shell.Screencast:1:17


But Google has no good idea about the source of that error.

$ emerge -pv mutter

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] x11-wm/mutter-40.1-r4:0/8::gentoo  USE="introspection systemd udev wayland -elogind -screencast -sysprof -test" INPUT_DEVICES="-wacom" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

So I assume that I have to reemerge mother with -screencast use flag enabled :slight_smile:

Well now I get at least empty files in Videos directory.

Jul 07 16:19:26 nuc dbus-daemon[792]: [session uid=1001 pid=792] Activating service name='org.gnome.Shell.Screencast' requested by ':1.56' (uid=1001 pid=1007 comm="/usr/libexec/gsd-media-keys ")
Jul 07 16:19:26 nuc dbus-daemon[792]: [session uid=1001 pid=792] Successfully activated service 'org.gnome.Shell.Screencast'
Jul 07 16:19:43 nuc systemd[1]: systemd-localed.service: Deactivated successfully.
Jul 07 16:19:43 nuc systemd[1]: systemd-hostnamed.service: Deactivated successfully.
Jul 07 16:19:44 nuc tracker-store[1094]: OK
Jul 07 16:19:44 nuc systemd[778]: tracker-store.service: Deactivated successfully.
Jul 07 16:20:04 nuc geoclue[574]: Service not used for 60 seconds. Shutting down..
Jul 07 16:20:04 nuc systemd[1]: geoclue.service: Deactivated successfully.
Jul 07 16:20:14 nuc dbus-daemon[792]: [session uid=1001 pid=792] Activating via systemd: service name='org.gtk.vfs.Metadata' unit='gvfs-metadata.service' requested by ':1.19' (uid=1001 pid=850 comm="/>
Jul 07 16:20:14 nuc systemd[778]: Starting Virtual filesystem metadata service...
Jul 07 16:20:14 nuc dbus-daemon[792]: [session uid=1001 pid=792] Successfully activated service 'org.gtk.vfs.Metadata'
Jul 07 16:20:14 nuc systemd[778]: Started Virtual filesystem metadata service.
Jul 07 16:20:55 nuc systemd[778]: Started Application launched by gnome-shell.
Jul 07 16:20:56 nuc rtkit-daemon[304]: Supervising 7 threads of 3 processes of 1 users.
Jul 07 16:20:56 nuc rtkit-daemon[304]: Supervising 7 threads of 3 processes of 1 users.
$ ls -lt Videos/
total 0
-rw-r--r-- 1 salewski salewski 0 Jul  7 16:19 'Screencast from 07-07-2021 04:19:26 PM.webm'
-rw-r--r-- 1 salewski salewski 0 Jul  7 16:10 'Screencast from 07-07-2021 04:10:33 PM.webm'

Firefox has also a screencast use flag, so I may reemerge it as well. But I can not imagine that firefox is really needed to enable screen recording.

Before I had started pipewire and rtkit-daemon already…

Correct.

Indeed it’s not.

What you do need is the right set of gstreamer1 plugins, which are provided by pipewire-gstreamer and gst-plugins-good (on Gentoo: with the right set of USE flags, which I cannot help with).

1 Like

I have not managed to get it working.

Last attempt was to enable ffmpeg useflag and recompile GTK and all related libs, but still I get only empty files.
All gst-plugins are available, journalctl and pw-mon show no error message.

Maybe a problem is my 4k screen size, I read about dual monitor problems for gnome screen cast.

Well maybe I will try Kooha or just make the video with my android smartphone from the screen :slight_smile:

was to enable ffmpeg useflag and recompile GTK and all related libs, but still I get only empty files.

GNOME Shell uses gstreamer for screencasting, not ffmpeg. And GTK is not involved at all here.

maybe I will try Kooha

Kooha just uses GNOME Shell’s screencasting capabilities, so if it doesn’t work with Ctrl+Shift+Alt+R then it won’t work with kooha (unless it’s a shortcut issue, though unlikely).

1 Like

Great hint, thanks.

Kooha seems to have trouble with Gnome 40 too, see

Fedora 34 / Gnome Kooha not working · Issue #72 · SeaDve/Kooha · GitHub

fixed in PipeWire 0.3.30

Have media-video/pipewire-0.3.29, so I will try updating.

It no longer use built-in one on the latest versions, although not yet on stable release.

The portal still uses the built-in mutter screencast API internally, it just adds some UI around it.

I’m aware of that. It is just that before, it uses the same exact service as ctrl+shift+alt+r. Atleast, using the portal allows more granular control to the pipeline, rather than just configuring the encoder.

Thanks for let us know. As I had no success even with latest pipewire version, I may indeed try your Kooha at some time, maybe in winter. Maybe Kooha gives some error messages instead just producing empty files.

Yesterday Google told me about one working way for Gnome with XSession:

ffmpeg -video_size 1024x768 -framerate 25 -f x11grab -i :0.0+100,200 output.mp4

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.