Skip to content

Feature: Reach full parity with Google Slides API #57

@omriariav

Description

@omriariav

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 10

6. 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 100

8. 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

  1. High: Slide background color (most requested in conversation)
  2. High: List layouts (needed for custom master support)
  3. Medium: Add slide with custom layout ID
  4. Medium: Lines/connectors
  5. Low: Group/ungroup
  6. Low: Word art

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions