GeneralsX is an independent community build. EA has not endorsed and does not support this product. Command & Conquer, Generals and Zero Hour are trademarks of Electronic Arts Inc.

Source: CommandMap.ini

Every binding,
from the game

Read out of the game’s own CommandMap.ini rather than a wiki, so this is what the build in your hands actually listens for. Where ten keys do the same job to different groups, they are written as a range.

+ means hold them together. / means either one. On a Mac, three things differ.

Control groups

Ctrl+0-9
Make the selection a numbered group
0-9
Recall that group
Shift+0-9
Add the selection to that group
Alt+0-9
Jump the camera to that group

Selecting units

Q
Select everything on screen
E
Select every unit of the same type
Ctrl+H
Select your hero
Ctrl+← → ↑ ↓
Step through your units one at a time
H
Centre on your base
Space
Jump to whatever just happened on the radar

Giving orders

S
Stop
Ctrl+F
Move as a formation. The group paces to its slowest unit

Camera

Ctrl+F1-F8
Save the current view
F1-F8
Jump back to a saved view
Num 4/Num 6
Rotate left / right, while held number pad
Num 8/Num 2
Zoom in / out, while held number pad
Num 5
Reset the camera number pad

Talking

Enter
Chat to everyone
Backspace
Chat to your allies only
Ctrl+B
Drop a beacon on the map
Delete
Remove your beacon
Tab
Diplomacy screen
Ctrl+C
Cheer

Interface

Esc
Options
F9
Show or hide the command bar
F
Fast-forward, when watching a replay

On a Mac

Three differences on a Mac. None of them is a bug in the port. They follow from the keyboard.

Control, not Command
Every binding above reads Control. Command does nothing here; macOS keeps it for itself.
Camera needs a number pad
Rotate, zoom and reset are bound to the number pad, and a laptop keyboard has none, so on a MacBook those five controls cannot be reached at all. An external keyboard restores them. Edge scrolling still pans. A rebind is planned.
W A S D do not move the camera
Only S is bound, and it stops your units, which is rarely what you meant.