diff --git a/woman/help.py b/woman/help.py
index e1df6319bb7a841689881383bea59d89ff8ce955..d50ae5e6c91460f1389f53fe7742d17605ccab5b 100644
--- a/woman/help.py
+++ b/woman/help.py
@@ -116,6 +116,12 @@ s<id/workspace>   - swap current workspace with window/container/workspace
 d<workspace>      - move current workspace to workspace
 d<id><key>        - move current workspace near to container (see `m`)
 e<master>         - exchange (swap) whole current master with specified
+r                 - reload all screenshots by jumping from workspace to workspace
+w                 - reload only screenshots on workspace without actual screenshot
+    You can combine r and w with following modifiers:
+       SHIFT      - spend long time on each workspace
+       CTRL       - short time
+       CTRL+SHIFT - extra long time
 
 
 Shortcuts in search bar (input mode):
diff --git a/woman/qt.py b/woman/qt.py
index b0e9d4b271238b5220849fd05d2e81749f81fcf8..42fdc8b26c906bce0937862d0b5a1405d772fcf1 100755
--- a/woman/qt.py
+++ b/woman/qt.py
@@ -30,6 +30,7 @@ from contextlib import contextmanager
 from woman.shared import *
 from woman.lib import *
 import woman.help as help
+import woman.watch as watch
 from woman.constants import *
 from woman.qt_util import *
 
@@ -106,11 +107,14 @@ def qt_main():
 
             @func_add
             def screenshot_and_goto(n_master, n_slave, master, slave):
+                if m_win.job_load_screenshots is not None:
+                    m_win.job_load_screenshots.cancel()
                 qt_workspace_widget_func(master, slave, lambda x: x.make_screenshot())
                 shared.i3_cmd(f'workspace {workspace(n_master, n_slave)}')
                 if (n_master, n_slave) == GUI_WORKSPACE:
                     m_win.move_to_gui_workspace()
 
+
             @func_add
             def screenshot(master, slave):
                 qt_workspace_widget_func(master, slave, lambda x: x.make_screenshot())
@@ -917,6 +921,19 @@ def qt_main():
             await qt_job_wait_ms(time_ms)
             self.load_i3_tree()
 
+        job_load_screenshots = None
+        @QtJobDecorator
+        async def load_screenshots(self, time_ms=100, only_old=False):
+            with watch.disable_on_workspace_focus_context():
+                for ((master, slave),w) in self._workspaces.items():
+                    if w.exist:
+                        if not only_old or w.screenshot_is_old:
+                            w.focus()
+                            await qt_job_wait_ms(time_ms)
+                            w.make_screenshot()
+                shared.i3_cmd(f'workspace {workspace(*GUI_WORKSPACE)}')
+                await qt_job_wait_ms(50)
+
         def set_screenshot_size(self, val):
             self.screenshot_size = val
             for i in self._workspaces.values():
@@ -1061,8 +1078,8 @@ def qt_main():
 
             if key not in MOD_KEYS:
                 self.cmd_msg_clean()
-
-
+                if self.job_load_screenshots is not None:
+                    self.job_load_screenshots.cancel()
 
             async def get_container_or_workspace(filter=lambda x: True, pre_filter=lambda x: True, get_workspace=True):
                 master = self.focused_master
@@ -1216,6 +1233,12 @@ def qt_main():
                     self.load_i3_tree()
                     self.cmd_msg("OK")
 
+            def mod_to_load_screenshots_time(mod):
+                if mod == SHIFT: return 400
+                if mod == int(CTRL | SHIFT): return 800
+                if mod == CTRL: return 50
+                return 100
+
             async def keyPressEvent_main(key, mod):
                 if mod == 0 and self.get_continuing_key is not None and key == ESCAPE:
                     self.end_get_continuing_key()
@@ -1300,6 +1323,10 @@ def qt_main():
                 elif mod == 0 and key == ord('T'):
                     m_win.end_get_continuing_key()
                     self.load_i3_tree()
+                elif key == ord('R'):
+                    self.job_load_screenshots = self.load_screenshots(mod_to_load_screenshots_time(mod))
+                elif key == ord('W'):
+                    self.job_load_screenshots = self.load_screenshots(mod_to_load_screenshots_time(mod), only_old=True)
                 elif mod == 0 and key == ord('O'):
                     self.focused_widget.move_to_otput()
                 elif mod == 0 and key == ord('Z'):