diff --git a/data/org.cinnamon.gschema.xml b/data/org.cinnamon.gschema.xml index cf28ff1f9e..96f4657535 100644 --- a/data/org.cinnamon.gschema.xml +++ b/data/org.cinnamon.gschema.xml @@ -1066,6 +1066,18 @@ When enabled, opens the file manager with the saved screenshot pre-selected after a successful save. + + false + Autosave screenshot to file + When enabled, saves the screenshot to file without showing the application's interactive window + + + + false + Autosave screenshot to file + When enabled, saves the screenshot to the clipboard without showing the application's interactive window + + diff --git a/files/usr/share/cinnamon/cinnamon-screenshot/application.py b/files/usr/share/cinnamon/cinnamon-screenshot/application.py index 8eb0d254d8..4067a0b75a 100644 --- a/files/usr/share/cinnamon/cinnamon-screenshot/application.py +++ b/files/usr/share/cinnamon/cinnamon-screenshot/application.py @@ -29,6 +29,15 @@ def do_activate(self): self._run_clipboard() elif args.file and not args.interactive: self._run_save_to_file(args.file) + elif (prefs.get_autosave_to_file() or prefs.get_autosave_to_clipboard()) and not args.interactive: + if prefs.get_autosave_to_file(): + filename = util.build_filename( + prefs.get_save_directory(), + file_type=prefs.get_default_file_type(), + ) + self._run_save_to_file(filename) + if prefs.get_autosave_to_clipboard(): + self._run_clipboard() else: self._run_window() diff --git a/files/usr/share/cinnamon/cinnamon-screenshot/prefs.py b/files/usr/share/cinnamon/cinnamon-screenshot/prefs.py index ea1cfd7cd2..97b6b024a8 100644 --- a/files/usr/share/cinnamon/cinnamon-screenshot/prefs.py +++ b/files/usr/share/cinnamon/cinnamon-screenshot/prefs.py @@ -12,6 +12,8 @@ SAVE_DIRECTORY_KEY = 'save-directory' DEFAULT_FILE_TYPE_KEY = 'default-file-type' LAUNCH_FILE_MANAGER_KEY = 'launch-file-manager-after-save' +AUTOSAVE_TO_FILE_KEY = 'autosave-to-file' +AUTOSAVE_TO_CLIPBOARD_KEY = 'autosave-to-clipboard' settings = Gio.Settings.new(SCHEMA_ID) if not settings.get_string(SAVE_DIRECTORY_KEY): @@ -59,6 +61,12 @@ def set_default_file_type(value): def get_launch_file_manager(): return settings.get_boolean(LAUNCH_FILE_MANAGER_KEY) +def get_autosave_to_file(): + return settings.get_boolean(AUTOSAVE_TO_FILE_KEY) + +def get_autosave_to_clipboard(): + return settings.get_boolean(AUTOSAVE_TO_CLIPBOARD_KEY) + _current_window = None @@ -109,6 +117,16 @@ def __init__(self, parent): SCHEMA_ID, LAUNCH_FILE_MANAGER_KEY, )) + section_behavior = page.add_section(_('Behavior')) + section_behavior.add_row(GSettingsSwitch( + _('Autosave to file'), + SCHEMA_ID, AUTOSAVE_TO_FILE_KEY, + )) + section_behavior.add_row(GSettingsSwitch( + _('Autosave to clipboard'), + SCHEMA_ID, AUTOSAVE_TO_CLIPBOARD_KEY, + )) + self.window.show_all() def _on_destroy(self, _w):