Nemo


В процессе изучения темы я буду ссылаться на архив Linux.7z (2015г), содержащий необходимые файлы.

Альтернативные файловые менеджеры


Русификатор Nemo

Перед использованием и настройкой скачайте и установите мой вариант русификатора из архива в заголовке темы. Файл русификации nemo.mo находится в папке /usr/share/locale/ru/LC_MESSAGES. Чтобы выполнить замену откройте папку LC_MESSAGES из контекстного меню пунктом "Открыть как администратор". После замены выполните команду sudo killall nemo, чтобы убить все процессы nemo. Запустите nemo, используя сочетание Super+E, она же Win+E в Windows. Некоторые пункты меню могут оказаться непереведёнными, но дело в том что эти пункты являются действиями определяемыми скриптами в папке /usr/share/nemo/actions.


Настройка Nemo

Вызов окна настроек: Правка > Настройка.
На вкладке Вид в выпадающих списках выберите "Компактный", 66%, 66%, 50%
На вкладке Поведение отметить "Открывать одним кликом", "Игнорировать индивидуальные настройки" (?), снять галку: "Подтверждать очистку корзины"
На вкладке Предпросмотр разрешить всплывающие подсказки к объектам и подробности в подсказках (размер, дата изменения).
На вкладке Панель инструментов отметить "Отображать кнопку "Компьютер". На данный момент это помогает смонтировать подключенные съёмные диски, которые не смонтировались автоматически при подключении.


nemo-emblems

Плагин отображения эмблем. В свойствах объекта добавляется вкладка "Эмблемы", при выборе которой на объекте появляется значок в половину меньшего размера. Удобно на папках рабочего стола сделать эмблемы, чтобы легко определять содержимое этой папки.
Набор эмблем можно изменить, добавив свои эмблемы в теме значков. В каталоге иконок /usr/share/icons или /home/<user>/.icons в выбранной теме есть папка emblems. Добавьте в неё свои иконки, учитывая что файл начинается с префикса "emblem-", размер иконки отображаемый в диалоге выбора равен 24, а размер эмблемы равен половине размера иконки, к которой она прилепляется. Итак если выбран размер отображения 32, то применяемая эмблема будет размером 16. Поэтому для практичного применения нужно создать эмблему размером 24 и 16, чтобы на рабочем столе на папках размером 32 накладывалась корректная эмблема (без трансформации).


Значки файлов и папок в Nemo

Во первых значки зависят от выбранной темы значков, например Faenza. Значки находятся в папках /usr/share/icons или /home/<user>/.icons. Во вторых значки определяются ассоциациями /usr/share/mime/packages/freedesktop.org.xml.
Так как файлы freedesktop.org.xml вашей системы могут отличатся, то делаем ручной импорт. Из файла x-user.xml (моего архива Linux.7z) копируем к примеру текст "*.img" и ищем его в freedesktop.org.xml, далее чуть выше, после тегов <comment> вставляем строку <generic-icon name="x-img"/>, где x-img это имя png-файла, то есть в вашей папке с темой иконок mimetypes/16 должен находится файл x-img.png. Можно взять готовый из текущего комплекта в папке mimetypes/16.
Далее в терминале перейти в папку "packages":
cd ~/.local/share/mime/packages оно же cd /home/<user>/.local/share/mime/packages
скопировать в эту папку файл x-user.xml и выполнить команду:
sudo xdg-mime install x-user.xml


Некоторые особенности

Горячие клавиши. Горячие клавиши можно увидеть в пунктах меню. Но есть скрытые, например переименование с расширением - двойное нажатие F2, тоже действие делает Shift+F2. Если в меню указана клавиша Return, это означает Enter


Шаблоны. Чтобы создать файл с некоторым содержимым, например заголовочная информация для файла программного кода, то добавьте этот файл в папку /home/<user>/Шаблоны и он будет отображаться в контекстном меню "Создать файл". А действие, просто скопирует файл-шаблон в текущий каталог с тем же именем с добавлением префикса "Безымянный " с активированием функции переименования.


Переименование. У Nemo есть отличия от файлового менеджера в Windows (Проводника). Во первых активация переименования не завершается при выборе другого окна, это удобно тем, что во время переименования можно копировать тексты по частям из других окон или из адресной строки текущего окна. Переименование завершается клавишей Enter, кликом на свободной части этого списка файлов, выбор другой папки в дереве. В области переименования действует клавиша Ctrl+A (выделить всё), двойной клик на слове выделяет слово (разделённое пробелами или знаками пунктуации), стрелка влево перемещает курсор в конец выделенного. Клавиша F2 активирует переименовние без расширения файла, повторное нажатие F2 выделяет всю строку, включая расширение файла.


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

Ярлык запуска отличается тем, что это просто текстовый файл с расширением .desktop, который должен содержать некоторую команду, например "nemo "/media/my_disk" откроет nemo и перейдёт в папку "/media/my_disk", это может оказаться более явно чем символическая ссылка, потому что вы увидите реальную папку. Для исполняемых файлов также требуется делать ярлык запуска, потому что сделав символическую ссылку это тоже самое, что скопировать исполняемый файл на рабочий стол. Если он ищет свои файлы, которые должны находится рядом с исполняемым файлом и не находит, то это вызовет проблемы. Ярлык запуска запускает файл по месту его реального нахождения, как если бы вы перешли в его папку и кликнули на исполняемый файл.


Как добавить пункт контекстного меню в Nemo

Перейдите в папку /usr/share/nemo/actions и посмотрите файлы *.nemo_action, находящиеся в ней. Инструкция с подробным описанием на английском языке находится в файле sample.nemo_action.


[Nemo Action]
# Готовые работающие примеры в папке "/usr/share/nemo/actions"
# Это перевод файла-инструкции "sample.nemo_action"

#############################################
#### Отладка:
####
#### Запустите Nemo с переменной окружения NEMO_ACTION_VERBOSE,
#### чтобы получить полный отчёт работы вашего пункта меню
#### в терминале. То есть выполните команду завершения:
#### $ nemo --quit
#### и команду запуска с переменной:
#### $ NEMO_ACTION_VERBOSE=1 nemo
#### Завершить процесс можно с помощью "gnome-system-monitor" - именуемый в меню как "Системный монитор"
#### Завершить процесс можно с помощью "sudo killall nemo", но не в случает отладки.
#############################################

# Является ли этот пункт активным. К примеру если вызывает проблему, то можно отключить.
# Этот параметр не обязательный, если он отсутствует, значит является активным

Active=false

# Переменные, которые могут использоваться в параметрах Name, Comment (tooltip) и Exec:
#
# %U - вставляет список URI выделенных объектов
# %F - вставляет список путей выделенных объектов
# %P - вставляет путь родительской (текущей) папки
# %f или %N (deprecated) - вставляет имя первого выделенного файла
# %p - вставляет имя родительской папки
# %D - вставляет путь устройства, на котором расположен файл (к примеру /dev/sdb1)

# Имя пункта отображаемого в меню
# **** ОБЯЗАТЕЛЬНЫЙ ПАРАМЕТР ****

Name=Анализ размера содержимого

# Комментарий/подсказка, отображаемая в строке состояния (более подробное описание пункта)
Comment=Круглая диаграмма структуры папки по размеру

# Команда запуска. Команда заключённая в < > запускает файл находящийся в папке actions.
# **** ОБЯЗАТЕЛЬНЫЙ ПАРАМЕТР ****

Exec=baobab "%F"
Exec=gedit %F
Exec=<myaction.py -r -g %P %F %U>

# Иконка пункта в меню. Должно быть указано имя иконки в теме оформления
# Укажите англ. имя программы

Icon-Name=folder

# Идентификатор иконки. Если указаны оба параметра Icon-name и Stock-Id,
# то будет использоваться Stock-Id как более приоритетный
#Stock-Id=gtk-cdrom

# Способ выделения при котором пункт будет отображаться в меню:
# s - ( [s]ingle - единственный) пункт отображаться, если выбран только один объект
# m - ([m]ultiple - множественный) пункт отображаться, если выбрано несколько объектов
# any - для любого типа выбора (одиночный, множественный, ничего)
# notnone - что-то должно быть выбрано (пункт отображаться, если выбран один или несколько объектов)
# none - пункт отображаться, если ничего не выбрано, то есть клик на фоне
# "число выделенных объектов" - пункт отображаться, если выбрано указанное число объектов.
# **** ОБЯЗАТЕЛЬНЫЙ ПАРАМЕТР ****

Selection=s

# Расширение файлов, для которых пункт меню будет отображаться
# Список расширений оканчивается точкой с запятой.
# Некоторые специальные ключевые слова
# "dir" - для выделенной папки
# "none" - для объектов без расширения.
# "nodirs" - для любого выделения, не включающего в себя папки.
# "any" - для любого типа файлов, включая папки.
# Расширения могут быть указаны в виде списка, разделённых точкой с запятой
# Регистр букв в расширении не учитывается. Например jpg будет определять в том числе JPG, jPg, jpg, и т.д.
# **** ОБЯЗАТЕЛЬНЫЙ ПАРАМЕТР Extensions или Mimetypes ****

Extensions=any;

# Тип объекта. Типы могут быть указаны в виде списка, разделённых точкой с запятой
# Список типов оканчивается точкой с запятой.
# **** ОБЯЗАТЕЛЬНЫЙ ПАРАМЕТР Extensions или Mimetypes ****

# Для каталогов:

Mimetypes=inode/directory;

# Для всех изображений
Mimetypes=image/*;

# Для архивов
Mimetypes=application/x-cd-image;application/x-bzip-compressed-tar;application/x-compressed-tar;application/x-tar;application/x-cpio;application/zip;

# Разделитель путей в списке в случае выбора нескольких объектов.
# Используется в исполняемой командной строке. Optional - if you leave this out, a space is inserted.
# Note you can have trailing spaces here.
#Separator=,

# Тип кавычек в случае выбора нескольких объектов.
# По умолчанию без кавычек.
# Может быть: single, double, backtick
#Quote=double

# Параметр Dependencies (Зависимости) - задаёт список программ необходимых для работы этого пункта меню.
# Конечно же Nemo указывать не нужно.
# Выполняет поиск этих программ и не отображает пункт меню, при их отсутствии.
# Можно указать абсолютный путь (например: /usr/lib/gvfs/gvfsd-archive) to check
# instead of or in addition to an executable in the path.
# Этот список разделяется точкой с запятой и ей же заканчивается.
#Dependencies=gedit;

# Место, где пункт доступен:
# Этот список разделяется точкой с запятой и ей же заканчивается.
# "desktop" - на рабочем столе или в папке, если родительский путь является рабочий стол
# "removable" целевой объект (первый выделенный) является флешкой (съёмное устройство)
# "gsettings <schema> <boolean key>" - является истиной
# "dbus <name>" - указанное имя существует

#Conditions=desktop;

# Экранирует пробелы в путях, если установлено в true ($U, $F, $P, $D)
# Иногда это избавит от ошибки для путей не заключённых в кавычки.
# По умолчанию false

EscapeSpaces=true