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

от автора

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

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

Про ярлыки

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

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

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

Отмечаем «Добавить в избранное» и файл/папка окажется доступна также и в разделе Избранные, слева в файловом менеджере
Отмечаем "Add to Places" и папка (но не файл) будет выводится в разделе 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 файла придётся прожимать запуск в меню по правой кнопке.

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 можно разнообразно редактировать настройки используемой темы, но там редактируется цвет окон, разные стили, но не сами иконки — для них только выбор из доступных наборов или загрузка прочих наборов из интернета. Правда, можно сменить иконку для всех папок сразу иначе — в файловом менеджере Dolphin, открыв любую папку по правой кнопке, нажав Change и выбрав другой значок для всей категории. Но, опять же, выбирая из тех, что внутри имеющихся в системе наборов — при попытке открыть иные директории диалог сбрасывается.

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

Вот где нужно было менять иконку

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

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

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

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

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

Системные папки и близкий к ним кастомный вариант
Папки, прибывшие из Manjaro, одна из расцветок. В принципе такие как раз можно включить в Сфере из коробки - это значки темы Breeze, и их можно сделать дефолтными для папок в "доп. настройках Gnome"

Папки, прибывшие из Manjaro, одна из расцветок. В принципе такие как раз можно включить в Сфере из коробки — это значки темы Breeze, и их можно сделать дефолтными для папок в «доп. настройках Gnome»
Прочие вариации

Прочие вариации
Наверное, я в итоге остановился бы на каком-то таком варианте

Наверное, я в итоге остановился бы на каком-то таком варианте

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

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

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

habr.com

Полезное для Linux
Описываю некоторые вещи, которые могут пригодиться при работе в linux-дистрибутивах. В основном на п…

habr.com


ссылка на оригинал статьи https://habr.com/ru/articles/897570/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *