Ubuntu – How to execute Alt + F2 + r + Return (Gnome Shell Reset) through the Terminal

bashcommand linegnome-shellshortcut-keys

I'm trying to automate the installation of a Gnome Tweaks extension (Dash to Panel) and, at the end, it requires me to restart the Gnome Shell through Alt + F2 + r + Return (I think that Gnome Tweaks requires it too). How would I do it through a bash script?

I've already tried it through a library called xdotool but it won't recognize the final Return (or KP_Enter = numpad return) for some reason.

xdotool key Alt+F2+r+Return 
# `xdotool key "Alt+F2+r" && xdotool key "Return"` won't work either

I've also tried commands like gnome-shell --replace or killall gnome-shell but they either kill gnome shell or give me back a bunch of frigtening warning messages on the terminal telling me that something might have been overwritten. If I try Ctrl + C on the terminal after that, then Gnome Shell is gone for good this time and I have to reset my PC.

What is the proper way of doing this?

The warning messages:

$ gnome-shell -r

current session already has an ibus-daemon.
GNOME Shell-Message: 15:53:28.012: Telepathy is not available, chat integration will be disabled.
Gjs-Message: 15:53:28.122: JS WARNING: [/usr/share/gnome-shell/extensions/ubuntu-dock@ubuntu.com/appIcons.js 1028]: unreachable code after return statement

(gnome-shell:4088): Gjs-CRITICAL **: 15:53:28.145: Object .Gjs_DashToPanel-PreviewMenu (0x559054ff2650), has been already finalized. Impossible to set any property to it.
== Stack trace for context 0x5590534d94c0 ==
#0 0x7ffe2cb772c0 I   resource:///org/gnome/gjs/modules/_legacy.js:83 (0x7f1b084b5de0 @ 87)
#1 0x5590538aecd8 i   /home/philippe/.local/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/taskbar.js:366 (0x7f1ae4fd0560 @ 93)
#2 0x7ffe2cb77ea0 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f1b084b5de0 @ 71)
#3 0x5590538aec38 i   /home/philippe/.local/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/panel.js:293 (0x7f1ae4fcb450 @ 410)
#4 0x7ffe2cb78a80 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f1b084b5de0 @ 71)
#5 0x5590538aebb8 i   /home/philippe/.local/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/panelManager.js:212 (0x7f1ae4fa8de0 @ 69)
#6 0x7ffe2cb79780 b   self-hosted:251 (0x7f1b084c4ab0 @ 223)
#7 0x5590538aeb28 i   /home/philippe/.local/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/panelManager.js:199 (0x7f1ae4fa8d58 @ 72)
#8 0x7ffe2cb7a550 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f1b084b5de0 @ 71)
#9 0x5590538aea68 i   /home/philippe/.local/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/extension.js:109 (0x7f1ae4fa82b8 @ 12)
#10 0x5590538ae9b0 i   /home/philippe/.local/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/extension.js:79 (0x7f1ae4fa81a8 @ 267)
#11 0x5590538ae938 i   /home/philippe/.local/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/extension.js:55 (0x7f1ae4fa8120 @ 48)
#12 0x7ffe2cb7b860 b   resource:///org/gnome/gjs/modules/signals.js:128 (0x7f1b084d2230 @ 386)
#13 0x5590538ae888 i   resource:///org/gnome/shell/ui/extensionSystem.js:137 (0x7f1b08259340 @ 554)
#14 0x5590538ae7f0 i   resource:///org/gnome/shell/ui/extensionSystem.js:181 (0x7f1b08259450 @ 241)
#15 0x5590538ae770 i   resource:///org/gnome/shell/ui/extensionSystem.js:328 (0x7f1b08259b38 @ 13)
#16 0x7ffe2cb7cbf0 b   resource:///org/gnome/gjs/modules/signals.js:128 (0x7f1b084d2230 @ 386)
#17 0x5590538ae690 i   resource:///org/gnome/shell/misc/extensionUtils.js:191 (0x7f1b0825e2b8 @ 459)
#18 0x7ffe2cb7d860 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f1b084b5de0 @ 71)
#19 0x5590538ae600 i   resource:///org/gnome/shell/misc/extensionUtils.js:197 (0x7f1b0825e3c8 @ 28)
#20 0x7ffe2cb7e560 b   resource:///org/gnome/shell/misc/fileUtils.js:27 (0x7f1b0825e4d8 @ 323)
#21 0x5590538ae570 i   resource:///org/gnome/shell/misc/extensionUtils.js:196 (0x7f1b0825e340 @ 72)
#22 0x7ffe2cb7f1c0 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f1b084b5de0 @ 71)
#23 0x5590538ae4e0 i   resource:///org/gnome/shell/ui/extensionSystem.js:330 (0x7f1b08259ab0 @ 201)
#24 0x5590538ae460 i   resource:///org/gnome/shell/ui/extensionSystem.js:338 (0x7f1b08259bc0 @ 36)
#25 0x5590538ae3e0 i   resource:///org/gnome/shell/ui/extensionSystem.js:369 (0x7f1b08259de0 @ 67)
#26 0x5590538ae358 i   resource:///org/gnome/shell/ui/extensionSystem.js:377 (0x7f1b08259e68 @ 41)
#27 0x5590538ae2c8 i   resource:///org/gnome/shell/ui/main.js:229 (0x7f1b084da340 @ 1152)
#28 0x5590538ae240 i   resource:///org/gnome/shell/ui/main.js:133 (0x7f1b084da230 @ 237)
#29 0x5590538ae1c8 i   <main>:1 (0x7f1b08486b38 @ 48)

(gnome-shell:4088): Gjs-WARNING **: 15:53:28.384: Some code accessed the property 'getUniqueBusNameSync' on the module 'util'. That property was defined with 'let' or 'const' inside the module. This was previously supported, but is not correct according to the ES6 standard. Any symbols to be exported from a module must be defined with 'var'. The property access will work as previously for the time being, but please fix your code anyway.
Ubuntu AppIndicators-Message: 15:53:28.385: [AppIndicatorSupport-DEBUG] Registering StatusNotifierItem :1.93/StatusNotifierItem
Ubuntu AppIndicators-Message: 15:53:28.388: [AppIndicatorSupport-DEBUG] Registering StatusNotifierItem :1.89/org/ayatana/NotificationItem/software_update_available
Ubuntu AppIndicators-Message: 15:53:28.391: [AppIndicatorSupport-DEBUG] Registering StatusNotifierItem :1.89/org/ayatana/NotificationItem/livepatch
GNOME Shell-Message: 15:53:28.453: Error looking up permission: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.impl.portal.PermissionStore was not provided by any .service files

(gnome-shell:4088): Gjs-WARNING **: 15:53:35.464: Some code accessed the property 'refreshPropertyOnProxy' on the module 'util'. That property was defined with 'let' or 'const' inside the module. This was previously supported, but is not correct according to the ES6 standard. Any symbols to be exported from a module must be defined with 'var'. The property access will work as previously for the time being, but please fix your code anyway.

Best Answer

Insert some delay before sending Return:

xdotool key "Alt+F2+r" && sleep 0.5 && xdotool key "Return"