screendrawing 1.4.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,250 @@
1
+ Metadata-Version: 2.4
2
+ Name: screendrawing
3
+ Version: 1.4.5
4
+ Summary: Lightweight Wayland/X11 screen drawing tool
5
+ Author-email: Jeong SeongYong <iyagicom@gmail.com>
6
+ License: GPL-2.0-or-later
7
+ Requires-Python: >=3.7
8
+ Description-Content-Type: text/markdown
9
+ Requires-Dist: PyQt5
10
+ Requires-Dist: mouse
11
+
12
+ # ScreenDrawing
13
+
14
+ Lightweight screen drawing tool for Linux (Wayland optimized).
15
+ Designed for real-time on-screen annotation with pen, shapes, text, highlighter, eraser, and undo.
16
+
17
+ ---
18
+
19
+ ## ✨ Features
20
+
21
+ ### Drawing Tools
22
+ - **Pen** — freehand drawing
23
+ - **Rectangle** — drag to draw a rectangle
24
+ - **Ellipse** — drag to draw an ellipse
25
+ - **Line** — drag to draw a straight line
26
+ - **Arrow** — drag to draw an arrow
27
+ - **Text** — click to place inline text
28
+ - Enter → Line break
29
+ - Ctrl+Enter → Confirm text (draw on canvas)
30
+ - Escape → Cancel
31
+
32
+
33
+ ### Options
34
+ - **Fill** — fill rectangle/ellipse with color
35
+ - **Highlight** — semi-transparent overlay (pen, line, rect, ellipse)
36
+ - **Eraser** — remove strokes by brush or shape area
37
+
38
+ ### Convenience
39
+ - **Color picker** — choose any pen color
40
+ - **Stroke width** — adjustable thickness (shared with eraser size)
41
+ - **Font selector** — choose font family and size
42
+ - **Quick size buttons** — 10 / 16 / 24 / 36 (applies to both stroke width and font size)
43
+ - **Undo** — up to 50 steps
44
+ - **Clear All** — wipe the entire canvas
45
+ - **Save** — export drawing layer as transparent PNG
46
+
47
+ ### Settings Auto-save
48
+ Tool selection, color, stroke width, fill, highlight mode, and font are automatically saved on exit and restored on next launch.
49
+ Settings are stored at: `~/.local/share/screendrawing/settings.json`
50
+
51
+ ### Keyboard Shortcuts
52
+ - **Hold Ctrl** — temporary eraser (releases back to previous tool)
53
+ - **Hold Shift** — temporary straight line (releases back to previous tool)
54
+
55
+ ### Other
56
+ - Auto language detection (Korean / English based on system locale)
57
+ - Wayland compatible (GNOME tested)
58
+ - Lightweight — PyQt5 only, no extra dependencies
59
+
60
+ ---
61
+
62
+ ## 🖥️ Environment
63
+
64
+ Tested on:
65
+
66
+ - Ubuntu 24.04
67
+ - GNOME Wayland Session
68
+ - Python 3.x + PyQt5
69
+
70
+ ---
71
+
72
+ ## 📦 Requirements
73
+
74
+ ```bash
75
+ pip install PyQt5
76
+ ```
77
+
78
+ ---
79
+
80
+ ## 📥 Installation (No sudo, Recommended)
81
+
82
+ ### 1. Download
83
+
84
+ Download `screendrawing.py` from this repository.
85
+
86
+ ### 2. Make executable
87
+
88
+ ```bash
89
+ chmod +x screendrawing.py
90
+ ```
91
+
92
+ ### 3. Install to user PATH
93
+ ![Screenshot](ScreenDrawing.png)
94
+
95
+ ```bash
96
+ mkdir -p ~/.local/bin
97
+ mv screendrawing.py ~/.local/bin/screendrawing
98
+ chmod +x ~/.local/bin/screendrawing
99
+ ```
100
+
101
+ Make sure `~/.local/bin` is in your PATH. Add to `~/.bashrc` or `~/.zshrc` if needed:
102
+
103
+ ```bash
104
+ export PATH="$HOME/.local/bin:$PATH"
105
+ ```
106
+
107
+ Now you can run it from anywhere:
108
+
109
+ ```bash
110
+ screendrawing
111
+ ```
112
+
113
+ ---
114
+
115
+ ## ⚠️ Wayland (GNOME) Notes
116
+
117
+ ScreenDrawing is primarily developed and tested on GNOME Wayland.
118
+
119
+ If the toolbar does not appear, try running with the platform flag:
120
+
121
+ ```bash
122
+ QT_QPA_PLATFORM=wayland screendrawing
123
+ ```
124
+
125
+ ---
126
+
127
+ ## 💾 Save Behavior
128
+
129
+ The **Save** button exports the drawing layer only as a transparent PNG (`~/drawing_YYYYMMDD_HHMMSS.png`).
130
+
131
+ This is intentional and useful for:
132
+
133
+ - Overlay editing in image editors
134
+ - Presentation slides
135
+ - Video annotation
136
+ - Tutorial / lecture materials
137
+ - Image compositing
138
+
139
+ To capture the full screen including the background and your drawings, use an external screenshot tool **while ScreenDrawing is running**:
140
+
141
+ - **GNOME Screenshot** (`gnome-screenshot`)
142
+ - **Spectacle** (KDE)
143
+ - **Flameshot**
144
+
145
+ ---
146
+
147
+ ## 🚀 Desktop Launcher
148
+
149
+ To add ScreenDrawing to the application menu, create a `.desktop` file:
150
+
151
+ ```bash
152
+ nano ~/.local/share/applications/screendrawing.desktop
153
+ ```
154
+
155
+ Paste the following:
156
+
157
+ ```ini
158
+ [Desktop Entry]
159
+ Encoding=UTF-8
160
+ Exec=screendrawing
161
+ Icon=applications-graphics
162
+ Type=Application
163
+ Terminal=false
164
+ Name=ScreenDrawing
165
+ GenericName=Screen Drawing Tool
166
+ Comment=Lightweight screen drawing overlay
167
+ StartupNotify=false
168
+ Categories=Utility;
169
+ ```
170
+
171
+ Then refresh the application database:
172
+
173
+ ```bash
174
+ update-desktop-database ~/.local/share/applications
175
+ ```
176
+
177
+ ScreenDrawing will now appear in your application menu.
178
+
179
+ ---
180
+
181
+ ## 🎮 Controls
182
+
183
+ ### Keyboard Shortcuts
184
+
185
+ | Key | Function |
186
+ |----------------|---------------------------------|
187
+ | `Ctrl + Z` | Undo |
188
+ | `Ctrl + S` | Save (transparent PNG) |
189
+ | `Ctrl + Q` | Exit |
190
+ | `C` | Clear canvas |
191
+ | `ESC` | Exit |
192
+ | Hold `Ctrl` | Temporary eraser |
193
+ | Hold `Shift` | Temporary straight line |
194
+ | `Ctrl + Enter` | Confirm text (draw on canvas) |
195
+
196
+ ### Toolbar Buttons
197
+
198
+ | Button | Function |
199
+ |---------------|-----------------------------------------------|
200
+ | Pen | Freehand drawing |
201
+ | Rect | Rectangle |
202
+ | Ellipse | Ellipse / circle |
203
+ | Line | Straight line |
204
+ | Arrow | Draw an arrow |
205
+ | Text | Inline text input (on canvas) |
206
+ | | • Enter → Line break |
207
+ | | • Ctrl+Enter → Confirm text (draw on canvas) |
208
+ | | • Escape → Cancel |
209
+ | Color | Open color picker |
210
+ | Width | Stroke width (also controls eraser size) |
211
+ | Font | Open font selector |
212
+ | Size | Font size |
213
+ | 10/16/24/36 | Quick size preset (stroke width + font size) |
214
+ | Fill | Toggle fill for rectangle / ellipse |
215
+ | Highlight | Toggle semi-transparent highlight mode |
216
+ | Eraser | Toggle eraser mode |
217
+ | Undo | Undo last action (up to 50 steps) |
218
+ | Save | Save drawing as transparent PNG |
219
+ | Clear All | Clear entire canvas |
220
+ | Exit | Close the application |
221
+
222
+
223
+ ---
224
+
225
+ ## 📌 Notes
226
+
227
+ - Runs as a fullscreen transparent overlay
228
+ - Eraser size is shared with the stroke width setting
229
+ - Highlight mode works on pen (freehand), line, rectangle, and ellipse
230
+ - Holding `Ctrl` or `Shift` temporarily switches tools and restores them on release
231
+ - All drawing is non-destructive to the desktop — only the overlay canvas is affected
232
+ - Settings (tool, color, width, font, fill, highlight) are auto-saved on exit to `~/.local/share/screendrawing/settings.json`
233
+
234
+ ---
235
+
236
+ ## 👤 Author
237
+
238
+ Jeong SeongYong
239
+ Email: iyagicom@gmail.com
240
+ GitHub: [iyagicom](https://github.com/iyagicom)
241
+
242
+ ---
243
+
244
+ ## 📜 License
245
+
246
+ This project is licensed under the **GPL-2.0-or-later**.
247
+ 이 프로젝트는 GPL-2.0-or-later 라이선스 하에 배포됩니다.
248
+
249
+ You are free to use, modify, and redistribute under GPL terms.
250
+ See [GNU GPL v2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) for details.
@@ -0,0 +1,239 @@
1
+ # ScreenDrawing
2
+
3
+ Lightweight screen drawing tool for Linux (Wayland optimized).
4
+ Designed for real-time on-screen annotation with pen, shapes, text, highlighter, eraser, and undo.
5
+
6
+ ---
7
+
8
+ ## ✨ Features
9
+
10
+ ### Drawing Tools
11
+ - **Pen** — freehand drawing
12
+ - **Rectangle** — drag to draw a rectangle
13
+ - **Ellipse** — drag to draw an ellipse
14
+ - **Line** — drag to draw a straight line
15
+ - **Arrow** — drag to draw an arrow
16
+ - **Text** — click to place inline text
17
+ - Enter → Line break
18
+ - Ctrl+Enter → Confirm text (draw on canvas)
19
+ - Escape → Cancel
20
+
21
+
22
+ ### Options
23
+ - **Fill** — fill rectangle/ellipse with color
24
+ - **Highlight** — semi-transparent overlay (pen, line, rect, ellipse)
25
+ - **Eraser** — remove strokes by brush or shape area
26
+
27
+ ### Convenience
28
+ - **Color picker** — choose any pen color
29
+ - **Stroke width** — adjustable thickness (shared with eraser size)
30
+ - **Font selector** — choose font family and size
31
+ - **Quick size buttons** — 10 / 16 / 24 / 36 (applies to both stroke width and font size)
32
+ - **Undo** — up to 50 steps
33
+ - **Clear All** — wipe the entire canvas
34
+ - **Save** — export drawing layer as transparent PNG
35
+
36
+ ### Settings Auto-save
37
+ Tool selection, color, stroke width, fill, highlight mode, and font are automatically saved on exit and restored on next launch.
38
+ Settings are stored at: `~/.local/share/screendrawing/settings.json`
39
+
40
+ ### Keyboard Shortcuts
41
+ - **Hold Ctrl** — temporary eraser (releases back to previous tool)
42
+ - **Hold Shift** — temporary straight line (releases back to previous tool)
43
+
44
+ ### Other
45
+ - Auto language detection (Korean / English based on system locale)
46
+ - Wayland compatible (GNOME tested)
47
+ - Lightweight — PyQt5 only, no extra dependencies
48
+
49
+ ---
50
+
51
+ ## 🖥️ Environment
52
+
53
+ Tested on:
54
+
55
+ - Ubuntu 24.04
56
+ - GNOME Wayland Session
57
+ - Python 3.x + PyQt5
58
+
59
+ ---
60
+
61
+ ## 📦 Requirements
62
+
63
+ ```bash
64
+ pip install PyQt5
65
+ ```
66
+
67
+ ---
68
+
69
+ ## 📥 Installation (No sudo, Recommended)
70
+
71
+ ### 1. Download
72
+
73
+ Download `screendrawing.py` from this repository.
74
+
75
+ ### 2. Make executable
76
+
77
+ ```bash
78
+ chmod +x screendrawing.py
79
+ ```
80
+
81
+ ### 3. Install to user PATH
82
+ ![Screenshot](ScreenDrawing.png)
83
+
84
+ ```bash
85
+ mkdir -p ~/.local/bin
86
+ mv screendrawing.py ~/.local/bin/screendrawing
87
+ chmod +x ~/.local/bin/screendrawing
88
+ ```
89
+
90
+ Make sure `~/.local/bin` is in your PATH. Add to `~/.bashrc` or `~/.zshrc` if needed:
91
+
92
+ ```bash
93
+ export PATH="$HOME/.local/bin:$PATH"
94
+ ```
95
+
96
+ Now you can run it from anywhere:
97
+
98
+ ```bash
99
+ screendrawing
100
+ ```
101
+
102
+ ---
103
+
104
+ ## ⚠️ Wayland (GNOME) Notes
105
+
106
+ ScreenDrawing is primarily developed and tested on GNOME Wayland.
107
+
108
+ If the toolbar does not appear, try running with the platform flag:
109
+
110
+ ```bash
111
+ QT_QPA_PLATFORM=wayland screendrawing
112
+ ```
113
+
114
+ ---
115
+
116
+ ## 💾 Save Behavior
117
+
118
+ The **Save** button exports the drawing layer only as a transparent PNG (`~/drawing_YYYYMMDD_HHMMSS.png`).
119
+
120
+ This is intentional and useful for:
121
+
122
+ - Overlay editing in image editors
123
+ - Presentation slides
124
+ - Video annotation
125
+ - Tutorial / lecture materials
126
+ - Image compositing
127
+
128
+ To capture the full screen including the background and your drawings, use an external screenshot tool **while ScreenDrawing is running**:
129
+
130
+ - **GNOME Screenshot** (`gnome-screenshot`)
131
+ - **Spectacle** (KDE)
132
+ - **Flameshot**
133
+
134
+ ---
135
+
136
+ ## 🚀 Desktop Launcher
137
+
138
+ To add ScreenDrawing to the application menu, create a `.desktop` file:
139
+
140
+ ```bash
141
+ nano ~/.local/share/applications/screendrawing.desktop
142
+ ```
143
+
144
+ Paste the following:
145
+
146
+ ```ini
147
+ [Desktop Entry]
148
+ Encoding=UTF-8
149
+ Exec=screendrawing
150
+ Icon=applications-graphics
151
+ Type=Application
152
+ Terminal=false
153
+ Name=ScreenDrawing
154
+ GenericName=Screen Drawing Tool
155
+ Comment=Lightweight screen drawing overlay
156
+ StartupNotify=false
157
+ Categories=Utility;
158
+ ```
159
+
160
+ Then refresh the application database:
161
+
162
+ ```bash
163
+ update-desktop-database ~/.local/share/applications
164
+ ```
165
+
166
+ ScreenDrawing will now appear in your application menu.
167
+
168
+ ---
169
+
170
+ ## 🎮 Controls
171
+
172
+ ### Keyboard Shortcuts
173
+
174
+ | Key | Function |
175
+ |----------------|---------------------------------|
176
+ | `Ctrl + Z` | Undo |
177
+ | `Ctrl + S` | Save (transparent PNG) |
178
+ | `Ctrl + Q` | Exit |
179
+ | `C` | Clear canvas |
180
+ | `ESC` | Exit |
181
+ | Hold `Ctrl` | Temporary eraser |
182
+ | Hold `Shift` | Temporary straight line |
183
+ | `Ctrl + Enter` | Confirm text (draw on canvas) |
184
+
185
+ ### Toolbar Buttons
186
+
187
+ | Button | Function |
188
+ |---------------|-----------------------------------------------|
189
+ | Pen | Freehand drawing |
190
+ | Rect | Rectangle |
191
+ | Ellipse | Ellipse / circle |
192
+ | Line | Straight line |
193
+ | Arrow | Draw an arrow |
194
+ | Text | Inline text input (on canvas) |
195
+ | | • Enter → Line break |
196
+ | | • Ctrl+Enter → Confirm text (draw on canvas) |
197
+ | | • Escape → Cancel |
198
+ | Color | Open color picker |
199
+ | Width | Stroke width (also controls eraser size) |
200
+ | Font | Open font selector |
201
+ | Size | Font size |
202
+ | 10/16/24/36 | Quick size preset (stroke width + font size) |
203
+ | Fill | Toggle fill for rectangle / ellipse |
204
+ | Highlight | Toggle semi-transparent highlight mode |
205
+ | Eraser | Toggle eraser mode |
206
+ | Undo | Undo last action (up to 50 steps) |
207
+ | Save | Save drawing as transparent PNG |
208
+ | Clear All | Clear entire canvas |
209
+ | Exit | Close the application |
210
+
211
+
212
+ ---
213
+
214
+ ## 📌 Notes
215
+
216
+ - Runs as a fullscreen transparent overlay
217
+ - Eraser size is shared with the stroke width setting
218
+ - Highlight mode works on pen (freehand), line, rectangle, and ellipse
219
+ - Holding `Ctrl` or `Shift` temporarily switches tools and restores them on release
220
+ - All drawing is non-destructive to the desktop — only the overlay canvas is affected
221
+ - Settings (tool, color, width, font, fill, highlight) are auto-saved on exit to `~/.local/share/screendrawing/settings.json`
222
+
223
+ ---
224
+
225
+ ## 👤 Author
226
+
227
+ Jeong SeongYong
228
+ Email: iyagicom@gmail.com
229
+ GitHub: [iyagicom](https://github.com/iyagicom)
230
+
231
+ ---
232
+
233
+ ## 📜 License
234
+
235
+ This project is licensed under the **GPL-2.0-or-later**.
236
+ 이 프로젝트는 GPL-2.0-or-later 라이선스 하에 배포됩니다.
237
+
238
+ You are free to use, modify, and redistribute under GPL terms.
239
+ See [GNU GPL v2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) for details.
@@ -0,0 +1,25 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "screendrawing"
7
+ version = "1.4.5"
8
+ description = "Lightweight Wayland/X11 screen drawing tool"
9
+ readme = "README.md"
10
+ authors = [{ name = "Jeong SeongYong", email = "iyagicom@gmail.com" }]
11
+ license = { text = "GPL-2.0-or-later" }
12
+ requires-python = ">=3.7"
13
+ dependencies = [
14
+ "PyQt5",
15
+ "mouse"
16
+ ]
17
+
18
+ [project.scripts]
19
+ # 터미널에서 'screendrawing'을 입력하면 실행되도록 설정
20
+ # (파일명이 screendrawing.py이므로 'screendrawing:실행함수명'으로 적어야 합니다)
21
+ screendrawing = "screendrawing:main"
22
+
23
+ [tool.setuptools]
24
+ # 루트에 있는 단일 파일(screendrawing.py)을 패키지로 인식하게 함
25
+ py-modules = ["screendrawing"]