119

Are there any sort of configuration options for specifying the default save location for gnome-screenshot, or is this hard-coded into the source code?

It used to be ~/Desktop, which seems to have changed to ~/Pictures (in 12.04).

The only possible solution I've seen is about Setting the default name (as it includes time stamp information now instead of simply 'Screenshot#'), but that solution doesn't really seem ideal to me.

Also, this post suggested that the last save location is remembered the next time you take a screenshot, but in my experience, this doesn't seem to be the case. And in any case, following on from that, that entry in gconf-editor doesn't even seem to accurately reflect the last location, so more than likely an entry related to an older version of gnome-screenshot.

Table of contents:

15 Answers 15

148

For 12.04

Via GUI

  1. Install dconf-editor
  • From the command line, run the command sudo apt-get install dconf-editor

  • Or click here to install from the Ubuntu Software Center:

    Install via the software center

  1. Press Alt + F2 and type dconf-editor

  2. Go to org -> gnome -> gnome-screenshot

  3. At "auto-save-directory" type the desired directory in the following format: file:///home/user/Desktop/

    name: auto-save-directory, value: file:///full/path/

A tip for anyone who is using the configuration editor in unity: click on the arrow to the left the org text to expand it.

Via Terminal

Simply run this command, replacing the path with your preferred directory.

gsettings set org.gnome.gnome-screenshot auto-save-directory "file:///home/$USER/Downloads/"
| improve this answer | |
  • 2
    it works without using files:// in ubuntu 14.04. Clrl+L will tell you the location . '/home/userName/location' – diEcho Oct 30 '14 at 13:46
  • 11
    Be aware that Gnome 3.8 doesn't use gnome-screenshot when using keyboard commands. – Andy May 13 '16 at 8:15
  • 3
    Not files:// but file:// – Reinier Post Aug 23 '16 at 20:43
  • 11
    Terminal method should be listed first since it's simpler. – dinosaur Jan 12 '17 at 21:37
  • 5
    The Terminal gsettings method does not work on Ubuntu 18.04. There was no error or warning and screenshot still went to the default ~/Pictures/. dconf-edit doesn't work either! The auto-save-directory showed ~/Downloads/ but was ignored. All screenshots went to ~/Pictures/ – SYK Aug 14 '18 at 20:57
21

For 17.10 and later

Turns out it's not so straightforward while capturing a screenshot with the PrintScreen key in GNOME version 3.8 or later.

First you may try to set ~/Desktop (for example) as the autosave directory for gnome-screenshot following the steps below.

  1. Open dconf Editor.
  2. Navigate to /org/gnome/gnome-screenshot/auto-save-directory.
  3. Disable Use default value.
  4. Put file:///home/YOUR_USERNAME/Desktop in the Custom value box.

Alternatively, you may just run the following command in Terminal:

gsettings set org.gnome.gnome-screenshot auto-save-directory 'file:///home/YOUR_USERNAME/Desktop'

But even after doing this if you press PrintScreen, captured screenshots will be saved in ~\Pictures on GNOME 3.8 or later (see this bug report).
So as a workaround you may now add another custom keyboard shortcut for gnome-screenshot which will save captured screenshots to ~/Desktop. To do that follow the steps.

  1. Open Settings > Keyboard and scroll down to the bottom.
  2. Click on the + symbol. A box should pop up.
  3. Enter any name you like in the Name box.
  4. Enter gnome-screenshot in the Command box.
  5. Click on the Set Shortcut... button and set any keyboard combination which doesn't cause any conflict, for example Super+PrintScreen.

Then logout and login again. Now Super+PrintScreen should save the captured screenshot in ~/Desktop.

P.S. For convenience you may first change the shortcut for "Save a screenshot to Pictures" to something else like Super+PrintScreen or disable it completely and then assign PrintScreen to the custom shortcut you just created.


You can refine what type of screenshot you want by using following flags in the command box (gnome-screenshot <FLAGS>):

  • -a (for 'area') will let you select the area to take the screenshot of using your mouse;
  • -w (for 'window') will take a screenshot of the currently active window only (and not the whole screen);
    • -b will include window's border in the screenshot,
    • -B will not include the border,
  • -p (for 'pointer') will include the mouse pointer in the screenshot (won't have any effect with -a obviously);
  • -i (for 'interactive') will let you set the options in a poping-up dialog.

You can combine flags together: e.g., gnome-screenshot -wB will take a screenshot of currently active window without its border.

You can get the exhaustive list of available options/flags via man gnome-screenshot.

| improve this answer | |
  • 2
    +1 because I was looking for a fix. Although this is not a fix and possibly the only workaround because after checking the bug report, the gnome team does NOT want to fix this (Which it was fine in previous versions). I also did everything you mentioned so I will be either be doing your suggestion that works or moving to KDE (At least they offer options). – Luis Alvarado Nov 7 '17 at 0:29
  • 2
    If you want to emulate the "area screenshot" (where you draw a selection on your screen with your mouse), you should enter gnome-screenshot -a in the command box. As detailed in man gnome-screenshot, you can replace (or add to) -a with: -c to copy the image in clipboard (so you can Ctrl+V it), instead of a file; -w if you want to copy the current window; etc. – ebosi Oct 16 '18 at 11:46
  • Another related bug report: gitlab.gnome.org/GNOME/gnome-settings-daemon/issues/323 – Wildcard Nov 9 '19 at 6:54
17

For 12.04

It can be be configured in 12.04 for 'auto save' & when using gnome-screenshot itself, gnome-screenshot --interactive, where the last save directory is used

What does seem to always default to Pictures is from the keyboard bindings (bug or intended?

Earlier in 12.04 the screens from the keyboard bindings used auto-save, people complained & it was returned to interactive

Both settings for gnome-screenshot are in gsettings & dconf-editor

enter image description here

| improve this answer | |
  • Oh right. It does use that last save directory setting when using interactive, but introduces an additional dialog for what you want to grab - I guess this is the best I'll get. Thanks :-) – trent Mar 20 '12 at 22:13
  • 1
    How do you set the called argument ` --interactive` when pressing CTRL Print? – rubo77 Jan 4 '16 at 22:37
12

For 18.04

For those who wondering why is it still not working, this bug is considered as RESOLVED WONTFIX, here's the sauce.

For the workaround, you can install an extension for this. Just turn on the switch, and go to your Tweak Tool, head over the Extensions tab, and find Screenshot locations.

Tweak tool screenshot SS

Click over the gear icon, and place your desired place to save, prefixed with file:// as it's protocol to save.

Settings SS

This works too with symbolic link.

| improve this answer | |
  • 3
    Works for me on Ubuntu 18.04.4 LTS (bionic) – eldad-a Apr 17 at 1:57
6

For 18.04 and later

If the above answers do not work, Try this:

First disable the default screenshot shortcut from settings:

Disable default screenshot shortcut

Create a custom keyboard shortcut in the settings:

Name it gnome-screenshot, put the command as gnome-screenshot as well

Shortcut value : enter the key [Print Screen]

Create a custom shortcut:

Create a custom shortcut

Now enter into dconf-editor (Install it if you do not have it yet). Go to: org → gnome → gnome-screenshot → auto-save-directory: Change the auto save directory's custom value to the one you want.

Enter the custom path:

Enter the custom path

| improve this answer | |
3

For 18.04

Install the GNOME Shell extension Screenshot Locations by TimurKiyivinski. Kudos to him for packaging the changes that the GNOME-team developers didn't want to implement into an extension and thus making it really simple to work around the issue.

EDIT: You still need to change the default path using dconf editor, obviously.

| improve this answer | |
2

In 12.04 (haven't looked in previous versions of Ubuntu because I never faced this problem) you have to set the auto-save-directory-setting to the desired location where you want your screenshots to be stored. By doing so every time you take screenshot it will automatically land there. I also prefer to use ~/Desktop and you are also not prompted to specify a destination like before. The only thing that indicates that you have taken a screenshot is a short flash of the screen. However I would love to know how to get the prompt back because I sometimes like to store screenshots in other folders than the default one and it would be overkill to either change the settings or move the image every time.

| improve this answer | |
  • Where are you setting the auto-save-directory ? – fabricator4 Dec 12 '12 at 19:49
  • Look at @doug's comment above my answer. In the picture of the configuration editor in the section of gnome-screenshot the first setting is auto-save-directory. Just write there the location of the desired folder (Desktop for example) and you're ready to go. :) In his example it is set to "Documents". – rbaleksandar Dec 14 '12 at 16:50
2

For Ubuntu 13.10 (Saucy Salamander)

  • Install dconf-editor

  • Open it and go to: org → gnome → gnome-screenshot

  • At auto-save-directory type the desired directory in the following format: /home/user/Desktop/

P.S.: Do not put in this format file:///...

| improve this answer | |
  • 2
    Why is the "file:///..." format unacceptable? Just curious, I prefer the /home/user version better anyway. – Stratus3D Apr 23 '16 at 19:18
  • 1
    the file:/// format seems to work fine for me – Zoey Hewll Nov 19 '17 at 12:43
1

This answer is rather addition to pomsky's answer.

On Ubuntu 18.04 Bionic Beaver it is possible to use AltGr to change some default behaviour. For example, my current settings have:

  1. Print for gnome-screenshot command
  2. Shift+Print for gnome-screenshot -a
  3. Super+Print for gnome-screenshot -wB (no chance to redefine Alt+Print)

To set those I used AltGr in addition to shortcuts themselves. (Thanks for asking RichieHH)

Custom shortcuts in keyboard settings

Additionally, default commands become disabled.

Screenshot section in keyboard settings

And a little note. Obviously, there is no sense to change shortcuts for copying screenshots to clipboard.

| improve this answer | |
  • What has AltGr got to do with anything in your answer? – RichieHH Nov 30 '18 at 9:29
  • @RichieHH to set those shortcuts you I had to press AltGr as well (in addition to shortcut itself) to avoid making screenshots. – Maks_ym Nov 30 '18 at 12:47
  • @RichieHH Added to my original answer as well. Thanks – Maks_ym Nov 30 '18 at 12:53
  • I think this should be the accepted answer, but perhaps it should explain a bit better, that you have to keep pressing AltGr and then your desired combination, in order to replace the desired combination if it has been taken already, and that's how you can also replace the printscreen. – Ferenc Géczi Jun 19 at 9:38
1

Because the default screenshot application always stores the screenshots below $HOME/Pictures and there is no apparent way to reconfigure that directory I wrote a combination of systemd user units to monitor the directory $HOME/Pictures. Whenever something in that directory changes, all files named $HOME/Pictures/"Screenshot from"* are moved to the subdirectory $HOME/Pictures/Screenshots.

Here is what I did:

Create a file /etc/systemd/user/screenshot-mover.path:

[Unit]
Description=Screenshot Watcher
Documentation=man:systemd.path
AssertPathIsDirectory=%h/Pictures
AssertPathIsDirectory=%h/Pictures/Screenshots

[Path]
PathChanged=%h/Pictures

[Install]
WantedBy=default.target

Create a file /etc/systemd/user/screenshot-mover.service:

[Unit]
Description=Screenshot Mover
Documentation=man:systemd.service
AssertPathIsDirectory=%h/Pictures
AssertPathIsDirectory=%h/Pictures/Screenshots
ConditionPathExistsGlob=%h/Pictures/Screenshot\ from*

[Service]
Type=oneshot
WorkingDirectory=%h/Pictures
ExecStart=/bin/sh -c '/bin/mv -v -t Screenshots "Screenshot from"*'

Then, for every user who wants this mechanism, issue:

systemctl --user daemon-reload
systemctl --user enable --now screenshot-mover.path

Do not run these commands as root, but as your user.

What it does:

Whenever something in the path $HOME/Pictures changes, the unit screenshot-mover.service gets called and moves every file that matches $HOME/Pictures/"Screenshot from"* to the subdirectory $HOME/Pictures/Screenshots. I know it is a hack but this approach works for me since months and I just wanted to share it.

| improve this answer | |
0

You can set the default save directory of screenshots in CompizConfig Settings Manager.
Launch it, choose Screenshot under the Extras category. You can then choose the default directory you wish to use.

enter image description here

| improve this answer | |
  • Yeah, thanks - I do use this when wanting to grab a specific screen area. More interested about being able to set the path for gnome-screenshot. – trent Mar 21 '12 at 0:04
  • 1
    For a specific area you can press SHIFT and PrtSc. – thonixx Sep 21 '12 at 7:51
  • Strangely, this option did not work for me. – Gabriel Sep 22 '12 at 0:39
  • Unity is dead now. – secretAgent May 20 '19 at 16:44
0

If you can't/wan't install dconf-editor or any other software, simply open, or create if it doesn't exist, this file, with your preferred text editor:

~/.bash_aliases

Add this line, that create a permanent alias gss (you can choose another alias name):

alias gss='gsettings set org.gnome.gnome-screenshot auto-save-directory "$(echo $PWD)"'

then every time you need to save several screenshots in a specific and different path simply one a terminal in that path and execute:

gss

from now on every time you press the gnome-screenshot keyboard shortcut you will be prompted or you will check for the screenshot image file in that path.

| improve this answer | |
0

This answer is based on this answer

As I wanted to use custom shortcuts in addition to custom screenshots location, I wanted to do this manually in terminal.

(1) I have created gshort Bash function based on this answer. Of course, you can do it in Perl or manually, but I too lazy to issue all the commands manually whenever I want to create a new shortcut. … Anyway, if you use this function, you need to save it to file, source that file (source path/filename.sh).

(2) And then issue these commands:

# Disable these 6 default shortcuts
gsettings set org.gnome.settings-daemon.plugins.media-keys screenshot ''
gsettings set org.gnome.settings-daemon.plugins.media-keys screenshot-clip ''
gsettings set org.gnome.settings-daemon.plugins.media-keys window-screenshot ''
gsettings set org.gnome.settings-daemon.plugins.media-keys window-screenshot-clip ''
gsettings set org.gnome.settings-daemon.plugins.media-keys area-screenshot-clip ''
gsettings set org.gnome.settings-daemon.plugins.media-keys area-screenshot ''

# Create new custom shortcuts
gshort "Screenshot of area" 'gnome-screenshot -a' "<Shift>Print"
gshort "Screenshot clip of area" 'gnome-screenshot -a -c' "<Primary><Shift>Print"
gshort "Screenshot" 'gnome-screenshot' "Print"
gshort "Screenshot clip" 'gnome-screenshot -c' "<Primary>Print"
gshort "Screenshot clip of area" 'gnome-screenshot -a -c' "<Primary><Shift>Print"
gshort "Screenshot clip of window" 'gnome-screenshot -w -c' "<Primary><Alt>Print"

(3) Note that the syntax of gshort is gshort "Name" "command" "shortcut": - name can be anything you wish; - command can be any command you wish; - shortcut can be any keybord shortcut you wish.

(4) Here is the list of some control key names that you need to use in shortcut:

  • Ctrl : <Primary>;
  • Alt : <Alt>;
  • Shift : <Shift>;
  • Super/Win: <Super>;
| improve this answer | |
-2

On Elementary OS Juno which is based on Ubuntu 18.04, even after you remove all the screenshots tools like gnome-screenshot or screenshot-tool, you can still use PrtSc or Shift+PrtSC to take a screenshot. So when the PrtSc, actually a different screenshot tool is called and by default the picture is saved to XDG_PICTURES_DIR. You can modify this environment variable XDG_PICTURES_DIR in ~/.config/user-dirs.dirs,

# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
# 
XDG_DOWNLOAD_DIR="$HOME/Downloads"
...
XDG_PICTURES_DIR="$HOME/Pictures/screenshots"

So maybe on Ubuntu GNOME 17.04, it's also the case. Then you can also use the above method to change the location of saved screenshot.

| improve this answer | |
  • Changing XDG_PICTURES_DIR to $HOME/Pictures/screenshots defeats the goal for all intents and purposes really. The idea was to not use the default pictures folder (which is dictated by XDG_PICTURES_DIR) for saving screenshots, instead to use a different dedicated folder. Your answer suggests marking the dedicated screenshots folder itself as the default pictures folder. So this screenshots folder would be used as the default pictures folder for all purposes after making this change. – pomsky Jun 26 at 23:42
-3

For those who can't install dconf-editor and are terminal users, I would suggest to edit the .bashrc file in your home directory. Put anywhere in the file the line "mv ~/Pictures/Screenshot* ---put-here-desired-path---". The only problem with this method is that, in case you have a file starting with the string "Screenshot", it will be moved to the desired path you've put above.

| improve this answer | |
  • 7
    What a dreadful idea. – Ken Sharp Feb 27 '16 at 13:30

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.