How do I get full resolution on my Apple 30" Cinema Display with Ubuntu 18.04?
It is possible that xorg does not like the other resolution from the display's EDID, have you checked your xorg.0.log when I checked mine I found that the modeline for the full resolution was being rejected.
You can add it back manually using xrandr and and you can make the change persistent using the .xprofile for each account.
You would do that by reading the EDID section from your xorg.0.log file mine looks like this:
[ 1605.612] (II) modeset(0): EDID for output DP-1
[ 1605.612] (II) modeset(0): Manufacturer: APP Model: 9221 Serial#: 33558015
[ 1605.612] (II) modeset(0): Year: 2007 Week: 17
[ 1605.612] (II) modeset(0): EDID Version: 1.3
[ 1605.612] (II) modeset(0): Digital Display Input
[ 1605.612] (II) modeset(0): Max Image Size [cm]: horiz.: 64 vert.: 40
[ 1605.612] (II) modeset(0): Gamma: 2.20
[ 1605.612] (II) modeset(0): DPMS capabilities: Off
[ 1605.612] (II) modeset(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4
[ 1605.612] (II) modeset(0): First detailed timing not preferred mode in violation of standard!
[ 1605.612] (II) modeset(0): redX: 0.640 redY: 0.343 greenX: 0.292 greenY: 0.611
[ 1605.612] (II) modeset(0): blueX: 0.146 blueY: 0.074 whiteX: 0.313 whiteY: 0.329
[ 1605.612] (II) modeset(0): Manufacturer's mask: 0
[ 1605.612] (II) modeset(0): Supported detailed timing:
[ 1605.612] (II) modeset(0): clock: 71.0 MHz Image Size: 641 x 401 mm
[ 1605.612] (II) modeset(0): h_active: 1280 h_sync: 1328 h_sync_end 1360 h_blank_end 1440 h_border: 0
[ 1605.612] (II) modeset(0): v_active: 800 v_sync: 803 v_sync_end 809 v_blanking: 823 v_border: 0
[ 1605.612] (II) modeset(0): Supported detailed timing:
[ 1605.612] (II) modeset(0): clock: 268.0 MHz Image Size: 641 x 401 mm
[ 1605.612] (II) modeset(0): h_active: 2560 h_sync: 2608 h_sync_end 2640 h_blank_end 2720 h_border: 0
[ 1605.612] (II) modeset(0): v_active: 1600 v_sync: 1603 v_sync_end 1609 v_blanking: 1646 v_border: 0
[ 1605.612] (II) modeset(0): Serial No: CY71733DXMP
[ 1605.613] (II) modeset(0): Monitor name: Cinema HD
[ 1605.613] (II) modeset(0): Number of EDID sections to follow: 1
[ 1605.613] (II) modeset(0): EDID (in hex):
[ 1605.613] (II) modeset(0): 00ffffffffffff0006102192ff0d0002
[ 1605.613] (II) modeset(0): 111101038040287828fe85a3574a9c25
[ 1605.613] (II) modeset(0): 13505400000001010101010101010101
[ 1605.613] (II) modeset(0): 010101010101bc1b00a0502017303020
[ 1605.613] (II) modeset(0): 360081912100001ab06800a0a0402e60
[ 1605.613] (II) modeset(0): 3020360081912100001a000000ff0043
[ 1605.613] (II) modeset(0): 59373137333344584d500a00000000fc
[ 1605.613] (II) modeset(0): 0043696e656d612048440a0000000155
[ 1605.613] (II) modeset(0): 40010300000000c84801a500a5000102
[ 1605.613] (II) modeset(0): 031919a8000000000000400000000000
[ 1605.613] (II) modeset(0): 00000000000000000000000000000000
[ 1605.613] (II) modeset(0): 00000000000000000000000000000000
[ 1605.613] (II) modeset(0): 00000000000000000000000000000000
[ 1605.613] (II) modeset(0): 00000000000000000000000000000000
[ 1605.613] (II) modeset(0): 00000000000000000000000000000000
[ 1605.613] (II) modeset(0): 00000000000000000000000000000041
[ 1605.613] (II) modeset(0): Printing probed modes for output DP-1
[ 1605.613] (II) modeset(0): Modeline "1280x800"x59.9 71.00 1280 1328 1360 1440 800 803 809 823 +hsync -vsync (49.3 kHz e)
and you can try out the modeline by opening a terminal and typing in:
xrandr --newmode "2560x1600" 268.00 2560 2608 2640 2720 1600 1603 1609 1646 -hsync +vsync
and then change the output to the new mode with:
xrandr --addmode DISPLAY_ID 2560x1600
xrandr --output DISPLAY_ID --mode 2560x1600
where "DISPLAY_ID" is the display connection name from xrandr's output such as "HDMI-1"
Set up your .xprofile by making a text file named ".xprofile" in each user's home directory and adding these lines:
#! /bin/sh
xrandr --newmode "2560x1600" 268.00 2560 2608 2640 2720 1600 1603 1609 1646 -hsync +vsync
xrandr --addmode DISPLAY_ID 2560x1600
xrandr --output DISPLAY_ID --mode 2560x1600
replacing "DISPLAY_ID" with the display connection name as with the test.
Note: I noticed that this question is a few years old halfway through writing this, but I figure I'll go ahead and post the answer because I sure would like to have found it when I was having this problem.