-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Summary
The gws slides CLI has excellent coverage but is missing some Google Slides API capabilities. This issue tracks the work needed to reach full API parity.
Current State
The CLI already supports many operations (some undocumented - see #2):
- ✅ Create/read/list presentations
- ✅ Add/delete/duplicate slides
- ✅ Add shapes, images, text
- ✅ Update shape properties (fill, outline)
- ✅ Update text style (color, bold, font)
- ✅ Update paragraph style (alignment)
- ✅ Reorder slides
- ✅ Tables (create, update cells, borders)
- ✅ Transforms (move, resize, rotate)
Missing API Features
1. Slide Background Color
API: UpdatePagePropertiesRequest with pageBackgroundFill.solidFill.color
{
"updatePageProperties": {
"objectId": "PAGE_ID",
"pageProperties": {
"pageBackgroundFill": {
"solidFill": {
"color": {
"rgbColor": { "red": 0.02, "green": 0.34, "blue": 0.26 }
}
}
}
},
"fields": "pageBackgroundFill.solidFill.color"
}
}Proposed CLI:
gws slides update-slide-background <id> --slide-id <slide> --color "#005843"2. Slide Background Image
API: UpdatePagePropertiesRequest with pageBackgroundFill.stretchedPictureFill
Proposed CLI:
gws slides update-slide-background <id> --slide-id <slide> --image-url "https://..."3. Create Slide with Custom Layout ID
API: CreateSlideRequest supports layoutId for custom masters
Currently add-slide --layout only works with predefined layouts (BLANK, TITLE_AND_BODY, etc.) and fails on presentations with custom masters.
Proposed CLI:
gws slides add-slide <id> --layout-id <custom-layout-object-id>4. Get Layout/Master Information
Need ability to list available layouts from a presentation's masters.
Proposed CLI:
gws slides list-layouts <id>5. Delete Text Range (vs Clear All)
API: DeleteTextRequest with start/end indices
Proposed CLI:
gws slides delete-text <id> --object-id <obj> --from 0 --to 106. Insert Text at Position
Current add-text --at may already support this, but needs verification.
7. Create Line/Connector
API: CreateLineRequest
Proposed CLI:
gws slides add-line <id> --slide-number 1 --type STRAIGHT --start-x 0 --start-y 0 --end-x 100 --end-y 1008. Group/Ungroup Elements
API: GroupObjectsRequest, UngroupObjectsRequest
Proposed CLI:
gws slides group <id> --object-ids "obj1,obj2,obj3"
gws slides ungroup <id> --group-id <group>9. Create Word Art / Styled Text Shapes
Lower priority but available in API.
Priority
- High: Slide background color (most requested in conversation)
- High: List layouts (needed for custom master support)
- Medium: Add slide with custom layout ID
- Medium: Lines/connectors
- Low: Group/ungroup
- Low: Word art