Skip to content

Commit b7813a9

Browse files
authored
feat(capture-tools): implement capture tools with toolbar and canvas functionality (#74)
- Introduced a new capture tools module with a toolbar for annotation. - Added functionality for drawing, text annotations, and OCR capabilities. - Integrated a width slider for annotation stroke width adjustment. - Implemented color selection for annotations with a color palette. - Added tests for capture tools functionality and annotation model. - Updated i18n handling to use shared gettext domain. - Enhanced styling for capture tools UI components. - Ensured compatibility with existing modules and updated schemas.
1 parent 0b6287f commit b7813a9

93 files changed

Lines changed: 4034 additions & 166 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ARCHITECTURE.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ src/
5858
moduleManager.ts Runtime lifecycle and reconciliation
5959
registry.ts Manifest-to-factory association
6060
core/ Context, LifecycleScope, settings, and logging
61+
capture/ In-capture annotation toolbar and canvas, annotated export, and local OCR
6162
device/ Reactive detection plus pure classification
6263
clipboard/ Clipboard history module and UI
6364
desktop/ Desktop-only modules such as tray icons
@@ -70,7 +71,8 @@ src/
7071
```
7172

7273
Complex Shell widgets keep pure calculations in Shell-free files where useful. Current examples
73-
include device classification, Dash layout, monitor topology, tray state, and clock presentation.
74+
include device classification, screenshot/OCR geometry, Dash layout, monitor topology, tray state,
75+
and clock presentation.
7476

7577
## Adding A Module
7678

CREDITS.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,13 @@ The **Meeting Clock** module is inspired by
4040
[**danmoz/meetingtime**](https://github.com/danmoz/meetingtime).
4141
Thanks to [@danmoz](https://github.com/danmoz) for the meeting reminder behavior and
4242
calendar-driven workflow.
43+
44+
## Capture Tools
45+
46+
The annotation workflow in **Capture Tools** is inspired by
47+
[**AlexanderVanhee/gradia-capture**](https://github.com/AlexanderVanhee/gradia-capture), and its
48+
local screenshot OCR workflow is inspired by
49+
[**SamkitJain660/Shotzy**](https://github.com/SamkitJain660/Shotzy). The custom symbolic SVGs under
50+
`data/icons/hicolor/scalable/actions/` are copied from Gradia Capture and redistributed under
51+
GPL-3.0. The toolbar integration, annotation canvas, export, and OCR implementation are otherwise
52+
independent.

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ Aurora is split into independent modules, so you can enable only what you want.
3838
- **Skip Overview on Login** - skips the overview on startup so GNOME Shell opens directly to the desktop.
3939
- **Pip On Top** - keeps Picture-in-Picture windows above other windows automatically.
4040
- **Focus Launched Windows** - focuses newly launched windows instead of showing window-ready notifications.
41+
- **Capture Tools** - adds a Gradia-style floating annotation toolbar to the top of GNOME's screenshot interface as soon as it opens, with drawing, shapes, text, numbered annotations, annotated export, and optional local Tesseract OCR.
4142
- **XWayland Indicator** - adds an X11 badge to XWayland apps in the Alt+Tab switcher.
4243

4344
### Privacy & Clipboard
@@ -50,6 +51,7 @@ All modules can be toggled independently from the extension preferences.
5051
## Requirements
5152

5253
- GNOME Shell 50+
54+
- Tesseract with the desired language data (optional, for Capture Tools OCR)
5355
- [Node.js](https://nodejs.org/) 20+
5456
- [Yarn](https://yarnpkg.com/) 4+
5557
- [just](https://github.com/casey/just) (command runner)
@@ -86,5 +88,7 @@ Aurora Shell builds on the work of the wider GNOME community. Special thanks to:
8688
- [**CleoMenezesJr/weather-oclock**](https://github.com/CleoMenezesJr/weather-oclock) inspired the Weather Clock module.
8789
- [**danmoz/meetingtime**](https://github.com/danmoz/meetingtime) inspired the Meeting Clock module.
8890
- [**swsnr/gnome-shell-extension-xwayland-indicator**](https://codeberg.org/swsnr/gnome-shell-extension-xwayland-indicator/) the inspiration behind the XWayland Indicator module.
91+
- [**AlexanderVanhee/gradia-capture**](https://github.com/AlexanderVanhee/gradia-capture) inspired the Capture Tools annotation workflow.
92+
- [**SamkitJain660/Shotzy**](https://github.com/SamkitJain660/Shotzy) inspired the local screenshot OCR workflow.
8993

9094
See [CREDITS.md](CREDITS.md) for the full list of attributed work.
Lines changed: 2 additions & 0 deletions
Loading
Lines changed: 2 additions & 0 deletions
Loading
Lines changed: 2 additions & 0 deletions
Loading
Lines changed: 2 additions & 0 deletions
Loading
Lines changed: 18 additions & 0 deletions
Loading
Lines changed: 2 additions & 0 deletions
Loading
Lines changed: 2 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)