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

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

4e157832186acf11f29181481227d5a9.jpg

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

Про ярлыки

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

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

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

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

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

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

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

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

#!/bin/bash

`/home/...`

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

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

81b57f1eb2e9529da24dc6f1c323922b.jpg

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.

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

Кастомные иконки

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

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

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

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

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

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

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

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

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

Системные папки и близкий к ним кастомный вариант
Системные папки и близкий к ним кастомный вариант
Папки, прибывшие из Manjaro, одна из расцветок
Папки, прибывшие из Manjaro, одна из расцветок
Прочие вариации
Прочие вариации
b72d6c4d94f4f34f7a0fa9574cd9af0d.jpg8f125ffbad536a32311279a1a77b7d04.jpgНаверное, я в итоге остановился бы на каком-то таком варианте
Наверное, я в итоге остановился бы на каком-то таком варианте

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

be8a0e0a78106eda361764acb6afe12e.jpg29644fc1ab8a972ab39d05c3ccb38723.jpg

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

Что это за Linux? МСВСфера 9
После предыдущей статьи о полезных штуках для линуксов, где речь шла преимущественно об опыте исполь…
habr.com
Полезное для Linux
Описываю некоторые вещи, которые могут пригодиться при работе в linux-дистрибутивах. В основном на п…
habr.com

© Habrahabr.ru