Skip to content

New screenshot UI

Ivan Molodetskikh requested to merge YaLTeR/gnome-shell:screenshot-ui into main

The new screenshot UI™, which I worked on and posted about over the summer as part of GSoC 2021. Based on this design issue and mock-up.

Requires mutter!1893 (merged) with an additional fix, mutter!1899 (merged) and mutter!1967 (merged). I've got everything needed in this Mutter branch, although there's usually also some unrelated stuff there.

The follow-up MR !2107 (merged) should be merged together with gnome-settings-daemon!267 (merged) and gnome-control-center!1075 (merged).


TODO (screenshot part):

  • Saving screenshots into a file (rather than just clipboard)
  • New icons from Tobias
  • Adding screenshots to recent files (see !1439 (diffs) for an example)
  • Asynchronous PNG compression
  • Starting selection + way to draw a new selection (e.g. modifier + drag)
  • Better resizing (resize like windows instead of the current corner handles)
  • Making the panel fade out and not receive input when dragging the selection
  • Keyboard navigation
  • Removing default PrtSc bind from gnome-settings-daemon and adding it here
  • Figuring out how to handle GNOME Shell popups
  • Tooltips with shortcuts for panel buttons
  • Checkbox on selected window
  • Click on notification to open the image
  • Fix global shortcut blocking (e.g. mute)
  • Add fake search entry to open the UI
  • Fix multiple screenshots in 1 second / existing file
  • Accessibility review—not sure how to get the screen reader to read nested gnome-shell elements

TODO (screencast part):

  • Area and screen recording
  • Area indicator during recording
  • Fixing GStreamer crashes
  • Done notification
  • Save to Videos/Screencasts

Future work:

  • Use lower scale for area and screen shots when possible on mixed DPI
  • Smooth animation to window selection for screenshots
  • Window selection for recording
  • Desktop audio and microphone audio toggles

COPR for F35 if you'd like to give it a spin:

cc @verdre @bertob @aday

Edited by Ivan Molodetskikh

Merge request reports