Если это обходное решение не работает, попробуйте это в строке Exec= при редактировании /etc/xdg/autostart/empathy.desktop (или /usr/share/applications/empathy.desktop):
sh -c 'empathy & sleep 5 && xdotool search --sync --onlyvisible --class "empathy" windowunmap'
Это похоже, но не одно и то же: [ ! d2] Он пытается добавить пятисекундную паузу между запуском Empathy и отправкой имитируемого ввода в нее с помощью xdotool. Он также использует только действие windowunmap, а не предыдущее действие windowmove, которое менее важно.
Есть много способов увидеть это. Прежде всего, это указано в выводе ls -l. Обратите внимание, что каталог имеет d в начале поля разрешений, а ссылка имеет l:
$ ls -l
drwxr-xr-x 2 terdon terdon 4096 Feb 13 14:12 bar
lrwxrwxrwx 1 terdon terdon 3 Feb 13 14:12 foo -> bar
Вы также можете использовать file:
$ file bar foo
bar: directory
foo: symbolic link to `bar'
Другим выбором является readlink, который следует за символическими ссылками на их целевые объекты:
$ readlink foo
bar
Запуск readlink bar не будет возвращать результат (он не работает, возвращает код выхода без 0), поэтому вы может сделать что-то вроде:
readlink bar || echo "Not a link!"
или
readlink foo && "Echo this is a link"
Наконец, вы также можете использовать find или сама оболочка для перечисления всех ссылок:
find . -type l
или
for f in *; do [ -L "$f" ] && echo "$f is a link"; done
Прочитайте man [ (или man test), и вы увидите, что вы можете сделать:
for theDir in path_name link_name ; do
if [ -L $theDir ] ; then
echo "$theDir exists and is a symbolic link"
elif [ -d $theDir ] ; then
echo "$theDir exists and is a directory"
fi
done
Я изменил порядок тестов, поэтому проверка каталога выполняется только в том случае, если $theDir не является ссылкой.
использовать ls -F.
это приведет к тому, что ls добавит символы к именам файлов
* для исполняемых файлов
/ для каталогов
@ для символических ссылок **
| для FIFO
> для дверей (что бы это ни значило)
= ] для сокетов
у обычных файлов нет классификатора в конце. Итак, в вашем случае вы увидите @ в конце каждого символьного имени и / в конце реального каталога.
Однако, если вы используете ls -l, вы не увидите классификаторов для symlinks, и вместо этого вы увидите -> и ссылку.
Вы также можете использовать stat и file для различения dirs / symlinks, например:
$ file a
a: directory
$ file b
b: symbolic link to a
$ stat a
File: 'a'
Size: 40 Blocks: 0 IO Block: 4096 directory
[...]
$ stat b
File: 'b' -> 'a'
Size: 1 Blocks: 0 IO Block: 4096 symbolic link
[...]