Linux: кастомные ярлыки и иконки

Наблюдая разницу подхода к юзабилити в Manjaro (KDE) и МСВСфере (Gnome) более чётко зафиксировал для себя общие способы создания ярлыков в linux. Заодно решил посмотреть как в Сфере будут смотреться дефолтные папки, если убрать с них градиент, или, допустим, перенести туда визуал папок из Manjaro.

Linux: кастомные ярлыки и иконки

Что касается ярлыков - для приложений установленных из репозитория с этим проблем особых нет. В KDE их можно перетянуть на панель задач или на рабочий стол. В Gnome - добавить в избранное на основной панели, чтобы они отображались также на панели задач и в доке. Со ссылками на папки тоже более менее ситуация нормальная. А вот если дело касается ярлыков для старта приложения установленного не из репозитория, всяких портабл-версий, разных .AppImage, пользовательских приложений и подобного - здесь уже возникают некоторые проблемы. По крайней мере для пользователей привыкших к windows-экспириенсу или для тех, кто использует какие-то приложения не из магазина, например.

ПРО ЯРЛЫКИ

Способы решения этой проблемы в linux довольно разнообразны. Посмотрим на основные.

1. Конкретно в МСВСфере можно добавить файл/папку в избранное через диалог по правой кнопке. Они появляются в папке Избранные в файловом менеджере (на которую можно сделать ссылку и вынести её на рабочий стол). В Manjaro можно похожим образом добавить папку (но не файл) в раздел Places файлового менеджера, к тому же новая папка добавится туда целой новой строкой.

Отмечаем "Добавить в избранное" и файл/папка окажется доступна также и в разделе Избранные, слева в файловом менеджере
Отмечаем "Добавить в избранное" и файл/папка окажется доступна также и в разделе Избранные, слева в файловом менеджере
Отмечаем Add to Places и папка (но не файл) будет выводится в разделе Places слева
Отмечаем Add to Places и папка (но не файл) будет выводится в разделе Places слева

2. Собственно, можно просто ограничиться тем, что использовать ссылки не на файлы, а на папки. У них будет появляться стрелочка на иконке (в Сфере) или значок вроде скрепки (в Manjaro). К тому же такие ссылки на папки (в отличие от ссылок на файлы) без проблем работают в Сфере, что с рабочего стола, что изнутри прочих папок.

3. Некий комбинированный вариант, больше актуальный для Сферы и прочих ОС c Gnome-like окружением - сделать обычные ссылки на файлы, но собрать их в отдельной папке, а не на рабочем столе. Тогда они будут нормально срабатывать.

4. Наконец, мы можем написать sh скрипт, запускающий нужное. Как если бы запускали терминал и выбивали команду, но более быстро, удобно и без показа терминала. Здесь, конечно, тоже чуть проще запускать приложения из репозитория - достаточно правильно написать имя приложения внутри скрипта. А вот прочие файлы придётся уже запускать через другую форму записи, требующую указать путь к файлу. Что тоже довольно не сложно делается.

Скрипт runFile.sh , который запустит Godot 4.4 по указанному пути (вид в текстовом редакторе из Manjaro)
Скрипт runFile.sh , который запустит Godot 4.4 по указанному пути (вид в текстовом редакторе из Manjaro)
Скрипт run_file.sh , который запустит файл с игрой по указанному пути (вид в редакторе Сферы)
Скрипт run_file.sh , который запустит файл с игрой по указанному пути (вид в редакторе Сферы)

То есть внутри sh файла просто пишем такое, где вместо /home/... ваш желаемый путь (а справа и слева один из символов с кнопки тильды, она же отвечает за букву Ё на клавиатуре, находится выше Tab):

#!/bin/bash `/home/...`

Некоторый минус способа - у всех sh файлов будет одна и та же стандартная иконка. Зато файл можно будет запускать с параметрами, например.

Опять же, в случае со Сферой это не вариант, так как для старта sh файла придётся прожимать запуск меню по правой кнопке.

Linux: кастомные ярлыки и иконки

5. Ещё можно поискать и установить какой-то виджет/прогу для более удобного доступа к нужным файлам. Например, в Manjaro имеется встроенный виджет Quicklaunch, создающий окошко с юзерскими ярлыками. А в Сфере можно установить приложение Shortcut - оно позволяет заводить свои ярлыки, указывая в том числе и иконку, и они попадают в основное меню. Оттуда их можно добавить в избранное (появятся на панели задачи и в доке) или вывести на рабочий стол (потребуется дополнительно нажать на разрешение запуска ярлыка, в диалоге по правой кнопке).

В Манджаро открываем виджеты и находим Quicklaunch, добавляя его на рабочий стол
В Манджаро открываем виджеты и находим Quicklaunch, добавляя его на рабочий стол
Далее настраиваем его размеры и что за ярлыки он будет содержать (можно их прямо перетаскивать туда)
Далее настраиваем его размеры и что за ярлыки он будет содержать (можно их прямо перетаскивать туда)
В Сфере качаем специальное приложение
В Сфере качаем специальное приложение
Теперь внутри Shortcut можно отдельно заводить ярлыки, заполняя нужные поля - имя, иконка, путь
Теперь внутри Shortcut можно отдельно заводить ярлыки, заполняя нужные поля - имя, иконка, путь
Стрелками показаны места, где теперь может оказаться этот ярлык - на рабочем столе (только в свойствах нужно нажать разрешение, чтобы значок перестал быть серым), в основной панели, и внизу (на панели задач).
Стрелками показаны места, где теперь может оказаться этот ярлык - на рабочем столе (только в свойствах нужно нажать разрешение, чтобы значок перестал быть серым), в основной панели, и внизу (на панели задач).

6. Или же можно плотнее вникнуть в такую вещь, как .desktop файлы. Этот формат как раз и предназначен для создания ярлыков. Допустим, Manjaro по сути позволяет пользователю удобно создавать ссылки в таком формате - правой кнопке есть опция создания url-ярлыка, как раз и создающая .desktop файл и позволяющая настроить основные параметры через графический интерфейс, избавляя от излишних подробностей.

Тем не менее, .desktop файл можно сделать и вручную, в текстовом редакторе. Что в Gnome, что в KDE.

Два разных .desktop файла в Manjaro - первый сформирован системой автоматически и имеет тип Link, второй отредактирован вручную, чтобы запускать приложение через путь и имеет тип Application.
Два разных .desktop файла в Manjaro - первый сформирован системой автоматически и имеет тип Link, второй отредактирован вручную, чтобы запускать приложение через путь и имеет тип Application.
 Пример .desktop файла в Сфере, который запустит портабл-версию Krita
 Пример .desktop файла в Сфере, который запустит портабл-версию Krita

Одним словом, запись для .desktop запускающего файл примерно такая (где для Icon и Exec нужно указать свои пути, и поправить Name на свои варианты):

[Desktop Entry] Icon=/home/... Name[en_US]=custom_name Name=custom_name2 Type=Application Exec=$HOME/...

Или так, например:

[Desktop Entry] Name=custom_name Exec="/home/..." Terminal=false Type=Application

Нюансы - в той же Сфере .desktop работают (и отображают прописанную иконку) только на рабочем столе (такие вот особенности у Gnome). Иконку им можно прописать специальной строкой внутри файла, или же стандартным образом установить её через свойства файла.

Дополнительная фишка - .desktop файлы можно бросить в папку applications (удобнее в раздел home, включив отображение скрытых папок, по пути - .local/share/applications), чтобы помещённый туда ярлык отобразился в разделах основной панели ОС. Откуда уже с ним можно развлекаться описанными выше способами (отправить в панель задач, док или рабочий стол). Важный момент - если иконка была просто "натянута" поверх через свойства, то на панель она не перенесётся. Для того, чтобы она там отобразилась нужно именно прописывать путь к ней внутри текста .desktop файла. Другой важный момент - чтобы файл запускался с панели, внутри .desktop поле Type должно быть прописано как Application, а не Link.

Таким вот образом, закинув кастомный .desktop файл для запуска Krita (которая поставлена не через репозиторий) - наконец-то получаем возможность иметь линк на неё внутри дока, внизу.
Таким вот образом, закинув кастомный .desktop файл для запуска Krita (которая поставлена не через репозиторий) - наконец-то получаем возможность иметь линк на неё внутри дока, внизу.

КАСТОМНЫЕ ИКОНКИ

Свои иконки в linux делать не сложно, к тому же можно делать это упрощённым способом - просто меняя какой-то существующий в системе. Достаточно найти в поиске подходящий .svg файл и установить приложение, которым его можно открыть, чтобы отредактировать его векторное изображение - через Inkscape, например, достаточно удобно (хотя конкретно к редактированию в нём ещё надо привыкнуть).

В данном случае я хотел сделать иконки не для приложений, а для папок, чтобы посмотреть как они будут выглядеть дефолтные папки МСВСферы без градиента (и может быть, с дополнительной обводкой). И для начала просто сделал скрин с ними и делал вариации векторых изображений поверх скрина, в редакторе Krita.

Сначала повторил оригинальные, пробуя их изменять
Сначала повторил оригинальные, пробуя их изменять
Затем подумал, а почему бы не сделать их побольше - ближе к квадрату
Затем подумал, а почему бы не сделать их побольше - ближе к квадрату
Далее решил набросать нечто похожее по форме на папки из Windows Vista. Но потом захотелось чего-то наподобие, но менее распахнутого и так пришёл к нижним двум рядам папок - в вариантах побольше и поменьше.
Далее решил набросать нечто похожее по форме на папки из Windows Vista. Но потом захотелось чего-то наподобие, но менее распахнутого и так пришёл к нижним двум рядам папок - в вариантах побольше и поменьше.
Форма понравилась, поэтому добавил некоторых деталей и стал смотреть в разных цветах.
Форма понравилась, поэтому добавил некоторых деталей и стал смотреть в разных цветах.
Для ОС Сфера, возможно, подошли бы какие-то закруглённые варианты - поэтому попробовал ещё вот такую форму.
Для ОС Сфера, возможно, подошли бы какие-то закруглённые варианты - поэтому попробовал ещё вот такую форму.

Примерно определившись с теми иконками, которые хотелось бы реально собрать в виде .svg файлов, стал по очереди их формировать в Inksсape и сохранять как отдельные иконки.

Собственно, внутри они устроены не сложно. Векторные формы в несколько слоёв.
Собственно, внутри они устроены не сложно. Векторные формы в несколько слоёв.
Каждую форму можно редактировать отдельно, перемещая/добавляя/удаляя точки и так далее.
Каждую форму можно редактировать отдельно, перемещая/добавляя/удаляя точки и так далее.
В итоге собрал пачку вариантов в Manjaro, после чего перекидываю копии этих иконок в Сферу. Можно было делать их и внутри Сферы, просто я хотел ещё забрать отсюда уже имеющиеся наработки и вариации иконок папок из самой Manjaro.
В итоге собрал пачку вариантов в Manjaro, после чего перекидываю копии этих иконок в Сферу. Можно было делать их и внутри Сферы, просто я хотел ещё забрать отсюда уже имеющиеся наработки и вариации иконок папок из самой Manjaro.

Оказавшись в МСВСфере помещаю несколько вариантов новых папок на рабочий стол. Делая это через написание полноценных .desktop файлов или меняя иконку файла в свойствах (так как мне не надо, чтобы они работали, а просто вели себя как реальные значки в системе, выстраиваясь по сетке).

Рабочий стол со старыми и некоторыми новыми папками
Рабочий стол со старыми и некоторыми новыми папками

По идее можно залезть в системные папки и вручную заменить предустановленные иконки папок на свои, но там это всё может быть запаковано или иконка присутствует в нескольких вариантах размера, что осложняет замену.

В KDE можно разнообразно редактировать настройки используемой темы, но там редактируется цвет окон, разные стили, но не сами иконки - для них только выбор из доступных наборов или загрузка прочих наборов из интернета. Правда, можно сменить иконку для всех папок сразу иначе - в файловом менеджере Dolphin, открыв любую папку по правой кнопке, нажав Change и выбрав другой значок для всей категории. Но, опять же, выбирая из тех, что внутри имеющихся в системе наборов - при попытке открыть иные директории диалог сбрасывается.

Однако, я нашёл как это обойти - в данный диалог нужно заходить иначе, через System Settings, выбрав там Default Applications и раздел File Assotiations. Далее строку inode и внутри неё - directory. Где уже кликнув по картинке папки можно выбрать и любую свою иконку тоже, кроме внутрисистемных:

Вот где нужно было менять иконку
Вот где нужно было менять иконку
И сразу все папки в системе, у которых оставалась базовая иконка - приняли другой вид
И сразу все папки в системе, у которых оставалась базовая иконка - приняли другой вид

В Gnome настроек для замены иконок папок на собственные я, вроде, не видел, хотя в "доп. настройках Gnome" можно сменить системные значки на несколько иных вариантов и присутствует пункт более тонкого, видимо, управления темой, но по дефолту неактивен и требует включить "user-theme" (видимо это даст возможность более гибко настраивать тему, добавляя что-то из того функционала, что был в KDE, но не заменять значки на какие-то собственные). С другой стороны, наверное есть приложение для создания сразу всего набора системных значков, который уже и смогут использовать окружения.

Но мне достаточно было посмотреть на иконки папок, не меняя их вид везде в системе сразу. Вот что получилось:

Системные папки и близкий к ним кастомный вариант
Системные папки и близкий к ним кастомный вариант
Папки из Manjaro, одна из расцветок (хотя такие же можно поставить и в Сфере - значки темы Breeze, которые есть в доступных из коробки вариантах значков)
Папки из Manjaro, одна из расцветок (хотя такие же можно поставить и в Сфере - значки темы Breeze, которые есть в доступных из коробки вариантах значков)
Прочие вариации
Прочие вариации
Linux: кастомные ярлыки и иконки
Linux: кастомные ярлыки и иконки
Наверное, я в итоге остановился бы на каком-то таком варианте
Наверное, я в итоге остановился бы на каком-то таком варианте

Напоследок, сделал иконки папок ещё и из своих сделанных ранее иконок магических книг, убрав с обложки значки и немного уменьшив контуры. Почему бы папкам не быть книжками. Разве что тень под книгой можно было бы и убрать.

Linux: кастомные ярлыки и иконки
Linux: кастомные ярлыки и иконки

Прочие статьи про Linux:

8
19 комментариев