RotateProperties
Целый запрос протокола X, единственная задача которого — сдвинуть восемь буферов вырезания на одну позицию, и почти ничего больше.
Запрос принимает окно, список свойств и шаг и вращает значения между ними: при шаге 1 второе свойство получает содержимое первого, третье — второго, а первое — последнего. Все свойства должны существовать и иметь один тип, и каждое затронутое свойство порождает PropertyNotify. Всё происходит в сервере атомарно, так что другие клиенты никогда не видят наполовину повёрнутого состояния.
Мотивом были буферы вырезания CUT_BUFFER0–CUT_BUFFER7 на корневом окне — кольцо, где последняя копия лежала в буфере 0, а старые отодвигались назад. Для этого в Xlib и появилась XRotateBuffers. Когда на смену буферам вырезания пришли выделения ICCCM, RotateProperties стал одним из самых невостребованных вызовов протокола, оставшимся только потому, что в X ничего никогда не удаляют.