Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,14 +117,17 @@ The v0.9.23+ prebuilt `wayscriber` packages require glibc 2.39 and GTK 4.12 —

### Drawing and editing
- Freehand pen, highlighter, eraser (circle/rect)
- Pen smoothing: finished pen and marker strokes are cleaned up on release, so the live line never lags the cursor (`[drawing] pen_smoothing`, 0-6, or the toolbar's **Smoothing** stepper); tablet pressure values are preserved, and the level is remembered with the session
- Shapes: lines, rectangles, ellipses, polygons (with fill toggle)
- Arrows in four styles - standard, pointy, curved (drag its handle to route around what is in the way), and double-ended - with optional auto-numbered labels; step markers for walkthroughs
- Blur tool with four styles: soften, pixelate, secure (flattens the region to one color), and black out
- Spotlight tool: dims everything except the regions you draw, with optional 1×–4× magnification
- Multiline text and sticky notes with smoothing
- Multiline text and sticky notes with smoothing; optional text halos take their contrast from the background the label sits on, so a label stays readable over a board, a filled shape, or a frozen screen (disable with `[drawing] text_halo_enabled = false`; a live transparent board has no pixels to sample and falls back to the text color)
- Selection: <kbd>Alt</kbd>-drag, <kbd>V</kbd> tool, properties panel
- Duplicate (<kbd>Ctrl+D</kbd>), delete (<kbd>Delete</kbd>), undo/redo
- Color picker, screen eyedropper with a magnified pixel loupe, palettes, size via hotkeys or scroll
- Text font cycling with <kbd>Shift+T</kbd> over a configurable list (`[drawing] font_cycle`); with text selected it restyles that text
- Font picker over every installed family (**Font Picker** in the command palette, or the toolbar's current-family button), with search, a monospace filter, wheel scrolling, accelerating arrow-key repeat, and each row drawn in its own font
- Render color profiles for print/projector/light-theme preview
- Radial menu at cursor (<kbd>Middle-click</kbd>): quick tool/color selection with recent colors, press-flick-release tool commits, plus a draggable outer size ring and scroll size adjust

Expand Down
34 changes: 33 additions & 1 deletion config.example.toml
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,14 @@ select_step_marker_tool = []
select_eraser_tool = ["D"]
# Toggle eraser behavior mode
toggle_eraser_mode = ["Ctrl+Shift+E"]
# Step the text font through drawing.font_cycle
cycle_font_family = ["Shift+T"]
# Open the font picker over every installed family (unbound by default;
# also on the command palette as "Font Picker")
open_font_picker = []
# Step stroke smoothing up and down (unbound by default)
increase_pen_smoothing = []
decrease_pen_smoothing = []
# Select the spotlight tool (unbound by default)
select_spotlight_tool = []
# Step the blur tool through blur/pixelate/secure/black-out (unbound by default)
Expand Down Expand Up @@ -1086,6 +1094,23 @@ default_blur_style = "gaussian"
# Default marker opacity multiplier (0.05 - 0.90). Multiplies the current color alpha.
marker_opacity = 0.32

# Font families the "Cycle Font Family" action steps through (Shift+T).
# Any installed family name works. An empty list turns the action off.
# Names are matched without case, so ["Sans", "sans"] loads as one entry.
# The configurator edits this as a row per font, each picking from the
# families installed on the machine.
font_cycle = ["Sans", "Monospace", "Serif"]

# How much a finished freehand or marker stroke is smoothed (0 - 6).
#
# 0 keeps the exact path the pointer drew. Higher values clean up the shake of
# the hand. Smoothing runs when you lift the pen, never while you draw, so the
# live stroke always sits exactly on the pointer. Neither endpoint ever moves.
#
# Also on the toolbar as the "Smoothing" stepper while the Pen or Marker is up.
# A session remembers the level it was saved at; this is the starting value.
pen_smoothing = 3

# Default fill state for fill-capable shapes
default_fill_enabled = false

Expand Down Expand Up @@ -1152,7 +1177,9 @@ tab_drag_tool = "ellipse"
font_family = "Sans"

# Font weight: "normal", "bold", "light", "ultralight", "heavy", "ultrabold"
# Or numeric: 100-900 (400=normal, 700=bold)
# Or numeric: 100-900 (400 is regular; 700 renders at a bold weight).
# The toolbar Bold toggle is checked only for the literal word "bold" and writes
# "bold" or "normal"; numeric weights such as 700 therefore leave it unchecked.
# Try different weights:
# font_weight = "normal" # Regular weight
# font_weight = "bold" # Bold (default, best visibility)
Expand All @@ -1172,6 +1199,11 @@ font_style = "normal"
# Default: false (no background, cleaner look with just stroke outline)
text_background_enabled = false

# Draw a contrasting outline around text and text-entry carets.
# Set to false for plain glyphs without the light/dark halo.
# Default: true
text_halo_enabled = true

# Ordered quick colors used by shortcuts, toolbar swatches, and radial menu.
# The first eight entries map to R/G/B/Y/O/P/W/K; if fewer are configured by
# hand, missing shortcut positions use built-in defaults and help-overlay badges
Expand Down
12 changes: 12 additions & 0 deletions configurator/src/app/pages/drawing/defaults.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,12 @@ pub(super) fn build(page: &mut PageBuilder) {
|value| Message::TextChanged(TextField::DrawingMarkerOpacity, value),
|app| validate_f64_range(&app.draft.drawing_marker_opacity, 0.05, 0.9),
)
.entry_row_validated(
"Pen smoothing (0-6)",
|app| app.draft.drawing_pen_smoothing.clone(),
|value| Message::TextChanged(TextField::DrawingPenSmoothing, value),
|app| validate_usize_range(&app.draft.drawing_pen_smoothing, 0, 6),
)
.entry_row_validated(
"Undo stack limit",
|app| app.draft.drawing_undo_stack_limit.clone(),
Expand All @@ -72,6 +78,12 @@ pub(super) fn build(page: &mut PageBuilder) {
|app| app.draft.drawing_text_background_enabled,
|value| Message::ToggleChanged(ToggleField::DrawingTextBackground, value),
)
.switch_row(
"Enable text halo",
"Draw a contrasting outline around text",
|app| app.draft.drawing_text_halo_enabled,
|value| Message::ToggleChanged(ToggleField::DrawingTextHalo, value),
)
.switch_row(
"Start shapes filled",
"",
Expand Down
Loading
Loading