Linux: кастомные ярлыки и иконки
Наблюдая разницу подхода к юзабилити в Manjaro (KDE) и МСВСфере (Gnome) более чётко зафиксировал для себя общие способы создания ярлыков в linux. Заодно решил посмотреть как в Сфере будут смотреться дефолтные папки, если убрать с них градиент, или, допустим, перенести туда визуал папок из Manjaro.
Что касается ярлыков - для приложений установленных из репозитория с этим проблем особых нет. В KDE их можно перетянуть на панель задач или на рабочий стол. В Gnome - добавить в избранное на основной панели, чтобы они отображались также на панели задач и в доке. Со ссылками на папки тоже более менее ситуация нормальная. А вот если дело касается ярлыков для старта приложения установленного не из репозитория, всяких портабл-версий, разных .AppImage, пользовательских приложений и подобного - здесь уже возникают некоторые проблемы. По крайней мере для пользователей привыкших к windows-экспириенсу или для тех, кто использует какие-то приложения не из магазина, например.
ПРО ЯРЛЫКИ
Способы решения этой проблемы в linux довольно разнообразны. Посмотрим на основные.
1. Конкретно в МСВСфере можно добавить файл/папку в избранное через диалог по правой кнопке. Они появляются в папке Избранные в файловом менеджере (на которую можно сделать ссылку и вынести её на рабочий стол). В Manjaro можно похожим образом добавить папку (но не файл) в раздел Places файлового менеджера, к тому же новая папка добавится туда целой новой строкой.
2. Собственно, можно просто ограничиться тем, что использовать ссылки не на файлы, а на папки. У них будет появляться стрелочка на иконке (в Сфере) или значок вроде скрепки (в Manjaro). К тому же такие ссылки на папки (в отличие от ссылок на файлы) без проблем работают в Сфере, что с рабочего стола, что изнутри прочих папок.
3. Некий комбинированный вариант, больше актуальный для Сферы и прочих ОС c Gnome-like окружением - сделать обычные ссылки на файлы, но собрать их в отдельной папке, а не на рабочем столе. Тогда они будут нормально срабатывать.
4. Наконец, мы можем написать sh скрипт, запускающий нужное. Как если бы запускали терминал и выбивали команду, но более быстро, удобно и без показа терминала. Здесь, конечно, тоже чуть проще запускать приложения из репозитория - достаточно правильно написать имя приложения внутри скрипта. А вот прочие файлы придётся уже запускать через другую форму записи, требующую указать путь к файлу. Что тоже довольно не сложно делается.
То есть внутри sh файла просто пишем такое, где вместо /home/... ваш желаемый путь (а справа и слева один из символов с кнопки тильды, она же отвечает за букву Ё на клавиатуре, находится выше Tab):
Некоторый минус способа - у всех sh файлов будет одна и та же стандартная иконка. Зато файл можно будет запускать с параметрами, например.
Опять же, в случае со Сферой это не вариант, так как для старта sh файла придётся прожимать запуск меню по правой кнопке.
5. Ещё можно поискать и установить какой-то виджет/прогу для более удобного доступа к нужным файлам. Например, в Manjaro имеется встроенный виджет Quicklaunch, создающий окошко с юзерскими ярлыками. А в Сфере можно установить приложение Shortcut - оно позволяет заводить свои ярлыки, указывая в том числе и иконку, и они попадают в основное меню. Оттуда их можно добавить в избранное (появятся на панели задачи и в доке) или вывести на рабочий стол (потребуется дополнительно нажать на разрешение запуска ярлыка, в диалоге по правой кнопке).
6. Или же можно плотнее вникнуть в такую вещь, как .desktop файлы. Этот формат как раз и предназначен для создания ярлыков. Допустим, Manjaro по сути позволяет пользователю удобно создавать ссылки в таком формате - правой кнопке есть опция создания url-ярлыка, как раз и создающая .desktop файл и позволяющая настроить основные параметры через графический интерфейс, избавляя от излишних подробностей.
Тем не менее, .desktop файл можно сделать и вручную, в текстовом редакторе. Что в Gnome, что в KDE.
Одним словом, запись для .desktop запускающего файл примерно такая (где для Icon и Exec нужно указать свои пути, и поправить Name на свои варианты):
Или так, например:
Нюансы - в той же Сфере .desktop работают (и отображают прописанную иконку) только на рабочем столе (такие вот особенности у Gnome). Иконку им можно прописать специальной строкой внутри файла, или же стандартным образом установить её через свойства файла.
Дополнительная фишка - .desktop файлы можно бросить в папку applications (удобнее в раздел home, включив отображение скрытых папок, по пути - .local/share/applications), чтобы помещённый туда ярлык отобразился в разделах основной панели ОС. Откуда уже с ним можно развлекаться описанными выше способами (отправить в панель задач, док или рабочий стол). Важный момент - если иконка была просто "натянута" поверх через свойства, то на панель она не перенесётся. Для того, чтобы она там отобразилась нужно именно прописывать путь к ней внутри текста .desktop файла. Другой важный момент - чтобы файл запускался с панели, внутри .desktop поле Type должно быть прописано как Application, а не Link.
КАСТОМНЫЕ ИКОНКИ
Свои иконки в linux делать не сложно, к тому же можно делать это упрощённым способом - просто меняя какой-то существующий в системе. Достаточно найти в поиске подходящий .svg файл и установить приложение, которым его можно открыть, чтобы отредактировать его векторное изображение - через Inkscape, например, достаточно удобно (хотя конкретно к редактированию в нём ещё надо привыкнуть).
В данном случае я хотел сделать иконки не для приложений, а для папок, чтобы посмотреть как они будут выглядеть дефолтные папки МСВСферы без градиента (и может быть, с дополнительной обводкой). И для начала просто сделал скрин с ними и делал вариации векторых изображений поверх скрина, в редакторе Krita.
Примерно определившись с теми иконками, которые хотелось бы реально собрать в виде .svg файлов, стал по очереди их формировать в Inksсape и сохранять как отдельные иконки.
Оказавшись в МСВСфере помещаю несколько вариантов новых папок на рабочий стол. Делая это через написание полноценных .desktop файлов или меняя иконку файла в свойствах (так как мне не надо, чтобы они работали, а просто вели себя как реальные значки в системе, выстраиваясь по сетке).
По идее можно залезть в системные папки и вручную заменить предустановленные иконки папок на свои, но там это всё может быть запаковано или иконка присутствует в нескольких вариантах размера, что осложняет замену.
В KDE можно разнообразно редактировать настройки используемой темы, но там редактируется цвет окон, разные стили, но не сами иконки - для них только выбор из доступных наборов или загрузка прочих наборов из интернета. Правда, можно сменить иконку для всех папок сразу иначе - в файловом менеджере Dolphin, открыв любую папку по правой кнопке, нажав Change и выбрав другой значок для всей категории. Но, опять же, выбирая из тех, что внутри имеющихся в системе наборов - при попытке открыть иные директории диалог сбрасывается.
Однако, я нашёл как это обойти - в данный диалог нужно заходить иначе, через System Settings, выбрав там Default Applications и раздел File Assotiations. Далее строку inode и внутри неё - directory. Где уже кликнув по картинке папки можно выбрать и любую свою иконку тоже, кроме внутрисистемных:
В Gnome настроек для замены иконок папок на собственные я, вроде, не видел, хотя в "доп. настройках Gnome" можно сменить системные значки на несколько иных вариантов и присутствует пункт более тонкого, видимо, управления темой, но по дефолту неактивен и требует включить "user-theme" (видимо это даст возможность более гибко настраивать тему, добавляя что-то из того функционала, что был в KDE, но не заменять значки на какие-то собственные). С другой стороны, наверное есть приложение для создания сразу всего набора системных значков, который уже и смогут использовать окружения.
Но мне достаточно было посмотреть на иконки папок, не меняя их вид везде в системе сразу. Вот что получилось:
Напоследок, сделал иконки папок ещё и из своих сделанных ранее иконок магических книг, убрав с обложки значки и немного уменьшив контуры. Почему бы папкам не быть книжками. Разве что тень под книгой можно было бы и убрать.
Прочие статьи про Linux: