12

After a recent update of my LMDE, the gnome-screenshot tool started making an annoying camera shutter noise every time a screenshot is taken. This is both annoying and startling (especially if you happen to be wearing earphones when taking the screenshot).

I checked the man page of gnome-screenshot` but there were no relevant options. How can I take silent screenshots?

  • 3
    cameras have to make that sound so you don't illegally make upskirt photos with them. gnome devs are just complying with the law. – cas Oct 4 '13 at 1:04
  • @CraigSanders after all, Gnome is designed for tablets right? – terdon Oct 4 '13 at 1:07
  • some very bad people have been known to use tablets. – cas Oct 4 '13 at 1:10
  • That is total nonsense. Since when did video cams have a shutter speed? All top cameras also have a silent mode (including flash). – HörmannHH Apr 23 '17 at 15:16
11

The other solution1 has some inconveniences:
- it requires root access
- it's a global change so it affects all users
- upgrading sound-theme-freedesktop restores the file

For the record, the proper way to do it (and avoid all of the above) is via a custom sound theme that disables2 the default sound file used by gnome-screenshot (the name of the file is screen-capture.oga corresponding to the screen-capture event - hardcoded in gnome-settings-daemon and gnome-screenshot).
Create the custom theme directory:

mkdir -p ~/.local/share/sounds/__custom

create the .disabled file:

touch ~/.local/share/sounds/__custom/screen-capture.disabled

add the index.theme:

cat << 'EOF' > ~/.local/share/sounds/__custom/index.theme
[Sound Theme]
Name=__custom
Inherits=freedesktop
Directories=.
EOF

set __custom as default theme name:

gsettings set org.gnome.desktop.sound theme-name '__custom'

Or, if you're using Cinnamon:

gsettings set org.cinnamon.desktop.sound theme-name '__custom'

and enjoy the silence...


1: Yeah, I know it's actually my solution but at the time of posting it on the arch forums I was just being lazy...

2: A pseudo file format ".disabled" is used for disabling sounds in a theme that inherits from another theme. If the sound lookup algorithms detects a file with the suffix ".disabled" it shall immediately terminate the lookup logic and consider the sound not available. All files with ".disabled" suffix should be of length zero.

  • Doesn't work on Ubuntu Mate 19.04 – Ploni May 24 at 19:36
12

I found the solution here. The sound played is /usr/share/sounds/freedesktop/stereo/camera-shutter.oga. So simply renaming that file stops it from being played:

sudo mv /usr/share/sounds/freedesktop/stereo/camera-shutter.oga \
    /usr/share/sounds/freedesktop/stereo/damn-camera-shutter.oga

That's it, next time you take a screenshot, it will be done in silence.

  • There isn't a tool for this? – slm Oct 3 '13 at 1:47
  • @slm not that I could find. The other suggestion on the linked forum post was to edit the code and recompile. The edit was minimal but I'd rather not get into that. – terdon Oct 3 '13 at 1:52
  • 1
    This appears to be the only option. WTF? – slm Oct 3 '13 at 13:15
  • Thank god for you, sir. I hate hate hate that sound and hate even more there is no option anywhere to disable it. I would be lost without this answer. – lsh Dec 16 '14 at 15:51
  • 1
    Strangely doesn't work on ubuntu 16 – Wboy May 10 '17 at 5:45
2

Renaming the shutter sound file is OK, but probably won't work if you don't have root access to the system. Here's an alternative approach:

#!/bin/bash
volume=$(amixer sget Master | awk -F '[],[,%]'  '/%/{print $2 }')
amixer sset Master 0
gnome-screenshot
amixer sset Master "$volume"%

What this script does is remember volume percentage, set volume temporarily to 0, take screenshot, and once gnome-screenshot process exits, the volume is restored back to original percentage.

The advantage of this approach is that it is flexible and can be customized to suit your needs. This script can be bound to PrntScr button, or to custom shortcut.

Tested on Ubuntu 16.04 LTS

  • Should I add this script to the .bashrc? Where is it supposed to be added? How can I bind it to my custom shortcut of Super key + Shift + s to achieve screenshot of a dragged area on the screen. – Nikhil Jan 22 '18 at 19:47
  • 1
    @Nikhil Add this to custom shortcuts in GUI settings, depending on the desktop environment you use. The .bashrc is for shell settings only, GUI stuff doesn't belong there. – Sergiy Kolodyazhnyy Jan 22 '18 at 20:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.