Оба select()
тайм-аут и timerfd_create()
таймер реализован с таймерами с высоким разрешением на любом недавнем ядре.
Можно сделать так, чтобы UID появился в верхней части списка, сделав его основным. Затем верхний UID перемещается вниз во второй слот, а также все остальное смещается на одно место вниз. Похоже, что это "смещение" происходит только после того, как вы сохранили
изменения в ключе.
Если вы хотите получить правильный порядок, вам нужно повторить эти шаги, начиная с UID, который вы хотите отобразить вторым по счету, до тех пор, пока элемент, который вы хотите отобразить как верхний (первый) UID.
Команды для этого (текст, следующий за $
и gpg>
- это то, что вы вводите в консоли):
$ gpg --edit-key 0xAABBD62D0BA66C66
gpg (GnuPG) 1.4.16; Copyright (C) 2013 Free Software Foundation, Inc.
# irrelevant output removed #
[ultimate] (1). Mr. Foo Bar <fourth@example.com>
[ultimate] (2) Mr. Foo Bar <first@example.com>
[ultimate] (3) Mr. Foo Bar <third@example.com>
[ultimate] (4) Mr. Foo Bar <second@example.com>
gpg> uid 3
[ultimate] (1). Mr. Foo Bar <fourth@example.com>
[ultimate] (2) Mr. Foo Bar <first@example.com>
[ultimate] (3)* Mr. Foo Bar <third@example.com>
[ultimate] (4) Mr. Foo Bar <second@example.com>
gpg> primary
[ultimate] (1) Mr. Foo Bar <fourth@example.com>
[ultimate] (2) Mr. Foo Bar <first@example.com>
[ultimate] (3)* Mr. Foo Bar <third@example.com>
[ultimate] (4) Mr. Foo Bar <second@example.com>
gpg> save
Затем промойте и повторите эти действия, работая в обратном направлении от второго к последнему пункту до тех пор, пока пункт, который вы хотите отобразить первым в списке, не станет основным UID.
Единственным гарантированным поведением является то, что первичный UID указан первым.
Дальнейшее их переупорядочивание невозможно, и создает много беспорядка в связке ключей, так как каждое изменение требует новых самоподписей.
Даже если UID отображаются в "правильном" порядке в вашей системе, они делают это, потому что порядок изменения базы данных и реализация базы данных привели к этому, поэтому система, которая видит несколько изменений за один раз или использует другой бэкэнд базы данных, скорее всего, будет вести себя по-другому.
Первым показанным UID является тот, который либо имеет первичный флаг, либо является новейшей самоподписью.
Остальные отображаются в порядке их добавления к связке ключей, т.е. либо в порядке создания, либо в порядке импорта.
Таким образом, можно минимизировать количество самоподписей, создав файлы, содержащие только один UID, удалить ключ (не забудьте сначала сделать резервную копию приватных ключей!) и импортировать UID в желаемом порядке.
Вы можете создать эти файлы с помощью gpgsplit
или удалить все UID, кроме одного, и экспортировать оставшийся, импортировать файл со всеми UID, удалить все, кроме другого и так далее.